@font-face{font-family:Sora;src:url(assets/sora.woff2);font-display:swap;font-weight:100 900}@font-face{font-family:Inter;src:url(assets/inter.woff2);font-display:swap;font-weight:100 900}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#090b10;color:#f5f4f0;font:16px/1.6 Inter,Arial,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}a,button{touch-action:manipulation}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #fc5daf;outline-offset:7px}::selection{background:#fc5daf;color:#090b10}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Sora,sans-serif;font-weight:600;line-height:1.04;letter-spacing:-.065em}h2{font-size:clamp(40px,5vw,78px)}h3{font-size:clamp(24px,2.3vw,36px)}em{font-style:normal;color:#fc5daf}#waves{position:fixed;inset:0;z-index:-1;pointer-events:none}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 4.5vw;border-bottom:1px solid #ffffff1c;background:#090b10d9;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:13px;font:700 25px Sora,sans-serif;letter-spacing:-.05em;white-space:nowrap}.brand img{object-fit:contain}.brand small{font:500 10px Inter,sans-serif;letter-spacing:.28em;margin-left:9px}nav{display:flex;gap:30px;align-items:center;font-size:13px}.nav-cta{border-bottom:1px solid #fc5daf;padding:8px 0}.motion{border:1px solid #ffffff30;background:none;padding:9px 13px;font-size:11px}.hero{padding:55px 4.5vw 28px;min-height:800px;display:flex;flex-direction:column;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:600;line-height:1.6}.hero>.eyebrow{display:flex;justify-content:space-between;color:#b4b4bd}.hero h1{font-size:clamp(70px,11.4vw,172px);margin-top:49px;letter-spacing:-.08em;line-height:.99;max-width:1500px}.rise{display:block;animation:rise .95s cubic-bezier(.2,.8,.2,1) both}.rise:nth-child(2){animation-delay:.13s}.hero-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-top:40px}.hero-bottom p{max-width:480px;font-size:15px;color:#c6c5cb;line-height:1.7;background:#090b10cc}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:40px;padding:15px 23px;font-size:13px;border:1px solid #ddd;background:none;color:inherit}.button span{font-size:22px;line-height:1;transition:transform .25s}.button:hover span{transform:translate(3px,-3px)}.light{background:#f5f4f0;color:#101117;border:0}.hero-foot{margin-top:auto;padding-top:130px;display:flex;justify-content:space-between;color:#b2b1bb;text-transform:uppercase;font-size:9px;letter-spacing:.13em}.section{padding:100px 4.5vw;position:relative;background:#090b10}.section-heading{display:grid;grid-template-columns:1fr 2.3fr 1fr;gap:30px;align-items:start;margin-bottom:55px}.section-heading h2{max-width:820px}.aside{font-size:13px;color:#b0afb9;padding-top:8px;line-height:1.7}.work{border-top:1px solid #ffffff25}.filters{display:flex;gap:24px;border-bottom:1px solid #ffffff2b;margin-bottom:36px}.filters button{border:0;border-bottom:2px solid transparent;background:none;padding:12px 0;color:#9c9ba5;font-size:13px}.filters button[aria-pressed=true]{color:white;border-color:#fc5daf}.filters sup{font-size:9px;padding-left:4px}.portfolio{display:grid;grid-template-columns:1fr 1fr;gap:60px 32px;align-items:start}.project-wide{grid-column:1/-1}.visual{border:0;padding:0;background:#181b23;position:relative;width:100%;aspect-ratio:1.35;overflow:hidden;display:block;text-align:left}.project-wide .visual{aspect-ratio:2.05}.visual>img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.visual:hover>img,.visual:focus-visible>img{transform:scale(1.035)}.visual-label{position:absolute;bottom:20px;left:20px;padding:10px 15px;background:#090b10e6;color:white;font-size:11px;letter-spacing:.02em}.project-meta{display:flex;justify-content:space-between;gap:16px;padding-top:18px;align-items:start}.project-meta .eyebrow{color:#aaa9b1;font-size:9px;margin-bottom:8px}.project-meta h3{font-size:23px;letter-spacing:-.04em}.tag{font-size:9px;border-bottom:1px solid #ffffff40;padding:4px 0;white-space:nowrap}.motion-visual{background:#151021;display:flex;align-items:center;justify-content:center;gap:15px}.motion-visual>img{width:20%;height:60%;object-fit:contain}.motion-visual strong{font:700 clamp(35px,4vw,70px)/.95 Sora;letter-spacing:-.07em}.sting{background:#eee9e7;color:#11111a;display:grid;place-items:center}.sting-type{font:700 clamp(65px,9vw,160px)/1 Sora;letter-spacing:-.09em;writing-mode:vertical-rl;position:absolute;left:2%;opacity:.08;top:4%}.sting>img{width:24%;height:65%;object-fit:contain}.portfolio-note{color:#8e8d97;font-size:11px;max-width:650px;margin-top:45px}.manifesto{background:#f2f0ec;color:#101118;padding-top:95px;padding-bottom:70px}.manifesto .eyebrow{margin-bottom:55px}.manifesto h2{font-size:clamp(45px,7.4vw,118px);max-width:1200px}.manifesto em{color:#7b56d6}.underlined{background:linear-gradient(#fc5daf,#fc5daf) 0 100%/100% 5px no-repeat}.manifesto-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:40px}.giant-arrow{font-size:120px;font-weight:200;line-height:1}.manifesto-bottom p{max-width:470px;font-size:15px}.services{padding-bottom:70px}.service-row{display:grid;grid-template-columns:.5fr 1.6fr 1.3fr;gap:40px;border-top:1px solid #ffffff2c;padding:38px 0}.service-row h3{font-size:clamp(32px,4vw,60px)}.service-row .number{color:#fc5daf;font-size:13px}.service-row>div>p{color:#b4b3bd;font-size:14px}.service-row .price{color:white;margin-top:22px;font-size:20px}.price small{font-size:11px;margin-left:8px;color:#b4b3bd}.fine{font-size:11px!important;line-height:1.65;color:#b5b3bf;margin-top:14px}.text-link{display:inline-block;border:0;border-bottom:1px solid #fc5daf;background:none;padding:5px 0;margin-top:20px;font-size:13px}.process{background:#16171e}.process h2{margin:30px 0 60px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.steps article{border-top:1px solid #56535e;padding-top:18px}.steps span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#fc8cc5}.steps h3{font-size:22px;letter-spacing:-.04em;margin:35px 0 20px}.steps p{font-size:13px;color:#b6b4bf}.local{background:#ded8ed;color:#191321;display:grid;grid-template-columns:1.7fr 1fr;gap:45px}.local>.eyebrow{grid-column:1/-1}.local h2{font-size:clamp(45px,6.5vw,98px)}.local em{color:#5c3d9e}.local>div{align-self:end;max-width:420px}.local p+p{margin-top:20px}.local .text-link{border-color:#5c3d9e}.contact{background:linear-gradient(130deg,#12101b,#090b10 70%)}.contact h2{font-size:clamp(70px,12vw,182px);margin:35px 0 60px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12vw}.contact-grid>div>p:first-child{font-size:22px;max-width:460px}.email{display:inline-block;font-size:clamp(14px,1.8vw,24px);border-bottom:1px solid #fc5daf;padding:15px 0;overflow-wrap:anywhere}form{display:grid;gap:23px}label{display:grid;gap:8px;font-size:11px;color:#b6b4c0}input,textarea,select{width:100%;border:0;border-bottom:1px solid #ffffff50;padding:12px 0;color:#f5f4f0;background:transparent;border-radius:0;font-size:15px;outline-offset:5px}select option{background:#090b10}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:1px solid #fc5daf}form .fine{margin:0}footer{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding:35px 4.5vw 85px;font-size:11px;background:#090b10;border-top:1px solid #ffffff25}.review-bar{position:fixed;bottom:0;left:0;right:0;background:#171720f5;border-top:1px solid #ffffff20;z-index:10;padding:9px 4.5vw;font-size:10px;color:#bdbcc8;display:flex;justify-content:space-between}.review-bar a{color:#f5f4f0}.skip{position:fixed;top:-100px;left:20px;z-index:30;padding:15px;background:white;color:black}.skip:focus{top:10px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}dialog{width:min(1120px,95vw);max-height:92dvh;padding:28px;background:#11131b;color:white;border:1px solid #ffffff40}dialog::backdrop{background:#030408db;backdrop-filter:blur(8px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.dialog-top button{border:1px solid #ffffff50;background:none;padding:8px 15px}.case-heading{display:flex;justify-content:space-between;gap:30px;align-items:start}.case-heading h2{font-size:clamp(30px,5vw,65px)}.case-description{max-width:700px;color:#c5c3d0;font-size:15px;margin:25px 0}.case-media{width:100%;max-height:65vh;object-fit:contain;background:#07080c}.case-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:25px 0}.case-columns h3{font-size:20px;letter-spacing:-.02em;margin-bottom:10px}.case-columns p{color:#b4b2c2;font-size:13px}.case-notice{font-size:11px;color:#bcb8ca;border-top:1px solid #ffffff25;padding-top:18px}.study{max-width:1100px;margin:auto}.study h1{font-size:clamp(45px,7vw,90px);margin:35px 0}.study h2{font-size:30px;letter-spacing:-.04em;margin:40px 0 20px}.study p,.study li{color:#c1bdce;max-width:800px}.study a{border-bottom:1px solid #fc5daf}.study .swatches{display:flex;height:60px;margin-top:20px}.swatches span{flex:1}body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation-play-state:paused!important;scroll-behavior:auto!important;transition:none!important}@keyframes rise{from{transform:translateY(35px);opacity:0}to{transform:none;opacity:1}}.in-view .project-meta h3{animation:rise .65s both}.in-view .number{animation:rise .7s both}.in-view .underlined{animation:underline 1.2s both}@keyframes underline{from{background-size:0 5px}to{background-size:100% 5px}}
@media(min-width:1700px){.section,header,.hero,footer{padding-left:max(5vw,calc((100vw - 1550px)/2));padding-right:max(5vw,calc((100vw - 1550px)/2))}}
@media(max-width:900px){header{gap:20px}.brand{font-size:22px}.brand small{font-size:8px;margin-left:4px}nav{gap:18px;font-size:12px}nav a:nth-child(2){display:none}.hero{min-height:760px}.hero h1{font-size:12.5vw;margin-top:70px}.hero-bottom p{max-width:380px}.hero-foot{padding-top:170px}.section-heading{grid-template-columns:1fr 2fr}.section-heading .aside{grid-column:2}.section-heading h2{font-size:6vw}.project-meta{flex-direction:column;gap:8px}.portfolio{gap:45px 20px}.tag{white-space:normal}.service-row{grid-template-columns:.2fr 1.2fr 1.2fr;gap:25px}.steps{grid-template-columns:1fr 1fr;gap:40px}.local{grid-template-columns:1fr}.local>div{max-width:550px;margin-left:25%}.contact-grid{gap:7vw}}
@media(max-width:600px){header{padding:20px 6vw;gap:14px;flex-wrap:wrap}.brand{font-size:20px}.brand img{height:35px;width:23px}.brand small{display:block;font-size:7px;letter-spacing:.3em;margin:4px 0 0}nav{margin-left:auto}nav a:first-child{display:none}.motion{font-size:9px;padding:7px 8px}.hero{padding:35px 6vw 25px;min-height:720px}.hero>.eyebrow{font-size:8px;gap:20px}.hero h1{font-size:15vw;letter-spacing:-.075em;margin-top:65px;line-height:1.06}.hero-bottom{display:block;margin-top:28px}.hero-bottom p{font-size:13px;max-width:310px}.hero-bottom .button{margin-top:25px}.hero-foot{padding-top:125px;gap:20px;font-size:8px}.hero-foot span:last-child{display:none}.section{padding:65px 6vw}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:10vw;margin-top:22px}.aside{max-width:270px;margin-top:20px}.filters{gap:22px}.filters button{font-size:11px}.portfolio{grid-template-columns:1fr;gap:40px}.project-wide{grid-column:auto}.project-wide .visual{aspect-ratio:1.15}.project-wide .visual>img{object-fit:cover;object-position:top left;width:150%;max-width:none}.visual{aspect-ratio:1.22}.project-meta{flex-direction:row}.project-meta h3{font-size:19px}.tag{font-size:8px;max-width:110px;text-align:right}.visual-label{left:12px;bottom:12px;font-size:10px}.motion-visual strong{font-size:12vw}.sting-type{font-size:27vw}.manifesto h2{font-size:10.5vw;line-height:1.12}.manifesto .eyebrow{margin-bottom:35px}.manifesto-bottom{gap:24px;align-items:center}.giant-arrow{font-size:60px}.manifesto-bottom p{font-size:12px;max-width:260px}.service-row{grid-template-columns:30px 1fr;gap:20px;padding:30px 0}.service-row h3{font-size:35px}.service-row>div{grid-column:2}.service-row>div>p{font-size:13px}.price small{display:block;margin:5px 0}.steps{gap:35px 25px}.steps h3{font-size:20px;margin:22px 0 14px}.steps p{font-size:12px}.steps span{font-size:8px}.local{gap:28px}.local h2{font-size:11vw}.local>div{margin:0;font-size:14px}.contact h2{font-size:17vw;margin-bottom:40px}.contact-grid{grid-template-columns:1fr;gap:40px}.contact-grid>div>p:first-child{font-size:19px}.email{font-size:18px}.case-heading{display:block}.case-heading .tag{display:inline-block;margin-top:16px;text-align:left}.case-columns{grid-template-columns:1fr}.case-description{font-size:13px}.review-bar{font-size:8px;padding:10px 6vw}footer{padding:30px 6vw 80px;gap:25px}footer .brand{width:100%}.button{font-size:12px;padding:14px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Visual pass 2: preserve word separation and give the signature line its own space. */
.hero h1{letter-spacing:-.055em;word-spacing:.06em}.hero-bottom p{background:none}#waves{transform:translateY(65px)}
@media(max-width:600px){.hero h1{letter-spacing:-.055em;word-spacing:.03em}#waves{transform:translateY(30px)}}
/* Typography pass: retain clear spaces throughout the editorial headings. */
h1,h2,h3{word-spacing:.06em;letter-spacing:-.035em}.hero h1{letter-spacing:-.045em;word-spacing:.06em}.section-heading h2{letter-spacing:-.035em}.hero h1 .rise{overflow:visible}
/* Pausing always leaves reading content in its final visible position. */
html.motion-paused{scroll-behavior:auto!important}body.motion-paused .rise,body.motion-paused .in-view .project-meta h3,body.motion-paused .in-view .number,body.motion-paused .in-view .underlined{animation:none!important;opacity:1!important;transform:none!important}
#waves{position:absolute;transform:translateY(var(--flow-offset,90px))}
/* 25 October 2026 · Astra · Pass 02 — kinetic identity. */
body{overflow-x:clip}header{padding-top:20px;padding-bottom:20px;background:#090b10}.hero{padding-top:30px;min-height:0;padding-bottom:26px;overflow:clip}.hero-intro{display:flex;justify-content:space-between;align-items:center;min-height:180px;position:relative;margin-top:32px}.hero-lead{font:500 clamp(35px,5.3vw,85px)/.96 Sora;letter-spacing:-.06em}.hero-lead>span{display:block;overflow:hidden;animation:intro-settle 1.1s cubic-bezier(.16,1,.3,1) both}.hero-lead>span+span{margin-left:1.2em;animation-delay:.13s;color:#fc5daf}.hero-fragments{position:relative;width:48%;height:190px;perspective:1000px}.fragment{position:absolute;top:0;width:43%;max-width:250px;padding:6px 6px 0;background:#f4f0e9;color:#18151c;box-shadow:0 20px 70px #0008;transition:transform .65s cubic-bezier(.2,.8,.2,1);z-index:1;animation:fragment-in 1.4s cubic-bezier(.16,1,.3,1) both}.fragment img{width:100%;height:125px;object-fit:cover;object-position:top}.fragment>span{display:block;font-size:8px;letter-spacing:.06em;padding:7px 4px}.fragment-one{left:4%;--turn:-12deg;transform:rotate(-12deg);animation-delay:.15s}.fragment-two{left:36%;top:20px;--turn:10deg;transform:rotate(10deg);animation-delay:.32s}.fragment:hover,.fragment:focus-visible{transform:translateY(-15px) rotate(0);z-index:3}.fragment-note{position:absolute;right:0;bottom:-2px;font-size:10px;line-height:1.4;letter-spacing:.05em;text-align:right;color:#b6b0c7}.hero-type{position:relative;margin-top:15px;padding-bottom:26px;perspective:1000px}.hero h1{margin:0;max-width:none;line-height:.85;font-size:clamp(100px,25.2vw,410px);letter-spacing:-.08em;word-spacing:0}.move-word{display:flex;align-items:center;position:relative;justify-content:space-between;transform:translateX(calc(var(--hero-shift,0)*-28px));will-change:transform}.letter{display:block;transform-origin:50% 85%;animation:letter-arrival 1.3s calc(.15s + var(--i)*.10s) cubic-bezier(.16,1,.3,1) both,letter-drift 8s calc(1.5s + var(--i)*-.6s) ease-in-out infinite;position:relative}.letter:nth-child(2){color:transparent;-webkit-text-stroke:1.5px #f5f4f0}.letter:nth-child(3){background:linear-gradient(145deg,#7177f0 5%,#fc5daf 50%,#fe8853);background-clip:text;-webkit-background-clip:text;color:transparent}.move-period{font:300 .43em/1 Inter;color:#fc5daf;align-self:end;display:block;margin:0 0 .2em .05em;animation:arrow-turn 8s ease-in-out infinite}.type-caption{display:block;text-align:right;font-size:9px;letter-spacing:.15em;text-transform:uppercase;margin-top:24px;color:#b6b0c7}.hero-bottom{margin-top:25px;align-items:center;padding-top:28px;position:relative;z-index:3}.hero-bottom p{font-size:14px;line-height:1.65}.hero-foot{padding-top:32px;margin-top:0;font-size:8px}.hero-cta{min-width:220px}.hero .eyebrow{position:relative;z-index:3}#waves{z-index:2;mix-blend-mode:screen}.hero-intro,.hero-type{z-index:1}.kinetic-band{background:#c8fc82;color:#10130c;overflow:hidden;padding:21px 0;transform:rotate(-2deg) scale(1.03);position:relative;z-index:3;margin:40px 0 50px}.band-track{display:flex;width:max-content;animation:band-travel 32s linear infinite;font:500 clamp(20px,3.7vw,58px)/1.2 Sora;letter-spacing:-.04em}.band-track>span{white-space:nowrap;padding-right:35px}.band-track b{font-weight:400;color:#476722;margin:0 28px}.work{border:0;padding-top:65px}.work .section-heading h2{font-size:clamp(42px,6vw,92px)}.work .project:nth-child(2){margin-top:65px}.work .project:nth-child(4){margin-top:65px}.project .visual{border-radius:2px}.project-wide .visual{aspect-ratio:2.1}.project:nth-child(5) .visual{aspect-ratio:1.65}.project .visual:after{content:'↗';position:absolute;top:18px;right:18px;width:44px;height:44px;display:grid;place-items:center;background:#f4f1ea;color:#111;font-size:24px;transform:translateY(-75px) rotate(-45deg);transition:transform .5s}.project .visual:hover:after,.project .visual:focus-visible:after{transform:none}.visual>img{transform:scale(1.04) translateY(calc(var(--media-shift,0)*-12px));transition:transform .8s cubic-bezier(.2,.7,.2,1)}.visual:hover>img{transform:scale(1.08)}.manifesto{overflow:hidden;padding-top:110px;padding-bottom:85px}.manifesto-line{display:block;transform:translateX(calc(var(--manifesto-shift,0)*var(--direction,1)*36px));transition:transform .1s linear}.manifesto-line:nth-child(even){--direction:-1;margin-left:8vw}.manifesto-line:nth-child(3){margin-top:.17em;color:#797280}.manifesto .giant-arrow{transform:rotate(calc(var(--manifesto-shift,0)*35deg));color:#7b56d6}.manifesto .underlined{background-size:var(--underline-progress,100%) 5px}.service-row{position:relative;overflow:hidden}.service-row:before{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,#7177f0,#fc5daf,#fe8853);transform:scaleX(0);transform-origin:left;transition:transform 1s}.service-row:hover:before{transform:scaleX(1)}.service-row h3{transition:color .4s,transform .6s}.service-row:hover h3{color:#fc8cc5;transform:translateX(10px)}.service-row .number{font:400 clamp(25px,4vw,60px)/1 Sora;letter-spacing:-.07em;color:#77727f}.process{background:#111219}.steps{position:relative}.steps:before{content:'';position:absolute;top:0;left:0;width:var(--process-progress,0%);height:2px;background:#fc5daf;z-index:1}.steps article{border-color:#37333f}.steps article h3{transition:color .5s}.steps article:hover h3{color:#fc8cc5}.local{overflow:hidden}.local h2{transform:translateY(calc(var(--local-shift,0)*-28px))}.contact{overflow:hidden}.contact h2 em{display:inline-block;transform:skewX(calc(var(--contact-shift,0)*-8deg));background:linear-gradient(110deg,#7177f0,#fc5daf,#fd806a);background-clip:text;-webkit-background-clip:text;color:transparent}.closing-word{background:#090b10;color:transparent;-webkit-text-stroke:1px #65606f;font:600 20vw/.95 Sora;letter-spacing:-.08em;display:flex;justify-content:space-between;overflow:hidden;padding:0 3vw 35px;position:relative}.closing-word>span:last-child{font-size:.6em;color:#fc5daf;-webkit-text-stroke:0;align-self:end;animation:arrow-turn 8s ease-in-out infinite}.motion-ready .reveal-unit{opacity:0;transform:translateY(26px);transition:opacity .8s var(--delay,0ms),transform 1.1s var(--delay,0ms) cubic-bezier(.16,1,.3,1)}.motion-ready .reveal-unit.revealed{opacity:1;transform:none}.motion-ready .visual.reveal-unit{opacity:1;transform:none;clip-path:inset(10% 0 15% 0);transition:clip-path 1.3s cubic-bezier(.16,1,.3,1)}.motion-ready .visual.revealed{clip-path:inset(0)}.motion-ready .number.reveal-unit{transform:translateY(35px) rotate(-15deg)}.motion-ready .number.revealed{transform:none}.in-view .project-meta h3,.in-view .number,.in-view .underlined{animation:none}
@keyframes letter-arrival{from{opacity:0;transform:translateY(100%) rotateX(-75deg) rotateZ(8deg)}to{opacity:1;transform:none}}
@keyframes letter-drift{0%,100%{transform:translateY(0) rotateZ(0)}35%{transform:translateY(-.035em) rotateZ(-2deg)}65%{transform:translateY(.015em) rotateZ(1deg)}}
@keyframes arrow-turn{0%,100%{transform:rotate(0)}50%{transform:rotate(45deg)}}
@keyframes intro-settle{from{opacity:0;transform:translateY(30px) skewY(5deg)}to{opacity:1;transform:none}}
@keyframes fragment-in{from{opacity:0;transform:translateY(80px) rotate(0) scale(.85)}to{opacity:1;transform:rotate(var(--turn))}}
@keyframes band-travel{to{transform:translateX(-50%)}}
@media(min-width:1700px){.hero h1{font-size:390px}.hero-fragments{max-width:650px}}
@media(max-width:900px){.hero-intro{min-height:160px}.hero-fragments{height:160px;width:52%}.fragment img{height:100px}.hero h1{font-size:25vw}.hero-bottom{margin-top:15px}.hero-foot{padding-top:35px}.hero{min-height:0}.hero-lead{font-size:6.7vw}.fragment-note{display:none}.manifesto-line:nth-child(even){margin-left:4vw}}
@media(max-width:600px){header{padding:18px 6vw}.hero{padding:26px 6vw 24px}.hero-intro{margin-top:35px;min-height:160px;align-items:start}.hero-lead{font-size:9vw;position:relative;z-index:2;padding-top:12px}.hero-fragments{width:50%;height:160px;align-self:start}.fragment{width:85%;max-width:155px}.fragment img{height:82px}.fragment>span{font-size:6px;padding:5px 1px;letter-spacing:0}.fragment-one{left:-5%;top:1px;--turn:-12deg}.fragment-two{left:15%;top:55px;--turn:10deg}.hero-type{margin-top:30px;padding-bottom:15px}.hero h1{font-size:24vw;line-height:.9;letter-spacing:-.09em}.move-period{font-size:.32em;margin-left:.02em}.type-caption{font-size:7px;margin-top:23px}.hero-bottom{display:flex;gap:16px;align-items:start;padding-top:28px;margin-top:15px}.hero-bottom p{font-size:11px;max-width:175px}.hero-bottom .button{margin:0;padding:12px 13px;font-size:10px;gap:10px;min-width:0}.hero-foot{padding-top:30px;font-size:7px}.hero-foot span:last-child{display:none}.kinetic-band{margin:25px 0 25px;padding:18px 0;transform:rotate(-3deg) scale(1.04)}.band-track{font-size:25px}.band-track b{margin:0 15px}.work{padding-top:45px}.work .section-heading h2{font-size:11vw}.work .project:nth-child(2),.work .project:nth-child(4){margin-top:0}.project-wide .visual{aspect-ratio:1.15}.manifesto{padding:70px 6vw}.manifesto-line:nth-child(even){margin-left:0}.manifesto h2{font-size:10vw}.service-row .number{font-size:26px}.closing-word{font-size:20vw;padding-bottom:25px}.move-word{transform:translateX(calc(var(--hero-shift,0)*-8px))}}
/* Every motion layer has an immediately readable still state. */
body.motion-paused .reveal-unit,body.motion-paused .letter,body.motion-paused .hero-lead>span,body.motion-paused .fragment{opacity:1!important;animation:none!important;transform:none!important;clip-path:none!important}body.motion-paused .fragment-one{transform:rotate(-12deg)!important}body.motion-paused .fragment-two{transform:rotate(10deg)!important}body.motion-paused .move-word,body.motion-paused .manifesto-line,body.motion-paused .local h2,body.motion-paused .contact h2 em{transform:none!important}body.motion-paused .visual>img{transform:none!important}body.motion-paused .underlined{background-size:100% 5px!important}body.motion-paused .steps:before{width:100%}body.page-hidden *,body.page-hidden *:before,body.page-hidden *:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal-unit,.motion-ready .visual.reveal-unit,.letter,.hero-lead>span,.fragment{opacity:1!important;transform:none!important;clip-path:none!important}.fragment-one{transform:rotate(-12deg)!important}.fragment-two{transform:rotate(10deg)!important}.manifesto-line,.local h2,.contact h2 em,.move-word{transform:none!important}.steps:before{width:100%}.underlined{background-size:100% 5px!important}}
/* Composition checks: keep the moving band inside the page and mobile copy clear. */
html{overflow-x:clip}.hero-lead{letter-spacing:-.04em;word-spacing:.08em}.kinetic-band{transform:none;clip-path:polygon(0 15%,100% 0,100% 85%,0 100%);padding:36px 0}.motion-ready .manifesto-line.revealed{transform:translateX(calc(var(--manifesto-shift,0)*var(--direction,1)*36px))}
@media(max-width:600px){.hero-lead{font-size:8.5vw;width:50%;letter-spacing:-.035em}.hero-fragments{width:45%}.fragment{width:80%}.fragment-one{left:2%}.fragment-two{left:15%}.fragment img{height:78px}.kinetic-band{padding:28px 0}.motion-ready .manifesto-line.revealed{transform:translateX(calc(var(--manifesto-shift,0)*var(--direction,1)*14px))}}
body.motion-paused .manifesto-line.revealed{transform:none!important}
@media(prefers-reduced-motion:reduce){.motion-ready .manifesto-line.revealed{transform:none!important}}

/* Resuming a paused page continues the ambient motion without replaying hidden arrivals. */
body.motion-settled .letter{animation:letter-drift 8s calc(var(--i)*-.6s) ease-in-out infinite}body.motion-settled .hero-lead>span,body.motion-settled .fragment{animation:none;opacity:1}
body.motion-paused .letter{animation:none!important}

/* Public freelance release · 31 October 2026 · Astra */
.detail-hero{padding-top:85px;padding-bottom:70px}.detail-hero h1{font-size:clamp(48px,7.7vw,112px);max-width:1200px;margin:32px 0}.detail-lede{max-width:750px;font-size:20px;color:#c4c2ce}.detail-content{max-width:1100px;margin:auto;padding-top:60px;padding-bottom:60px}.detail-content>h2{margin:45px 0 28px}.detail-content>h3{margin:35px 0 16px;font-size:28px}.detail-content>p{max-width:830px;margin:18px 0;font-size:18px;color:#c4c2ce}.detail-content a:not(.button){text-decoration:underline;text-underline-offset:4px}.detail-content video{display:block;width:100%;max-height:540px;background:#11121a;object-fit:contain}.detail-cta h2{margin:25px 0 40px}.discovery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:35px;margin:35px 0}.discovery-grid p{color:#c4c2ce;margin-top:18px}.package{border:1px solid #fc5daf55;padding:35px;margin:45px 0}.package h3{font-size:50px;margin:20px 0}.package li{padding:8px 0}.package p{color:#c4c2ce}.faq h2{margin:25px 0 40px}.faq-list{margin:40px 0}.faq-list details{border-bottom:1px solid #ffffff30;padding:22px 0}.faq-list summary{font:500 clamp(18px,2vw,24px)/1.4 Sora;cursor:pointer}.faq-list p{max-width:830px;color:#c4c2ce;margin:18px 0}.privacy-copy h2{font-size:32px;letter-spacing:-.035em}.privacy-copy p{font-size:16px;overflow-wrap:anywhere}footer{flex-wrap:wrap}.hero-fragments .fragment img{object-fit:cover}.detail-content li{color:#d0ced7}body:not(.motion-ready) .reveal-unit{opacity:1;transform:none}
@media(max-width:650px){header{flex-wrap:wrap;gap:18px}header nav{order:3;width:100%;gap:12px 18px;overflow:visible;flex-wrap:wrap;justify-content:flex-start}header nav a{display:block!important;white-space:nowrap;font-size:11px}.detail-hero{padding-top:48px}.detail-lede{font-size:17px}.detail-content{padding-top:38px;padding-bottom:38px}.detail-content>p{font-size:16px}.package{padding:22px}.package ul{padding-left:20px}.detail-content h2{font-size:40px}.privacy-copy h2{font-size:27px}.hero-bottom p{font-size:14px}.project-meta{flex-wrap:wrap}.tag{white-space:normal}footer{gap:20px}}
