.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--paper: #efebe2;--paper-2: #f8f5ef;--ink: #151515;--muted: #68645f;--line: rgba(21, 21, 21, .2);--accent: #4d60ff;--serif: Georgia, "Times New Roman", serif;--sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--pad: clamp(1rem, 2vw, 2rem);--header-h: 4.5rem}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper);color:var(--ink)}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}::selection{background:var(--ink);color:var(--paper)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}img,svg{max-width:100%}.scroll-progress{position:fixed;z-index:100;inset:0 0 auto;height:3px;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:var(--accent)}.site-header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);padding:0 var(--pad);border-bottom:1px solid var(--line);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}.wordmark{display:inline-flex;gap:.45rem;align-items:center;font-weight:750}.wordmark-dot{color:var(--accent);font-size:.62rem}.site-header nav{display:flex;gap:clamp(.8rem,2vw,2rem)}.site-header nav a,.text-link{position:relative}[data-magnetic]{transform:translate3d(var(--magnetic-x, 0px),var(--magnetic-y, 0px),0);transition:transform .26s cubic-bezier(.16,1,.3,1);will-change:transform}.site-header nav a{display:inline-block}.site-header nav a:after,.text-link:after{content:"";position:absolute;left:0;right:100%;bottom:-.25rem;height:1px;background:currentColor;transition:right .24s ease}@media(hover:hover)and (pointer:fine){.site-header nav a:hover:after,.text-link:hover:after{right:0}}.hero{position:relative;overflow:hidden;min-height:calc(100svh - var(--header-h));display:grid;grid-template-rows:auto 1fr auto;padding:var(--pad);border-bottom:1px solid var(--line)}.hero-visual{position:absolute;inset:0 0 0 33%;z-index:0;overflow:hidden;background:#1a1d21;opacity:0;transform:scale(1.06) translate3d(calc(var(--hero-scroll, 0) * -2%),calc(var(--hero-scroll, 0) * 3%),0);transition:opacity .9s ease,transform 1.4s cubic-bezier(.16,1,.3,1);will-change:transform}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 0%,rgba(239,235,226,.38) 29%,transparent 58%)}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:84% 48%;transform:scale(1.58);transform-origin:82% center;filter:saturate(.82) contrast(1.08);animation:workshop-pulse 14s ease-in-out infinite alternate}.hero.is-ready .hero-visual{opacity:1;transform:scale(1) translate3d(calc(var(--hero-scroll, 0) * -2%),calc(var(--hero-scroll, 0) * 3%),0)}.hero>:not(.hero-visual){position:relative;z-index:1}.hero-meta,.section-head,.case-meta,.footer-meta,.project-topline,.small-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.hero-meta{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);opacity:0;transform:translateY(-.7rem);transition:opacity .6s ease .18s,transform .7s cubic-bezier(.16,1,.3,1) .18s}.hero.is-ready .hero-meta{opacity:1;transform:translateY(0)}.hero-title{align-self:center;margin:clamp(3rem,8vw,7rem) 0;max-width:8ch;font-size:clamp(5rem,13vw,13.5rem);font-weight:700;line-height:.78;letter-spacing:-.075em;text-wrap:balance}.hero-title .line:nth-child(2){color:#1246d8}.hero-title em,.display-serif{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.055em}.hero-title .line{display:block}.hero-bottom{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(14rem,.6fr);align-items:end;gap:2rem}.hero-copy{max-width:34rem;margin:0;font-size:clamp(1.15rem,2vw,1.65rem);line-height:1.2;letter-spacing:-.035em}.hero-aside{justify-self:end;max-width:18rem;color:var(--muted);font-size:.78rem;line-height:1.5;text-transform:uppercase;letter-spacing:.08em}.ticker{overflow:hidden;border-bottom:1px solid var(--line);background:var(--ink);color:var(--paper)}.ticker-track{display:flex;width:max-content;animation:ticker-move 24s linear infinite}.ticker-group{display:flex;align-items:center;gap:2.1rem;padding:1rem 1.05rem;white-space:nowrap;font-size:clamp(1.05rem,2.2vw,2rem);letter-spacing:-.04em}.ticker-dot{color:#9db1ff}@keyframes ticker-move{to{transform:translate(-50%)}}.section{padding:clamp(5rem,10vw,10rem) var(--pad)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line);color:var(--muted)}.section-head strong{color:var(--ink);font-weight:700}.work-list{margin-top:0}.work-item{padding:clamp(3rem,7vw,7rem) 0;border-bottom:1px solid var(--line)}.project-topline{display:grid;grid-template-columns:4rem 1fr auto;gap:1rem;color:var(--muted)}.project-copy{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(15rem,.55fr);gap:clamp(2rem,6vw,7rem);align-items:end;margin:clamp(1.5rem,4vw,3.5rem) 0 clamp(2rem,4vw,4rem)}.project-title{margin:0;font-size:clamp(3.8rem,9vw,9rem);line-height:.86;letter-spacing:-.075em;font-weight:720;transition:transform .56s cubic-bezier(.16,1,.3,1),color .26s ease}.project-lede{margin:0;max-width:32rem;font-size:clamp(1.15rem,2.25vw,2.05rem);line-height:1.1;letter-spacing:-.045em}.project-stage-link{display:block}.project-stage{--rx: 0deg;--ry: 0deg;position:relative;min-height:clamp(24rem,58vw,48rem);overflow:hidden;isolation:isolate;background:var(--tone, #d8d8d8);border-radius:clamp(.2rem,1vw,.7rem);transform:perspective(1400px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .3s ease,border-radius .3s ease;will-change:transform}.project-stage:before{content:"";position:absolute;z-index:6;inset:0;pointer-events:none;background:var(--paper);transform:scaleX(1);transform-origin:right center}.work-item.is-inview .project-stage:before{animation:stage-unveil .8s cubic-bezier(.76,0,.24,1) .24s forwards}.case-stage-wrap.is-inview .project-stage:before{animation:stage-unveil .8s cubic-bezier(.76,0,.24,1) .12s forwards}.project-stage.has-managed-image{background-color:#1a1d21;background-image:var(--managed-image);background-position:center;background-size:cover}.project-stage.has-managed-image>:not(.stage-label){opacity:0;transition:opacity .3s ease}.project-stage.has-managed-image .stage-label{border-color:#ffffffad;background:#151515c2;color:var(--paper);backdrop-filter:blur(8px)}.project-stage:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px #00000014}.stage-label{position:absolute;z-index:4;left:1.2rem;bottom:1.1rem;padding:.5rem .65rem;border:1px solid rgba(0,0,0,.4);border-radius:999px;background:color-mix(in srgb,var(--tone) 75%,white 25%);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase}.stage-word{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);white-space:nowrap;font-size:clamp(4rem,15vw,14rem);font-weight:800;line-height:.75;letter-spacing:-.09em;color:#000000c7}.stage-ghost{position:absolute;left:50%;top:50%;width:78%;height:70%;transform:translate(-50%,calc(-50% + var(--drift-y, 0px)));border:1px solid rgba(0,0,0,.36)}.stage-ghost:before,.stage-ghost:after{content:"";position:absolute;border:inherit}.stage-ghost:before{inset:8%}.stage-ghost:after{inset:18%}.stage-scene .stage-word{transform:translate(-50%,-50%) rotate(-6deg);mix-blend-mode:multiply}.stage-scene .room-plane{position:absolute;width:60%;height:46%;left:20%;top:25%;border:2px solid rgba(0,0,0,.5);transform:perspective(600px) rotateX(62deg) rotate(-8deg) translateY(var(--drift-y, 0px));background:#ffffff38;animation:room-breathe 8s ease-in-out infinite}.stage-scene .room-plane:before,.stage-scene .room-plane:after{content:"";position:absolute;background:#0000009e}.stage-scene .room-plane:before{width:30%;height:28%;left:12%;bottom:16%}.stage-scene .room-plane:after{width:17%;height:42%;right:18%;top:14%}.stage-systems{background-image:linear-gradient(rgba(0,0,0,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.11) 1px,transparent 1px);background-size:6vw 6vw}.stage-systems .flow{position:absolute;inset:18% 8%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:3%;align-items:center}.stage-systems .flow span{min-height:25%;padding:1rem;border:1px solid rgba(0,0,0,.55);background:#ffffff59;font-size:clamp(.8rem,1.5vw,1.2rem);letter-spacing:-.02em;animation:flow-float 5s ease-in-out infinite}.stage-systems .flow span:nth-child(2){animation-delay:-1.4s}.stage-systems .flow span:nth-child(3){animation-delay:-2.8s}.stage-mobile .phones{position:absolute;inset:10% 8%;display:flex;align-items:center;justify-content:center;gap:3%;transform:translateY(var(--drift-y, 0px))}.stage-mobile .phone{width:min(24%,15rem);aspect-ratio:.49;border:2px solid rgba(0,0,0,.7);border-radius:2rem;background:#ffffffa8;padding:4%}.stage-mobile .phone:nth-child(2){transform:translateY(-7%)}.stage-mobile .phone{animation:phone-float 5.6s ease-in-out infinite}.stage-mobile .phone:nth-child(2){animation-delay:-1.8s}.stage-mobile .phone:nth-child(3){animation-delay:-3.6s}.stage-mobile .phone:before,.stage-mobile .phone:after{content:"";display:block;border-radius:999px;background:#000000b3}.stage-mobile .phone:before{width:46%;height:4%;margin:0 auto 18%}.stage-mobile .phone:after{width:100%;height:58%;border-radius:.6rem;opacity:.18}.stage-data .chart{position:absolute;inset:18% 8% 16%;display:flex;align-items:end;gap:1.5%;border-left:1px solid rgba(0,0,0,.55);border-bottom:1px solid rgba(0,0,0,.55);padding:0 2%}.stage-data .bar{flex:1;height:var(--h);background:#000000bf;transform-origin:bottom;animation:data-pulse 3.8s ease-in-out infinite alternate}.stage-data .bar:nth-child(2n){animation-delay:-1.3s}.stage-data .bar:nth-child(3n){animation-delay:-2.1s}.stage-hardware .dial{position:absolute;left:50%;top:50%;width:min(44vw,24rem);aspect-ratio:1;transform:translate(-50%,-50%) rotate(calc(var(--drift-y, 0px) * .15));border:2px solid rgba(0,0,0,.7);border-radius:50%}.stage-hardware .dial:before,.stage-hardware .dial:after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);border:inherit}.stage-hardware .dial:before{width:70%;height:70%}.stage-hardware .dial:after{width:16%;height:16%;background:var(--ink)}.stage-maker .tape{position:absolute;left:-5%;right:-5%;top:50%;padding:1.1rem 0;transform:rotate(-8deg) translateY(calc(-50% + var(--drift-y, 0px)));border-block:2px solid rgba(0,0,0,.7);background:#ffffff61;overflow:hidden;white-space:nowrap;font-size:clamp(2rem,6vw,6rem);font-weight:800;letter-spacing:-.05em}.project-foot{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;color:var(--muted);font-size:.75rem}.project-foot span:last-child{color:var(--ink)}.more-work{margin-top:3rem}.more-row{display:grid;grid-template-columns:4rem minmax(0,1fr) minmax(12rem,.6fr) auto;gap:1rem;align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--line)}.more-row h3{margin:0;font-size:clamp(1.7rem,4vw,3.8rem);letter-spacing:-.055em;transition:transform .42s cubic-bezier(.16,1,.3,1)}.more-row p{margin:0;color:var(--muted);line-height:1.45}.more-arrow{font-size:1.6rem;transition:transform .36s cubic-bezier(.16,1,.3,1)}.about-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(16rem,.55fr);gap:clamp(3rem,9vw,10rem);align-items:start;margin-top:2.5rem}.about-statement{margin:0;max-width:12ch;font-size:clamp(3.2rem,7vw,7rem);line-height:.9;letter-spacing:-.065em}.about-copy{display:grid;gap:1.5rem;font-size:1rem;line-height:1.55;color:var(--muted)}.about-copy p{margin:0}.now-strip{margin-top:clamp(4rem,8vw,8rem);display:grid;grid-template-columns:minmax(0,.35fr) minmax(0,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.now-strip>*{padding:clamp(1.4rem,3vw,2.6rem) 0}.now-strip .small-label{color:var(--muted)}.now-strip p{margin:0;font-size:clamp(1.6rem,3.7vw,3.6rem);line-height:1;letter-spacing:-.05em}.site-footer{padding:clamp(5rem,10vw,10rem) var(--pad) 2rem;background:var(--ink);color:var(--paper)}.site-footer .kicker{margin:0 0 1rem;color:#aaa69f;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.footer-cta{display:flex;flex-direction:column;gap:.2rem;padding:2rem 0 clamp(4rem,8vw,8rem)}.footer-cta span{font-family:var(--serif);font-style:italic;font-size:clamp(2rem,4vw,4.5rem)}.footer-cta strong{font-size:clamp(5rem,14vw,14rem);line-height:.78;letter-spacing:-.08em;transition:transform .5s cubic-bezier(.16,1,.3,1),color .22s ease}.footer-meta{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.22);color:#aaa69f}.pointer{display:none}@media(hover:hover)and (pointer:fine){.has-custom-pointer,.has-custom-pointer a{cursor:none}.pointer{position:fixed;z-index:200;left:0;top:0;display:grid;place-items:center;width:0;height:0;pointer-events:none}.pointer:before{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--ink);transform:translate(-50%,-50%);transition:width .22s ease,height .22s ease,background .22s ease}.pointer span{position:absolute;opacity:0;transform:translate(-50%,-50%) scale(.8);color:#fff;font-size:.58rem;font-weight:750;letter-spacing:.1em;transition:opacity .15s ease,transform .22s ease}.pointer[data-active=true]:before{width:64px;height:64px;background:var(--accent)}.pointer[data-active=true] span{opacity:1;transform:translate(-50%,-50%) scale(1)}}[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms)}[data-reveal].is-inview{opacity:1;transform:translateY(0)}[data-reveal][data-magnetic]{transform:translate3d(var(--magnetic-x, 0px),calc(var(--magnetic-y, 0px) + 30px),0)}[data-reveal][data-magnetic].is-inview{transform:translate3d(var(--magnetic-x, 0px),var(--magnetic-y, 0px),0)}[data-drift]{transform:translateY(var(--drift-y, 0px))}@keyframes workshop-pulse{0%{transform:scale(1.58) translateZ(0)}to{transform:scale(1.64) translate3d(-1.2%,-.8%,0)}}@keyframes stage-unveil{to{transform:scaleX(0)}}@keyframes room-breathe{50%{transform:perspective(600px) rotateX(62deg) rotate(-5deg) translateY(calc(var(--drift-y, 0px) - 10px))}}@keyframes flow-float{50%{transform:translateY(-12px) rotate(-1deg)}}@keyframes phone-float{50%{transform:translateY(-5%) rotate(2deg)}}@keyframes data-pulse{to{transform:scaleY(.82)}}@media(hover:hover)and (pointer:fine){.project-stage-link:hover .project-stage{border-radius:1.4rem}.work-item:has(.project-stage-link:hover) .project-title{color:var(--accent);transform:translate(.035em)}.more-row:hover h3{transform:translate(.22em)}.more-row:hover .more-arrow{transform:translate(.2em,-.2em) rotate(10deg)}.footer-cta:hover strong{color:#9db1ff;transform:translate(.03em)}}::view-transition-old(root){animation:page-leave .28s cubic-bezier(.4,0,1,1) both}::view-transition-new(root){animation:page-enter .52s cubic-bezier(.16,1,.3,1) both}@keyframes page-leave{to{opacity:0;transform:translateY(-1.5vh)}}@keyframes page-enter{0%{opacity:0;transform:translateY(2vh)}}.case-hero{padding:clamp(4rem,8vw,8rem) var(--pad) 2rem}.case-back{display:inline-flex;margin-bottom:clamp(3rem,7vw,7rem);color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.case-title{margin:0;max-width:9ch;font-size:clamp(5rem,14vw,14rem);line-height:.74;letter-spacing:-.085em}.case-lede{max-width:40rem;margin:clamp(2rem,4vw,4rem) 0 0 auto;font-size:clamp(1.35rem,3vw,2.7rem);line-height:1.03;letter-spacing:-.045em}.case-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:clamp(4rem,8vw,8rem);padding-top:1rem;border-top:1px solid var(--line)}.case-meta-grid div{display:grid;gap:.4rem}.case-meta-grid span{color:var(--muted);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase}.case-meta-grid strong{font-size:.9rem;font-weight:600}.case-stage-wrap{padding:0 var(--pad)}.case-body{padding:clamp(5rem,10vw,10rem) var(--pad)}.case-block{display:grid;grid-template-columns:minmax(8rem,.3fr) minmax(0,1fr);gap:clamp(2rem,8vw,10rem);padding:clamp(2rem,5vw,5rem) 0;border-top:1px solid var(--line)}.case-block h2{margin:0;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.case-block p{margin:0;max-width:50rem;font-size:clamp(1.5rem,3.3vw,3.4rem);line-height:1.04;letter-spacing:-.045em}.case-stack{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:2rem}.case-stack span{padding:.55rem .7rem;border:1px solid var(--line);border-radius:999px;font-size:.7rem}.next-project{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:end;padding:clamp(4rem,9vw,9rem) var(--pad);border-top:1px solid var(--line)}.next-project span{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.next-project strong{font-size:clamp(3.8rem,10vw,10rem);line-height:.8;letter-spacing:-.075em}.next-project b{font-size:clamp(2rem,5vw,5rem);font-weight:400}@media(max-width:760px){:root{--header-h: 4rem}.site-header nav{gap:.75rem;font-size:.62rem}.hero{min-height:auto;padding-top:1rem;padding-bottom:1.5rem}.hero-visual{inset:0}.hero-visual:after{background:linear-gradient(180deg,rgba(239,235,226,.22),var(--paper) 78%)}.hero-title{margin-top:14rem}.hero-title{margin:5rem 0 4rem;font-size:clamp(4rem,21vw,6.7rem)}.hero-bottom,.project-copy,.about-grid,.now-strip,.case-block{grid-template-columns:1fr}.hero-aside{justify-self:start}.project-topline{grid-template-columns:2.5rem 1fr}.project-topline span:last-child{display:none}.project-title{font-size:clamp(3.5rem,18vw,6.4rem)}.project-stage{min-height:24rem}.project-foot{align-items:flex-start;flex-direction:column}.more-row{grid-template-columns:2.5rem 1fr auto}.more-row p{display:none}.about-statement{font-size:clamp(3.4rem,16vw,6rem)}.now-strip .small-label{padding-bottom:0}.footer-cta strong{font-size:clamp(4rem,20vw,7rem)}.footer-meta{flex-wrap:wrap}.case-title{font-size:clamp(5rem,23vw,8rem)}.case-lede{margin-left:0}.case-meta-grid{grid-template-columns:1fr 1fr;row-gap:1.4rem}.case-block p{font-size:clamp(1.7rem,7vw,2.6rem)}.next-project{grid-template-columns:1fr auto}.next-project span{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}[data-reveal]{opacity:1;transform:none}[data-drift]{transform:none}}
