:root{--color-bg: #000000;--color-bg-deep: #0a0e27;--color-text: #f8fafc;--color-accent: #45c4b8;--control-face: linear-gradient(rgba(69, 196, 184, .1), rgba(10, 14, 39, .55));--control-edge: rgba(69, 196, 184, .45);--control-lip: inset 0 1px 0 rgba(191, 243, 236, .16);--control-drop: 0 .2rem .5rem rgba(0, 0, 0, .4);--control-glow: 0 0 .9rem rgba(69, 196, 184, .55);--panel-fill: rgba(10, 14, 39, .95);--font-heading: "Outfit", "Noto Sans JP", sans-serif;--font-body: "Inter", "Noto Sans JP", sans-serif}*{box-sizing:border-box}:root{--ui-scale: .75vw}html{font-size:var(--ui-scale)}@media (pointer: coarse){:root{--ui-scale: 10px}}html,body{margin:0;padding:0;width:100%;height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);overflow:hidden}#app{width:100%;height:100%;position:relative}.site-header{position:fixed;top:0;left:0;right:0;z-index:18;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:1.07rem 1.6rem;font-family:var(--font-heading)}.header-silhouette{position:absolute;top:0;left:0;z-index:-1;pointer-events:none;overflow:visible}.header-silhouette-fill{fill:var(--panel-fill)}.header-silhouette-edge{stroke:var(--color-accent);stroke-width:1;stroke-opacity:.32;vector-effect:non-scaling-stroke}.header-brand{position:relative;display:flex;align-items:center;justify-self:center}.header-logo{height:3.33rem}@media (pointer: coarse){.header-logo{height:2.67rem}}.header-left,.header-right{display:flex;align-items:center;gap:.8rem;position:relative}.header-left{justify-self:start}.header-right{justify-self:end}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:var(--control-face);border:1px solid var(--control-edge);color:var(--color-text);border-radius:.4rem;width:2.93rem;height:2.93rem;cursor:pointer;font-size:1.2rem;box-shadow:var(--control-lip),var(--control-drop);transition:box-shadow .2s ease,border-color .2s ease,color .2s ease}.icon-button:hover,.lang-button:hover{border-color:var(--color-accent);box-shadow:var(--control-lip),var(--control-drop),var(--control-glow)}.icon-button:active,.lang-button:active{box-shadow:inset 0 1px .4rem #00000080,inset 0 -1px #bff3ec1f}.audio-button:not(.muted){color:var(--color-accent)}:root{--audio-glow-strength: .55;--audio-glow-core: calc(.5rem + 1rem * var(--audio-glow-strength));--audio-glow-bloom: calc(1.2rem + 2.4rem * var(--audio-glow-strength));--audio-glow-alpha: calc(.3 + .6 * var(--audio-glow-strength))}@keyframes audio-invite{0%,to{box-shadow:var(--control-lip),var(--control-drop)}50%{box-shadow:var(--control-lip),var(--control-drop),0 0 var(--audio-glow-core) rgba(69,196,184,var(--audio-glow-alpha)),0 0 var(--audio-glow-bloom) rgba(69,196,184,calc(var(--audio-glow-alpha) * .55))}}.audio-button.muted{animation:audio-invite 2.6s ease-in-out infinite}.audio-button.muted:hover,.audio-button.muted:active{animation:none}.audio-button.muted:hover{border-color:var(--color-accent);box-shadow:var(--control-lip),var(--control-drop),0 0 var(--audio-glow-core) rgba(69,196,184,var(--audio-glow-alpha)),0 0 var(--audio-glow-bloom) rgba(69,196,184,calc(var(--audio-glow-alpha) * .55))}.icon-button:focus-visible,.menu-item:focus-visible,.lang-button:focus-visible,.lang-option:focus-visible,.carousel-dot:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.menu-list{position:absolute;top:3.47rem;left:0;background:var(--panel-fill);border:1px solid var(--control-edge);border-radius:.4rem;box-shadow:var(--control-lip),0 .6rem 1.4rem #0000008c;list-style:none;padding:.53rem;min-width:12rem;margin:0}.menu-list.hidden{display:none}.menu-item{display:block;width:100%;min-height:2.93rem;background:none;border:none;color:var(--color-text);padding:.53rem .8rem;text-align:left;cursor:pointer;font-family:var(--font-body);font-size:1rem;border-radius:.27rem;transition:color .2s ease,background-color .2s ease}.menu-item:hover{color:var(--color-accent);background:#45c4b81a}.lang-control{position:relative;display:flex;align-items:center}.lang-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.27rem;width:5.1rem;height:2.93rem;padding:0 .53rem;background:var(--control-face),var(--color-bg-deep);color:var(--color-text);border:1px solid var(--control-edge);border-radius:.4rem;font-family:var(--font-heading);font-size:1rem;cursor:pointer;box-shadow:var(--control-lip),var(--control-drop);transition:box-shadow .2s ease,border-color .2s ease}.lang-code{line-height:1}.lang-chevron{width:1rem;height:1rem;flex:none;transition:transform .2s ease}.lang-button[aria-expanded=true] .lang-chevron{transform:rotate(180deg)}.lang-list{position:absolute;top:3.47rem;right:0;width:100%;background:var(--panel-fill);border:1px solid var(--control-edge);border-radius:.4rem;box-shadow:var(--control-lip),0 .6rem 1.4rem #0000008c;list-style:none;padding:.53rem;margin:0}.lang-list.hidden{display:none}.lang-option{display:block;width:100%;min-height:2.93rem;background:none;border:none;color:var(--color-text);padding:.53rem;text-align:left;cursor:pointer;font-family:var(--font-heading);font-size:1rem;border-radius:.27rem;transition:color .2s ease,background-color .2s ease}.lang-option:hover{color:var(--color-accent);background:#45c4b81a}.lang-option.is-current{color:var(--color-accent)}.section-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#000000bf;height:100vh;height:100dvh}.section-overlay.hidden{display:none}.section-panel{position:relative;background:var(--color-bg-deep);border:1px solid var(--color-accent);border-radius:.8rem;padding:2.67rem;max-width:40rem;width:90%;display:flex;flex-direction:column;max-height:88vh;max-height:88dvh}.section-panel.has-carousel{max-width:58rem}.section-content{overflow-y:auto;overflow-x:hidden;min-height:0;padding:0 .4rem}.section-body{margin:0 0 .8rem}.section-body:last-child{margin-bottom:0}.section-body strong{font-weight:600;color:var(--color-text)}.section-subheading{font-family:var(--font-heading);font-weight:600;font-size:1.15rem;color:var(--color-text);margin:1.6rem 0 .53rem}.section-panel h2{font-family:var(--font-heading);color:var(--color-accent);margin-top:0}.section-panel p{font-family:var(--font-body);line-height:1.6}html[lang=ja] .section-panel p,html[lang=ja] .media-card-synopsis dd{line-height:1.9}html[lang=ja] .tutorial-body{line-height:1.8}.carousel-stage{transition:opacity .17s ease}.carousel-stage.is-fading{opacity:0}.carousel-dots{display:flex;justify-content:center;margin:.4rem 0 0;padding-bottom:8px}.carousel-dots[hidden]{display:none}@media (orientation: portrait){.section-panel.has-carousel .section-content{overflow-y:hidden;display:flex;flex-direction:column;padding:0}.section-panel.has-carousel .carousel{display:flex;flex-direction:column;flex:1;min-height:0}.section-panel.has-carousel .carousel-stage{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 .4rem}.section-panel.has-carousel .carousel-dots{flex:none;margin-top:.53rem}}.carousel-dot{position:relative;width:28px;height:28px;display:grid;place-items:center;padding:0;background:none;border:0;cursor:pointer}.carousel-dot:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.carousel-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-text);opacity:.35;transition:opacity .2s ease,background-color .2s ease,width .2s ease}.carousel-dot:hover:before{opacity:.7}.carousel-dot.is-current:before{background:var(--color-accent);opacity:1;width:20px;border-radius:4px}.media-card{display:grid;grid-template-columns:11rem 1fr;gap:1.6rem;align-items:start}.media-card-cover{aspect-ratio:var(--cover-aspect, .721);display:grid;place-items:center;overflow:hidden;border-radius:.4rem;border:1px solid rgba(69,196,184,.35);background:#45c4b80d}.media-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.media-card-cover-empty{font-family:var(--font-body);font-size:.75rem;text-align:center;padding:0 .8rem;opacity:.5}.media-card-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;line-height:1.2;color:var(--color-text);margin:0 0 .8rem}.media-card-meta,.media-card-synopsis dl{margin:0}.media-card-meta>div,.media-card-synopsis dl{margin-bottom:.3rem}.media-card-meta dt,.media-card-synopsis dt{display:inline;font-family:var(--font-body);font-weight:600;color:var(--color-accent)}.media-card-meta dt:after,.media-card-synopsis dt:after{content:": "}.media-card-meta dd,.media-card-synopsis dd{display:inline;margin:0;font-family:var(--font-body);line-height:1.6}.media-card-synopsis{margin-top:1.06rem}.media-card-note{font-family:var(--font-body);line-height:1.6;color:var(--color-accent);margin:1.06rem 0 0}@media (orientation: portrait){.media-card{grid-template-columns:1fr;gap:1.06rem;justify-items:center}.media-card-cover{width:11rem;max-width:60%}.media-card-detail{width:100%}}.media-card-heading{margin:0 0 .8rem}.media-card-heading .media-card-title{display:inline;margin:0}.card-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;margin-left:.8rem;white-space:nowrap}.card-link.is-pending{text-decoration:none;opacity:.6;cursor:default}.contact-lines{display:flex;flex-direction:column;gap:.53rem}.contact-line{display:flex;align-items:center;gap:.6rem}.contact-line-icon,.card-link-icon{width:1.2rem;height:1.2rem;flex:none;color:var(--color-accent)}.contact-link,.card-link{font-family:var(--font-body);color:var(--color-text);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;transition:color .2s ease}.contact-link:hover,a.card-link:hover{color:var(--color-accent)}.contact-location{font-family:var(--font-body);margin:.27rem 0 0;opacity:.75}.contacts-rule{margin:1.6rem 0 1.07rem;border:0;border-top:1px solid rgba(69,196,184,.3)}.contacts-notice{font-family:var(--font-body);font-size:.87rem;margin:0 0 .8rem;opacity:.8;text-align:center}.contacts-notice-name{color:var(--color-accent);font-weight:600}.contacts-socials{display:flex;flex-direction:column;align-items:center}.water-logo-stage{display:grid;place-items:center}.water-logo-button{background:none;border:0;padding:0;cursor:pointer;border-radius:50%;display:grid;place-items:center}.water-logo{filter:url(#water-logo-liquid)}.water-logo canvas{display:block;max-width:100%;height:auto}.contacts-caption{font-family:var(--font-body);text-align:center;margin:.27rem 0 0;color:var(--color-accent)}.contacts-caption.is-pending{color:var(--color-text);opacity:.6}.carousel-dot-custom{width:34px;height:34px;color:var(--color-text);opacity:.4;transition:opacity .2s ease,color .2s ease}.carousel-dot-custom:before{display:none}.carousel-dot-custom svg{width:20px;height:20px}.carousel-dot-custom:hover{opacity:.8}.carousel-dot-custom.is-current{color:var(--color-accent);opacity:1}@media (orientation: landscape) and (max-height: 520px){.section-panel.has-contacts{padding:1.33rem}.section-panel.has-contacts .contacts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr auto auto;gap:0 1.33rem}.section-panel.has-contacts{max-height:94dvh}.section-panel.has-contacts h2{font-size:1.33rem;margin-bottom:.4rem}.section-panel.has-contacts .contacts-rule{display:none}.section-panel.has-contacts .contacts-socials{display:contents}.section-panel.has-contacts .contact-lines{grid-column:1;grid-row:1;text-align:left}.section-panel.has-contacts .contacts-caption{grid-column:1;grid-row:4;text-align:left}.section-panel.has-contacts .contacts-notice{display:none}.section-panel.has-contacts .carousel-dot-custom{width:30px;height:30px}.section-panel.has-contacts .contacts-caption{margin:.53rem 0 0}.section-panel.has-contacts .carousel{display:contents}.section-panel.has-contacts .carousel-stage{grid-column:2;grid-row:1 / span 4;align-self:start;display:grid;place-items:center;border-left:1px solid rgba(69,196,184,.3);padding-left:1.33rem}.section-panel.has-contacts .carousel-dots{grid-column:1;grid-row:3;justify-content:flex-start;margin:0;padding-bottom:0}.section-panel.has-contacts .contacts-caption{margin:.27rem 0 0}.section-panel .section-footer{flex-direction:row;align-items:center;justify-content:space-between;gap:1.06rem;margin-top:1.06rem;padding-top:.6rem}}.close-button{position:absolute;top:.8rem;right:.8rem}.section-footer{margin-top:2.13rem;padding-top:1.07rem;border-top:1px solid rgba(69,196,184,.3);display:flex;flex-direction:column;gap:.53rem}.footer-copyright{font-size:.87rem;opacity:.7;margin:0}.footer-credit{display:flex;align-items:center;gap:.6rem;font-size:.8rem;margin:0}.footer-credit-text{opacity:.55}.footer-logo{height:1.6rem}.touch-controls{position:fixed;bottom:24px;left:0;right:0;z-index:15;display:flex;justify-content:space-between;padding:0 24px;pointer-events:none}.virtual-stick{width:112px;height:112px;border-radius:50%;border:1px solid var(--control-edge);background:radial-gradient(circle at 50% 34%,#45c4b821,#0a0e2794 64%);box-shadow:var(--control-lip),inset 0 0 1.6rem #45c4b81f,0 .3rem .9rem #00000073;position:relative;pointer-events:auto;touch-action:none;transition:border-color .2s ease,box-shadow .2s ease}.virtual-stick:before{content:"";position:absolute;top:16px;right:16px;bottom:16px;left:16px;border-radius:50%;border:1px dashed rgba(69,196,184,.16);pointer-events:none}.virtual-stick.is-active{border-color:#45c4b8d9;box-shadow:var(--control-lip),inset 0 0 1.6rem #45c4b833,0 .3rem .9rem #00000073,0 0 1.4rem #45c4b866}.virtual-stick-knob{width:48px;height:48px;border-radius:50%;position:absolute;top:50%;left:50%;margin:-24px 0 0 -24px;background:radial-gradient(circle at 36% 30%,#cdf5ef,var(--color-accent) 48%,#23786f 100%);box-shadow:inset 0 0 0 1px #cdf5ef59,0 .2rem .5rem #00000080,0 0 .9rem #45c4b873;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}.virtual-stick.is-active .virtual-stick-knob{transition:box-shadow .2s ease;box-shadow:inset 0 0 0 1px #cdf5ef80,0 .2rem .5rem #00000080,0 0 1.3rem #45c4b8bf}.copyright-notice{position:fixed;z-index:40;background:var(--panel-fill);border:1px solid var(--control-edge);border-radius:.59em;box-shadow:var(--control-drop);padding:.71em 1.06em;font-size:.91rem;max-width:20rem;pointer-events:none}.copyright-notice.hidden{display:none}.copyright-notice p{margin:0}@media (pointer: coarse){.copyright-notice{font-size:11px}}.copyright-notice-owner{font-family:var(--font-heading);color:var(--color-accent)}.copyright-notice-lead{color:var(--color-text)}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center}.loading-block{--loading-width: min(18rem, 52vw);--loading-gap: 2.6rem;--bar-drop: 4.8rem;position:absolute;left:50%;bottom:50%;width:var(--loading-width);transform:translate(-50%,var(--bar-drop));display:flex;flex-direction:column;align-items:center}.loading-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-bg)}.loading-logo{width:var(--loading-width);height:auto;margin-bottom:var(--loading-gap);-webkit-user-select:none;user-select:none}.loading-bar{width:var(--loading-width);height:2px;background:#f8fafc26;overflow:hidden}.loading-bar-fill{width:100%;height:100%;background:#f8fafc;transform:scaleX(0);transform-origin:left center;transition:transform .22s ease-out}.menu-divider{height:1px;margin:.4rem .8rem;background:var(--control-edge)}.tutorial-overlay{position:fixed;left:50%;bottom:2.4rem;transform:translate(-50%);z-index:25;width:min(24rem,88vw)}.tutorial-overlay.hidden{display:none}.tutorial-panel{position:relative;background:var(--panel-fill);border:1px solid var(--color-accent);border-radius:.8rem;box-shadow:var(--control-lip),0 .6rem 1.4rem #0000008c;padding:1.2rem 1.4rem 1rem;text-align:center}.tutorial-art{height:7.4rem;display:flex;align-items:center;justify-content:center;margin-bottom:.8rem}.tutorial-art svg{max-height:100%;width:auto}.tutorial-art img{max-height:100%;width:auto;border:1px solid var(--control-edge);border-radius:.3rem;display:block}.tutorial-title{font-family:var(--font-heading);color:var(--color-accent);font-size:1.235rem;margin:0 0 .35rem}.tutorial-body{font-family:var(--font-body);font-size:1rem;line-height:1.5;margin:0;opacity:.85}.tutorial-footer{display:flex;align-items:center;justify-content:space-between;margin-top:1rem}.tutorial-dots{display:flex;gap:.35rem}.tutorial-dot{width:.4rem;height:.4rem;border-radius:50%;background:#f8fafc40;transition:background-color .2s ease}.tutorial-dot.is-current{background:var(--color-accent)}.tutorial-advance{background:var(--control-face);border:1px solid var(--control-edge);border-radius:.4rem;box-shadow:var(--control-lip);color:var(--color-text);font-family:var(--font-body);font-size:1rem;padding:.4rem 1.1rem;cursor:pointer;transition:border-color .2s ease,color .2s ease}.tutorial-advance:hover{color:var(--color-accent);border-color:var(--color-accent)}.tutorial-advance:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (pointer: coarse){.tutorial-overlay{bottom:1rem;width:min(22rem,70vw)}}
