@charset "UTF-8";
:root{--ink:#0a1016;--surface:#101920;--paper:#f1f3f3;--blue:#4d91ed;--text:#f5f7f8;--muted:#a5b0ba;--line:rgba(255,255,255,.18);--pad:clamp(24px,5.6vw,100px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--ink);color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:6px}img,video{display:block;max-width:100%}button{border:0}h1,h2,h3,p{margin:0}h2{font-size:clamp(38px,4.8vw,76px);font-weight:400;line-height:1.07;letter-spacing:-.055em}h3{font-weight:400}p{line-height:1.65}::selection{background:var(--blue);color:white}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;padding:16px;background:var(--blue)}.skip-link:focus{top:15px}.header{position:absolute;top:0;left:0;width:100%;z-index:30;display:flex;align-items:center;gap:42px;padding:27px var(--pad);border-bottom:1px solid var(--line)}.brand{display:block;flex-shrink:0;width:216px}.brand img{width:100%;height:auto}.desktop-nav{display:flex;gap:34px;margin-left:auto}.desktop-nav a,.header-contact{font-size:14px}.desktop-nav a{color:#cbd2d8;transition:color .2s}.desktop-nav a:hover{color:var(--blue)}.header-contact{white-space:nowrap;border-bottom:1px solid #7b8b99;padding:8px 0}.header-contact span{margin-left:30px}.menu-toggle{display:none}.mobile-menu[hidden]{display:none}.mobile-menu{position:fixed;inset:0;z-index:25;background:#0a1016;display:flex;flex-direction:column;justify-content:center;gap:23px;padding:100px var(--pad) 35px}.mobile-menu a{font-size:34px;letter-spacing:-.04em}.mobile-menu>span{font-size:12px;letter-spacing:.12em;color:var(--muted);margin-top:30px}.hero{position:relative;min-height:820px;height:100svh;max-height:1150px;overflow:hidden;background:#09121b}.hero-photo{position:absolute;inset:0 0 0 29%;will-change:transform}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:57% center;filter:saturate(.55) brightness(.74)}.hero-photo picture{height:100%;display:block}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#09121b 0%,rgba(9,18,27,.28) 55%,rgba(9,18,27,.03)),linear-gradient(0deg,#09121b 0%,transparent 30%,rgba(9,18,27,.1) 85%,#09121b 100%)}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(180,209,236,.08) 1px,transparent 1px);background-size:25% 100%;pointer-events:none}.hero-slash{position:absolute;right:13%;top:15%;height:84%;width:1px;background:linear-gradient(transparent,#58a7ff 35%,#58a7ff 65%,transparent);transform:rotate(28deg);opacity:.7}.hero-content{position:relative;padding:195px var(--pad) 135px;z-index:2}.eyebrow{font-size:12px;line-height:1.5;letter-spacing:.13em;font-weight:500}.small-line{display:inline-block;vertical-align:middle;width:26px;height:2px;background:var(--blue);margin-right:12px}.hero h1{font-size:clamp(70px,7.65vw,120px);line-height:.99;letter-spacing:-.068em;font-weight:400;margin-top:33px;max-width:960px}.hero h1>span{color:#b8cde0}.hero-description{margin-top:29px;color:#c8d0d8;font-size:17px;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:44px;min-height:54px;padding:0 25px;font-size:14px}.button-blue{background:var(--blue);color:#081324;transition:background .2s,transform .2s}.button-blue:hover{background:#75acfa;transform:translateY(-2px)}.hero .button{margin-top:30px}.button span{font-size:23px}.hero-bottom{position:absolute;left:var(--pad);right:var(--pad);bottom:28px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;gap:20px;z-index:2}.hero-bottom p,.hero-index,.scroll-cue{font-size:12px;letter-spacing:.12em}.hero-bottom i{font-style:normal;color:var(--blue);margin:0 10px}.scroll-cue{display:flex;gap:14px;align-items:center}.scroll-cue>span{font-size:22px}.hero-index{color:var(--muted)}.image-note{position:absolute;right:var(--pad);bottom:135px;font-size:12px;letter-spacing:.16em;text-align:right}.image-note span{display:block;color:#b7c2cc;letter-spacing:0;font-size:12px;margin-top:8px}.section-pad{padding:92px var(--pad)}.light-section{background:var(--paper);color:var(--ink)}.section-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:54px}.tiny-caption{font-size:12px;letter-spacing:.12em;color:var(--muted)}.light-section .tiny-caption{color:#66727b}.intro-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:12%;align-items:end;margin-bottom:60px}.intro-copy{font-size:17px;max-width:400px;color:#5b6873;padding-bottom:3px}.muted{color:#87939c}.services{border-top:1px solid #bcc3c9}.service{border-bottom:1px solid #bcc3c9}.service summary{display:flex;align-items:center;gap:25px;padding:29px 0;cursor:pointer;list-style:none}.service summary::-webkit-details-marker{display:none}.service-number{font-size:12px;color:#6b7780;min-width:45px}.service h3{font-size:clamp(22px,2.5vw,37px);letter-spacing:-.045em}.service-tags{font-size:12px;letter-spacing:.09em;color:#63707c;margin-left:auto}.plus{position:relative;width:19px;height:19px;flex-shrink:0;margin-left:35px}.plus:before,.plus:after{content:"";position:absolute;background:#253444;top:9px;width:19px;height:1px;transition:transform .3s}.plus:after{transform:rotate(90deg)}.service[open] .plus:after{transform:rotate(0)}.service-content{padding:0 0 30px 70px;display:grid;grid-template-columns:1fr 1fr;gap:10%}.service-content p{max-width:490px;font-size:16px;color:#5b6873}.service-content>span{font-size:12px;color:#5b6873;align-self:end;line-height:1.8}.projects{overflow:hidden;padding-bottom:65px}.projects .section-top{margin-bottom:30px}.projects-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:45px}.gallery-controls{display:flex;gap:10px}.round-button{width:47px;height:47px;display:grid;place-items:center;background:transparent;border:1px solid #51606d;border-radius:50%;font-size:22px;transition:background .2s}.round-button:not(:disabled):hover{background:#263744}.project-track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-right:calc(-1 * var(--pad));padding-right:var(--pad);padding-bottom:12px}.project-track::-webkit-scrollbar{display:none}.project-card{flex:0 0 48%;min-width:0;text-align:left;background:none;padding:0;scroll-snap-align:start}.project-image{position:relative;height:clamp(330px,34vw,530px);overflow:hidden;background:#182630}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s,filter .7s;filter:saturate(.8)}.project-card:hover .project-image img{transform:scale(1.035);filter:saturate(1)}.project-card:nth-child(2) img{object-position:center 54%}.project-type{position:absolute;left:20px;top:20px;font-size:12px;letter-spacing:.1em;padding:10px 13px;background:rgba(9,18,27,.72);backdrop-filter:blur(10px);color:white}.project-expand{position:absolute;bottom:20px;right:20px;border:1px solid #ffffff70;border-radius:50%;width:43px;height:43px;display:grid;place-items:center;background:#10192055;backdrop-filter:blur(10px);font-size:25px}.project-caption{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}.project-caption h3{font-size:25px;letter-spacing:-.035em}.project-caption>span{font-size:12px;color:#93a2af;white-space:nowrap}.project-card>p{font-size:13px;margin-top:7px;color:#a0acb7}.gallery-bottom{display:flex;gap:24px;align-items:center;margin-top:37px;font-size:12px;letter-spacing:.08em;color:#9ba8b3}.gallery-progress{height:1px;background:#394551;flex:1;margin-left:10%}.gallery-progress>span{display:block;width:25%;height:2px;background:var(--blue);transition:transform .25s}.swipe-hint{display:none}.systems{display:grid;grid-template-columns:1fr 1fr;gap:10%;background:#101a24;border-top:1px solid #26323b;border-bottom:1px solid #26323b;padding-top:100px;padding-bottom:100px;overflow:hidden}.system-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:550px;perspective:900px}.technical-grid{position:absolute;inset:0;background-image:linear-gradient(#52769718 1px,transparent 1px),linear-gradient(90deg,#52769718 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(ellipse,black,transparent 74%)}.glass-mark{position:relative;width:85%;max-height:460px;object-fit:contain;filter:drop-shadow(0 25px 45px #03101b);will-change:transform}.cross{position:absolute;color:#5b819b;font-size:22px;font-weight:200}.cross-one{left:0;top:45px}.cross-two{right:0;bottom:45px}.visual-label{position:absolute;top:0;left:0;font-size:12px;letter-spacing:.14em;color:#93aec3}.label-bottom{bottom:0;top:auto;left:auto;right:0}.systems-copy .eyebrow{color:#aabccb;margin-bottom:37px}.systems-copy h2{font-size:clamp(40px,4.7vw,70px)}.blue-text{color:#6baaff}.systems-copy>p:not(.eyebrow){color:#aab6c2;font-size:16px;max-width:440px;margin-top:27px}.system-features{display:flex;flex-direction:column;gap:0;margin:27px 0}.system-features>span{font-size:14px;padding:13px 0;border-bottom:1px solid var(--line)}.system-features>span:before{content:"+";color:var(--blue);margin-right:13px}.text-link{display:inline-flex;align-items:center;gap:35px;font-size:14px;padding:10px 0;border-bottom:1px solid #7b8b99}.text-link span{font-size:22px}.production{position:relative;min-height:710px;overflow:hidden;background:#0c161c}.production-media,.production-shade{position:absolute;inset:0}.production-media video{width:100%;height:100%;object-fit:cover}.production-shade{background:linear-gradient(90deg,rgba(3,12,18,.83),rgba(3,12,18,.15)),linear-gradient(0deg,rgba(3,12,18,.7),transparent 40%)}.production-top{position:relative;display:flex;justify-content:space-between;padding:43px var(--pad)}.production-content{position:relative;padding:96px var(--pad) 120px}.production-content>.eyebrow{color:#acbdcb;margin-bottom:25px}.production-content h2{font-size:clamp(48px,6.4vw,96px)}.production-content>p:not(.eyebrow){color:#c6d0d9;font-size:17px;margin-top:25px}.film-button{background:transparent;padding:0;display:flex;align-items:center;gap:17px;font-size:16px;margin-top:30px}.play-icon{border:1px solid #ffffff88;background:#b1c6db12;backdrop-filter:blur(6px);border-radius:50%;width:52px;height:52px;display:grid;place-items:center;font-size:13px;padding-left:2px}.film-duration{color:#afb8c1;font-size:12px;margin-left:12px}.video-toggle{position:absolute;bottom:33px;right:var(--pad);width:44px;height:44px;border:1px solid #ffffff66;border-radius:50%;background:#07101888;font-size:14px}.production-note{position:absolute;bottom:46px;left:var(--pad);color:#9fabb6;font-size:12px;letter-spacing:.12em}.approach{padding-top:96px;padding-bottom:105px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.process-step{border-top:1px solid #aeb8c2;padding-top:23px;position:relative}.process-step:before{position:absolute;content:"";height:3px;width:29px;background:#437ab7;top:-2px}.process-step>span{font-size:12px;letter-spacing:.09em;color:#657581}.process-step h3{font-size:24px;letter-spacing:-.04em;margin:39px 0 14px}.process-step p{font-size:16px;line-height:1.7;color:#5b6873}.contact{position:relative;background:#2367b5;overflow:hidden;padding-bottom:70px}.contact-grid{position:absolute;inset:0;background-image:linear-gradient(90deg,#ffffff12 1px,transparent 1px);background-size:25% 100%;pointer-events:none}.contact:after{content:"";position:absolute;height:150%;width:1px;background:#ffffff33;right:25%;top:-20%;transform:rotate(30deg);pointer-events:none}.contact .section-top,.contact-main,.contact-bottom{position:relative;z-index:1}.contact .tiny-caption{color:#c2d7ed}.contact-main{display:flex;justify-content:space-between;align-items:center;gap:30px}.contact h2{font-size:clamp(48px,6.7vw,105px)}.contact h2 span{color:#accef4}.contact-arrow{display:grid;place-items:center;width:110px;height:110px;flex-shrink:0;border:1px solid #ffffff66;border-radius:50%;font-size:69px;font-weight:200;transition:background .3s,transform .3s}.contact-arrow:hover{background:#ffffff20;transform:rotate(6deg)}.contact-bottom{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-top:60px;border-top:1px solid #ffffff38;padding-top:35px}.contact-bottom p{color:#d1e2f6;font-size:16px}.email-link{font-size:clamp(18px,2vw,30px);letter-spacing:-.02em;padding:0 0 9px;border-bottom:1px solid #ffffff77}.email-link span{margin-left:25px}footer{padding:37px var(--pad);display:flex;gap:30px;align-items:center;justify-content:space-between}footer .brand{width:180px}footer p{color:#8f9daa;font-size:12px}.back-top{font-size:12px;letter-spacing:.1em;color:#c6d1da}.media-dialog{border:1px solid #354754;background:#0a1016;color:white;padding:50px 24px 24px;width:min(1100px,94vw);max-height:94svh;overflow:auto}.media-dialog::backdrop{background:#02070dec;backdrop-filter:blur(10px)}.dialog-close{position:absolute;right:10px;top:8px;width:35px;height:35px;font-size:26px;z-index:2}.dialog-content>img,.dialog-content>video{max-height:71svh;width:100%;object-fit:contain}.dialog-content [hidden]{display:none}.dialog-caption{padding-top:18px}.dialog-caption h2{font-size:23px;letter-spacing:-.025em}.dialog-caption p{font-size:14px;color:var(--muted);margin-top:6px}.js .reveal{opacity:0;transform:translateY(25px);transition:opacity .75s,transform .75s}.js .reveal.visible{opacity:1;transform:none}
@media(min-width:1500px){.hero-content{padding-top:21vh}.hero h1{font-size:120px}.section-pad{padding-left:max(var(--pad),calc((100vw - 1440px)/2));padding-right:max(var(--pad),calc((100vw - 1440px)/2))}}
@media(max-width:1050px){.desktop-nav{gap:20px}.header{gap:28px}.brand{width:190px}.hero{min-height:760px}.hero-content{padding-top:180px}.hero h1{font-size:87px}.hero-bottom p{display:none}.hero-photo{left:18%}.intro-grid{gap:7%}.systems{gap:6%}.system-visual{min-height:470px}.service-tags{display:none}.process-grid{gap:20px}.process-step h3{font-size:21px}.project-caption h3{font-size:21px}.image-note{bottom:105px}}
@media(max-width:700px){html{scroll-padding-top:20px}.header{padding:23px var(--pad);gap:21px}.brand{width:164px}.desktop-nav{display:none}.header-contact{margin-left:auto;font-size:12px;padding:5px 0}.header-contact span{margin-left:7px}.menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;align-items:center;width:35px;height:42px;background:transparent;padding:5px;z-index:40;flex-shrink:0}.menu-toggle span{width:22px;height:1px;background:white;transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}body.menu-open .header{position:fixed;background:#0a1016}.hero{height:100svh;min-height:730px;max-height:950px}.hero-content{padding:165px var(--pad) 150px}.hero h1{font-size:clamp(50px,11.9vw,82px);line-height:1.05;letter-spacing:-.06em;margin-top:29px}.hero-content>.eyebrow{font-size:12px;letter-spacing:.1em}.hero-photo{left:0;top:0}.hero-photo img{object-position:60% center;filter:saturate(.55) brightness(.63)}.hero-photo:after{background:linear-gradient(90deg,rgba(5,15,25,.86),rgba(5,15,25,.22)),linear-gradient(0deg,#09121b,transparent 45%,#09121b 100%)}.hero-slash{right:20%;top:20%;height:65%;opacity:.55}.hero-description{font-size:16px;margin-top:27px}.hero .button{margin-top:28px}.button{min-height:53px;padding:0 21px}.hero-bottom{bottom:24px;padding-top:17px}.hero-index{font-size:12px}.scroll-cue{font-size:12px}.image-note{display:none}.section-pad{padding:62px var(--pad)}.section-top{margin-bottom:35px}.eyebrow{font-size:12px;letter-spacing:.11em}.tiny-caption{display:none}h2{font-size:43px;letter-spacing:-.05em}.intro-grid{grid-template-columns:1fr;gap:25px;margin-bottom:38px}.intro-copy{font-size:16px;max-width:100%}.service summary{gap:13px;padding:26px 0}.service-number{min-width:20px;font-size:12px}.service h3{font-size:23px}.plus{margin-left:auto;width:16px;flex:0 0 16px}.plus:before,.plus:after{width:16px}.service-content{padding:0 0 25px 33px;grid-template-columns:1fr;gap:16px}.service-content p{font-size:16px}.service-content>span{font-size:12px}.projects .section-top{margin-bottom:28px}.projects-heading{align-items:end;margin-bottom:31px}.projects-heading h2{max-width:250px;font-size:43px}.gallery-controls{gap:8px}.round-button{width:39px;height:39px;font-size:19px}.project-track{gap:16px}.project-card{flex-basis:87%}.project-image{height:380px}.project-caption{margin-top:20px;gap:10px}.project-caption h3{font-size:21px}.project-caption>span{font-size:12px}.project-type{top:14px;left:14px;font-size:12px;padding:9px 10px}.project-card>p{font-size:12px}.gallery-bottom{margin-top:28px}.gallery-bottom>span:first-child{display:none}.gallery-progress{margin-left:0}.swipe-hint{display:inline;font-size:12px}.systems{display:flex;flex-direction:column;gap:44px;padding-top:40px}.system-visual{order:2;min-height:340px}.systems-copy h2{font-size:49px}.systems-copy .eyebrow{margin-bottom:30px}.systems-copy>p:not(.eyebrow){font-size:16px}.glass-mark{max-height:290px;width:76%}.visual-label{font-size:12px}.cross-one{top:22px}.cross-two{bottom:22px}.production{min-height:660px}.production-top{padding:30px var(--pad)}.production-content{padding:115px var(--pad) 110px}.production-content h2{font-size:51px}.production-content>p:not(.eyebrow){font-size:16px}.production-content>.eyebrow{font-size:12px}.production-media video{object-position:58% center}.production-shade{background:linear-gradient(90deg,#03101dba,#03101d45),linear-gradient(0deg,#03101de0,transparent 65%)}.production-note{font-size:12px;max-width:250px;bottom:44px;line-height:1.8}.video-toggle{bottom:33px}.process-grid{grid-template-columns:1fr 1fr;gap:33px 23px}.process-step{padding-top:20px}.process-step h3{margin-top:25px;font-size:23px;line-height:1.2}.process-step p{font-size:16px;line-height:1.7}.process-step>span{font-size:12px}.contact h2{font-size:47px}.contact-main{gap:16px;align-items:flex-end}.contact-arrow{width:54px;height:54px;font-size:36px;margin-bottom:2px}.contact-main h2{flex:1}.contact-bottom{flex-direction:column;align-items:flex-start;margin-top:40px;gap:25px;padding-top:26px}.contact-bottom p{font-size:16px}.email-link{font-size:21px}.email-link span{margin-left:15px}footer{padding:32px var(--pad);flex-wrap:wrap;gap:28px 15px}footer .brand{width:163px}footer p{order:3;width:100%;font-size:12px;border-top:1px solid var(--line);padding-top:21px}.back-top{font-size:12px}.media-dialog{padding:49px 12px 18px}.dialog-caption h2{font-size:21px}.dialog-caption p{font-size:12px}}
@media(max-width:370px){.header{gap:10px}.brand{width:130px}.hero{min-height:700px}.hero-content{padding-top:155px}.hero h1{font-size:47px}.projects-heading h2{font-size:37px}.gallery-controls{gap:5px}.round-button{width:34px;height:34px}.project-card{flex-basis:92%}.project-image{height:330px}.project-caption h3{font-size:19px}.service h3{font-size:20px}.contact h2{font-size:40px}.contact-arrow{width:45px;height:45px}.email-link{font-size:19px}.process-grid{gap:27px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.hero-photo,.glass-mark{will-change:auto;transform:none!important}}

/* The opening scene: actual 3D glass, composed separately from the copy. */
.hero-photo { opacity: .46; }
.hero-photo img { filter: saturate(.4) brightness(.65); }
.hero h1 > span { color: #cee5f5; }
.hero-slash { opacity: .3; right: 31%; }
.hero-glass {
  position: absolute;
  inset: 115px -3% 96px auto;
  width: 59%;
  pointer-events: none;
  z-index: 1;
}
.glass-atmosphere {
  position: absolute;
  inset: 8% 0;
  background: radial-gradient(ellipse, #2084c91c 0%, #1c66a40a 43%, transparent 70%);
}
.glass-canvas { display: block; position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; }
.glass-ready .glass-canvas { opacity: 1; }
.glass-fallback {
  position: absolute;
  width: 64%; height: 75%;
  left: 18%; top: 12%;
  object-fit: contain;
  filter: drop-shadow(0 20px 45px #06243d);
}
.glass-ready .glass-fallback { visibility: hidden; }
.motion-control {
  position: absolute;
  right: var(--pad); bottom: 115px;
  z-index: 4;
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 7px 13px;
  border: 1px solid #a3ceee40;
  border-radius: 24px;
  background: #0d203270;
  color: #c7d8e7;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 12px;
}
.motion-control[hidden] { display: none; }
.motion-control:hover { border-color: #b6dfff99; }
.motion-control > [aria-hidden] { display: inline-grid; place-items: center; width: 16px; }
.project-image::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(115deg, transparent 25%, #e5f6ff16 46%, #e5f6ff40 48%, transparent 65%);
  transform: translateX(-110%);
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .project-card:hover .project-image::after { transform: translateX(110%); transition: transform 1s ease; }
}
@media (min-width: 701px) and (max-width: 1050px) {
  .hero-glass { width: 66%; right: -16%; top: 180px; bottom: 90px; opacity: .8; }
}
@media (max-width: 700px) {
  .hero {
    display: flex; flex-direction: column;
    height: auto; min-height: 100svh; max-height: none;
    padding-bottom: 92px;
  }
  .hero-content { order: 1; padding: 139px var(--pad) 0; }
  .hero h1 { margin-top: 24px; }
  .hero-description { margin-top: 23px; }
  .hero .button { margin-top: 24px; }
  .hero-glass {
    order: 2; position: relative; inset: auto;
    width: 100%; height: clamp(270px, 76vw, 370px);
    margin: -18px 0 -16px;
    flex-shrink: 0;
  }
  .hero-photo { opacity: .38; }
  .hero-photo img { object-position: 57% center; }
  .hero-slash { right: 17%; top: 40%; height: 43%; }
  .motion-control { right: 20px; bottom: 93px; background: #091a2780; }
  .motion-label { display: none; }
  .motion-control { padding: 9px; width: 40px; justify-content: center; }
  .hero-bottom { z-index: 3; }
}
@media (max-width: 370px) {
  .hero-content { padding-top: 126px; }
  .hero h1 { font-size: 45px; }
  .hero-glass { height: 270px; margin-top: -5px; }
}
@media (prefers-reduced-motion: reduce) {
  .project-image::after { display: none; }
}


/* Scroll-directed window assembly. Native scrolling remains in control. */
.assembly {
  --assembly-progress: 0%;
  position: relative;
  background: #08121d;
  border-top: 1px solid #648baa35;
  border-bottom: 1px solid #648baa35;
  scroll-margin-top: 0;
}
.assembly-sticky {
  position: relative;
  overflow: hidden;
  background: radial-gradient(ellipse at 72% 47%, #183246 0%, #0c1b29 35%, #08121d 72%);
  padding: 54px var(--pad) 35px;
}
.assembly-header { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; }
.assembly-header .eyebrow { color: #8ea9be; margin-bottom: 22px; }
.assembly-header h2 { font-size: clamp(34px, 3.5vw, 55px); line-height: 1.03; letter-spacing: -.045em; }
.assembly-header h2 span { color: #a7cce6; }
.assembly-skip { color: #a8bfce; font-size: 12px; padding: 7px 0; border-bottom: 1px solid #a2c6dd55; }
.assembly-skip span { margin-left: 15px; }
.assembly-copy { display: none; }
.assembly-stage { display: none; }
.assembly-fallback { text-align: center; padding: 30px 0; }
.assembly-fallback img { width: 230px; height: 240px; object-fit: contain; margin: 0 auto 20px; }
.assembly-fallback p { color: #a7bfce; font-size: 16px; }
.assembly-controls { display: none; }
.assembly-note { color: #8ca2b3; font-size: 12px; margin-top: 25px; }
.assembly-ready { height: 570svh; }
.assembly-ready .assembly-sticky { position: sticky; top: 0; height: 100svh; min-height: 640px; }
.assembly-ready .assembly-fallback { display: none; }
.assembly-ready .assembly-copy { display: block; position: absolute; top: 38%; left: var(--pad); width: 25%; max-width: 360px; z-index: 2; }
.assembly-counter { color: #74b6ec; font-size: 12px; letter-spacing: .15em; margin-bottom: 22px; }
.assembly-phase-title { font-size: clamp(25px, 2.5vw, 39px); line-height: 1.08; letter-spacing: -.04em; margin-bottom: 19px; }
.assembly-phase-description { color: #aabfce; font-size: 16px; line-height: 1.65; }
.assembly-ready .assembly-stage { display: block; position: absolute; inset: 26px 0 168px 31%; }
.assembly-stage canvas { width: 100%; height: 100%; display: block; touch-action: pan-y; }
.assembly-ready .assembly-controls { display: block; position: absolute; left: var(--pad); right: var(--pad); bottom: 56px; z-index: 3; }
.assembly-control-top { display: flex; align-items: center; gap: 20px; font-size: 12px; letter-spacing: .08em; color: #a1b6c5; }
.assembly-mode { margin-left: auto; font-size: 12px; background: transparent; color: #c5d8e5; padding: 7px 0; border-bottom: 1px solid #819fb85c; }
.assembly-percent { width: 40px; text-align: right; font-variant-numeric: tabular-nums; color: #97c9ec; }
.assembly-range { display: block; appearance: none; -webkit-appearance: none; width: 100%; height: 24px; margin: 7px 0; background: transparent; cursor: ew-resize; }
.assembly-range::-webkit-slider-runnable-track { height: 2px; background: linear-gradient(to right, #80caf9 var(--assembly-progress), #30495d var(--assembly-progress)); }
.assembly-range::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 12px; height: 12px; margin-top: -5px; border-radius: 50%; border: 2px solid #9fdcff; background: #244c69; box-shadow: 0 0 14px #80cafa70; }
.assembly-range::-moz-range-track { height: 2px; background: #30495d; }
.assembly-range::-moz-range-progress { height: 2px; background: #80caf9; }
.assembly-range::-moz-range-thumb { width: 10px; height: 10px; border-radius: 50%; border: 2px solid #9fdcff; background: #244c69; }
.assembly-range:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.assembly-steps { display: grid; grid-template-columns: repeat(6,1fr); gap: 12px; }
.assembly-steps button { min-height: 44px; display: flex; align-items: center; gap: 14px; padding: 8px 0; text-align: left; color: #8ca6b9; background: none; border-bottom: 1px solid transparent; font-size: 14px; transition: color .2s, border-color .2s; }
.assembly-steps button span { color: #658097; font-size: 12px; }
.assembly-steps button.active { color: #eff8ff; border-bottom-color: #87c9fa; }
.assembly-steps button.active span { color: #87c9fa; }
.assembly-ready .assembly-note { position: absolute; left: var(--pad); bottom: 19px; margin: 0; }
.assembly-ready.assembly-static { height: auto; }
.assembly-static .assembly-sticky { position: relative; }
.assembly-static .assembly-control-top > span:first-child { visibility: hidden; }
@media (min-width: 701px) and (max-width: 1000px) {
  .assembly-sticky { padding-top: 35px; }
  .assembly-header h2 { font-size: 36px; }
  .assembly-ready .assembly-copy { width: 29%; top: 35%; }
  .assembly-ready .assembly-stage { left: 28%; right: -4%; }
  .assembly-steps button { gap: 7px; font-size: 12px; }
}
@media (max-width: 700px) {
  .assembly-ready { height: 490svh; }
  .assembly-ready .assembly-sticky { height: 100svh; min-height: 0; padding: 24px var(--pad); }
  .assembly-header { align-items: flex-start; gap: 10px; }
  .assembly-header .eyebrow { font-size: 12px; margin-bottom: 10px; }
  .assembly-header h2 { font-size: 27px; line-height: 1.03; }
  .assembly-skip { max-width: 105px; font-size: 12px; line-height: 1.4; text-align: right; }
  .assembly-skip span { margin-left: 5px; }
  .assembly-ready .assembly-copy { left: var(--pad); right: var(--pad); top: 141px; width: auto; max-width: none; }
  .assembly-counter { margin-bottom: 9px; font-size: 12px; }
  .assembly-phase-title { font-size: 25px; margin-bottom: 10px; }
  .assembly-phase-description { font-size: 14px; line-height: 1.5; max-width: 400px; }
  .assembly-ready .assembly-stage { inset: 280px -12px 155px; }
  .assembly-ready .assembly-controls { bottom: 46px; }
  .assembly-control-top { font-size: 12px; letter-spacing: .03em; gap: 12px; }
  .assembly-mode { min-height: 32px; }
  .assembly-steps { gap: 5px; }
  .assembly-steps button { flex-direction: column; align-items: center; gap: 6px; text-align: center; font-size: 12px; min-height: 51px; padding: 5px 0 8px; }
  .assembly-steps button span { font-size: 12px; }
  .assembly-ready .assembly-note { bottom: 16px; font-size: 12px; letter-spacing: -.02em; }
  .assembly-range { margin: 4px 0; }
  .hero-bottom .scroll-cue { font-size: 12px; letter-spacing: .035em; gap: 8px; }
}
@media (max-width: 370px) {
  .assembly-ready .assembly-controls { left: 16px; right: 16px; }
  .assembly-steps { gap: 2px; }
  .assembly-steps button { font-size: 12px; }
  .assembly-ready .assembly-note { left: 16px; font-size: 12px; }
  .hero-index { display: none; }
}
@media (max-height: 720px) and (max-width: 700px) {
  .assembly-header h2 { font-size: 22px; }
  .assembly-header h2 br { display: none; }
  .assembly-header .eyebrow { font-size: 12px; }
  .assembly-ready .assembly-copy { top: 109px; }
  .assembly-phase-title { font-size: 22px; }
  .assembly-phase-description { display: none; }
  .assembly-ready .assembly-stage { top: 176px; bottom: 145px; }
  .assembly-counter { margin-bottom: 7px; }
}
@media (max-height: 690px) and (min-width: 701px) {
  .assembly-ready .assembly-sticky { min-height: 0; }
  .assembly-header h2 { font-size: 28px; }
  .assembly-ready .assembly-copy { top: 34%; }
  .assembly-phase-title { font-size: 25px; }
  .assembly-phase-description { font-size: 14px; }
  .assembly-ready .assembly-stage { top: 0; bottom: 130px; }
}
