/* Shared Midnight Cinema foundation. Fonts are served locally. */
@font-face{font-family:Cormorant;src:url('../fonts/cormorant-roman.woff2?v=20261027-release') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('../fonts/cormorant-italic.woff2?v=20261027-release') format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{color-scheme:dark;background:#17111a;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-text-size-adjust:100%;text-size-adjust:100%;--chapter-height:100vh;--ease:cubic-bezier(.22,.72,.18,1)}
@supports(height:100svh){:root{--chapter-height:100svh}}
@supports(height:100dvh){:root{--chapter-height:100dvh}}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
body{background:radial-gradient(ellipse at 50% 40%,#49303e,#17111a 67%)}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;cursor:pointer}
button:focus-visible,[tabindex]:focus-visible{outline:2px solid #eac4bd;outline-offset:4px}
button:disabled{cursor:default}
img{-webkit-user-drag:none;user-select:none}
[hidden]{display:none!important}
.page{--bg:#20151f;--ink:#f8ede6;--muted:#c9adb6;--accent:#d9a9a3;--rule:#ba9ea52e;--serif:Cormorant,Georgia,serif;color:var(--ink);background:var(--bg);width:100%;height:var(--chapter-height);position:relative;isolation:isolate;overflow:hidden;touch-action:manipulation}
.page::before,.gallery-slide::after,.letter-paper::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.74' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");opacity:.13}
.page::before{z-index:5}
.scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 12%,#79515a26,transparent 53%)}
.scene .light{position:absolute;width:130%;height:85%;left:-15%;top:12%;background:radial-gradient(ellipse,#a75b6326,transparent 65%)}
.story{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;scroll-behavior:smooth;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;scrollbar-width:none;z-index:2}
.story::-webkit-scrollbar{display:none}
.panel{height:100%;min-height:100%;display:flex;flex-direction:column;position:relative;isolation:isolate;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;padding:max(24px,env(safe-area-inset-top) + 14px) 30px max(24px,env(safe-area-inset-bottom) + 14px)}
.panel::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 45%,#9c536329,transparent 67%);transition:opacity 1.2s var(--ease)}
.panel.is-current::before{opacity:1}
.topline,.bottomline{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;color:var(--muted);min-height:22px;font-size:9px;letter-spacing:.19em;position:relative;z-index:2}
.topline{font-size:9px;letter-spacing:.22em}
.bottomline{font-size:9px;letter-spacing:.12em}
.center-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;flex:1;min-height:0;text-align:center;padding:18px 0}
.kicker{font-size:9px;letter-spacing:.23em;text-transform:uppercase;color:var(--accent);font-weight:500;margin:0 0 16px;line-height:1.5}
.title,.section-title{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;margin:0;line-height:.86}
.title em,.section-title em{color:var(--accent);font-style:italic}
.section-title{font-size:clamp(45px,12vw,64px);line-height:.91;margin-bottom:20px}
.subtitle,.section-description{font-size:12px;line-height:1.8;color:var(--muted);max-width:280px;margin:20px auto 0}
.restart{border:0;background:transparent;color:var(--muted);font-size:10px;letter-spacing:.06em;min-height:44px;padding:8px}
.chapter-dots{position:absolute;top:50%;right:0;right:max(0px,env(safe-area-inset-right));z-index:7;transform:translateY(-50%);display:flex;flex-direction:column}
.chapter-dots button{width:44px;height:44px;border:0;background:transparent;padding:0;display:grid;place-items:center;position:relative}
.chapter-dots button::after{content:'';width:6px;height:6px;justify-self:end;margin-right:12px;border:1px solid #dabfc699;border-radius:50%;transition:transform .22s var(--ease),background-color .22s var(--ease),border-color .22s var(--ease)}
.chapter-dots button[aria-current=true]::after{background:var(--accent);border-color:var(--accent);transform:scale(1.4)}
.noscript-note{position:fixed;inset:auto 20px 30px;z-index:20;padding:20px;background:#20151f;color:#f8ede6}
@media(min-width:600px) and (min-height:600px){
 body{display:grid;place-items:center}
 .page{--chapter-height:min(920px,94vh);width:440px;height:var(--chapter-height);border-radius:28px;box-shadow:0 30px 100px #0008,0 0 0 1px #c39ba52e}
 .panel{padding:26px 30px}
}
@media(max-width:360px){.panel{padding-left:24px;padding-right:24px}.topline{font-size:8px;letter-spacing:.18em}.bottomline{font-size:8px;letter-spacing:.08em}.kicker{font-size:8px;letter-spacing:.19em}}
@media(max-height:620px){.panel{padding-top:max(12px,env(safe-area-inset-top) + 4px);padding-bottom:max(10px,env(safe-area-inset-bottom) + 4px)}.center-stage{padding:10px 0}.topline,.bottomline{min-height:16px}.kicker{margin-bottom:8px}.section-title{font-size:40px;margin-bottom:12px}.subtitle,.section-description{font-size:11px;line-height:1.6}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
