:root{--ink: oklch(.17 .02 232);--ink-2: oklch(.21 .022 232);--ink-3: oklch(.28 .024 232);--bone: oklch(.94 .014 82);--bone-2: oklch(.78 .018 82);--bone-3: oklch(.58 .018 82);--ember: oklch(.7 .13 52);--ember-deep: oklch(.58 .13 48);--paper: oklch(.955 .012 82);--paper-2: oklch(.9 .014 82);--paper-ink: oklch(.2 .02 232);--paper-ink-2: oklch(.42 .018 232);--rule: oklch(.94 .014 82 / .14);--font-display: "Gloock", "Iowan Old Style", Georgia, serif;--font-body: "Schibsted Grotesk", "Helvetica Neue", system-ui, sans-serif;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1.5rem;--space-lg: 3rem;--space-xl: clamp(4rem, 10vw, 8rem);--space-2xl: clamp(7rem, 18vw, 14rem);--gutter: clamp(1.25rem, 5vw, 5rem);--max: 88rem;--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}html{background:var(--ink);color:var(--bone);font-family:var(--font-body);font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:auto}html.has-cursor,html.has-cursor a{cursor:none}body{margin:0;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:clip}main{position:relative;z-index:1}a{color:inherit;text-decoration:none}p{margin:0}::selection{background:var(--ember);color:var(--ink)}:focus-visible{outline:2px solid var(--ember);outline-offset:4px}.eyebrow{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-2);font-weight:500}.h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2.25rem,5.2vw,5rem);line-height:1.02;letter-spacing:-.015em;margin:var(--space-sm) 0 0;text-wrap:balance}.mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.line{display:block;will-change:transform}.progress{position:fixed;inset:0 0 auto 0;height:2px;background:var(--ember);transform:scaleX(0);transform-origin:left;z-index:60}.nav{position:fixed;inset:0 0 auto 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-md);padding:1.25rem var(--gutter);z-index:50;color:var(--bone);font-size:.875rem;font-weight:500;transition:color .5s var(--ease-out)}.nav:before{content:"";position:absolute;top:0;right:0;bottom:-2.5rem;left:0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,var(--ink) 30%,oklch(.17 .02 232 / .75) 60%,transparent);opacity:0;transition:opacity .6s var(--ease-out)}html.is-scrolled .nav:before{opacity:1}html.on-paper .nav{color:var(--paper-ink)}html.on-paper .nav:before{background:linear-gradient(to bottom,var(--paper) 30%,oklch(.955 .012 82 / .8) 60%,transparent)}.nav__brand{font-family:var(--font-display);font-size:1.125rem;letter-spacing:.01em}.nav__links{display:flex;gap:clamp(1rem,2.5vw,2.25rem)}.nav__links a,.nav__cta{position:relative;padding:.25rem 0}.nav__links a:after,.nav__cta:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}.nav__links a:hover:after,.nav__cta:hover:after{transform:scaleX(1);transform-origin:left}.nav__cta{justify-self:end}.cursor{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:70;opacity:0;transition:opacity .3s}.cursor.is-visible{opacity:1}.cursor__dot,.cursor__ring{position:absolute;top:0;left:0;border-radius:50%;translate:-50% -50%}.cursor__dot{width:6px;height:6px;background:var(--ember)}.cursor__ring{width:34px;height:34px;border:1px solid oklch(.94 .014 82 / .55);transition:width .4s var(--ease-out),height .4s var(--ease-out),border-color .4s}.cursor.is-hover .cursor__ring{width:56px;height:56px;border-color:var(--ember)}.gl{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;display:block}.gl-vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(120% 80% at 70% 40%,transparent 45%,oklch(.17 .02 232 / .6) 100%),linear-gradient(to bottom,oklch(.17 .02 232 / .25),transparent 25%,transparent 75%,oklch(.17 .02 232 / .4))}html.no-gl .gl-vignette{background:radial-gradient(80% 60% at 75% 20%,oklch(.32 .05 55 / .35),transparent 70%),radial-gradient(60% 50% at 20% 90%,oklch(.26 .03 232),transparent 70%)}section{position:relative;padding-inline:var(--gutter);max-width:var(--max);margin-inline:auto}.fog{position:relative}.fog:before{content:"";position:absolute;top:-3rem;right:-5rem;bottom:-3rem;left:-5rem;z-index:-1;pointer-events:none;border-radius:50%/8%;background:radial-gradient(ellipse at center,oklch(.17 .02 232 / .9) 0%,oklch(.17 .02 232 / .78) 50%,oklch(.17 .02 232 / .35) 80%,transparent 100%)}.hero{min-height:100svh;display:grid;align-content:end;gap:var(--space-md);padding-block:8rem clamp(2.5rem,6vh,4rem)}.hero__eyebrow{max-width:64ch}.hero__title{font-family:var(--font-display);font-weight:400;font-size:clamp(3.75rem,14.5vw,15.5rem);line-height:.92;letter-spacing:-.03em;margin:0 0 var(--space-sm) -.04em}.hero__row{display:grid;grid-template-columns:minmax(0,46ch) 1fr;gap:var(--space-lg);align-items:end}.hero__lede{font-size:clamp(1.0625rem,1.35vw,1.3125rem);line-height:1.5;color:var(--bone);max-width:46ch}.hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-self:end}.btn{display:inline-flex;align-items:center;padding:.85rem 1.35rem;border:1px solid oklch(.94 .014 82 / .35);border-radius:999px;font-size:.9375rem;font-weight:500;transition:background-color .4s var(--ease-out),color .4s var(--ease-out),border-color .4s var(--ease-out)}.btn--solid{background:var(--bone);color:var(--ink);border-color:var(--bone)}.btn--solid:hover{background:var(--ember);border-color:var(--ember)}.btn--ghost:hover{border-color:var(--bone)}.hero__hint{display:flex;align-items:center;gap:var(--space-sm);color:var(--bone-3);font-size:.8125rem;margin-top:var(--space-md)}.hero__hint-line{width:3rem;height:1px;background:currentColor;animation:hint 2.6s var(--ease-out) infinite;transform-origin:left}.hint--coarse{display:none}@media (pointer: coarse){.hint--fine{display:none}.hint--coarse{display:inline}}@keyframes hint{0%{transform:scaleX(0);opacity:0}30%{opacity:1}to{transform:scaleX(1);opacity:0}}.scale{padding-block:var(--space-2xl);display:grid;gap:var(--space-lg)}.stat{display:grid;grid-template-columns:auto auto;grid-template-areas:"num unit" "label label";align-items:baseline;column-gap:.6ch;justify-content:start}.stat--second{margin-left:clamp(0rem,12vw,16rem)}.stat__num{grid-area:num;font-family:var(--font-display);font-size:clamp(2.5rem,8.5vw,9rem);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat__unit{grid-area:unit;font-size:clamp(1rem,1.6vw,1.5rem);color:var(--bone-2)}.stat__label{grid-area:label;margin-top:var(--space-xs);color:var(--bone-2);max-width:44ch}.scale__grid{list-style:none;margin:var(--space-md) 0 0;padding:var(--space-lg) 0 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg) var(--space-md)}.scale__grid li{display:grid;gap:.35rem;align-content:start}.scale__grid-num{font-family:var(--font-display);font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.scale__grid-label{font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember);font-weight:500}.scale__grid-sub{font-size:.875rem;color:var(--bone-3);line-height:1.4;max-width:28ch}.scale__note{max-width:52ch;font-size:clamp(1.125rem,1.6vw,1.5rem);line-height:1.4;color:var(--bone);margin-left:auto}.challenge{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,7rem);padding-block:var(--space-xl) var(--space-2xl);align-items:start}.challenge__sticky{position:sticky;top:5rem;display:grid;gap:var(--space-md)}.challenge .h2{font-size:clamp(2rem,3.6vw,3.5rem)}.question{color:var(--bone-2);font-style:italic;font-size:.9375rem;max-width:44ch;border-top:1px solid var(--rule);padding-top:var(--space-md)}.challenge .diagram{max-width:28rem}.challenge__flow{display:grid;gap:clamp(3rem,8vh,6rem);padding-top:20vh;padding-bottom:20vh}.stage{display:grid;gap:var(--space-sm);max-width:58ch;opacity:.38;transition:opacity .6s var(--ease-out)}.stage.is-active{opacity:1}.stage__n{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ember);font-weight:500}.stage p{font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.55}.stage p+p{margin-top:var(--space-sm)}.list{list-style:none;padding:0;margin:var(--space-xs) 0 0;display:grid;gap:var(--space-md);counter-reset:item}.list li{position:relative;padding-left:2.25rem;font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.55;counter-increment:item}.list li:before{content:counter(item,decimal-leading-zero);position:absolute;left:0;top:.15em;font-size:.75rem;letter-spacing:.08em;color:var(--ember)}.list strong{font-weight:600;color:var(--bone)}.diagram{margin:0;display:grid;gap:var(--space-sm)}.diagram svg{width:100%;height:auto;font-family:var(--font-body);overflow:visible}.diagram .node rect{fill:var(--ink-2);stroke:#f0eae147;stroke-width:1;transition:stroke .6s var(--ease-out),fill .6s var(--ease-out),opacity .6s}.diagram .node text{fill:var(--bone);font-size:13px;font-weight:500}.diagram .node .sub{fill:var(--bone-3);font-size:9.5px;font-weight:400}.diagram .edge{fill:none;stroke:#f0eae152;stroke-width:1.2;transition:stroke .6s var(--ease-out),opacity .6s var(--ease-out)}.diagram .anno{fill:var(--bone-3);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;opacity:0;transition:opacity .6s var(--ease-out)}.diagram[data-stage=context] .edge--old,.diagram[data-stage=constraint] .edge--old{stroke:var(--bone)}.diagram[data-stage=context] .anno--inline{opacity:1}.diagram[data-stage=constraint] .edge--old{stroke:var(--ember);stroke-dasharray:4 5!important;animation:crawl 1s linear infinite}.diagram[data-stage=constraint] .node--core rect{stroke:var(--ember)}@keyframes crawl{to{stroke-dashoffset:-9}}.diagram[data-stage=context] .node--queue,.diagram[data-stage=context] .node--workers,.diagram[data-stage=context] .node--go,.diagram[data-stage=context] .edge--q,.diagram[data-stage=context] .edge--q2,.diagram[data-stage=context] .edge--go,.diagram[data-stage=context] .edge--core,.diagram[data-stage=constraint] .node--queue,.diagram[data-stage=constraint] .node--workers,.diagram[data-stage=constraint] .node--go,.diagram[data-stage=constraint] .edge--q,.diagram[data-stage=constraint] .edge--q2,.diagram[data-stage=constraint] .edge--go,.diagram[data-stage=constraint] .edge--core,.diagram[data-stage=approach] .edge--old,.diagram[data-stage=tradeoff] .edge--old,.diagram[data-stage=outcome] .edge--old{opacity:.12}.diagram[data-stage=approach] .edge--q,.diagram[data-stage=approach] .edge--q2,.diagram[data-stage=approach] .edge--go,.diagram[data-stage=approach] .edge--core{stroke:var(--bone)}.diagram[data-stage=approach] .node--go rect,.diagram[data-stage=approach] .node--queue rect{stroke:var(--ember)}.diagram[data-stage=approach] .anno--flag,.diagram[data-stage=approach] .anno--contract{opacity:1}.diagram[data-stage=tradeoff] .edge--go,.diagram[data-stage=tradeoff] .edge--core{stroke:var(--bone)}.diagram[data-stage=tradeoff] .anno--contract{opacity:1}.diagram[data-stage=outcome] .edge--q,.diagram[data-stage=outcome] .edge--q2,.diagram[data-stage=outcome] .edge--go,.diagram[data-stage=outcome] .edge--core{stroke:var(--ember)}.diagram[data-stage=outcome] .node rect{fill:var(--ink-3)}.diagram__cap{position:relative;height:1.5em;font-size:.875rem;color:var(--bone-2)}.diagram__cap span{position:absolute;inset:0 auto auto 0;opacity:0;transform:translateY(6px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}.diagram[data-stage=context] [data-cap=context],.diagram[data-stage=constraint] [data-cap=constraint],.diagram[data-stage=approach] [data-cap=approach],.diagram[data-stage=tradeoff] [data-cap=tradeoff],.diagram[data-stage=outcome] [data-cap=outcome]{opacity:1;transform:none}.build{padding-block:var(--space-xl) var(--space-2xl);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-md) var(--gutter)}.build .eyebrow{grid-column:1 / -1}.build .h2{grid-column:1 / span 9;max-width:22ch}.pull{grid-column:1 / span 5;margin:var(--space-lg) 0 0;font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.75rem);line-height:1.15;color:var(--ember);align-self:start;position:sticky;top:6rem}.prose{grid-column:7 / span 6;margin-top:var(--space-lg);display:grid;gap:var(--space-md);max-width:58ch;font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.55}.prose strong{font-weight:600}.prose__aside{color:var(--bone-2);font-size:.95em;border-top:1px solid var(--rule);padding-top:var(--space-md)}.skills{max-width:none;background:var(--paper);color:var(--paper-ink);padding-block:var(--space-xl) var(--space-2xl)}.skills:before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:var(--paper-2)}.skills>*{max-width:var(--max);margin-inline:auto}.skills .eyebrow{color:var(--paper-ink-2)}.skills__head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-md) var(--gutter);align-items:end;margin-bottom:var(--space-xl)}.skills__head .eyebrow{grid-column:1 / -1}.skills__intro{color:var(--paper-ink-2);max-width:34ch;font-size:1.0625rem;justify-self:end}.ratings{list-style:none;padding:0;margin:0;border-top:1px solid oklch(.2 .02 232 / .18)}.rating{display:grid;grid-template-columns:minmax(0,4fr) auto 3ch minmax(0,6fr);align-items:center;gap:var(--space-md) var(--space-lg);padding:clamp(1.25rem,2.2vw,1.75rem) 0;border-bottom:1px solid oklch(.2 .02 232 / .18)}.rating__name{font-family:var(--font-display);font-size:clamp(1.375rem,2.4vw,2.25rem);line-height:1.1;letter-spacing:-.01em}.rating__name em{display:block;font-family:var(--font-body);font-style:normal;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--paper-ink-2);margin-top:.35rem}.rating__bar{display:inline-flex;gap:4px}.rating__bar i{width:clamp(1.5rem,3vw,3rem);height:10px;background:#0d181e1a;transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease-out)}.rating__bar i:nth-child(1){transition-delay:0s}.rating__bar i:nth-child(2){transition-delay:.08s}.rating__bar i:nth-child(3){transition-delay:.16s}.rating__bar i:nth-child(4){transition-delay:.24s}.rating__bar i:nth-child(5){transition-delay:.32s}.rating__bar i:not(.is-on){transform:scaleX(1)}.rating__bar i.is-on{background:var(--paper-ink);transform:scaleX(1)}.rating[data-rating="2"] .rating__bar i.is-on{background:var(--ember-deep)}.rating__score{font-family:var(--font-display);font-size:1.5rem;text-align:right;font-variant-numeric:tabular-nums}.rating__note{color:var(--paper-ink-2);font-size:.9875rem;line-height:1.5;max-width:48ch}.joy{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--space-xl) var(--gutter);padding-block:var(--space-2xl) var(--space-xl);align-items:center}.joy__text{display:grid;gap:var(--space-md)}.joy__body{max-width:44ch;font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.55;color:var(--bone-2)}.joy__link{justify-self:start;color:var(--ember);font-weight:500}.joy__media{margin:0;position:relative;aspect-ratio:4 / 5;overflow:hidden;border-radius:2px;background:var(--ink-2);transform:rotate(-1.5deg);transition:transform .8s var(--ease-out)}.joy__media:hover{transform:rotate(0) scale(1.01)}.joy__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.joy__body em{font-style:italic;color:var(--ember);font-family:var(--font-display);font-size:1.05em}.why{padding-block:var(--space-xl);display:grid;gap:var(--space-lg);border-top:1px solid var(--rule)}.why__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg) var(--space-md)}.why__grid p{font-size:clamp(1rem,1.15vw,1.125rem);line-height:1.55;color:var(--bone)}.why__grid p:nth-child(2){margin-top:var(--space-lg)}.why__grid p:nth-child(3){margin-top:calc(var(--space-lg) * 2)}.contact{padding-block:var(--space-2xl) var(--space-xl);display:grid;gap:var(--space-lg)}.contact__big{display:inline-block;justify-self:start;font-family:var(--font-display);font-size:clamp(3.5rem,13vw,14rem);line-height:.95;letter-spacing:-.03em;margin-left:-.04em;transition:color .5s var(--ease-out)}.contact__big:hover{color:var(--ember)}.contact__meta{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);font-size:1rem;font-weight:500}.contact__meta a{position:relative}.contact__meta a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}.contact__meta a:hover:after{transform:scaleX(1);transform-origin:left}.contact__foot{color:var(--bone-3);font-size:.875rem;line-height:1.6}.footer{position:relative;z-index:1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-md) var(--gutter) var(--space-lg);max-width:var(--max);margin-inline:auto;color:var(--bone-3);font-size:.8125rem}@media (max-width: 1024px){.challenge{grid-template-columns:1fr}.challenge__sticky{position:static}.diagram{max-width:34rem}.challenge__flow{padding-top:var(--space-md);padding-bottom:0}.stage{opacity:1}.build .h2,.pull,.prose{grid-column:1 / -1}.pull{position:static;margin-top:var(--space-md)}.prose{margin-top:var(--space-md)}}@media (max-width: 760px){.nav{grid-template-columns:1fr auto}.nav__links{display:none}.hero__row{grid-template-columns:1fr}.hero__cta{justify-self:start}.stat--second{margin-left:0}.scale__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scale__note{margin-left:0}.skills__head{grid-template-columns:1fr}.skills__intro{justify-self:start}.rating{grid-template-columns:1fr auto 3ch;gap:var(--space-sm) var(--space-md)}.rating__note{grid-column:1 / -1}.joy{grid-template-columns:1fr}.joy__media{max-width:24rem}.why__grid{grid-template-columns:1fr}.why__grid p:nth-child(2),.why__grid p:nth-child(3){margin-top:0}}@media (max-width: 480px){.scale__grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.stage,.diagram .anno{opacity:1}.diagram__cap span{position:static;display:block;opacity:1;transform:none}.diagram__cap{height:auto}.hint--fine{display:none}.hint--coarse{display:inline}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}
