@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-ext-wght-normal.1tv2id2rn5mme.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-wght-normal.2-1czfgj2-py-.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-ext-wght-normal.2yptelh8aqa_5.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-wght-normal.0s9lyv6-dq8sg.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-greek-wght-normal.0injkow7o_js7.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-vietnamese-wght-normal.04ex7n90-6tif.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-ext-wght-normal.1wlj3nn-4xnfp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-wght-normal.2odd3csjijl0b.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#07110c;--bg-2:#0a1811;--surface:#0e2017;--surface-2:#12291d;--line:#1b3527;--line-2:#26473a;--text:#e6efe8;--muted:#8da597;--forest:#1f6b45;--forest-2:#2a8a5a;--moss:#6fcf97;--brass:#d8b46a;--danger:#f08c7a;--sans:"Schibsted Grotesk Variable", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, monospace;--wrap:1180px;--gutter:clamp(20px, 5vw, 48px);--r:16px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}::selection{background:var(--forest);color:#fff}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--moss);outline-offset:3px;border-radius:6px}h1,h2,h3,h4,p,ul,ol,dl,dd,figure,pre{margin:0}ul,ol{padding:0;list-style:none}kbd{font-family:var(--mono);border:1px solid var(--line-2);background:var(--surface);color:var(--text);border-bottom-width:2px;border-radius:6px;padding:2px 6px;font-size:12px}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.skip{position:absolute;left:-9999px}.skip:focus{background:var(--text);color:var(--bg);z-index:100;padding:8px 12px;top:16px;left:16px}.top{z-index:40;-webkit-backdrop-filter:saturate(140%)blur(14px);background:#07110cb8;border-bottom:1px solid #1b3527b3;position:sticky;top:0}.progress{background:linear-gradient(90deg, var(--forest-2), var(--moss));transform-origin:0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.top-inner{align-items:center;gap:24px;height:64px;display:flex}.mark{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:700;text-decoration:none;display:flex}.mark-glyph{background:var(--forest);color:#eafff2;letter-spacing:0;border-radius:9px;place-items:center;width:30px;height:30px;font-size:12px;display:grid;box-shadow:inset 0 0 0 1px #ffffff1f}.top nav{gap:4px;margin-left:auto;display:flex}.top nav a{color:var(--muted);border-radius:999px;padding:6px 12px;font-size:15px;text-decoration:none;transition:color .15s,background .15s}.top nav a:hover{color:var(--text)}.top nav a.on{color:var(--text);background:var(--surface-2)}.kbd-btn{background:0 0;border:0;border-radius:8px;gap:4px;padding:4px;display:flex}.kbd-btn:hover kbd{border-color:var(--moss)}.menu-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;margin-left:auto;padding:6px 14px;font-size:14px;display:none}.hero{border-bottom:1px solid var(--line);position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background:linear-gradient(90deg, #07110cc7 0%, #07110c59 55%, #07110c1a 100%), linear-gradient(180deg, transparent 65%, var(--bg));position:absolute;inset:0}.topo{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-inner{z-index:1;pointer-events:none;padding-top:clamp(48px,9vh,104px);padding-bottom:88px;position:relative}.hero-inner a,.hero-inner button,.hero-inner .board{pointer-events:auto}.hello{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:inline-flex}.avail{background:var(--moss);border-radius:50%;width:8px;height:8px;animation:2.4s infinite ping;box-shadow:0 0 #6fcf9799}@keyframes ping{70%{box-shadow:0 0 0 8px #6fcf9700}to{box-shadow:0 0 #6fcf9700}}.hero h1{letter-spacing:-.048em;text-wrap:balance;max-width:15ch;margin-top:22px;font-size:clamp(46px,7vw,96px);font-weight:700;line-height:.96}.lede{color:#b5c7bc;max-width:54ch;margin-top:26px;font-size:clamp(17px,1.6vw,20px)}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:34px;display:flex}.hint-k{color:var(--muted);margin-left:6px;font-size:14px}.btn{border:1px solid var(--line-2);color:var(--text);background:#0e201799;border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:inline-flex}.btn:hover{border-color:var(--moss)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--moss);color:#04140b;border-color:var(--moss)}.btn-primary:hover{background:#8fe0b0;border-color:#8fe0b0}.btn-primary:disabled{opacity:.6;cursor:progress}.btn-small{padding:8px 14px;font-size:14px}.link-btn{color:var(--moss);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.board{border:1px solid var(--line-2);border-radius:var(--r);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--mono);background:#0a1811d1;margin-top:56px;font-size:13.5px;overflow:hidden;box-shadow:0 30px 80px -40px #000c}.board-head{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:16px;padding:12px 16px 12px 20px;display:flex}.board-head>span:first-child{color:var(--text);align-items:center;gap:10px;display:inline-flex}.board-meta{margin-left:auto}.board-btn{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--line-2);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12.5px}.board-btn:hover:not(:disabled){border-color:var(--moss)}.board-btn:disabled{opacity:.55;cursor:progress}.pulse{background:var(--moss);border-radius:50%;width:8px;height:8px}.pulse.is-checking{animation:.8s infinite alternate blink}@keyframes blink{to{opacity:.2}}.board-row{border-bottom:1px solid var(--line);color:var(--text);grid-template-columns:14px 1.1fr 1.4fr 1.6fr 16ch;align-items:center;gap:16px;padding:15px 20px;display:grid}.board-row:last-child{border-bottom:0}.board-name a{border-bottom:1px dashed var(--line-2);text-decoration:none}.board-name a:hover{border-color:var(--moss);color:var(--moss)}.board-what,.board-stack{color:var(--muted)}.board-state{text-align:right}.dot{background:#2b3a31;border-radius:50%;width:9px;height:9px;transition:background .3s,box-shadow .3s}.s-up .dot{background:var(--moss);box-shadow:0 0 0 4px #6fcf9729}.s-up .board-state{color:var(--moss)}.s-dev .dot{background:var(--brass);box-shadow:0 0 0 4px #d8b46a29}.s-dev .board-state{color:var(--brass)}.s-down .dot{background:var(--danger)}.s-down .board-state{color:var(--danger)}.s-wait .board-state{color:var(--muted)}.section{padding-top:120px}.section-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:18px;display:flex}.section-top h2{letter-spacing:-.035em;font-size:clamp(28px,3.4vw,40px);line-height:1.1}.section-top p{color:var(--muted);font-size:15px}.case{border-bottom:1px solid var(--line);grid-template-columns:250px minmax(0,1fr);gap:56px;padding:64px 0;display:grid}.case-meta{align-self:start;gap:4px;font-size:15px;display:grid;position:sticky;top:96px}.case-name{letter-spacing:-.025em;margin-bottom:8px;font-size:28px}.case-link{color:var(--moss);width:fit-content;margin-top:6px;text-decoration:none}.case-link:hover{text-underline-offset:3px;text-decoration:underline}.stack{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.stack li{border:1px solid var(--line-2);color:#a9bdb1;background:var(--bg-2);border-radius:999px;padding:3px 10px;font-size:12.5px}.case-title{letter-spacing:-.035em;text-wrap:balance;max-width:20ch;font-size:clamp(28px,3.2vw,40px);font-weight:650;line-height:1.1}.case-intro{color:#b5c7bc;max-width:62ch;margin-top:18px}.decisions{grid-template-columns:1fr 1fr;gap:20px 32px;margin-top:32px;display:grid}.decision{border-left:2px solid var(--forest);padding-left:16px}.decision dt{font-weight:600}.decision dd{color:var(--muted);margin-top:4px;font-size:15.5px}.demo{border:1px solid var(--line-2);border-radius:var(--r);background:linear-gradient(180deg, var(--surface), var(--bg-2));margin-top:36px;overflow:hidden}.demo-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.demo-head p{color:var(--muted);font-size:14px}.seg{border:1px solid var(--line-2);background:var(--bg);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:7px 14px;font-size:14px;transition:background .15s,color .15s}.seg button:hover{color:var(--text)}.seg button.on{background:var(--forest);color:#eafff2}.seg.small button{padding:5px 12px;font-size:13px}.chip{border:1px solid var(--line-2);background:var(--bg);color:var(--text);border-radius:999px;padding:7px 14px;font-size:14px;transition:border-color .15s,background .15s}.chip:hover{border-color:var(--moss)}.chip.on{background:var(--forest);border-color:var(--forest-2);color:#eafff2}.saved{font-family:var(--mono);color:var(--moss);opacity:0;font-size:12.5px;transition:opacity .2s}.saved.on{opacity:1}.gap-body{grid-template-columns:1fr 180px;display:grid}.gap-qs{padding:8px 20px}.gap-qs li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.gap-qs li:last-child{border-bottom:0}.gap-q{font-size:15.5px}.clause{font-family:var(--mono);color:var(--moss);white-space:nowrap;margin-right:6px;font-size:12px}.gap-result{border-left:1px solid var(--line);text-align:center;align-content:center;place-items:center;gap:2px;padding:20px;display:grid}.ring-bg{fill:none;stroke:var(--line-2);stroke-width:5px}.ring{fill:none;stroke:var(--moss);stroke-width:5px;stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1);transform:rotate(-90deg)}.gap-num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:-62px;margin-bottom:34px;font-size:26px;font-weight:700}.gap-label{color:var(--muted);font-size:13px}.code{font-family:var(--mono);color:#b9d6c4;border-bottom:1px solid var(--line);background:#050d09;min-height:238px;padding:18px 20px;font-size:13px;line-height:1.65;overflow-x:auto}.code.before{color:#7d8f84}.indexed{padding:18px 20px 20px}.indexed-label,.indexed-note{color:var(--muted);font-size:14px}.indexed-note{color:var(--text);margin-top:12px}.indexed-bars{gap:10px;max-width:520px;margin-top:12px;display:grid}.ib-row{color:var(--muted);grid-template-columns:56px 1fr 30px;align-items:center;gap:12px;font-size:14px;display:grid}.ib-row b{color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.ib-bar{background:#2b3a31;border-radius:999px;height:10px;transition:width .1s linear}.ib-row.after .ib-bar{background:linear-gradient(90deg, var(--forest-2), var(--moss))}.flow-btns{flex-wrap:wrap;gap:8px;display:flex}.flow-track{grid-template-columns:1fr 40px 1fr 40px 1.3fr;align-items:center;padding:24px 20px 8px;display:grid}.node{border:1px solid var(--line-2);background:var(--bg);opacity:.55;border-radius:12px;padding:12px 14px;transition:opacity .3s,border-color .3s,background .3s}.node b{font-size:14px;display:block}.node span{color:var(--muted);font-size:13px}.node.lit{opacity:1;border-color:var(--forest-2);background:#1f6b4524}.node.stop{border-color:var(--danger);background:#f08c7a14}.node-pair{gap:8px;display:grid}.wire{background:var(--line-2);height:2px;margin:0 6px;position:relative;overflow:hidden}.wire.lit:after{content:"";background:var(--moss);transform-origin:0;animation:.6s ease-out both flow;position:absolute;inset:0}@keyframes flow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.flow-caption{color:var(--muted);min-height:52px;padding:10px 20px 20px;font-size:14px}.projects{grid-template-columns:repeat(3,1fr);display:grid}.project{padding:36px 28px 36px 0}.project+.project{border-left:1px solid var(--line);padding-left:28px}.project-top{justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;display:flex}.project h3{letter-spacing:-.015em;font-size:20px}.project h3 a{text-decoration:none}.project h3 a:hover{color:var(--moss)}.project>p{color:var(--muted);margin-top:12px;font-size:15.5px}.about-grid{grid-template-columns:250px 1fr;gap:56px;padding-top:48px;display:grid}.photo{aspect-ratio:4/5;border-radius:var(--r);border:1px solid var(--line-2);background:radial-gradient(circle at 30% 20%, #1c4a33, var(--surface) 70%);place-items:center;display:grid}.photo span{letter-spacing:-.04em;color:#e6efe840;font-size:44px;font-weight:700}.about-text{max-width:66ch}.about-text p{color:var(--muted)}.about-text p+p{margin-top:18px}.about-lead{letter-spacing:-.01em;font-size:21px;line-height:1.5;color:var(--text)!important}.skills{gap:12px;margin-top:36px;font-size:15.5px;display:grid}.skills div{border-top:1px solid var(--line);grid-template-columns:160px 1fr;gap:16px;padding-top:12px;display:grid}.skills dt{color:var(--muted)}.contact{padding-bottom:96px}.contact-grid{border-top:1px solid var(--line);grid-template-columns:.9fr 1.1fr;gap:56px;padding-top:56px;display:grid}.contact-side h2{letter-spacing:-.04em;text-wrap:balance;font-size:clamp(32px,4vw,52px);line-height:1.04}.contact-side>p{margin-top:18px;font-size:15px}.email-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;display:flex}.email{color:var(--moss);border-bottom:1px solid #6fcf9759;font-size:clamp(18px,2vw,22px);text-decoration:none}.email:hover{border-color:var(--moss)}.links{flex-wrap:wrap;gap:22px;margin-top:28px;display:flex}.links a{color:var(--muted);text-decoration:none}.links a:hover{color:var(--text)}.form{border:1px solid var(--line-2);background:linear-gradient(180deg, var(--surface), var(--bg-2));border-radius:20px;gap:18px;padding:28px;display:grid}.reasons{border:0;margin:0;padding:0}.reasons legend{color:var(--muted);margin-bottom:10px;padding:0;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.row2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{gap:6px;display:grid;position:relative}.field>span{color:var(--muted);font-size:14px}.field i{opacity:.7;margin-left:4px;font-style:normal}.field input,.field textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line-2);resize:vertical;border-radius:12px;width:100%;padding:12px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.field textarea{min-height:140px}.field input:focus,.field textarea:focus{border-color:var(--moss);outline:none;box-shadow:0 0 0 4px #6fcf9724}.field.bad input,.field.bad textarea{border-color:var(--danger)}.field em{color:var(--danger);font-size:13px;font-style:normal}.count{font-family:var(--mono);color:var(--muted);font-size:12px;position:absolute;bottom:10px;right:12px}.field.bad .count{bottom:34px}.count.over{color:var(--danger)}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-foot{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.kbd-hint{color:var(--muted);font-size:13px}.form-status{color:var(--brass);min-height:0;font-size:14px}.form-status:empty{display:none}.form-note{color:var(--muted);border-top:1px solid var(--line);padding-top:14px;font-size:13px}.form.sent{text-align:left;align-content:start}.form.sent .check{background:var(--forest);color:#eafff2;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.form.sent h3{letter-spacing:-.02em;font-size:24px}.form.sent p{color:var(--muted)}.form.sent code{font-family:var(--mono);color:var(--moss)}.foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:28px;padding-bottom:40px;font-size:14px;display:flex}.toast{opacity:0;pointer-events:none;background:var(--surface-2);border:1px solid var(--forest-2);color:var(--text);z-index:90;border-radius:999px;padding:10px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px)}.toast.on{opacity:1;transform:translate(-50%)}.palette-wrap{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#03080599;place-items:start center;padding-top:14vh;display:grid;position:fixed;inset:0}.palette{border:1px solid var(--line-2);background:var(--surface);border-radius:18px;width:min(560px,100vw - 32px);animation:.16s ease-out pop;overflow:hidden;box-shadow:0 40px 120px -30px #000000e6}@keyframes pop{0%{opacity:0;transform:scale(.98)translateY(-4px)}}.palette input{border:0;border-bottom:1px solid var(--line);width:100%;font:inherit;color:var(--text);background:0 0;padding:18px 20px;font-size:17px}.palette input:focus{outline:none}.palette ul{max-height:340px;padding:6px;overflow-y:auto}.palette li{cursor:pointer;border-radius:10px;justify-content:space-between;gap:12px;padding:10px 14px;font-size:15px;display:flex}.palette li.on{background:var(--forest);color:#eafff2}.palette li .hint{color:var(--muted);font-size:12.5px}.palette li.on .hint{color:#cdeedb}.palette li.empty{color:var(--muted);cursor:default}.palette-foot{color:var(--muted);border-top:1px solid var(--line);padding:10px 20px;font-size:12px}@media (max-width:960px){.case,.about-grid,.contact-grid{grid-template-columns:minmax(0,1fr);gap:28px}.case-meta{position:static}.decisions,.projects{grid-template-columns:1fr}.project,.project+.project{border-left:0;border-bottom:1px solid var(--line);padding:28px 0}.photo{max-width:220px}.flow-track{grid-template-columns:1fr;gap:10px}.wire{width:2px;height:18px;margin:0 auto}}@media (max-width:720px){.top nav,.kbd-btn{display:none}.menu-btn{display:inline-flex}.section{padding-top:80px}.hero-inner{padding-bottom:56px}.hint-k{display:none}.board-head{flex-wrap:wrap}.board-meta{order:3;width:100%;margin-left:0;font-size:12px}.board-btn{margin-left:auto}.board-row{grid-template-columns:14px 1fr auto;row-gap:4px}.board-what,.board-stack{grid-column:2/-1;font-size:12.5px}.board-state{grid-area:1/3}.gap-body{grid-template-columns:1fr}.gap-result{border-left:0;border-top:1px solid var(--line)}.gap-qs li,.demo-head{flex-direction:column;align-items:flex-start}.row2{grid-template-columns:1fr}.skills div{grid-template-columns:1fr;gap:2px}.form{padding:20px}.section-top{flex-direction:column;gap:4px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.no-print{display:none!important}}
