/* One room, one moving light, one continuous opening. */
.studio .opening-story{position:relative;isolation:isolate;background:oklch(17% .009 70)}
.studio .opening-visual{position:sticky;top:0;height:100svh;min-height:550px;margin-bottom:-100svh;overflow:hidden;z-index:0;pointer-events:none}
.studio .opening-visual .hero-wall{position:absolute;inset:0;clip-path:none!important;border-radius:0;transform:none!important;will-change:auto;opacity:1}
.studio .opening-visual .hero-wall img{height:100%;width:100%;object-fit:cover;object-position:65% 50%;filter:brightness(1.15);transform:scale(1.025)}
.studio .opening-visual .hero-wall:after{display:none}
#sun-room{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;transition:opacity .7s;pointer-events:none}
.sun-ready #sun-room{opacity:1}.studio .opening-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,oklch(8% .008 70/.32),transparent 20%,oklch(8% .008 70/.08) 70%,oklch(17% .009 70/.3));pointer-events:none}
.studio .hero{height:180svh;min-height:0;background:transparent;isolation:auto;z-index:2}
.studio .hero-stage{height:100svh;min-height:550px;overflow:visible;background:transparent;isolation:auto}
.studio .hero-type{inset:0;display:flex;justify-content:center;align-items:center;max-width:none;pointer-events:none;transform:translate3d(0,calc(var(--sun-title-y,0)*1px),0)!important;opacity:var(--sun-title-opacity,1)!important}
.studio .hero-type h1{font-size:clamp(72px,9.8vw,174px);line-height:.96;letter-spacing:-.07em;text-align:center;margin:0;padding:0 20px;transform:scale(var(--sun-title-scale,1));text-shadow:0 2px 42px oklch(7% .005 70/.5);font-weight:400}
.studio .hero-type h1 span,.studio .hero-type h1 span:nth-child(2),.studio .hero-type h1 span:nth-child(3){color:oklch(97% .01 82);margin:0 auto;width:auto;max-width:100%}
.studio .hero-type h1 span:nth-child(2){color:oklch(91% .055 72)}
.studio .manifesto{position:relative;z-index:3;margin:0;min-height:110svh;padding:110px var(--pad) 140px;background:transparent;color:var(--paper);border-radius:0;display:flex;align-items:center;overflow:visible}
.studio .manifesto-copy{display:block;width:100%;max-width:1100px;text-align:center;margin:auto;transform:translate3d(0,var(--sun-copy-y,0px),0);opacity:var(--sun-copy-opacity,1)}
.studio .manifesto-copy h2{font-size:clamp(43px,6.3vw,106px);line-height:1.1;margin:0 auto 40px;max-width:17ch;text-wrap:balance}
.studio .manifesto-copy>p:last-child{font-size:clamp(16px,1.45vw,21px);line-height:1.75;margin:0 auto;max-width:58ch;text-wrap:pretty;color:oklch(90% .012 82);text-shadow:0 1px 20px oklch(8% .008 70/.8)}
.studio .manifesto .word{opacity:1!important}.studio .manifesto:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:26vh;background:linear-gradient(transparent,oklch(17% .009 70));z-index:-1;pointer-events:none}
.studio .opening-story+.work{padding-top:25px}
.calm .studio .opening-visual{position:absolute;inset:0 0 auto;height:100svh;margin:0;min-height:550px}
.calm .studio .hero{height:100svh;min-height:550px}.calm .studio .hero-type{opacity:1!important;transform:none!important}.calm .studio .hero-type h1{transform:none}.calm .studio .manifesto{min-height:0;padding:100px var(--pad);background:oklch(17% .009 70)}.calm .studio .manifesto-copy{opacity:1!important;transform:none!important}
@media(max-height:760px) and (min-width:761px){.studio .hero-type h1{font-size:clamp(70px,8.8vw,132px)}.studio .hero-stage,.studio .opening-visual{min-height:480px}}
@media(max-width:760px){.studio .hero{height:175svh;min-height:0}.studio .hero-stage{height:100svh;min-height:520px}.studio .opening-visual{min-height:520px}.studio .hero-type{inset:0;left:0;right:0;top:0}.studio .hero-type h1{font-size:clamp(47px,11.6vw,88px);line-height:1.05;letter-spacing:-.065em;padding:0 18px}.studio .hero-type h1 span:nth-child(2){margin:0}.studio .opening-visual .hero-wall img{object-position:63% 50%}.studio .manifesto{min-height:105svh;padding:90px 26px 120px;display:flex}.studio .manifesto-copy h2{font-size:clamp(36px,9.8vw,60px);margin-bottom:28px;max-width:17ch}.studio .manifesto-copy>p:last-child{font-size:16px;line-height:1.75;max-width:38ch}.studio .opening-story+.work{padding-top:30px}.calm .studio .hero{height:100svh;min-height:520px}.calm .studio .manifesto{padding:75px 26px;min-height:0}}
@media(prefers-reduced-motion:reduce){.studio .hero-type,.studio .manifesto-copy{transform:none!important;opacity:1!important}#sun-room{transition:none}}
@media print{.studio .opening-visual{position:absolute;margin:0;height:700px}.studio .hero,.studio .hero-stage{height:700px;min-height:0}.studio .hero-type{opacity:1!important;transform:none!important}.studio .manifesto{min-height:0;background:var(--ink)}.studio .manifesto-copy{opacity:1!important;transform:none!important}}
/* The second message enters while the room is still sunlit. */
.studio .hero{height:165svh}.studio .manifesto{min-height:75svh;align-items:flex-start;padding-top:10svh;padding-bottom:10svh}.studio .manifesto-copy{margin:0 auto}
@media(max-width:760px){.studio .hero{height:160svh}.studio .manifesto{min-height:95svh;padding-top:10svh;padding-bottom:14svh}.studio .manifesto-copy{margin:0 auto}}
.calm .studio .hero{height:100svh}.calm .studio .manifesto{min-height:0;padding-top:90px;padding-bottom:90px}
.in-sun-opening .studio .site-header,.in-sun-opening .studio .site-header.on-light{color:var(--paper);background:linear-gradient(180deg,oklch(10% .008 70/.65),transparent)}.in-sun-opening .studio .site-header .logo img{filter:brightness(0) invert(.95)}.in-sun-opening .studio .site-header #motion{color:oklch(80% .016 82)}
/* Shared grid constrains the sticky room to these two sections only. */
.studio .opening-story{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:165svh minmax(75svh,auto);overflow:clip}
.studio .opening-visual{grid-column:1;grid-row:1/3;align-self:start;margin:0}
.studio .hero{grid-column:1;grid-row:1}.studio .manifesto{grid-column:1;grid-row:2}
@media(max-width:760px){.studio .opening-story{grid-template-rows:160svh minmax(95svh,auto)}}
.calm .studio .opening-story{grid-template-rows:100svh auto}.calm .studio .opening-visual{position:absolute;inset:0 0 auto;grid-row:auto}.calm .studio .manifesto{grid-row:2}
