:root{--accent:#46e5c6;--line:rgba(240,240,240,.13)}
html,body{background:#101214}
.grain{opacity:.026;pointer-events:none}.vignette{display:none}
.nav{background:linear-gradient(#101214b0,transparent);mix-blend-mode:normal}
.studio-story{position:relative;height:340svh;background:transparent;pointer-events:auto}
.studio-stage{position:fixed;inset:0;height:100svh;overflow:hidden;isolation:isolate;background:#101214;z-index:0;pointer-events:none}
.studio-fallback{position:absolute;inset:0;background:radial-gradient(ellipse at 75% 36%,#384348 0%,#1d2529 32%,transparent 55%),linear-gradient(180deg,#111719 0 55%,#202a2d 56% 100%);}
.studio-fallback:before{content:'';position:absolute;right:7%;top:16%;width:180px;height:170px;background:#d8d5c8;opacity:.13;transform:skewY(-4deg);box-shadow:0 0 90px 35px #d8d5c8}.studio-fallback:after{content:'';position:absolute;left:38%;right:16%;bottom:13%;height:2px;background:#090c0d;box-shadow:0 24px 0 #090c0d,0 48px 0 #090c0d;opacity:.35}
#studio-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .65s;touch-action:pan-y;outline-offset:-5px}
.studio-ready #studio-canvas{opacity:1;touch-action:pan-y pinch-zoom}
.studio-stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(11,13,15,.65),transparent 58%);z-index:1;opacity:var(--copy-opacity,1)}
.studio-topline{display:none}
.studio-copy{position:absolute;left:7%;top:34%;z-index:2;opacity:var(--copy-opacity,1);visibility:var(--copy-visibility,visible)}
.studio-eyebrow{font-size:12px;color:#c5c2b8;margin-bottom:24px;letter-spacing:.07em}
.studio-copy h1{font-size:clamp(36px,4.5vw,76px);letter-spacing:-.065em;line-height:1.19;font-weight:600;color:#f0eee7}
.studio-copy h1 em{font-style:normal;color:#46e5c6}
.studio-sub{color:#b0ada5;font-size:14px;margin-top:24px}
#studio-tour{margin-top:33px;display:flex;gap:50px;align-items:center;color:#f3eee6;background:#ffffff0b;border:1px solid #ffffff30;padding:17px 22px;border-radius:2px;font-size:13px;cursor:pointer;transition:background .2s}
#studio-tour:hover{background:#ffffff18}#studio-tour span{font-size:21px;color:#46e5c6}
.studio-bottom{position:absolute;bottom:32px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;align-items:center;gap:16px;color:#b5b4ae;font:10px monospace;letter-spacing:.13em;z-index:2;pointer-events:none;opacity:var(--copy-opacity,1)}
.studio-bottom i{display:inline-block;width:5px;height:5px;background:#46e5c6;border-radius:50%;margin-right:10px}.studio-bottom b{font-size:22px;margin-left:18px;font-weight:normal}
.studio-status{position:absolute;bottom:67px;left:50%;transform:translateX(-50%);font-size:10px;color:#bdbab2;text-align:center;width:max-content;max-width:90%;pointer-events:none;z-index:2;opacity:var(--copy-opacity,1)}
#studio-tip{position:absolute;top:0;left:0;z-index:4;background:#161819d9;color:#e5ddca;padding:8px 11px;font:10px monospace;letter-spacing:.12em;pointer-events:none;opacity:0;border-radius:2px}
.studio-access{position:absolute;top:180px;left:20px;z-index:10;display:flex;flex-direction:column;gap:8px}
.studio-access button{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
.studio-access button:focus-visible{position:relative;width:auto;height:auto;clip-path:none;padding:12px;background:#282b2c;color:white;border:1px solid #46e5c6}
button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #46e5c6;outline-offset:5px}
.studio-portal{position:absolute;inset:0;background:#101214;display:flex;flex-direction:column;justify-content:center;padding:10vw;opacity:0;pointer-events:none;z-index:3}
.studio-portal span{font:11px monospace;letter-spacing:.2em;color:#46e5c6}.studio-portal h2{font-size:clamp(48px,7vw,100px);line-height:1.1;letter-spacing:-.055em;margin:30px 0}.studio-portal p{font-size:16px;color:#aaa9a3}
#about{position:relative;z-index:1;background:transparent;padding:10vh var(--gutter);min-height:auto}
#about .room,#about .services{display:none!important}
.gsap-ready #about .stage,#about .stage{height:auto;min-height:0;display:block;padding:0;max-width:var(--maxw);margin:auto}
.gsap-ready #about .beats{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:80px 8vw}
.gsap-ready #about .beat,#about .beat{position:relative;top:auto;left:auto;opacity:1;transform:none;will-change:auto;margin:0}
#about .beat:first-child{grid-column:1/-1;margin-bottom:20px}
#about .beats .beat{position:relative!important;inset:auto!important;opacity:1!important;transform:none!important;display:block!important;visibility:visible!important}
#about .beats{position:relative!important;display:grid!important;grid-auto-rows:auto!important;}
#about .stage:before{display:none}
#about .hero-type{font-size:clamp(36px,5vw,70px)}#about .big{font-size:clamp(25px,2.7vw,42px)}
#cam-work{position:relative;z-index:1;min-height:100svh;padding:7vh var(--gutter);background:transparent}
#cam-work .stage{height:auto;min-height:0;padding:0;display:block}#cam-work .stage:before{display:none}
#cam-work .shotlist{display:flex;gap:20px;flex-wrap:wrap}.gsap-ready #cam-work .shot{position:relative;opacity:1;left:auto;top:auto;flex:1;min-width:180px}
#cam-work .monitor-full{display:block;position:relative;inset:auto;min-height:72svh;opacity:1;background:transparent;pointer-events:none}
#cam-work .monitor-full canvas{display:none}
#cam-work .monitor-full__copy{position:absolute;left:0;bottom:10%;max-width:42%;opacity:.94}
.scene,.event,.contact,footer{border-top:0!important;border-bottom:0!important;background-color:#101214}
.proj-panel__meta,.proj-panel,.privacy-detail,.policy-modal__head,.policy__date,.cam-ctrl,.event__detail{border-top:0!important;border-bottom:0!important}
.policy-modal__panel{border:0}
.proj-overlay:not(.is-open),.modal:not(.is-open),.policy-modal:not(.is-open){visibility:hidden}
.privacy-agree{border-top:0}.proj-panel{border-left:0}
@media(hover:none){.studio-ready #studio-canvas{touch-action:pan-y}}
@media(max-width:700px){.nav{width:100%;max-width:100vw;padding:0 20px}.nav__toggle{font-size:11px;flex-shrink:0}.studio-topline{top:100px;font-size:8px}.studio-topline span:last-child{display:none}.studio-copy{top:19%;left:7%;pointer-events:none}.studio-copy h1{font-size:38px;line-height:1.16}.studio-eyebrow{font-size:10px;margin-bottom:14px}.studio-sub{font-size:12px;margin-top:14px}.studio-bottom{bottom:22px;font-size:8px}.studio-bottom span:nth-child(2),.studio-bottom span:last-child{display:none}.studio-status{font-size:9px;bottom:60px}.studio-bottom b{margin-left:3px}#studio-tour{pointer-events:auto;margin-top:20px;padding:12px 16px;gap:25px;font-size:12px}.gsap-ready #about .beats{grid-template-columns:1fr;gap:45px}#about{padding-top:50px}.studio-portal{padding:8vw}.studio-portal h2{font-size:48px}.studio-portal p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.studio-story{height:100svh}#studio-canvas{transition:none}.studio-stage *{animation:none!important;scroll-behavior:auto!important}#about .beat{margin-bottom:40px}}

/* Native vertical gestures always belong to the page. */
.studio-stage,#studio-canvas,.studio-ready #studio-canvas{touch-action:pan-y pinch-zoom}
.studio-access{top:auto;bottom:100px;left:7%;right:7%;flex-direction:row;flex-wrap:wrap;opacity:var(--copy-opacity,1);visibility:var(--copy-visibility,visible)}
.studio-access button,.studio-access button:focus-visible{position:relative;width:auto;height:auto;min-height:44px;clip-path:none;overflow:visible;padding:10px 12px;background:#171e22e8;color:#eae9e2;border:1px solid #ffffff30;border-radius:3px;font-size:11px;touch-action:manipulation}
.studio-access button[aria-pressed=true]{border-color:#46e5c6}
@media(max-width:700px){.studio-copy h1{font-size:clamp(30px,9.3vw,38px)}.studio-access{bottom:96px;gap:6px}.studio-access button{font-size:10px;padding:9px}.studio-status{bottom:56px}}
@media(max-height:500px) and (orientation:landscape){.studio-copy{top:22%;left:5%}.studio-copy h1{font-size:28px}.studio-eyebrow,.studio-sub,.studio-bottom{display:none}#studio-tour{margin-top:12px}.studio-access{left:auto;right:3%;width:220px;bottom:65px}.studio-status{bottom:20px}}

.social-links{display:flex;align-items:center;gap:8px}.social-links a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;color:#c7d2cf;touch-action:manipulation;border-radius:3px;transition:color .2s,background .2s}.social-links a:hover{color:#46e5c6;background:#46e5c60b}.social-links svg{width:21px;height:21px;flex-shrink:0}.social-links--header{margin-left:auto;margin-right:20px}.social-links--header span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.social-links--footer{margin-top:20px}.social-links--footer a{padding:0 12px;font-size:12px;border:1px solid #ffffff20}@media(max-width:700px){.social-links--header{margin-right:12px;gap:2px}.nav__logo .logo{width:100px}}

@supports(overflow:clip){html,body{overflow-x:clip}}
.connections{position:relative;background:#101214;padding:clamp(64px,10vh,120px) var(--gutter);color:#eee}
.connections__intro,.connections__grid{max-width:var(--maxw);margin-inline:auto}.connections__intro h2{margin:24px 0}.connections__intro p{max-width:800px;font-size:clamp(14px,1.5vw,18px);line-height:1.8}
.connections__grid{list-style:none;padding:0;margin-top:48px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.connections__grid li{min-width:0;min-height:132px;display:flex;align-items:center;justify-content:center;padding:20px 12px;background:#ffffff03;border:1px solid #46e5c621;border-radius:8px;transition:background .3s,border-color .3s}
.connections__grid img{display:block;width:auto;height:auto;max-width:100%;max-height:72px;object-fit:contain;transition:filter .3s;filter:brightness(1)}
@media(hover:hover){.connections__grid li:hover{background:#46e5c609;border-color:#46e5c66b}.connections__grid li:hover img{filter:brightness(1.08)}}
@media(max-width:1000px){.connections__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.connections__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.connections__grid li{min-height:112px;padding:16px 10px}.connections__grid img{max-height:64px}.connections__intro h2{font-size:26px}}
.social-links--sns{position:relative;z-index:3;padding:22px var(--gutter);justify-content:flex-end}.social-links--sns a{padding:0 12px;font-size:12px}
@media(prefers-reduced-motion:reduce){.connections__grid li,.connections__grid img,.social-links a{transition:none}}

/* Preserve the original persistent studio background without swallowing input. */
.studio-stage{pointer-events:none}
#studio-canvas{pointer-events:auto}
.studio-copy{pointer-events:none}
#studio-tour,.studio-access button{pointer-events:auto}

/* Full-bleed closing surface; content retains the existing horizontal rhythm. */
.footer{position:relative;z-index:1;width:100%;max-width:none;margin:0;background:#101214;padding-inline:max(var(--gutter),calc((100% - var(--maxw))/2 + var(--gutter)))}
/* A local camera illustration is visible from the first paint, before WebGL. */
.studio-fallback{background:radial-gradient(ellipse at 75% 40%,#20282d 0%,#101416 60%,#0b0e10 100%)}
.studio-fallback:before,.studio-fallback:after{display:none}
.studio-ready .studio-fallback{visibility:hidden}
#studio-canvas{transition:opacity .18s ease-out}

/* Film leader takes over after the camera, behind ABOUT and selected work. */
.cinematic-story{position:relative;z-index:1;isolation:isolate;background:#07070a}
.cinematic-backdrop{position:sticky;top:0;height:100svh;margin-bottom:-100svh;pointer-events:none;overflow:hidden}
#cinematic-root,.shader-frame{width:100%;height:100%}
.cinematic-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.30) 58%,rgba(0,0,0,.1));pointer-events:none}
.cinematic-story #about,.cinematic-story #cam-work{background:transparent}
.cinematic-story #cam-work{min-height:0;padding-bottom:12vh}
.cinematic-story .beat,.cinematic-story .shot{text-shadow:0 2px 24px #000}
.work-outro{padding-top:clamp(35px,6vh,70px);padding-bottom:clamp(45px,8vh,90px)}
@media(max-width:700px){.cinematic-backdrop:after{background:rgba(0,0,0,.52)}}

/* Brand and navigation have distinct space at every desktop width. */
.nav{column-gap:clamp(32px,4vw,64px)}
.nav__logo{flex:0 0 auto}
.nav__links{flex:0 0 auto}
#studio-tour{width:fit-content;text-decoration:none}
#about{scroll-margin-top:100px}
@media(max-width:860px){.nav{column-gap:16px}.nav__toggle{flex-shrink:0}}
@media(max-width:700px){#about{scroll-margin-top:76px}}

/* Business information remains visible above the persistent WebGL stage. */
html,body{background:#000}
.footer{position:relative;z-index:3;isolation:isolate;display:flex!important;visibility:visible!important;opacity:1!important;transform:none!important;width:100%;max-width:none;margin:0;background:#000!important;color:#c5c5c8}
.footer p{color:#a5a5ad;line-height:1.8;opacity:1;visibility:visible}
.footer .logo{flex-shrink:0}
#contact{background:#000}
@media(max-width:900px){.footer{align-items:flex-start;gap:24px}.footer>p:not(.footer__links){flex-basis:100%;overflow-wrap:anywhere}}

/* Headline, copy, controls and CTA share one flow, so zoom cannot overlap them. */
.studio-copy{top:clamp(110px,18vh,170px);left:7%;width:min(650px,48%)}
.studio-copy h1{font-size:clamp(32px,3.7vw,60px);line-height:1.12}
.studio-eyebrow{margin-bottom:18px}
.studio-sub{margin-top:18px}
.studio-copy .studio-access{position:relative;inset:auto;width:100%;margin-top:22px;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}
.studio-copy .studio-access button{min-height:40px;padding:9px 12px;font-size:11px}
#studio-tour{margin-top:18px;padding:13px 20px}
@media(max-height:700px) and (min-width:701px){.studio-copy{top:100px}.studio-copy h1{font-size:clamp(28px,6vh,43px)}.studio-eyebrow{margin-bottom:12px}.studio-sub{margin-top:12px}.studio-copy .studio-access{margin-top:14px;gap:6px}.studio-copy .studio-access button{font-size:10px;min-height:36px;padding:8px 10px}#studio-tour{margin-top:12px;padding:10px 16px}}
@media(max-width:700px){.studio-copy{top:100px;left:7%;width:86%}.studio-copy h1{font-size:clamp(28px,5.2vh,38px)}.studio-copy .studio-access{margin-top:16px;gap:6px}.studio-copy .studio-access button{font-size:10px;min-height:36px;padding:8px 10px}.studio-sub{font-size:12px}#studio-tour{margin-top:14px}.studio-status{bottom:46px}}
@media(max-height:500px){.studio-copy{top:80px;width:55%}.studio-copy h1{font-size:24px}.studio-copy h1 br{display:none}.studio-sub,.studio-eyebrow{display:none}.studio-copy .studio-access{margin-top:12px}#studio-tour{margin-top:10px}.studio-status{bottom:12px}}

.studio-sliders{display:grid;grid-template-columns:1fr 1fr;gap:16px;flex-basis:100%;margin-top:4px;padding:12px 14px;background:#10171cdd;border:1px solid #ffffff20;border-radius:4px;pointer-events:auto}
.studio-sliders label{display:grid;grid-template-columns:1fr auto;gap:8px;color:#c8d0ce;font-size:11px}
.studio-sliders output{color:#46e5c6;font-family:monospace}
.studio-sliders input{grid-column:1/-1;width:100%;height:20px;accent-color:#46e5c6;cursor:pointer;touch-action:pan-y}
@media(max-height:700px){.studio-copy{top:90px}.studio-copy h1{font-size:clamp(26px,5.2vh,38px)}.studio-sliders{padding:8px 10px;gap:12px}.studio-copy .studio-access{margin-top:10px}.studio-sliders input{height:16px}#studio-tour{padding:9px 16px;margin-top:10px}}
@media(max-width:700px){.studio-copy{top:85px}.studio-copy h1{font-size:clamp(26px,4.8vh,34px)}.studio-copy .studio-access button{padding:7px 9px;min-height:34px}.studio-bottom{bottom:16px}}

/* Central contact column leaves the side areas available for supplied artwork. */
#contact .contact__single{max-width:680px;margin-inline:auto;text-align:center;padding-inline:var(--gutter)}
#contact .cta-row{justify-content:center}
#contact .contact__mail{text-align:center}

/* Camera-side vertical dock, independent from the headline column. */
.studio-access{position:absolute;left:auto;right:clamp(18px,2.4vw,46px);top:50%;bottom:auto;transform:translateY(-50%);width:clamp(170px,13vw,210px);padding:14px;display:flex;flex-direction:column;flex-wrap:nowrap;gap:7px;background:#0b1117e8;border:1px solid #ffffff20;border-radius:10px;box-shadow:0 16px 42px #0005;backdrop-filter:blur(12px);pointer-events:auto}
.studio-access-title{color:#9bb5b1;font:9px monospace;letter-spacing:.14em;padding:3px 2px 8px}
.studio-access button,.studio-access button:focus-visible{width:100%;min-height:35px;padding:8px 10px;font-size:10px;text-align:left;border-radius:4px;background:#ffffff06}
.studio-access .studio-sliders{grid-template-columns:1fr;flex-basis:auto;margin-top:4px;padding:10px;gap:13px}
@media(min-width:701px) and (max-height:650px){.studio-access{top:100px;transform:none;padding:10px;gap:5px}.studio-access-title{padding-bottom:3px}.studio-access button{min-height:29px;padding:6px 8px}.studio-access .studio-sliders{padding:7px;gap:8px}}
@media(max-width:700px){.studio-access{top:auto;bottom:80px;right:16px;transform:none;width:160px;padding:9px;gap:5px;max-height:43svh;overflow-y:auto;overscroll-behavior:contain}.studio-access button{min-height:31px;padding:6px 8px;font-size:9px}.studio-access-title{padding-bottom:3px}.studio-access .studio-sliders{padding:7px;gap:8px}.studio-copy{width:86%}.studio-status{left:7%;transform:none;width:calc(100% - 32px);max-width:none;text-align:left;bottom:48px;font-size:9px}}
@media(max-height:500px){.studio-access{top:75px;bottom:42px;max-height:none;transform:none;overflow-y:auto;width:175px}.studio-status{bottom:12px}}

/* Restore the hero headline now that controls have their own camera-side dock. */
.studio-copy{top:clamp(135px,24vh,230px);width:min(720px,48%)}
.studio-copy h1{font-size:clamp(44px,4.5vw,76px);line-height:1.19;letter-spacing:-.065em}
.studio-eyebrow{margin-bottom:24px}
.studio-sub{margin-top:24px}
#studio-tour{margin-top:28px}
@media(max-height:700px) and (min-width:701px){.studio-copy{top:120px}.studio-copy h1{font-size:clamp(40px,8.8vh,62px)}.studio-eyebrow{margin-bottom:18px}.studio-sub{margin-top:18px}#studio-tour{margin-top:20px}}
@media(max-width:700px){.studio-copy{top:100px;width:86%}.studio-copy h1{font-size:clamp(34px,9.3vw,42px)}.studio-eyebrow{margin-bottom:14px}.studio-sub{margin-top:14px}#studio-tour{margin-top:18px}}
@media(max-height:500px){.studio-copy{top:90px;width:55%}.studio-copy h1{font-size:clamp(30px,7.5vh,38px)}.studio-copy h1 br{display:block}#studio-tour{margin-top:14px}}

/* Supplied contact artwork stays behind the centered copy while it scrolls. */
#contact{position:relative;isolation:isolate;background:#000}
#contact .contact__backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:clip}
#contact .contact__backdrop img{position:sticky;top:0;display:block;width:100%;height:100vh;height:100svh;object-fit:cover;object-position:center}
#contact .contact__single{position:relative;z-index:1}
#contact .hero-type,#contact .lead{text-shadow:0 2px 18px rgba(0,0,0,.45)}

/* Supplied SNS production photo, with its authored dark left side for copy. */
#sns-price{position:relative;isolation:isolate;background:#000}
#sns-price .sns-price__backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:clip}
#sns-price .sns-price__backdrop img{position:sticky;top:0;display:block;width:100%;height:100vh;height:100svh;object-fit:cover;object-position:center}
#sns-price > .stage{position:relative;z-index:1}
#sns-price .big,#sns-price .lead,#sns-price .price{text-shadow:0 2px 18px rgba(0,0,0,.5)}
@media(max-width:700px){#sns-price .sns-price__backdrop img{object-position:35% center}}

/* Mobile controls sit below the introduction link and start collapsed. */
.studio-access-body{display:flex;flex-direction:column;gap:7px}
.studio-access-title{list-style:none;cursor:pointer;pointer-events:auto}
.studio-access-title::-webkit-details-marker{display:none}
.studio-access-title span{display:none}
@media(min-width:701px) and (min-height:501px), (min-width:1001px){
 .studio-access-title{pointer-events:none;font-size:0}
 .studio-access-title::before{content:'CAMERA CONTROL';font-size:9px}
}
@media(max-width:700px), (max-height:500px) and (max-width:1000px){
 .studio-copy .studio-access{position:relative;inset:auto;transform:none;width:min(100%,320px);margin-top:12px;padding:0;display:block;max-height:none;overflow:visible;pointer-events:auto}
 .studio-copy .studio-access-title{display:flex;align-items:center;justify-content:space-between;margin:0;padding:13px 16px;font:12px sans-serif;letter-spacing:.02em;color:#eae9e2;min-height:44px}
 .studio-copy .studio-access-title span{display:block;color:#46e5c6;font-size:19px}
 .studio-copy .studio-access[open] .studio-access-title span{transform:rotate(45deg)}
 .studio-copy .studio-access:not([open]) .studio-access-body{display:none}
 .studio-copy .studio-access[open] .studio-access-body{display:flex;padding:0 10px 10px;max-height:36svh;overflow-y:auto;overscroll-behavior:contain;gap:6px}
 .studio-copy .studio-access button{min-height:40px;font-size:11px}
 .studio-copy .studio-access .studio-sliders{width:100%;margin:4px 0 0;box-sizing:border-box}
}
