/* Shared motion and alignment, with a static first-render fallback. */
.reading-progress{position:fixed;left:0;top:0;width:100%;height:3px;transform:scaleX(0);transform-origin:left;background:#2457ff;z-index:100;pointer-events:none}
.scroll-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease var(--reveal-delay,0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.scroll-reveal.is-revealed{opacity:1;transform:none}
.motion-preference{border:1px solid #ffffff50;background:transparent;color:white;padding:8px 13px;border-radius:4px;font-size:13px}.motion-preference:hover{background:#ffffff15}
.studio-service-rows>a{isolation:isolate;padding-right:20px}.studio-service-rows>a::before{content:'';position:absolute;inset:-1px -20px;z-index:-1;background:#2457ff;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.studio-service-rows>a:hover,.studio-service-rows>a:focus-visible{color:white}.studio-service-rows>a:hover p,.studio-service-rows>a:focus-visible p{color:#edf0ff}.studio-service-rows>a:hover::before,.studio-service-rows>a:focus-visible::before{transform:scaleX(1)}
.studio-home .studio-cta{position:relative;overflow:hidden;transition:background .25s,box-shadow .25s,transform .25s}.studio-home .studio-cta:hover{transform:translateY(-3px);box-shadow:0 9px 22px #10182820}
.studio-home .campaign-feature{overflow:hidden}.campaign-art{perspective:1200px}.campaign-art img{transition:transform .6s ease}.campaign-art[data-tilt]{transition:transform .35s ease;transform-origin:center}
.studio-portraits{align-items:start;gap:18px}.studio-portraits figure{margin:0;min-width:0}.portrait-frame{aspect-ratio:1;overflow:hidden;background:#e2e2df;border-radius:5px}.studio-portraits .portrait-frame img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center top;margin:0;border-radius:0}.portrait-frame.tj img{transform:scale(1.1);transform-origin:50% 0}.studio-portraits figcaption{display:flex;flex-direction:column;padding-top:14px;gap:3px}.studio-portraits figcaption strong{font-size:15px;font-weight:600}.studio-portraits figcaption span{font-size:12px;color:#646873}.studio-portraits img:nth-child(2){margin:0}
.founders article>img{aspect-ratio:1;object-position:50% 0}.founders article:first-child>img{object-fit:cover}
.process-chapters{position:relative}.process-chapters article{position:relative;padding-left:24px;transition:color .4s,background .4s}.process-chapters article:before{position:absolute;content:'';left:0;top:24px;bottom:24px;width:3px;background:#d4d7df;transition:background .4s,transform .4s;transform:scaleY(.25);transform-origin:top}.process-chapters .chapter-current:before{background:#2457ff;transform:scaleY(1)}.process-chapters .chapter-current h3{color:#2457ff}
.studio-ribbon{overflow:hidden;background:#2457ff;color:white;padding:22px 0;transform:rotate(-1.4deg);margin:15px 0 45px}.ribbon-track{display:flex;width:max-content;animation:studio-ribbon 35s linear infinite}.ribbon-track>span{display:flex;align-items:center;gap:38px;padding-right:38px;font-family:Satoshi,Inter,sans-serif;font-size:clamp(24px,3.2vw,48px);white-space:nowrap;letter-spacing:-.025em}.ribbon-track b{font-size:.55em;font-weight:400;color:#bacaff}.ribbon-shell{overflow:hidden}.ribbon-accessible{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes studio-ribbon{to{transform:translateX(-50%)}}
.motion-on .studio-close h2 em{display:inline-block;animation:close-emphasis 7s ease-in-out infinite}@keyframes close-emphasis{0%,100%{transform:translateX(0)}50%{transform:translateX(12px)}}
.motion-on .project-switches button[aria-pressed=true]{position:relative;overflow:hidden}.motion-on .project-switches button[aria-pressed=true]::after{content:'';position:absolute;bottom:0;left:0;height:2px;background:#7897ff;width:100%;transform-origin:left;animation:project-duration 7s linear infinite}@keyframes project-duration{from{transform:scaleX(0)}to{transform:scaleX(1)}}
html.motion-off *{animation:none!important;transition:none!important}.motion-off .scroll-reveal{opacity:1;transform:none}.motion-off .screen-window{transform:none}.motion-off .reading-progress{display:none}
@media(max-width:700px){.studio-portraits{gap:12px}.studio-portraits figcaption strong{font-size:14px}.studio-portraits figcaption span{font-size:11px}.studio-ribbon{padding:16px 0;margin-bottom:24px}.studio-service-rows>a::before{inset:-1px -10px}.studio-service-rows>a{padding-right:4px}.studio-service-rows>a:hover{padding-left:0}.motion-preference{margin-top:12px}.studio-home .studio-intro-note p br{display:initial}.studio-home .studio-topline{flex-wrap:wrap;gap:6px 20px}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none}.ribbon-track{animation:none}.reading-progress{display:none}*{animation:none!important;transition:none!important}}

.ribbon-track>span{min-width:100vw;justify-content:space-around}
.founders article>.portrait-frame{padding:0;flex:none;border-radius:0}.founders .portrait-frame img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center top}

/* Opening composition: identity, project windows, and an architectural orbit. */
.studio-home .opening-intro{grid-template-columns:1fr 1fr;gap:34px;align-items:center;padding:30px 0 48px}
.opening-copy{min-width:0}.studio-home .opening-copy h1{font-size:clamp(48px,5.5vw,88px);line-height:1.02;letter-spacing:-.065em}
.studio-home .opening-copy .studio-intro-note{justify-self:start;margin-top:28px;max-width:390px}
.opening-art{height:clamp(380px,39vw,570px);position:relative;overflow:hidden;isolation:isolate;background:#111b3c;color:#fff;border-radius:3px;perspective:1200px}
.opening-grid{position:absolute;inset:-40%;background-image:linear-gradient(#bbc9ff12 1px,transparent 1px),linear-gradient(90deg,#bbc9ff12 1px,transparent 1px);background-size:48px 48px;transform:rotate(-18deg);animation:opening-grid 24s linear infinite}
.opening-orbit{position:absolute;width:80%;aspect-ratio:1;border:1px solid #9daeff60;border-radius:50%;left:10%;top:8%;transform:rotateX(60deg) rotate(-25deg);animation:opening-orbit 16s ease-in-out infinite}
.opening-orbit:before,.opening-orbit:after{content:'';position:absolute;inset:12%;border:1px solid #6785ff60;border-radius:50%}.opening-orbit:after{inset:-8%;border-color:#6785ff20}
.opening-identity{position:absolute;left:20%;top:32%;width:60%;aspect-ratio:363/180;filter:drop-shadow(0 14px 26px #0007)}
.identity-slice{position:absolute;inset:0;background:url('/assets/GWS-monogram-white.svg') center/contain no-repeat;animation:identity-assemble 12s cubic-bezier(.22,.75,.18,1) infinite;will-change:transform}
.slice-one{clip-path:inset(0 66.66% 0 0);--entry-x:-150px;--entry-y:-90px;--entry-r:-25deg}
.slice-two{clip-path:inset(0 33.33% 0 33.33%);--entry-x:0px;--entry-y:150px;--entry-r:18deg;animation-delay:.12s}
.slice-three{clip-path:inset(0 0 0 66.66%);--entry-x:160px;--entry-y:-75px;--entry-r:30deg;animation-delay:.24s}
.opening-preview{position:absolute;width:43%;background:#f4f3ef;border:5px solid #f4f3ef;box-shadow:0 22px 45px #0006;animation:preview-arrive 12s cubic-bezier(.22,.75,.18,1) infinite;will-change:transform}
.opening-preview>div{padding:4px 4px 7px;color:#1d2542;font-size:8px;letter-spacing:.1em;font-weight:600}.opening-preview img{width:100%;height:auto;display:block}
.preview-health{left:7%;top:8%;--rest-angle:-9deg;--travel-x:-95px;--travel-y:-100px;transform:rotate(-9deg);animation-delay:.15s}
.preview-law{right:6%;bottom:14%;--rest-angle:8deg;--travel-x:100px;--travel-y:95px;transform:rotate(8deg);animation-delay:.35s}
.opening-label{position:absolute;left:24px;right:24px;bottom:24px;display:flex;justify-content:space-between;gap:14px;font-size:8px;letter-spacing:.12em;color:#c7d0ed}
.opening-motion{position:absolute;right:14px;top:14px;border:1px solid #ffffff60;background:#111b3c;color:white;border-radius:30px;padding:7px 10px;font-size:10px;z-index:3}.opening-motion:hover{background:#2c4080}.opening-motion:focus-visible{outline:2px solid white;outline-offset:3px}
@keyframes identity-assemble{0%{transform:translate(var(--entry-x),var(--entry-y)) rotate(var(--entry-r));opacity:0}16%,72%{transform:translate(0,0) rotate(0);opacity:1}85%,100%{transform:translate(var(--entry-x),var(--entry-y)) rotate(var(--entry-r));opacity:0}}
@keyframes preview-arrive{0%{transform:translate(var(--travel-x),var(--travel-y)) rotate(calc(var(--rest-angle) * 2));opacity:0}20%,65%{transform:translate(0,0) rotate(var(--rest-angle));opacity:1}75%{transform:translate(0,-8px) rotate(var(--rest-angle));opacity:1}90%,100%{transform:translate(var(--travel-x),var(--travel-y)) rotate(calc(var(--rest-angle) * 2));opacity:0}}
@keyframes opening-grid{to{transform:translate(45px,0) rotate(-18deg)}}
@keyframes opening-orbit{0%,100%{transform:rotateX(60deg) rotate(-25deg)}50%{transform:rotateX(35deg) rotate(145deg)}}
@media(max-width:1000px){.studio-home .opening-intro{gap:22px}.studio-home .opening-copy h1{font-size:clamp(42px,5.8vw,64px)}.opening-label{left:16px;right:16px;font-size:7px}.opening-label span:last-child{display:none}}
@media(max-width:700px){.studio-home .opening-intro{display:flex;flex-direction:column;gap:26px;padding:24px 0 30px;align-items:stretch}.studio-home .opening-copy h1{font-size:clamp(43px,11.8vw,74px)}.studio-home .opening-copy .studio-intro-note{margin-top:16px;max-width:none}.studio-home .opening-copy .studio-intro-note p{font-size:15px;margin-bottom:15px}.opening-art{height:300px;width:100%}.opening-identity{width:50%;left:25%;top:31%}.opening-preview{width:38%}.preview-law{bottom:17%}.opening-label span:last-child{display:block}.opening-label{bottom:18px}.opening-preview>div{font-size:7px}.opening-orbit{width:68%;left:16%;top:0}}
@media(prefers-reduced-motion:reduce){.identity-slice,.opening-preview{opacity:1}.opening-grid,.opening-orbit,.identity-slice,.opening-preview{animation:none}}
