*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:var(--fs-body);line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;transition:background-color var(--t-theme) var(--ease-io),color var(--t-theme) var(--ease-io)}.menu-open body{overflow:hidden}::selection{background:var(--selection);color:#fff}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}img,svg,canvas{display:block}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}.skip{position:fixed;left:16px;top:-80px;z-index:300;padding:10px 16px;border-radius:var(--r-pill);background:var(--fg);color:var(--bg);font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;transition:top .2s var(--ease)}.skip:focus{top:12px}main:focus{outline:none}.mono{font-family:var(--mono);font-size:var(--fs-mono);line-height:1.5;letter-spacing:.04em;text-transform:uppercase;font-variant-numeric:tabular-nums}.label{font-family:var(--mono);font-size:var(--fs-mono);line-height:1.5;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:400}.muted{color:var(--muted)}.lc{text-transform:none}.accent{color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g)}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance;font-weight:500}html:not(.js) [data-needs-js]{display:none!important}.grain{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:var(--grain-opacity);filter:invert(var(--grain-invert));background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.js:not(.rm) .rv{opacity:0;transform:translate3d(0,26px,0);transition:opacity 1s var(--ease),transform 1.15s var(--ease);transition-delay:calc(var(--d, 0) * 90ms)}.js:not(.rm) .rv.in{opacity:1;transform:none}.split .w{display:inline-block;vertical-align:top;clip-path:inset(-.25em -.4em -.16em -.4em)}.split .w>span{display:inline-block;transform:translate3d(0,125%,0);transition:transform 1.15s var(--ease);transition-delay:calc(var(--i) * 34ms + var(--d, 0) * 90ms)}.split.in .w>span,.rm .split .w>span{transform:none}.pre{display:none}.js:not(.rm) .pre{display:grid;position:fixed;inset:0;z-index:200;background:var(--bg);place-items:center;transition:transform .85s var(--ease-io),visibility 0s .9s;animation:preFail 0s 3.2s forwards}.loaded .pre{transform:translate3d(0,-100%,0);visibility:hidden}@keyframes preFail{to{visibility:hidden;transform:translate3d(0,-100%,0)}}.pre-in{display:grid;gap:14px;justify-items:center;text-align:center}.pre-bar{font-family:var(--mono);font-size:15px;letter-spacing:.12em;white-space:pre;color:var(--fg);min-height:1.5em}.pre-bar b{font-weight:400;color:var(--accent)}.pre-meta{display:flex;gap:28px;color:var(--muted)}.pre-num{color:var(--fg)}.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:center;padding:14px var(--m);transition:background-color .45s var(--ease),backdrop-filter .45s,border-color .45s;border-bottom:1px solid transparent}.nav.scrolled{background:color-mix(in oklab,var(--bg) 74%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border-bottom-color:color-mix(in oklab,var(--line) 70%,transparent)}.nav-progress{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--cobalt);transform-origin:0 50%;transform:scaleX(0)}.brand{grid-column:1/4;display:inline-flex;align-items:center;gap:10px;font-weight:500;font-size:16px;letter-spacing:-.01em;justify-self:start}.brand-mark{width:22px;height:22px;flex:none;transition:transform 1.1s var(--ease)}.brand-mark .dot{fill:var(--cobalt);stroke:none}.brand:hover .brand-mark{transform:rotate(120deg)}.brand sup{font-family:var(--mono);font-size:9px;color:var(--muted);margin-left:-6px;transform:translateY(-5px)}.nav-links{grid-column:5/10;display:flex;gap:clamp(18px,2.4vw,36px)}.nav-links a{font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;display:inline-flex;gap:6px;padding:6px 0;position:relative}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s var(--ease)}.nav-links a:hover:after,.nav-links a:focus-visible:after{transform:scaleX(1);transform-origin:0 50%}.nav-right{grid-column:10/13;display:flex;align-items:center;justify-content:flex-end;gap:18px}.nav-clock{color:var(--muted);white-space:nowrap}.nav-clock time{color:var(--fg)}.theme-toggle{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);transition:border-color .3s,transform .3s var(--ease)}.theme-toggle:hover{border-color:var(--fg)}.theme-toggle:active{transform:scale(.92)}.theme-toggle svg{width:16px;height:16px;transition:transform .8s var(--ease)}[data-theme=light] .theme-toggle svg{transform:rotate(180deg)}.menu-toggle{display:none;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;height:34px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-pill)}.menu-toggle .bars{width:14px;height:8px;position:relative}.menu-toggle .bars:before,.menu-toggle .bars:after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .45s var(--ease)}.menu-toggle .bars:before{top:0}.menu-toggle .bars:after{bottom:0}.menu-open .menu-toggle .bars:before{transform:translateY(3.25px) rotate(45deg)}.menu-open .menu-toggle .bars:after{transform:translateY(-3.25px) rotate(-45deg)}.mnav{position:fixed;inset:0;z-index:55;background:var(--bg);padding:96px var(--m) var(--m);display:flex;flex-direction:column;justify-content:space-between;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-io),visibility 0s .7s}.menu-open .mnav{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .7s var(--ease-io),visibility 0s}.mnav ul{display:grid;gap:4px}.mnav li a{display:flex;align-items:baseline;gap:14px;font-size:clamp(44px,13vw,84px);font-weight:500;letter-spacing:-.045em;line-height:1.02;padding:4px 0;border-bottom:1px solid var(--line)}.mnav li a i{font-family:var(--mono);font-style:normal;font-size:var(--fs-mono);letter-spacing:.05em;color:var(--muted);transform:translateY(-1.6em)}.mnav-foot{display:grid;gap:6px}.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;isolation:isolate}.ascii{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;z-index:0;will-change:transform;font-family:var(--mono)}.ascii-fb{display:none;position:absolute;z-index:0;margin:0;left:55.5%;top:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:min(calc(66svh / 54),calc(46vw / 60));line-height:1.22;letter-spacing:0;white-space:pre;color:var(--fg);user-select:none;pointer-events:none}html:not(.js) .ascii-fb,.hero.no-canvas .ascii-fb{display:block}@media (min-width: 861px) and (max-width: 1100px){.ascii-fb{left:57%;top:46%;font-size:min(calc(50svh / 54),.5vw)}}html:not(.js) .ascii,.hero.no-canvas .ascii{display:none}.hero-ui{position:absolute;inset:0;z-index:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr auto auto;column-gap:var(--g);padding:calc(70px + 2vh) var(--m) 0;pointer-events:none;will-change:transform,opacity}.hero-ui a,.hero-ui button{pointer-events:auto}.hm{grid-row:1;color:var(--muted)}.hm b{font-weight:400;color:var(--fg)}.hm-1{grid-column:1/4}.hm-2{grid-column:4/7}.hm-3{grid-column:7/10}.hm-4{grid-column:10/13;text-align:right}.fig{grid-row:2;grid-column:10/13;align-self:end;justify-self:end;text-align:right;display:grid;gap:10px;justify-items:end;margin-bottom:clamp(18px,3vh,36px)}.fig p{color:var(--muted);max-width:34ch}.fig p b{font-weight:400;color:var(--fg)}.form-btn{display:inline-flex;align-items:center;gap:10px;height:32px;padding:0 14px 0 12px;border-radius:var(--r-pill);border:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;background:color-mix(in oklab,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s,background-color .3s}.form-btn svg{width:13px;height:13px;transition:transform .7s var(--ease)}.form-btn:hover{border-color:var(--cobalt)}.form-btn:hover svg{transform:rotate(180deg)}.form-btn:active{transform:scale(.97)}.readout{color:var(--muted);white-space:nowrap}.fb-short{display:none}.hero-role{grid-row:3;grid-column:1/6;font-size:var(--fs-hero-role);line-height:1.38;letter-spacing:-.01em;max-width:34ch;margin-bottom:clamp(10px,1.6vw,22px)}.hero-role em{font-style:italic;color:var(--muted)}.hero-side{grid-row:3;grid-column:8/13;justify-self:end;align-self:end;display:flex;gap:22px;align-items:center;margin-bottom:clamp(10px,1.6vw,22px)}.status{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.pulse{width:7px;height:7px;border-radius:50%;background:var(--cobalt);position:relative;flex:none}.pulse:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--cobalt);animation:ping 2.4s var(--ease) infinite}@keyframes ping{0%{transform:scale(.4);opacity:1}80%,to{transform:scale(1.6);opacity:0}}.scroll-cue{display:inline-flex;gap:8px;align-items:center;color:var(--muted);transition:color .25s}.scroll-cue:hover{color:var(--fg)}.scroll-cue .ln{width:1px;height:22px;background:var(--line);position:relative;overflow:hidden}.scroll-cue .ln:after{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background:var(--fg);animation:drip 2s var(--ease-io) infinite}@keyframes drip{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}.hero-name{grid-row:4;grid-column:1/-1;font-size:var(--fs-hero-name);line-height:.8;letter-spacing:-.058em;font-weight:500;margin:0 0 0 -.05em;white-space:nowrap}.hero-name .nm{display:block;clip-path:inset(-.3em -.2em 0 -.2em);padding-bottom:.17em}.hero-name .ch{display:inline-block}.js:not(.rm) .hero-name .ch{transform:translate3d(0,112%,0)}.js:not(.rm).loaded .hero-name .ch{transform:none;transition:transform 1.25s var(--ease);transition-delay:calc(.12s + var(--i) * 60ms)}.js:not(.rm) .hf{opacity:0;filter:blur(8px);transform:translate3d(0,10px,0)}.js:not(.rm).loaded .hf{opacity:1;filter:none;transform:none;transition:opacity 1s var(--ease),filter 1s var(--ease),transform 1s var(--ease);transition-delay:calc(.3s + var(--d, 0) * 70ms)}.reg{position:absolute;width:11px;height:11px;z-index:1;pointer-events:none;color:var(--grey)}.reg:before,.reg:after{content:"";position:absolute;background:currentColor}.reg:before{left:5px;top:0;width:1px;height:11px}.reg:after{top:5px;left:0;height:1px;width:11px}.reg-tl{left:calc(var(--m) - 5px);top:64px}.reg-tr{right:calc(var(--m) - 5px);top:64px}section{position:relative}.sec{padding:var(--sec-pad) var(--m)}.sec-top{align-items:end;margin-bottom:clamp(40px,6vw,88px)}.h-xl{font-size:var(--fs-xl);line-height:.88;letter-spacing:-.05em;font-weight:500}.h-l{font-size:var(--fs-l);line-height:.92;letter-spacing:-.045em;font-weight:500}.sec-note{font-size:17px;line-height:1.55;color:var(--muted);max-width:44ch}.work{padding-bottom:clamp(40px,5vw,72px)}.work .sec-top .label{grid-column:1/3;align-self:start;padding-top:.8em}.work .sec-top h2{grid-column:3/10}.work-side{grid-column:10/13;display:grid;gap:18px;justify-items:end;text-align:right}.work-side .sec-note{font-size:15px}.vt{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r-pill);padding:3px}.vt-pill{position:absolute;top:3px;left:3px;bottom:3px;width:calc(50% - 3px);border-radius:var(--r-pill);background:var(--fg);transition:transform .55s var(--ease)}.vt.is-grid .vt-pill{transform:translate(100%)}.vt-b{position:relative;z-index:1;height:30px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--r-pill);transition:color .4s var(--ease)}.vt-b[aria-pressed=true]{color:var(--bg)}.vt-b svg{width:12px;height:12px}.work-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--line)}.work-head span:nth-child(1){grid-column:1/2}.work-head span:nth-child(2){grid-column:2/7}.work-head span:nth-child(3){grid-column:7/9}.work-head span:nth-child(4){grid-column:9/12}.work-head span:nth-child(5){grid-column:12/13;text-align:right}.work-list{transition:opacity .28s var(--ease),transform .28s var(--ease)}.work.switching .work-list,.work.switching .work-head{opacity:0;transform:translate3d(0,10px,0)}.js:not(.rm) .wr.rv.in{transition:opacity .45s var(--ease),transform 1.15s var(--ease)}.wr{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:baseline;padding:clamp(16px,1.8vw,26px) 0;border-bottom:1px solid var(--line);position:relative;outline-offset:-2px;transition:opacity .4s var(--ease)}.wr:before{content:"";position:absolute;inset:0 calc(var(--m) * -1);background:var(--card);transform:scaleY(0);transform-origin:50% 100%;transition:transform .5s var(--ease);z-index:-1}.wr-no{grid-column:1/2;color:var(--muted);transition:color .3s}.wr-title{grid-column:2/7;font-size:var(--fs-row);line-height:1;letter-spacing:-.04em;font-weight:500;display:flex;align-items:center;gap:16px;transition:transform .6s var(--ease)}.wr-client{grid-column:7/9;color:var(--fg)}.wr-disc{grid-column:9/12;color:var(--muted)}.wr-year{grid-column:12/13;text-align:right;color:var(--muted)}.wr-case{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border:1px solid var(--cobalt);color:var(--accent);border-radius:var(--r-pill);letter-spacing:.04em;transition:background-color .3s,color .3s;white-space:nowrap}.wr-case:hover{background:var(--accent-fill);color:var(--on-accent)}.wr-tile{display:none}@media (hover: hover){.work:not(.is-grid) .work-list:hover .wr:not(:hover){opacity:.3}.work:not(.is-grid) .wr:hover .wr-title{transform:translate(14px)}.work:not(.is-grid) .wr:hover .wr-no{color:var(--accent)}.work:not(.is-grid) .wr:hover:before{transform:scaleY(1)}}.work:not(.is-grid) .wr:focus-visible .wr-no{color:var(--accent)}.work.is-grid .work-head{display:none}.work.is-grid .work-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(28px,3vw,44px) var(--g)}.work.is-grid .wr{grid-template-columns:auto 1fr auto;grid-template-areas:"tile tile tile" "no title year" ". client client" ". disc disc";row-gap:6px;column-gap:12px;padding:0;border:0;animation:tileIn .9s var(--ease) both;animation-delay:calc(var(--i) * 55ms)}.work.is-grid .wr:before{display:none}.work.is-grid .wr-tile{display:block;grid-area:tile;position:relative;aspect-ratio:4/3;border-radius:var(--r-tile);overflow:hidden;background:#000;margin-bottom:10px;transform:translateZ(0)}.wr-tile canvas{position:absolute;inset:0;width:100%;height:100%;transition:transform .9s var(--ease)}.wr-tile .mono{position:absolute;left:10px;bottom:9px;z-index:1;color:#fff;mix-blend-mode:difference;font-size:10.5px}.work.is-grid .wr:hover .wr-tile canvas{transform:scale(1.04)}.work.is-grid .wr-no{grid-area:no}.work.is-grid .wr-title{grid-area:title;font-size:clamp(20px,1.7vw,26px);letter-spacing:-.025em;gap:10px;flex-wrap:wrap}.work.is-grid .wr-year{grid-area:year}.work.is-grid .wr-client{grid-area:client;font-size:15px;color:var(--muted)}.work.is-grid .wr-disc{grid-area:disc}.work.is-grid .wr-case{height:22px;font-size:10.5px}@keyframes tileIn{0%{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}.preview{position:fixed;left:0;top:0;z-index:45;width:clamp(260px,23vw,352px);aspect-ratio:4/3;pointer-events:none;border-radius:var(--r-tile);overflow:hidden;background:#000;opacity:0;visibility:hidden;clip-path:inset(50% 0 50% 0 round 14px);transition:clip-path .6s var(--ease),opacity .35s var(--ease),visibility 0s .6s;will-change:transform;box-shadow:var(--shadow-pop)}.preview.on{opacity:1;visibility:visible;clip-path:inset(0 0 0 0 round 14px);transition-delay:0s}.preview canvas{position:absolute;inset:0;width:100%;height:100%}.pv-cap{position:absolute;left:12px;right:12px;bottom:10px;display:flex;justify-content:space-between;color:#fff;mix-blend-mode:difference;font-size:10.5px}.case{height:430vh}.case-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr auto;column-gap:var(--g);padding:84px var(--m) var(--m)}.case-head{grid-column:1/5;grid-row:1;display:grid;gap:18px;align-content:start}.case-title{font-size:clamp(34px,3.6vw,58px);line-height:.96;letter-spacing:-.04em}.case-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;padding-top:16px;border-top:1px solid var(--line)}.case-meta dt{color:var(--muted)}.case-stage{grid-column:5/13;grid-row:1/4;position:relative;border-radius:var(--r-stage);overflow:hidden;background:var(--card);border:1px solid var(--line);transition:background-color var(--t-theme) var(--ease-io)}.case-stage canvas{position:absolute;inset:0;width:100%;height:100%}.stage-fb{display:none;position:absolute;inset:0;width:100%;height:100%;color:var(--fg)}.stage-fb .acc{stroke:var(--cobalt)}.st{position:absolute;z-index:1;color:var(--muted);pointer-events:none}.st-tl{left:18px;top:16px}.st-tr{right:18px;top:16px;text-align:right}.st-bl{left:18px;bottom:14px}.st-br{right:18px;bottom:14px;text-align:right}.case-steps{grid-column:1/5;grid-row:2;position:relative;align-self:stretch}.step{position:absolute;left:0;right:0;bottom:24px;display:grid;gap:14px;opacity:0;visibility:hidden;transform:translate3d(0,18px,0);transition:opacity .6s var(--ease),transform .8s var(--ease),visibility 0s .6s;pointer-events:none}.step.on{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}.step .mono{color:var(--accent)}.step h3{font-size:clamp(24px,2.2vw,34px);line-height:1.04;letter-spacing:-.03em}.step p{color:var(--muted);max-width:40ch;font-size:16.5px}.step dl{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:4px 26px;margin-top:6px}.step dt{font-family:var(--sans);font-size:clamp(26px,2.3vw,34px);letter-spacing:-.04em;font-weight:500;line-height:1;color:var(--fg);text-transform:none}.step dd{grid-row:2;color:var(--muted)}.case-prog{grid-column:1/5;grid-row:3;display:flex;align-items:center;gap:14px;color:var(--muted)}.case-prog .cp-num{color:var(--fg)}.cp-bar{flex:1;height:1px;background:var(--line);position:relative;overflow:hidden;max-width:220px}.cp-bar i{position:absolute;inset:0;background:var(--cobalt);transform-origin:0 50%;transform:scaleX(0)}.cp-ticks{display:flex;gap:6px}.cp-ticks i{width:6px;height:6px;border-radius:50%;border:1px solid var(--grey);transition:background-color .3s,border-color .3s}.cp-ticks i.on{background:var(--cobalt);border-color:var(--cobalt)}.case.is-flat{height:auto}.case.is-flat .case-pin{position:static;height:auto;overflow:visible;grid-template-rows:auto auto 1fr;padding:clamp(72px,8vw,120px) var(--m);row-gap:40px}.case.is-flat .case-steps{display:grid;gap:44px;align-self:start}.case.is-flat .step{position:static;opacity:1;visibility:visible;transform:none;pointer-events:auto}.case.is-flat .case-prog,.case.is-flat .st-tr,.case.is-flat .st-br{display:none}.case.is-flat .case-stage{grid-row:1/4;min-height:min(78vh,720px);position:sticky;top:84px;align-self:start;height:min(78vh,720px)}.case.is-flat .stage-fb{display:block}.case.is-flat .case-stage canvas{display:none}.play{padding-bottom:clamp(56px,7vw,110px)}.play .sec-top .label{grid-column:1/3;align-self:start;padding-top:.8em}.play .sec-top h2{grid-column:3/9}.play .sec-top .sec-note{grid-column:9/13}.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--g);grid-auto-rows:minmax(300px,auto)}.exp{position:relative;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;transition:background-color var(--t-theme) var(--ease-io),border-color .4s}.exp:hover{border-color:color-mix(in oklab,var(--fg) 26%,var(--line))}.exp-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 18px 0;position:relative;z-index:2}.exp-h h3{font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;font-weight:400}.exp-h span{color:var(--muted)}.exp-b{display:grid;place-items:center;position:relative;min-height:180px}.exp-f{padding:0 18px 16px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;position:relative;z-index:2}.exp-f span:last-child{white-space:nowrap}.exp--goo{grid-column:1/7;grid-row:span 2}.exp--mag{grid-column:7/10}.exp--spring{grid-column:10/13}.exp--dial{grid-column:7/10}.exp--scr{grid-column:10/13}.exp--type{grid-column:1/13;min-height:340px}.goo-pad{position:absolute;inset:0;touch-action:pan-y;cursor:crosshair;background-image:radial-gradient(circle at 1px 1px,var(--line) 1px,transparent 1.4px);background-size:18px 18px;background-position:9px 9px}.goo-layer{position:absolute;inset:0;filter:url(#goo)}.blob{position:absolute;left:var(--bx, 50%);top:var(--by, 50%);width:var(--bs, 60px);height:var(--bs, 60px);transform:translate(-50%,-50%);border-radius:50%;background:var(--cobalt);will-change:transform}.blob.alt{background:var(--fg)}.goo-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--muted);pointer-events:none;transition:opacity .5s,visibility 0s 0s}.goo-pad.touched .goo-hint{opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s}.magnet{position:relative;width:148px;height:148px;border-radius:50%;background:var(--fg);color:var(--bg);display:grid;place-items:center;font-weight:500;font-size:15px;letter-spacing:-.01em;will-change:transform;transition:background-color .35s}.magnet span{display:block;will-change:transform;pointer-events:none}.magnet:hover{background:var(--accent-fill);color:var(--on-accent)}.magnet:active{scale:.95}.spring{display:grid;gap:20px;justify-items:center}.sw{width:124px;height:60px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card-2);position:relative;transition:background-color .4s var(--ease),border-color .4s}.sw[aria-checked=true]{background:var(--cobalt);border-color:var(--cobalt)}.sw .knob{position:absolute;left:5px;top:5px;width:48px;height:48px;border-radius:50%;background:var(--fg);box-shadow:var(--shadow-knob);will-change:transform}.sw[aria-checked=true] .knob{background:#fff}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-pill);padding:2px}.seg button{height:26px;padding:0 12px;border-radius:var(--r-pill);font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);transition:color .25s,background-color .25s}.seg button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.dial-wrap{position:relative;width:164px;height:164px}.dial-ticks{position:absolute;inset:0;width:100%;height:100%}.dial-ticks line{stroke:var(--grey);stroke-width:1.2;transition:stroke .2s}.dial-ticks line.on{stroke:var(--cobalt)}.dial{position:absolute;inset:26px;border-radius:50%;background:var(--card-2);border:1px solid var(--line);cursor:grab;touch-action:none;box-shadow:inset 0 1px color-mix(in oklab,var(--fg) 10%,transparent)}.dial:active{cursor:grabbing}.dial-ind{position:absolute;left:50%;top:10px;width:2px;height:22px;margin-left:-1px;border-radius:2px;background:var(--fg)}.dial-read{display:flex;align-items:center;gap:10px}.dial-read .bpm{font-family:var(--sans);font-size:30px;letter-spacing:-.04em;font-weight:500;text-transform:none;color:var(--fg);font-variant-numeric:tabular-nums}.beat{width:8px;height:8px;border-radius:50%;background:var(--cobalt)}@keyframes beat{0%{opacity:1;transform:scale(1.25)}to{opacity:.15;transform:scale(.75)}}.dialbox{display:grid;justify-items:center;gap:10px}.scr{display:grid;gap:22px;justify-items:center;text-align:center;padding:0 12px}.scr-word{font-family:var(--mono);font-size:clamp(28px,2.6vw,40px);letter-spacing:-.02em;text-transform:none;min-height:1.2em;white-space:nowrap}.btn-roll{position:relative;display:inline-flex;align-items:center;gap:10px;height:38px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;overflow:hidden;transition:border-color .3s}.btn-roll:hover{border-color:var(--fg)}.btn-roll .t{display:block;height:1.5em;overflow:hidden;line-height:1.5}.btn-roll .t span{display:block;transition:transform .5s var(--ease)}.btn-roll .t span+span{color:var(--accent)}.btn-roll:hover .t span{transform:translateY(-100%)}.btn-roll:active{transform:scale(.97)}.ktype-b{display:grid;grid-template-columns:1fr;gap:18px;padding:0 18px;align-content:center}.ktype{font-size:var(--fs-ktype);line-height:.9;letter-spacing:.025em;font-weight:400;white-space:nowrap;display:flex;justify-content:center;padding:.2em 0 .06em}.ktype span{display:inline-block;transform-origin:50% 88%;will-change:transform;transform:scaleY(1.01)}.kt-ctl{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;max-width:720px;width:100%;margin:0 auto}.range{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer}.range::-webkit-slider-runnable-track{height:1px;background:var(--line)}.range::-moz-range-track{height:1px;background:var(--line)}.range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--fg);margin-top:-11px;border:0;transition:transform .2s var(--ease),background-color .2s}.range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--fg);border:0}.range:hover::-webkit-slider-thumb{transform:scale(1.15);background:var(--accent-fill)}.range:active::-webkit-slider-thumb{transform:scale(.9)}.kt-out{color:var(--muted);min-width:21ch;text-align:right}.about-top .label{grid-column:1/3;padding-top:1.1em}.bio{grid-column:3/13;font-size:var(--fs-bio);line-height:1.1;letter-spacing:-.03em;font-weight:400;text-wrap:pretty}.bio .bw{color:color-mix(in srgb,var(--fg) calc(var(--o, 1) * 100%),var(--muted))}.info{margin-top:clamp(64px,9vw,128px);row-gap:clamp(40px,5vw,64px)}.ib{border-top:1px solid var(--line);padding-top:16px;display:grid;gap:16px;align-content:start}.ib ul{display:grid;gap:5px}.ib li{font-size:16.5px;line-height:1.4}.ib li .mono{color:var(--muted);margin-right:8px}.ib-s{grid-column:1/4}.ib-t{grid-column:4/7}.ib-r{grid-column:7/10}.ib-k{grid-column:10/13}.ib-now{grid-column:1/7}.ib-now p{font-size:clamp(20px,1.8vw,26px);line-height:1.3;letter-spacing:-.02em;max-width:30ch}.ib-num{grid-column:7/13}.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--g)}.nums div{display:grid;gap:4px}.nums b{font-size:clamp(34px,3.6vw,56px);font-weight:500;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}.nums span{color:var(--muted)}.bars{display:flex;align-items:flex-end;gap:6px;height:64px;margin-top:10px}.bars i{flex:1;background:var(--line);height:calc(var(--h) * 10%);transform-origin:50% 100%;transition:background-color .3s}.js:not(.rm) .bars i{transform:scaleY(.04);transition:transform 1s var(--ease),background-color .3s;transition-delay:calc(var(--i) * 60ms)}.js:not(.rm) .in .bars i{transform:none}.bars i:last-child{background:var(--cobalt)}.bars i:hover{background:var(--fg)}.bars-x{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.clients .sec-top .label{grid-column:1/3;align-self:start;padding-top:.6em}.clients .sec-top h2{grid-column:3/13}.cl-grid{align-items:start}.client-list{grid-column:3/13;display:block;font-size:var(--fs-clients);line-height:1.14;letter-spacing:-.04em;font-weight:500;text-wrap:pretty}.client-list li{display:inline;position:relative}.client-list li>span{position:relative;display:inline;white-space:nowrap;transition:color .3s}.client-list li:after{content:"\a0/ ";color:var(--grey);font-weight:300}.client-list li:last-child:after{content:""}.client-list sup{position:absolute;left:0;top:-.2em;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-weight:400;line-height:1;white-space:nowrap;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .3s,transform .5s var(--ease),visibility 0s .5s}.client-list:hover li>span{color:color-mix(in oklab,var(--fg) 40%,transparent)}.client-list li>span:hover{color:var(--fg)}.client-list li>span:hover sup{opacity:1;visibility:visible;transform:none;transition-delay:0s}.awards{grid-column:3/13;margin-top:clamp(56px,7vw,100px)}.awards h3{margin-bottom:14px}.aw{width:100%;border-collapse:collapse}.aw th{text-align:left;font-weight:400;color:var(--muted);padding:0 0 10px;border-bottom:1px solid var(--line)}.aw td{padding:15px 12px 15px 0;border-bottom:1px solid var(--line);vertical-align:baseline;transition:color .25s}.aw td:nth-child(2){font-size:clamp(18px,1.6vw,22px);letter-spacing:-.02em}.aw tr:hover td{color:var(--fg)}.aw tr:hover td:first-child{color:var(--accent)}.aw td.mono,.aw th{white-space:nowrap}.aw .r{text-align:right;padding-right:0}.marquee{border-block:1px solid var(--line);overflow:hidden;padding:18px 0;white-space:nowrap}.mq-track{display:inline-flex;animation:mq 46s linear infinite}.mq-track span{font-size:clamp(22px,2.4vw,36px);letter-spacing:-.03em;padding-right:1.2em;display:inline-flex;align-items:center;gap:1.2em}.mq-track span:after{content:"";width:.34em;height:.34em;border-radius:50%;background:var(--cobalt)}.mq-track em{font-style:italic;color:var(--muted)}@keyframes mq{to{transform:translate3d(-50%,0,0)}}.marquee:hover .mq-track,.marquee.off .mq-track{animation-play-state:paused}.rm .mq-track{animation:none}.contact{padding-bottom:clamp(72px,9vw,128px)}.contact .sec-top .label{grid-column:1/3;align-self:start;padding-top:.6em}.contact .sec-top h2{grid-column:3/12}.email{display:block;width:100%;text-align:left;font-size:var(--fs-email);font-weight:500;letter-spacing:-.055em;line-height:1.12;padding:.06em 0 .12em;cursor:pointer;white-space:nowrap;position:relative;margin-left:-.04em}.email[role=button]{cursor:copy}.email .ec{display:inline-block;height:1.12em;line-height:1.12;vertical-align:top;clip-path:inset(0 -.4em)}.email .ec>span{display:inline-block;text-shadow:0 1.12em 0 var(--cobalt);transition:transform .7s var(--ease);transition-delay:calc(var(--i) * 16ms)}.email:hover .ec>span,.email:focus-visible .ec>span{transform:translate3d(0,-1.12em,0)}.email:active{transform:scale(.995)}.email-line{height:1px;background:var(--line);position:relative;overflow:hidden}.email-line:after{content:"";position:absolute;inset:0;background:var(--cobalt);transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease)}.email:hover+.email-line:after{transform:scaleX(1)}.contact-row{margin-top:26px;align-items:start;row-gap:28px}.copy-hint{grid-column:1/3;color:var(--muted)}.contact-row p{grid-column:3/7;color:var(--muted);max-width:42ch}.socials{grid-column:8/13;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--g)}.soc{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:17px;transition:color .3s,padding .5s var(--ease)}.soc:hover{color:var(--accent);padding-left:6px}.arr{position:relative;width:14px;height:14px;overflow:hidden;flex:none}.arr svg{position:absolute;inset:0;width:14px;height:14px;transition:transform .5s var(--ease)}.arr svg+svg{transform:translate(-110%,110%)}.soc:hover .arr svg:first-child{transform:translate(110%,-110%)}.soc:hover .arr svg+svg{transform:none}.toast{position:fixed;left:50%;bottom:28px;z-index:120;transform:translate3d(-50%,24px,0);opacity:0;visibility:hidden;display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 20px 0 16px;border-radius:var(--r-pill);background:var(--toast-bg);color:var(--toast-fg);font-weight:500;font-size:15px;pointer-events:none;transition:opacity .35s var(--ease),transform .6s var(--ease),visibility 0s .6s}.toast.on{opacity:1;visibility:visible;transform:translate3d(-50%,0,0);transition-delay:0s}.toast i{width:18px;height:18px;border-radius:50%;background:var(--cobalt);display:grid;place-items:center}.toast svg{width:10px;height:10px}.toast.err i{display:none}.foot{padding:0 var(--m) 22px;border-top:1px solid var(--line);position:relative}.tide-ascii{margin:0 calc(var(--m) * -1);padding:18px 0 0;font-family:var(--mono);font-size:12px;line-height:1.05;color:var(--muted);white-space:pre;overflow:hidden;user-select:none}.foot-grid{padding-top:clamp(40px,5vw,72px);row-gap:36px;align-items:end}.foot-big{grid-column:1/6;font-size:var(--fs-foot);line-height:.92;letter-spacing:-.05em;font-weight:500}.foot-big em{font-style:italic;font-weight:400;color:var(--muted)}.foot-dl{grid-column:7/13;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px var(--g)}.foot-dl dt{color:var(--muted);margin-bottom:6px}.foot-dl dd{color:var(--fg)}.foot-base{grid-column:1/13;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--line);color:var(--muted)}.foot-links{display:inline-flex;gap:18px;flex-wrap:wrap;align-items:center}.foot-base a{transition:color .25s}.foot-base a:hover{color:var(--fg)}.to-top{font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.05em;text-transform:uppercase;display:inline-flex;gap:8px;align-items:center;transition:color .25s}.to-top:hover{color:var(--accent)}.to-top svg{width:11px;height:11px;transition:transform .5s var(--ease)}.to-top:hover svg{transform:translateY(-3px)}.pg{padding:calc(var(--sec-pad) * .9) var(--m) clamp(72px,9vw,128px);min-height:70svh}.pg-top{align-items:start;row-gap:18px}.pg-top .label{grid-column:1/3;padding-top:.8em}.pg-top h1{grid-column:3/13;font-size:var(--fs-xl);line-height:.88;letter-spacing:-.05em;font-weight:500}.pg-top h1 em{font-style:italic;font-weight:400;color:var(--muted)}.pg-body{margin-top:clamp(36px,5vw,72px);row-gap:24px}.pg-body>p,.pg-body>.pg-ctas{grid-column:3/10}.pg-lede{font-size:clamp(19px,1.8vw,26px);line-height:1.35;letter-spacing:-.015em;max-width:40ch}.pg-ctas{display:flex;gap:12px;flex-wrap:wrap}.pg-ctas .form-btn{height:40px;padding:0 18px;text-decoration:none}.pg-ctas .form-btn.solid{background:var(--fg);color:var(--bg);border-color:var(--fg)}.pg-legal{grid-column:3/10;display:grid;gap:14px}.pg-legal h2{font-size:clamp(22px,2vw,30px);letter-spacing:-.03em;margin-top:22px}.pg-legal p{color:var(--muted);max-width:62ch}.pg-legal a{text-decoration:underline;text-underline-offset:3px}.pg-note{grid-column:3/10;display:inline-flex;border:1px solid var(--cobalt);color:var(--accent);border-radius:var(--r-pill);padding:4px 12px;justify-self:start}.pg-foot{padding:0 var(--m) 22px;border-top:1px solid var(--line)}.pg-foot .foot-base{border-top:0;padding-top:22px}@media (max-width: 1100px){.nav-links{grid-column:4/10}.hm-3{display:none}.hm-2{grid-column:4/8}.work.is-grid .work-list{grid-template-columns:repeat(2,minmax(0,1fr))}.exp--goo{grid-column:1/13;grid-row:auto;min-height:380px}.exp--mag,.exp--dial{grid-column:1/7}.exp--spring,.exp--scr{grid-column:7/13}.ib-s,.ib-r{grid-column:1/7}.ib-t,.ib-k{grid-column:7/13}.ib-now,.ib-num{grid-column:1/13}}@media (max-width: 860px){.nav-links,.nav-clock{display:none}.menu-toggle{display:inline-flex}html:not(.js) .menu-toggle{display:none}html:not(.js) .nav-links{display:flex;grid-column:1/-1;grid-row:2;gap:18px;padding-top:4px}.brand{grid-column:1/7}.nav-right{grid-column:7/13;gap:10px}.hero-ui{padding-top:84px;grid-template-rows:auto 1fr auto auto auto}.hm-1{display:none}.hm-2{grid-column:1/8}.hm-4{grid-column:8/13}.fig{grid-row:3;grid-column:1/13;justify-self:end;align-self:center;margin-bottom:14px}.fig p,.readout,.fb-long{display:none}.fb-short{display:inline}.form-btn{height:30px;padding:0 12px 0 10px;font-size:10.5px}.hero-role{grid-row:4;grid-column:1/13;font-size:16px;margin-bottom:10px}.hero-side{grid-row:3;grid-column:1/13;justify-self:start;align-self:center;margin-bottom:14px}.hero-side .scroll-cue{display:none}.hero-name{grid-row:5;font-size:25vw;line-height:.8}.hero-name .nm{padding-bottom:.16em}.reg{display:none}.ascii-fb{left:50%;top:43%;font-size:min(calc(44svh / 54),calc(88vw / 60))}.work .sec-top .label,.play .sec-top .label,.clients .sec-top .label,.contact .sec-top .label,.pg-top .label{grid-column:1/13;padding:0 0 14px}.work .sec-top h2,.play .sec-top h2,.clients .sec-top h2,.contact .sec-top h2,.pg-top h1{grid-column:1/13}.pg-body>p,.pg-body>.pg-ctas,.pg-legal,.pg-note{grid-column:1/13}.work-side{grid-column:1/13;justify-items:start;text-align:left;margin-top:22px}.wr-tile .mono,.st-tr{display:none}.play .sec-top .sec-note{grid-column:1/13;margin-top:18px}.work-head{display:none}.wr{grid-template-columns:auto 1fr auto;grid-template-areas:"no title year" ". client client" ". disc disc";column-gap:14px;row-gap:4px;padding:18px 0}.wr-no{grid-area:no}.wr-title{grid-area:title;font-size:clamp(26px,7.4vw,40px);flex-wrap:wrap;gap:10px}.wr-year{grid-area:year}.wr-client{grid-area:client;font-size:15.5px;color:var(--muted)}.wr-disc{grid-area:disc}.work.is-grid .work-list{grid-template-columns:1fr 1fr;gap:26px 12px}.work.is-grid .wr{grid-template-areas:"tile tile" "no year" "title title" "client client" "disc disc";grid-template-columns:1fr auto;row-gap:3px}.work.is-grid .wr-title{font-size:19px}.work.is-grid .wr-client{font-size:14px}.work.is-grid .wr-tile{border-radius:10px;margin-bottom:8px}.case{height:400vh}.case-pin{grid-template-rows:auto minmax(0,1fr) auto auto;padding:76px var(--m) 18px;row-gap:14px}.case-head{grid-column:1/13;gap:10px}.case-title{font-size:clamp(26px,7vw,38px)}.case-meta{display:none}.case-stage{grid-column:1/13;grid-row:2;border-radius:16px}.case-steps{grid-column:1/13;grid-row:3;height:200px}.step{bottom:0;gap:8px}.step h3{font-size:22px}.step p{font-size:15px}.step dl{gap:2px 18px}.step dt{font-size:22px}.case-prog{grid-column:1/13;grid-row:4}.st-bl,.st-br{display:none}.case.is-flat{height:auto}.case.is-flat .case-pin{grid-template-rows:auto;padding:72px var(--m) 48px;row-gap:28px}.case.is-flat .case-stage{grid-row:2;position:relative;top:auto;height:min(94vw,520px);min-height:0}.case.is-flat .case-steps{grid-row:3;height:auto;gap:36px}.bento{grid-auto-rows:minmax(280px,auto)}.exp--goo,.exp--mag,.exp--spring,.exp--dial,.exp--scr,.exp--type{grid-column:1/13}.exp--goo{min-height:360px}.kt-ctl{grid-template-columns:1fr;gap:8px}.kt-ctl .label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.kt-out{text-align:left}.about-top .label{grid-column:1/13;padding:0 0 18px}.bio{grid-column:1/13;font-size:clamp(25px,6.6vw,34px);line-height:1.14}.ib-s,.ib-t,.ib-r,.ib-k,.ib-now,.ib-num{grid-column:1/13}.nums{grid-template-columns:repeat(2,1fr);row-gap:22px}.client-list,.awards{grid-column:1/13}.aw .hide-s{display:none}.contact-row p,.socials,.copy-hint,.foot-big,.foot-dl{grid-column:1/13}.foot-dl{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.socials{grid-template-columns:1fr}.hero-side .status{font-size:10.5px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}.mq-track{animation:none}}
