/* Scroll experience: preserve the original responsive frame proportions. */
/* Optical glass trial: translucent interiors, fine specular edges, no ratio changes. */
body{isolation:isolate}
.ambient-wallpaper{position:fixed;inset:-12%;z-index:-1;pointer-events:none;overflow:hidden;contain:strict;transform:translate3d(0,var(--ambient-scroll,0px),0)}
.ambient-wallpaper::before,.ambient-wallpaper::after{content:"";position:absolute;inset:0;will-change:transform;animation:ambient-drift 17s ease-in-out infinite alternate;background:radial-gradient(ellipse at 24% 34%,rgba(65,211,142,.19),transparent 44%),radial-gradient(ellipse at 76% 70%,rgba(82,116,195,.13),transparent 45%)}
.ambient-wallpaper::after{animation-duration:23s;animation-direction:alternate-reverse;background:radial-gradient(ellipse at 80% 18%,rgba(105,225,180,.13),transparent 42%)}
html[data-theme="light"] .ambient-wallpaper::before{background:radial-gradient(ellipse at 24% 34%,rgba(119,237,181,.32),transparent 44%),radial-gradient(ellipse at 76% 70%,rgba(157,194,221,.2),transparent 45%)}
html[data-theme="light"] .ambient-wallpaper::after{background:radial-gradient(ellipse at 80% 18%,rgba(169,237,207,.32),transparent 42%)}
@keyframes ambient-drift{from{transform:translate3d(-6%,-4%,0) scale(1.02)}to{transform:translate3d(7%,5%,0) scale(1.09)}}
html .glass:is(.site-header,.about-grid,.contact-heading,.contact-card,.archive-master,.production-item,.screening),html .film-card{background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(17,40,29,.12) 55%,rgba(255,255,255,.02));border-color:rgba(218,255,238,.13);box-shadow:inset .35px .35px 0 rgba(255,255,255,.2),inset -.35px -.35px 0 rgba(255,255,255,.04),0 12px 38px rgba(0,0,0,.13);backdrop-filter:blur(14px) saturate(150%) contrast(1.025);-webkit-backdrop-filter:blur(14px) saturate(150%) contrast(1.025);background-clip:padding-box}
html[data-theme="light"] .glass:is(.site-header,.about-grid,.contact-heading,.contact-card,.archive-master,.production-item,.screening),html[data-theme="light"] .film-card{background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(255,255,255,.09) 55%,rgba(231,255,243,.15));border-color:rgba(255,255,255,.42);box-shadow:inset .35px .35px 0 rgba(255,255,255,.66),inset -.35px -.35px 0 rgba(255,255,255,.13),0 12px 38px rgba(24,69,45,.06)}
.home-chapter{position:relative}
.ambient-wallpaper.is-paused::before,.ambient-wallpaper.is-paused::after{animation-play-state:paused}
.journey-end button .roll-label{display:block;position:relative;overflow:hidden;line-height:1.55}
.roll-label>span{display:block;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.roll-label>span:last-child{position:absolute;inset:0;transform:translateY(-110%)}
.journey-end button:is(:hover,:focus-visible) .roll-label>span:first-child{transform:translateY(110%)}
.journey-end button:is(:hover,:focus-visible) .roll-label>span:last-child{transform:translateY(0)}
.desktop-cursor{display:none;position:fixed;left:0;top:0;width:52px;height:52px;z-index:2147483647;pointer-events:none;opacity:0;transition:opacity .18s ease;will-change:transform}
.desktop-cursor__surface{position:absolute;inset:0;border-radius:50%;background:rgba(230,234,231,.085);border:1px solid rgba(130,140,134,.24);box-shadow:0 3px 18px rgba(15,35,24,.025);transition:background .2s ease,scale .16s cubic-bezier(.22,1,.36,1)}
.desktop-cursor__surface::before{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(110,135,122,.13);opacity:0;transition:opacity .24s ease}
.desktop-cursor.is-pressed .desktop-cursor__surface{scale:.86}
.desktop-cursor.is-pressed .desktop-cursor__surface::before{opacity:1}
.desktop-cursor__surface::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;background:#111;transform:translate(-50%,-50%);box-shadow:0 0 0 1px rgba(255,255,255,.4)}
html:not([data-theme="light"]) .desktop-cursor__surface{background:rgba(230,255,241,.035);border-color:rgba(230,255,241,.26)}
html:not([data-theme="light"]) .desktop-cursor__surface::after{background:#effff5;box-shadow:none}
@media(hover:hover) and (pointer:fine){.desktop-cursor{display:block}.custom-cursor-on,.custom-cursor-on *{cursor:none!important}.custom-cursor-on .desktop-cursor{opacity:1}}
@media(max-width:860px){html .glass:is(.site-header,.about-grid,.contact-heading,.contact-card,.archive-master,.production-item,.screening),html .film-card{backdrop-filter:blur(10px) saturate(140%) contrast(1.02);-webkit-backdrop-filter:blur(10px) saturate(140%) contrast(1.02)}.ambient-wallpaper::after{display:none}}
@media(prefers-reduced-motion:reduce){.ambient-wallpaper::before,.ambient-wallpaper::after{animation:none;will-change:auto}.roll-label>span{transition:none}.desktop-cursor{display:none!important}.custom-cursor-on,.custom-cursor-on *{cursor:auto!important}}
#site-nav{position:relative;isolation:isolate}
#site-nav::before{content:"";position:absolute;left:0;top:0;width:var(--nav-w,0px);height:var(--nav-h,0px);translate:var(--nav-x,0px) var(--nav-y,0px);border-radius:999px;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(162,255,208,.035));box-shadow:inset 0 0 0 .5px rgba(255,255,255,.2),inset 0 .5px 1px rgba(255,255,255,.1),0 3px 12px rgba(0,0,0,.035);opacity:var(--nav-alpha,0);pointer-events:none;z-index:-1;transition:translate .42s cubic-bezier(.22,1,.36,1),width .42s cubic-bezier(.22,1,.36,1),height .3s ease,opacity .18s ease}
#site-nav.nav-morphing::before{animation:nav-liquid-morph .42s cubic-bezier(.22,1,.36,1)}
@keyframes nav-liquid-morph{0%,100%{transform:scale(1,1)}38%{transform:scale(var(--nav-stretch,1.04),.98)}}
#site-nav a{position:relative;transition:color .18s ease,text-shadow .2s ease}
#site-nav a.nav-highlight{color:var(--mint);text-shadow:0 0 16px rgba(162,255,208,.22)}
html[data-theme="light"] #site-nav::before{background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(120,218,172,.09));box-shadow:inset 0 0 0 .5px rgba(255,255,255,.45),inset 0 .5px 1px rgba(255,255,255,.3),0 3px 12px rgba(21,92,53,.035)}
html[data-theme="light"] #site-nav a.nav-highlight{color:#155c35;text-shadow:none}
.menu-button::before{display:none}
.menu-button span{display:block;position:absolute;left:5px;top:16px;width:24px;height:2px;border-radius:2px;background:currentColor;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .18s ease}
.menu-button span:nth-child(1){transform:translateY(-7px)}
.menu-button span:nth-child(3){transform:translateY(7px)}
.menu-button[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-button[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}
@media(max-width:860px){#site-nav a{width:100%;padding:8px 12px;touch-action:manipulation}#site-nav a:active,#site-nav a.touch-pressed{scale:1;transform:none}#site-nav{gap:4px}}
@media(prefers-reduced-motion:reduce){#site-nav::before,.menu-button span{transition:none;animation:none}}
html{scroll-behavior:smooth;scroll-padding-top:100px;overflow-x:clip}
body{--site-gutter:clamp(12px,2vw,36px);overflow-x:clip}
.page,.site-footer,.contact-stage{width:calc(100% - var(--site-gutter)*2);max-width:none}
.site-header{width:calc(100% - var(--site-gutter)*2);max-width:none}
.page{animation:none}
.scroll-home .home{padding-top:100px;padding-bottom:20px;min-height:0}
.scroll-home .hero-visual{height:var(--preserved-hero-height,min(720px,72vh));min-height:0;max-height:none}
.scroll-home .hero-name .display{font-size:clamp(5rem,10vw,12rem)}
.scroll-home .screening{width:100%;max-width:none;margin:clamp(20px,3vw,44px) 0 0}
.screening iframe{aspect-ratio:16/9}
.home-chapter{padding-top:35px;scroll-margin-top:100px}
.home-chapter>.page{padding-top:45px;padding-bottom:55px}
.home-chapter>.page>.eyebrow{display:none}
.home-chapter .page-title{font-size:clamp(4rem,10vw,11rem)}
.home-chapter .about-grid{margin-top:44px}
.bio-content{position:static;height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,1.25vw,24px)}
.bio p{margin:0}
.bio p.bio-line-source{position:relative;color:transparent!important}
.bio-line-source>em{color:transparent}
.bio-line-layer{position:absolute;inset:0;pointer-events:none;color:var(--bio-line-ink);text-align:inherit;font:inherit;letter-spacing:inherit;white-space:inherit}
.bio-line-window{position:absolute;left:0;right:0;overflow:hidden}
.bio-line-motion{position:absolute;inset:0;opacity:0;transform:translateY(6px)}
.bio-scroll-hidden{opacity:0}
.bio-line-copy{position:absolute;left:0;right:0;color:var(--bio-line-ink);text-align:inherit;font:inherit;letter-spacing:inherit;white-space:inherit}
.bio-line-copy em{color:inherit}
.chapter-title-link{color:inherit;text-decoration:none;display:inline-block;transition:color .2s}
.chapter-title-link:hover{color:var(--mint)}
.chapter-title-link:focus-visible{outline:2px solid var(--mint);outline-offset:8px;border-radius:8px}
.film-grid{gap:18px}
.film-card{height:var(--preserved-height,720px)}
.film-details:not([open]){height:var(--preserved-caption,132px);min-height:var(--preserved-caption,132px)}
.film-details[open]{min-height:calc(300px * var(--film-scale,1))}
.film-poster,.film-card:nth-child(4) .film-poster{min-height:0}
.contact-stage{min-height:0}
.contact-heading,.contact-card{height:var(--preserved-height,auto);padding:var(--preserved-padding,clamp(28px,5vw,60px))}
.resume-button{min-height:var(--preserved-button-height,340px)}
.journey-end{padding:65px var(--site-gutter);text-align:center}
.journey-end button{padding:18px 32px;border:1px solid var(--line);border-radius:999px;background:var(--glass);color:var(--mint);backdrop-filter:blur(14px);font:inherit;cursor:pointer}
/* Shared optical material for controls in both themes; geometry stays untouched. */
:root{--control-glass:linear-gradient(140deg,rgba(232,255,243,.09),rgba(23,58,43,.14) 55%,rgba(179,235,219,.045));--control-edge:rgba(222,255,238,.16);--control-shadow:inset .4px .4px 0 rgba(255,255,255,.2),inset -.4px -.4px 0 rgba(255,255,255,.04),0 8px 28px rgba(0,0,0,.12)}
:root[data-theme="light"]{--control-glass:linear-gradient(140deg,rgba(255,255,255,.43),rgba(230,255,243,.15) 55%,rgba(194,230,221,.12));--control-edge:rgba(255,255,255,.44);--control-shadow:inset .4px .4px 0 rgba(255,255,255,.68),inset -.4px -.4px 0 rgba(255,255,255,.13),0 8px 28px rgba(30,73,49,.065)}
html .journey-end button,html .resume-button,html .resume-button:hover,html .theme-toggle,html[data-theme="light"] .journey-end button,html[data-theme="light"] .resume-button,html[data-theme="light"] .resume-button:hover,html[data-theme="light"] .theme-toggle{background:var(--control-glass);border-color:var(--control-edge);box-shadow:var(--control-shadow);backdrop-filter:blur(14px) saturate(145%);-webkit-backdrop-filter:blur(14px) saturate(145%)}
html .theme-toggle__thumb,html[data-theme="light"] .theme-toggle__thumb{background:var(--control-glass);border-color:var(--control-edge);box-shadow:inset .4px .4px 0 rgba(255,255,255,.35),0 2px 8px rgba(0,0,0,.055)}
html .grain{opacity:.024}html[data-theme="light"] .grain{opacity:.014}
@media(max-width:860px){html .journey-end button,html .resume-button,html .theme-toggle{backdrop-filter:blur(10px) saturate(135%);-webkit-backdrop-filter:blur(10px) saturate(135%)}}
.scroll-progress{position:fixed;left:0;top:0;width:100%;height:2px;z-index:10005;pointer-events:none;transform-origin:left;transform:scaleX(0);background:var(--mint)}
.reveal-wait{opacity:0;transform:translateY(var(--entry-y,10px))}
.reveal-wait.reveal-title{transform:translateX(-20px)}
.reveal-in{animation:scene-in .52s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--reveal-delay,0ms)}
.reveal-in.reveal-title{animation-name:title-in}
.frame-wait{opacity:0;transform:translateY(var(--entry-y,10px)) scale(.995)}
.frame-in{animation:glass-in .58s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 50%}
@keyframes scene-in{from{opacity:0;transform:translateY(var(--entry-y,10px))}to{opacity:1;transform:none}}
@keyframes title-in{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}
@keyframes glass-in{from{opacity:0;transform:translateY(var(--entry-y,10px)) scale(.995)}to{opacity:1;transform:none}}
html{background:var(--bg)}
.page-leaving #app,.page-leaving .site-footer{opacity:.45;transition:opacity .14s ease;pointer-events:none}
.page-leaving #app [data-motion-kind="frame"][data-motion-state="visible"]{filter:blur(2px);transition:filter .14s ease}
.page-arriving #app{animation:page-soft-in .3s ease-out both}
@keyframes page-soft-in{from{opacity:.7}to{opacity:1}}
@media(max-width:860px){body{--site-gutter:16px}.home-chapter{padding-top:20px}.home-chapter>.page{padding-top:30px;padding-bottom:35px}.bio{height:auto!important;max-height:none!important;overflow:visible}.bio-content{height:auto;gap:18px;padding:26px 16px}.page-leaving #app [data-motion-kind="frame"][data-motion-state="visible"]{filter:blur(1px)}}
@media(max-width:560px){body{--site-gutter:10px}.scroll-home .home{padding-top:84px}.scroll-home .hero-name .display{font-size:clamp(3.8rem,16vw,5.2rem)}.home-chapter .page-title{font-size:clamp(3.4rem,15vw,5rem)}.home-chapter .about-grid{margin-top:28px}.journey-end{padding:45px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-wait,.frame-wait{opacity:1;transform:none}.reveal-in,.frame-in,.page-arriving #app{animation:none}.page-leaving #app,.page-leaving .site-footer{opacity:1;filter:none;transition:none}.page-leaving #app [data-motion-kind="frame"]{filter:none;transition:none}}
