@font-face{font-family:Hanken Grotesk;src:url(/assets/fonts/hanken-grotesk.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/jetbrains-mono.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root{color-scheme:dark;--bg:#121111;--bg-raised:#181716;--fg:#f0e3de;--fg-strong:#fffbf5;--muted:#9a9390;--faint:#5f5a57;--subtle:#86817e;--line:#f0e3de2b;--line-strong:#f0e3de61;--accent:#ff4000;--accent-text:#ff6a33;--ink:#160a05;--sans:"Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--frame:1240px;--edge:clamp(8px, 3vw, 32px);--pad:clamp(16px, 3.5vw, 40px);--header-h:64px;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 8px)}body{background:var(--bg);min-height:100dvh;color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:16px;line-height:1.55;display:flex}img,svg,canvas{max-width:100%;display:block}a{color:inherit}h1,h2,h3,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--accent);color:var(--ink);font:500 13px/1 var(--mono);padding:8px 12px;text-decoration:none;position:absolute;top:-48px;left:12px}.skip:focus{top:12px}.frame{width:min(var(--frame), calc(100% - 2 * var(--edge)));border-inline:1px dashed var(--line);margin-inline:auto}main.frame{flex:1 0 auto}.section{border-top:1px dashed var(--line);position:relative}.section:before,.section:after{content:"";background:linear-gradient(var(--line-strong), var(--line-strong)) center / 1px 100% no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) center / 100% 1px no-repeat;pointer-events:none;z-index:2;width:11px;height:11px;position:absolute;top:-6px}.section:before{left:-6.5px}.section:after{right:-6.5px}.section--flush{border-top:0}.tag{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;display:inline-flex}.tag:before{content:"";background:var(--accent);width:6px;height:6px}.section-head{padding:clamp(40px, 6vw, 72px) var(--pad) clamp(28px, 4vw, 44px);gap:14px;display:grid}.section-head h2,.page-title{letter-spacing:-.03em;color:var(--fg-strong);font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.05}.section-note{max-width:56ch;color:var(--muted)}.arrow{flex:none;width:16px;height:16px;transition:transform .25s}.site-header{z-index:50;-webkit-backdrop-filter:blur(12px)saturate(1.2);border-bottom:1px dashed var(--line);background:#121111d1;position:sticky;top:0}.site-header .frame{height:var(--header-h);padding-inline:var(--pad);justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{flex:none;display:block}.brand img{width:auto;height:30px}.nav{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:clamp(12px,2.4vw,32px);display:flex}.nav a{color:var(--muted);text-decoration:none;transition:color .2s}.nav a:hover,.nav a[aria-current=page]{color:var(--fg-strong)}.nav .nav-cta{border:1px solid var(--line-strong);color:var(--fg-strong);border-radius:999px;padding:9px 14px;transition:border-color .2s,background-color .2s,color .2s}.nav .nav-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}@media (width<=520px){.brand img{height:26px}.nav{letter-spacing:.04em;gap:14px;font-size:11px}.nav .nav-hide-sm{display:none}.nav .nav-cta{padding:8px 11px}}.hero{border-top:0;align-items:flex-end;min-height:clamp(420px,68vh,640px);display:flex;position:relative;overflow:hidden}.hero-field{width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 110% at 78% 18%,#000 25%,#0000 78%);mask-image:radial-gradient(90% 110% at 78% 18%,#000 25%,#0000 78%)}.hero-copy{padding:0 var(--pad) clamp(40px, 6vw, 72px);gap:22px;display:grid;position:relative}.hero h1{letter-spacing:-.045em;max-width:11em;color:var(--fg-strong);font-size:clamp(42px,8.2vw,108px);font-weight:500;line-height:.94}.hero h1 .amp{color:var(--accent)}@media (width<=600px){.hero{min-height:440px}}.intro{grid-template-columns:minmax(0,7fr) minmax(0,5fr);display:grid}.intro-copy{padding:clamp(32px, 5vw, 56px) var(--pad);align-content:start;gap:18px;display:grid}.lede{letter-spacing:-.01em;color:var(--fg);max-width:34em;font-size:clamp(19px,2vw,24px);line-height:1.45}.lede strong{color:var(--fg-strong);font-weight:500}.intro-copy p:not(.lede){color:var(--muted);max-width:52ch}.spec{border-left:1px dashed var(--line);padding:clamp(24px, 4vw, 44px) var(--pad);align-self:stretch}.spec>div{border-bottom:1px dashed var(--line);grid-template-columns:96px minmax(0,1fr);gap:16px;padding:13px 0;display:grid}.spec>div:last-child{border-bottom:0}.spec dt{font:500 11.5px/1.9 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle)}.spec dd{color:var(--fg);font-size:15px}.spec a{text-decoration-color:var(--line-strong);text-underline-offset:3px}.spec a:hover{color:var(--accent-text);text-decoration-color:currentColor}@media (width<=820px){.intro{grid-template-columns:1fr}.spec{border-left:0;border-top:1px dashed var(--line)}}.grid-clip{border-top:1px dashed var(--line);overflow:hidden}.grid{grid-template-columns:repeat(var(--cols,4), minmax(0, 1fr));margin:0 -1px -1px 0;display:grid}.grid>*{border-right:1px dashed var(--line);border-bottom:1px dashed var(--line)}.projects{--cols:3}@media (width<=1040px){.projects{--cols:2}}@media (width<=600px){.projects{--cols:1}}.project{min-height:340px;padding:22px var(--pad) 22px;isolation:isolate;flex-direction:column;text-decoration:none;transition:background-color .3s;display:flex;position:relative;overflow:hidden}@media (width>=601px){.project{padding-inline:clamp(20px,2.2vw,28px)}}.project:after{--t:var(--accent);content:"";background:linear-gradient(var(--t), var(--t)) top left / 12px 1px no-repeat, linear-gradient(var(--t), var(--t)) top left / 1px 12px no-repeat, linear-gradient(var(--t), var(--t)) top right / 12px 1px no-repeat, linear-gradient(var(--t), var(--t)) top right / 1px 12px no-repeat, linear-gradient(var(--t), var(--t)) bottom left / 12px 1px no-repeat, linear-gradient(var(--t), var(--t)) bottom left / 1px 12px no-repeat, linear-gradient(var(--t), var(--t)) bottom right / 12px 1px no-repeat, linear-gradient(var(--t), var(--t)) bottom right / 1px 12px no-repeat;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;position:absolute;inset:8px;transform:scale(1.02)}.project:hover,.project:focus-visible{background-color:var(--bg-raised)}.project:focus-visible .spot{opacity:1}.project:hover:after,.project:focus-visible:after{opacity:1;transform:none}.project:focus-visible{outline-offset:-2px;border-radius:0}.project-top{font:500 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);justify-content:space-between;align-items:center;display:flex}.project-top .arrow{color:var(--muted)}.project:hover .project-top .arrow{color:var(--accent);transform:translate(2px,-2px)}.glyph{height:72px;margin:34px 0 30px}.glyph svg{width:auto;height:100%}.glyph circle{fill:var(--faint);opacity:.45;transition:fill .2s,opacity .2s}.glyph circle.on{fill:var(--fg-strong);opacity:1;transition-delay:var(--d,0s)}.project:hover .glyph circle.on,.project:focus-visible .glyph circle.on{fill:var(--accent)}.project-name{letter-spacing:-.02em;color:var(--fg-strong);font-size:24px;font-weight:500;line-height:1.15}.project-desc{color:var(--muted);margin-top:10px;font-size:15px}.project-foot{font:500 11.5px/1.4 var(--mono);letter-spacing:.04em;color:var(--subtle);justify-content:space-between;gap:12px;margin-top:auto;padding-top:24px;display:flex}.project-foot .domain{color:var(--muted)}.project:hover .project-foot .domain{color:var(--fg-strong)}.clients{--cols:6}@media (width<=1040px){.clients{--cols:5}}@media (width<=760px){.clients{--cols:3}}@media (width<=480px){.clients{--cols:2}}.client{place-items:center;height:clamp(104px,11vw,136px);padding:20px;display:grid}.client img{object-fit:contain;filter:brightness(0)invert();opacity:.55;width:auto;max-width:min(84%,150px);height:auto;max-height:46px;transition:opacity .25s}.client img.tall{max-height:64px}.client img.wide{max-width:min(90%,190px)}.client:hover img{opacity:1}.client--toggle{place-items:stretch stretch;padding:0}.client--toggle button{width:100%;height:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;place-content:center;gap:8px;padding:0;transition:background-color .25s;display:grid}.client--toggle button:hover{background:var(--bg-raised)}.client--toggle button:focus-visible{outline-offset:-2px;border-radius:0}.more-count{letter-spacing:-.02em;color:var(--fg-strong);font-size:30px;font-weight:500;line-height:1;transition:color .2s}.client--toggle.is-open .more-count{font-size:20px}.client--toggle button:hover .more-count{color:var(--accent-text)}.more-note{font:500 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle)}.client--fill{background-image:radial-gradient(var(--line-strong) 1px, transparent 1.4px);opacity:.6;background-size:9px 9px}.spot-host{isolation:isolate;position:relative}.spot{z-index:-1;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);opacity:0;pointer-events:none;will-change:transform;transition:opacity .35s;position:absolute;top:0;left:0;overflow:hidden;-webkit-mask-image:radial-gradient(closest-side,#000,#0000);mask-image:radial-gradient(closest-side,#000,#0000)}.spot.is-on{opacity:1}.spot-dots{will-change:transform;background-image:radial-gradient(#ff40008c 1px,#0000 1.6px);background-size:9px 9px;position:absolute;top:0;left:0}.spot--clients .spot-dots{background-image:radial-gradient(#ff400066 1px,#0000 1.6px)}.spot--contact .spot-dots{background-image:radial-gradient(#160a054d 1.1px,#0000 1.7px);background-size:8px 8px}.posts{border-top:1px dashed var(--line)}.post-row{padding:26px var(--pad);border-bottom:1px dashed var(--line);grid-template-columns:132px 96px minmax(0,1fr) auto;align-items:baseline;gap:20px;text-decoration:none;transition:background-color .25s;display:grid}.posts li:last-child .post-row{border-bottom:0}.post-row:hover{background:var(--bg-raised)}.post-row time,.post-cat{font:500 12px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--subtle)}.post-cat{color:var(--accent-text)}.post-title{letter-spacing:-.01em;color:var(--fg-strong);font-size:20px;font-weight:500;line-height:1.3;display:block}.post-excerpt{color:var(--muted);margin-top:4px;font-size:15px;display:block}.post-row .arrow{color:var(--muted);align-self:center}.post-row:hover .arrow{color:var(--accent);transform:translate(3px)}.post-row:focus-visible{outline-offset:-2px;border-radius:0}@media (width<=700px){.post-row{grid-template-columns:auto 1fr auto;gap:8px 14px}.post-row>span:has(.post-title){grid-area:2/1/auto/-1}.post-row .arrow{grid-area:1/3;justify-self:end}}.more-link{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.more-link:hover{color:var(--accent-text)}.more-link:hover .arrow{transform:translate(3px)}.section-foot{padding:22px var(--pad);border-top:1px dashed var(--line)}.more-line{font:500 12px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.contact{padding:clamp(16px, 3vw, 32px) var(--pad) clamp(40px, 6vw, 72px)}@media (width<=600px){.contact{padding-inline:8px}}.contact-panel{background:var(--accent);color:var(--ink);isolation:isolate;border-radius:10px;gap:20px;padding:clamp(28px,5vw,64px) clamp(18px,5vw,64px);display:grid;position:relative;overflow:hidden}.contact-panel .tag{color:var(--ink);opacity:.9}.contact-panel .tag:before{background:var(--ink)}.contact-panel h2{letter-spacing:-.03em;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.05}.email-row{flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:8px;display:flex}.email{letter-spacing:-.035em;text-underline-offset:.14em;font-size:clamp(22px,6.2vw,76px);font-weight:500;line-height:1;text-decoration:underline 2px #160a054d;transition:text-decoration-color .2s}.email:hover{text-decoration-color:currentColor}.copy{color:var(--ink);font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #160a0573;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;transition:background-color .2s,color .2s;display:inline-flex}.copy:hover{background:var(--ink);color:var(--accent)}.copy:focus-visible{outline-color:var(--ink)}.copy svg{width:14px;height:14px}.contact-alt{max-width:52ch;font-size:16px}.contact-alt a{text-underline-offset:3px;font-weight:500}.contact-panel :focus-visible{outline-color:var(--ink)}.site-footer{border-top:1px dashed var(--line)}.footer-inner{padding:44px var(--pad) 0;gap:32px;display:grid}.footer-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:28px 48px;display:flex}.footer-brand img{width:auto;height:34px}.footer-brand p{color:var(--muted);margin-top:14px;font-size:14px}.footer-links{flex-wrap:wrap;gap:28px 56px;display:flex}.footer-links h2{font:500 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);margin-bottom:14px}.footer-links li+li{margin-top:8px}.footer-links a{color:var(--muted);font-size:14px;text-decoration:none}.footer-links a:hover{color:var(--fg-strong)}.wordmark{width:100%;height:auto;margin-top:8px}.wordmark circle{fill:#f0e3de12}.wordmark circle.on{fill:var(--faint)}.wordmark circle{transition:fill .9s}.wordmark circle.hot{fill:#f0e3de38;transition-duration:.1s}.wordmark circle.on.hot{fill:var(--accent)}.footer-base{border-top:1px dashed var(--line);font:500 11.5px/1.6 var(--mono);letter-spacing:.04em;color:var(--subtle);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:18px 0 28px;display:flex}.page-head{padding:clamp(48px, 8vw, 96px) var(--pad) clamp(32px, 5vw, 56px);border-top:0;gap:16px;display:grid}.page-head .section-note{font-size:17px}.article{padding:clamp(40px, 6vw, 72px) var(--pad) clamp(56px, 8vw, 96px);border-top:0}.article-inner{max-width:700px;margin-inline:auto}.back-link{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.back-link .arrow{transform:rotate(180deg)}.back-link:hover{color:var(--fg-strong)}.back-link:hover .arrow{transform:rotate(180deg)translate(3px)}.article-meta{font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--subtle);gap:16px;margin-top:40px;display:flex}.article-meta .post-cat{line-height:1}.article h1{letter-spacing:-.035em;color:var(--fg-strong);margin-top:18px;font-size:clamp(34px,5.2vw,56px);font-weight:500;line-height:1.04}.article-figure{border:1px dashed var(--line);border-radius:6px;margin:36px 0 8px;padding:8px}.article-figure img{border-radius:3px;width:100%;height:auto}.prose{color:var(--fg);margin-top:28px;font-size:18px;line-height:1.7}.prose>*+*{margin-top:1.1em}.prose strong{color:var(--fg-strong);font-weight:600}.prose a{color:var(--accent-text);text-underline-offset:3px}.prose a:hover{color:var(--fg-strong)}.button{background:var(--accent);color:var(--ink);font:500 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;gap:10px;padding:13px 20px;text-decoration:none;transition:background-color .2s;display:inline-flex}.prose a.button{color:var(--ink)}.button:hover{background:var(--fg-strong)}.button:hover .arrow{transform:translate(3px)}.motion-ok :is(.section-head,.intro-copy,.spec>div,.project,.client:not(.client--fill),.posts li,.section-foot,.contact-panel,.page-head>*,.article-inner,.footer-inner>*){transition:opacity .8s var(--ease), transform .8s var(--ease);transition-delay:var(--delay,0s)}.motion-ok :is(.section-head,.intro-copy,.spec>div,.project,.client:not(.client--fill),.posts li,.section-foot,.contact-panel,.page-head>*,.article-inner,.footer-inner>*):not(.is-in){opacity:0;transform:translateY(16px)}.motion-ok .projects .project{transition:opacity .8s var(--ease) var(--delay,0s), transform .8s var(--ease) var(--delay,0s), background-color .3s ease}.motion-ok .project:not(.is-in) .glyph circle.on{fill:var(--faint);opacity:.45}.motion-ok .project:not(.booted) .glyph circle.on{transition-delay:calc(var(--d,0s) + var(--delay,0s) + .3s)}.motion-ok .hero-copy>*{animation:rise 1s var(--ease) both}.motion-ok .hero-copy>:nth-child(2){animation-delay:.12s}.motion-ok .hero-field{animation:1.8s both fade-in}@keyframes rise{0%{opacity:0;transform:translateY(20px)}}@keyframes fade-in{0%{opacity:0}}.motion-ok .section:not(.hero,.page-head,.article,.section--flush){background-image:repeating-linear-gradient(90deg, var(--line) 0 3px, transparent 3px 6px);transition:background-size 1.4s var(--ease);background-position:0 0;background-repeat:no-repeat;background-size:0% 1px;background-origin:border-box;border-top-color:#0000}.motion-ok .section.is-drawn{background-size:100% 1px}.motion-ok .section:before,.motion-ok .section:after{transition:opacity .6s ease .3s, transform .9s var(--ease) .3s}.motion-ok .section:not(.is-drawn):before,.motion-ok .section:not(.is-drawn):after{opacity:0;transform:rotate(-90deg)scale(.4)}@media (prefers-reduced-motion:reduce){html:not(.motion-ok){scroll-behavior:auto}html:not(.motion-ok) *,html:not(.motion-ok) :before,html:not(.motion-ok) :after{transition-duration:.01ms!important;transition-delay:0s!important}}
