@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_fd091ad6-module__giF-bG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_fd091ad6-module__giF-bG__variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.0y1-r_vehenvp.woff2)format("woff2");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:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2)format("woff2");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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.0hck6o0i8wq3a.woff2)format("woff2");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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2)format("woff2");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:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_755987ce-module__9p7P3W__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_755987ce-module__9p7P3W__variable{--font-serif:"Instrument Serif", "Instrument Serif Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2)format("woff2");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;font-style:normal;font-weight:300;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2)format("woff2");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;font-style:normal;font-weight:300;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2)format("woff2");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;font-style:normal;font-weight:300;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.woff2)format("woff2");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;font-style:normal;font-weight:300;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2)format("woff2");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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2)format("woff2");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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2)format("woff2");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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2)format("woff2");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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.woff2)format("woff2");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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_480ad6a-module__4KRgCG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_480ad6a-module__4KRgCG__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--paper:#f2ede2;--paper-2:#e9e2d2;--ink:#1a1815;--ink-soft:#433f38;--ink-mute:#8a8377;--rule:#c9bfa7;--rule-soft:#d9d0b9;--red-pen:#b6352a;--accent:#9a4422;--accent-soft:#c8704a;--highlight:#f3e08a;--grid-line:#9a442214;--fs-body:15px;--lh-body:1.6;--gap:1.25rem;--pad-block:8rem;--pad-inline:clamp(1.25rem, 4vw, 4rem);--maxw:1320px}[data-dark=true]{--paper:#14130f;--paper-2:#1c1a15;--ink:#ede6d3;--ink-soft:#c5bda8;--ink-mute:#8a8373;--rule:#3a352a;--rule-soft:#2a261e;--red-pen:#e76454;--grid-line:#7896dc14}[data-accent=blueprint]{--accent:#1f3a8a;--accent-soft:#4a6cb0}[data-accent=rust]{--accent:#9a4422;--accent-soft:#c8704a}[data-accent=moss]{--accent:#3d5a3a;--accent-soft:#6a8460}[data-accent=graphite]{--accent:#2a2a2a;--accent-soft:#5a5a5a}[data-dark=true][data-accent=blueprint]{--accent:#7ba2f0;--accent-soft:#a8c1f5}[data-dark=true][data-accent=rust]{--accent:#e89977;--accent-soft:#f0b89a}[data-dark=true][data-accent=moss]{--accent:#a8c498;--accent-soft:#c4d8b8}[data-dark=true][data-accent=graphite]{--accent:silver;--accent-soft:#e0e0e0}[data-density=compact]{--pad-block:5rem;--fs-body:14px;--lh-body:1.55}[data-density=spacious]{--pad-block:12rem;--fs-body:16px;--lh-body:1.75}[data-title-font=serif] .t-display{letter-spacing:-.01em;font-weight:400}[data-title-font=mono] .t-display{letter-spacing:-.03em;font-weight:500}[data-title-font=sans] .t-display{letter-spacing:-.03em;font-weight:700}[data-title-font=mono] .t-h2{font-weight:500}[data-title-font=sans] .t-h2{letter-spacing:-.03em;font-weight:700}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--paper)}body{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--paper);cursor:none;font-feature-settings:"ss01","cv11";overflow-x:hidden}@media (max-width:780px){body{cursor:auto}#cursor-dot,#cursor-ring{display:none}}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:none;background:0 0;border:0;padding:0}@media (max-width:780px){button{cursor:pointer}}img,svg{max-width:100%;display:block}::selection{background:var(--highlight);color:var(--ink)}body:before{content:"";pointer-events:none;mix-blend-mode:multiply;opacity:.9;z-index:1;background-image:radial-gradient(#1a181509 1px,#0000 1px),radial-gradient(#1a181506 1px,#0000 1px);background-position:0 0,1px 2px;background-size:3px 3px,7px 7px;position:fixed;inset:0}[data-dark=true] body:before{mix-blend-mode:screen;opacity:.4}body:after{content:"";pointer-events:none;z-index:2;background:radial-gradient(#0000 55%,#00000014 100%);position:fixed;inset:0}[data-dark=true] body:after{background:radial-gradient(#0000 55%,#00000073 100%)}#cursor-dot,#cursor-ring{pointer-events:none;z-index:9999;transition:opacity .2s;position:fixed;top:0;left:0}#cursor-dot{background:var(--accent);border-radius:50%;width:4px;height:4px;transform:translate(-50%,-50%)}#cursor-ring{border:1px solid var(--accent);mix-blend-mode:difference;border-radius:50%;width:28px;height:28px;transition:transform .15s ease-out,width .2s,height .2s,border-color .2s;transform:translate(-50%,-50%)}#cursor-ring.hover{border-color:var(--red-pen);width:46px;height:46px}#cursor-ring:before,#cursor-ring:after{content:"";background:var(--accent);position:absolute}#cursor-ring:before{width:1px;height:4px;top:-4px;left:50%;transform:translate(-50%)}#cursor-ring:after{width:4px;height:1px;top:50%;left:-4px;transform:translateY(-50%)}#boot{color:#c5f084;z-index:10000;background:#0b0a08;justify-content:center;align-items:center;font-size:13px;transition:opacity .6s;display:flex;position:fixed;inset:0}#boot-log{white-space:pre;max-width:640px;margin:0;padding:2rem;line-height:1.5}#boot.done{opacity:0;pointer-events:none}#boot .prompt{color:#8aa15a}#boot .ok{color:#c5f084}#boot .warn{color:#e8c872}#boot .meta{color:#666}.blink{animation:1s steps(2,end) infinite blink}@keyframes blink{to{opacity:0}}.container{max-width:var(--maxw);padding:0 var(--pad-inline);margin:0 auto;position:relative}section{padding:var(--pad-block) 0;border-top:1px solid var(--rule);position:relative}section:first-of-type{border-top:0}.grid-bg{pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);z-index:0;background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 40%,#0000 85%);mask-image:radial-gradient(#000 40%,#0000 85%)}.label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-size:11px;font-weight:500}.chip{border:1px solid var(--rule);color:var(--ink-soft);background:var(--paper-2);white-space:nowrap;border-radius:2px;padding:3px 8px;font-size:11px}.t-display{letter-spacing:-.015em;font-size:clamp(2.75rem,7vw,6.5rem);font-weight:400;line-height:.98}.t-h2{letter-spacing:-.01em;margin:0;font-size:clamp(2rem,4vw,3.25rem);font-weight:400;line-height:1}.topbar{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in oklab, var(--paper) 82%, transparent);border-bottom:1px solid var(--rule);position:fixed;top:0;left:0;right:0}.topbar-inner{max-width:var(--maxw);padding:12px var(--pad-inline);align-items:center;gap:1.5rem;margin:0 auto;font-size:12px;display:flex}.topbar-logo{letter-spacing:-.01em;align-items:center;gap:.5rem;font-weight:600;display:flex}.topbar-logo-mark{border:1.5px solid var(--ink);width:22px;height:22px;display:inline-block;position:relative;transform:rotate(45deg)}.topbar-logo-mark:after{content:"";background:var(--accent);position:absolute;inset:4px}.topbar-logo-img{width:auto;height:32px;display:block}[data-dark=true] .topbar-logo-img{filter:invert()sepia(.15)brightness(1.1)}.topbar nav{gap:1.25rem;margin-left:auto;display:flex}.topbar nav a{color:var(--ink-soft);transition:color .15s}.topbar nav a:hover{color:var(--accent)}.topbar-right{align-items:center;gap:.75rem;display:flex}.lang-toggle{border:1px solid var(--rule);border-radius:2px;display:inline-flex;overflow:hidden}.lang-toggle button{color:var(--ink-mute);padding:3px 8px;font-size:11px;transition:all .15s}.lang-toggle button.active{background:var(--ink);color:var(--paper)}@media (max-width:780px){.topbar nav{display:none}}.hero{flex-direction:column;justify-content:center;min-height:100vh;padding-top:120px;display:flex;position:relative;overflow:hidden}.hero-meta{color:var(--ink-mute);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:2rem;margin-bottom:3rem;padding:1rem 0;font-size:11px;display:grid}.hero-meta>div{flex-direction:column;gap:4px;display:flex}.hero-meta .val{color:var(--ink);font-weight:500}.hero-main{grid-template-columns:1fr .4fr;align-items:flex-end;gap:4rem;display:grid}@media (max-width:980px){.hero-main{grid-template-columns:1fr}.hero-meta{grid-template-columns:repeat(2,1fr);gap:1rem}}.hero h1{margin:0}.hero h1 .philos{color:var(--accent);margin-top:.5rem;font-style:italic;display:block}.hero-sub{color:var(--ink-soft);max-width:48ch;margin-top:2rem;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.55}.hero-side{color:var(--ink-soft);flex-direction:column;gap:1rem;font-size:12px;display:flex}.hero-side-card{border:1px solid var(--rule);background:color-mix(in oklab, var(--paper) 60%, var(--paper-2));padding:1rem;position:relative}.hero-side-card:before{content:"";border-top:2px solid var(--accent);border-left:2px solid var(--accent);width:10px;height:10px;position:absolute;top:-1px;left:-1px}.hero-side-card:after{content:"";border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);width:10px;height:10px;position:absolute;bottom:-1px;right:-1px}.hero-schema{opacity:.18;pointer-events:none;z-index:0;width:420px;height:420px;position:absolute;top:20%;right:-3rem}.hero-schema svg{width:100%;height:100%}.scroll-hint{color:var(--ink-mute);letter-spacing:.2em;align-items:center;gap:.5rem;font-size:10px;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-hint:before{content:"";background:var(--ink-mute);width:1px;height:30px;animation:2s ease-in-out infinite scrollPulse}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}.sec-head{grid-template-columns:.4fr 1fr;align-items:baseline;gap:2rem;margin-bottom:3rem;display:grid}.sec-head .num{letter-spacing:.2em;color:var(--ink-mute);border-top:1px solid var(--ink);justify-content:space-between;padding-top:.5rem;font-size:11px;display:flex}.sec-head .title{max-width:28ch}.sec-head .desc{color:var(--ink-soft);max-width:56ch;margin-top:1rem;font-size:15px}@media (max-width:780px){.sec-head{grid-template-columns:1fr}}.about-grid{grid-template-columns:1fr 1fr;gap:4rem;display:grid}@media (max-width:880px){.about-grid{grid-template-columns:1fr}}.about-text p{color:var(--ink);margin:0 0 1.25rem;font-size:1.05rem}.about-text p:first-child{margin-bottom:2rem;font-size:1.7rem;font-style:italic;line-height:1.3}.about-text p:first-child:first-letter{float:left;color:var(--accent);padding:4px 8px 0 0;font-size:3.5em;line-height:.85}.about-stats{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;padding-top:2rem;display:grid}.stat-val{color:var(--accent);font-size:3rem;line-height:1}.stat-lab{letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);margin-top:.5rem;font-size:10px}.sketch-card{background:var(--paper-2);border:1px solid var(--rule);padding:1.25rem;position:relative;transform:rotate(1.2deg);box-shadow:2px 4px 16px #0000000a}.sketch-card:before{content:"";background:color-mix(in oklab, var(--highlight) 60%, transparent);border:1px dashed color-mix(in oklab, var(--ink) 20%, transparent);width:80px;height:22px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-4deg)}.sketch-caption{color:var(--red-pen);text-align:center;margin-top:1rem;font-size:1.3rem}.timeline{padding-left:2rem;position:relative}.timeline:before{content:"";background:var(--rule);background-image:linear-gradient(to bottom, var(--ink) 0%, var(--ink) 50%, transparent 50%);background-size:1px 8px;width:1px;position:absolute;top:0;bottom:0;left:8px}.tl-item{grid-template-columns:80px 1fr;align-items:baseline;gap:1.5rem;padding-bottom:2rem;display:grid;position:relative}.tl-item:before{content:"";background:var(--paper);border:1.5px solid var(--ink);width:9px;height:9px;margin-left:4px;position:absolute;top:8px;left:-2rem;transform:rotate(45deg)}.tl-item.accent:before{background:var(--accent);border-color:var(--accent)}.tl-year{color:var(--ink-mute);font-size:13px;font-weight:500}.tl-title{margin:0 0 .35rem;font-size:1.35rem;line-height:1.2}.tl-desc{color:var(--ink-soft);margin:0;font-size:.95rem}.projects-wrap{grid-template-columns:1fr 340px;align-items:start;gap:3rem;display:grid}@media (max-width:1100px){.projects-wrap{grid-template-columns:1fr}}.projects-preview{position:sticky;top:6rem}.projects-preview-inner{border:1px solid var(--rule);background:var(--paper-2);aspect-ratio:16/10;position:relative;overflow:hidden}.projects-preview-inner img{object-fit:cover;object-position:top;width:100%;height:100%;transition:opacity .25s;display:block}.projects-preview-placeholder{width:100%;height:100%;font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.1em;justify-content:center;align-items:center;font-size:11px;display:flex}.projects-preview-name{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.08em;margin-top:.75rem;font-size:11px}.projects{border-top:1px solid var(--rule);flex-direction:column;display:flex}.project{border-bottom:1px solid var(--rule);cursor:none;grid-template-columns:100px .8fr 1fr .6fr 100px;align-items:center;gap:2rem;padding:2rem 0;transition:background .3s,padding .3s;display:grid}.project:hover{background:color-mix(in oklab, var(--paper) 80%, var(--accent) 6%);padding-left:1rem}.project .idx{color:var(--ink-mute);letter-spacing:.1em;font-size:11px}.project h3{margin:0;font-size:2rem;font-weight:400;line-height:1;transition:color .2s,transform .3s}.project:hover h3{color:var(--accent);transform:translate(6px)}.project .desc{color:var(--ink-soft);margin:0;font-size:.95rem}.project .meta{flex-wrap:wrap;gap:.4rem;display:flex}.project .arrow{border:1px solid var(--rule);border-radius:50%;justify-content:center;justify-self:end;align-items:center;width:36px;height:36px;transition:all .3s;display:flex}.project:hover .arrow{background:var(--accent);border-color:var(--accent);color:var(--paper);transform:rotate(-45deg)}@media (max-width:980px){.project{grid-template-rows:auto auto auto;grid-template-columns:50px 1fr auto;row-gap:.5rem}.project h3{grid-column:2/4}.project .desc,.project .meta{grid-column:1/-1}.project .arrow{grid-area:1/3}}.btn-all-projects{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);align-items:center;gap:.5rem;padding:.65rem 1.5rem;font-size:12px;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.btn-all-projects:hover{background:var(--ink);color:var(--paper)}.hw-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}@media (max-width:980px){.hw-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.hw-grid{grid-template-columns:1fr}}.hw-card{border:1px solid var(--rule);background:color-mix(in oklab, var(--paper) 60%, var(--paper-2));padding:1.5rem;transition:transform .3s,box-shadow .3s}.hw-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.hw-schema{border:1px dashed var(--rule);background:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px), var(--paper);background-size:12px 12px;height:160px;margin-bottom:1rem;overflow:hidden}.hw-card h4{margin:0 0 .25rem;font-size:1.35rem;font-weight:400}.hw-card .desc{color:var(--ink-soft);margin:0 0 1rem;font-size:.9rem}.hw-card .specs{border-top:1px dashed var(--rule);flex-wrap:wrap;gap:.35rem;padding-top:1rem;display:flex}.stack-grid{grid-template-columns:.6fr 1fr;gap:3rem;display:grid}@media (max-width:880px){.stack-grid{grid-template-columns:1fr}}.stack-cat{margin-bottom:2rem}.stack-cat-label{letter-spacing:.15em;color:var(--accent);text-transform:uppercase;border-bottom:1px solid var(--rule);margin-bottom:1rem;padding-bottom:.5rem;font-size:11px}.stack-list{flex-wrap:wrap;gap:.4rem;display:flex}.stack-tag{border:1px solid var(--rule);background:var(--paper);padding:5px 10px;font-size:12px;transition:all .2s}.stack-tag:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.srv-grid{grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:980px){.srv-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.srv-grid{grid-template-columns:1fr}}.srv{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:2rem 1.5rem;transition:background .3s}.srv:last-child{border-right:0}.srv:hover{background:color-mix(in oklab, var(--paper) 70%, var(--accent) 8%)}.srv-num{color:var(--ink-mute);letter-spacing:.15em;margin-bottom:3rem;font-size:11px}.srv h4{margin:0 0 .75rem;font-size:1.5rem;font-weight:400;line-height:1.1}.srv p{color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.55}.os-row{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}@media (max-width:880px){.os-row{grid-template-columns:1fr}}.os-vis{border:1px solid var(--rule);background:var(--paper-2);aspect-ratio:4/3;justify-content:center;align-items:center;padding:2rem;display:flex}.os-contrib-grid{grid-template-columns:repeat(7,1fr);gap:3px;width:100%;display:grid}.os-cell{aspect-ratio:1;background:var(--rule-soft);border-radius:2px;transition:transform .15s}.os-cell:hover{transform:scale(1.3)}.now-card{border:1px solid var(--ink);background:var(--paper);max-width:820px;margin:0 auto;padding:2.5rem;position:relative}.now-card:before{content:"NOW";letter-spacing:.2em;background:var(--accent);color:var(--paper);padding:2px 10px;font-size:11px;font-weight:600;position:absolute;top:-10px;left:2rem}.now-card .date{color:var(--ink-mute);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem;font-size:11px}.now-card h3{margin:0 0 1.5rem;font-size:2rem;font-weight:400;line-height:1.1}.now-list{margin:0;padding:0;list-style:none}.now-list li{border-bottom:1px dashed var(--rule);grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;padding:.75rem 0;display:grid}.now-list li:last-child{border:0}.now-list .tag{background:var(--ink);color:var(--paper);letter-spacing:.1em;padding:2px 6px;font-size:10px}.now-list .when{color:var(--ink-mute);font-size:11px}.certs-category{margin-bottom:3rem}.certs-category-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--ink-mute);border-bottom:2px solid var(--accent);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:11px;display:inline-block}.certs-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;display:grid}@media (max-width:1100px){.certs-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.certs-grid{grid-template-columns:1fr}}.certs-group-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--accent);border-bottom:1px solid var(--rule);margin-bottom:1rem;padding-bottom:.4rem;font-size:10px}.certs-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.certs-item{border:1px solid var(--rule-soft);background:var(--paper);grid-template-columns:10px 1fr auto;align-items:center;gap:.75rem;padding:.6rem .75rem;transition:border-color .15s;display:grid}.certs-item:hover{border-color:var(--accent)}.certs-item.obtained{border-color:var(--rule);background:color-mix(in oklab, var(--paper) 92%, var(--accent) 8%)}.certs-dot{border:1.5px solid var(--rule);background:0 0;border-radius:50%;width:8px;height:8px;transition:background .15s}.certs-item.obtained .certs-dot{background:var(--accent);border-color:var(--accent)}.certs-info{flex-direction:column;gap:2px;display:flex}.certs-name{font-size:13px;font-weight:500;line-height:1.2}.certs-provider{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.08em;font-size:10px}.certs-status{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-mute);white-space:nowrap;font-size:10px}.certs-item.obtained .certs-status{color:var(--accent)}.blog-grid{grid-template-columns:1fr 1fr;display:grid}@media (max-width:780px){.blog-grid{grid-template-columns:1fr}}.blog-item{border:1px solid var(--rule);grid-template-rows:auto 1fr auto;gap:1rem;min-height:220px;margin:-.5px;padding:2rem;transition:background .3s;display:grid}.blog-item:hover{background:var(--paper-2)}.blog-item .meta{color:var(--ink-mute);gap:1rem;font-size:11px;display:flex}.blog-item h4{margin:0;font-size:1.45rem;font-weight:400;line-height:1.15}.blog-item .excerpt{color:var(--ink-soft);margin:0;font-size:.9rem}.repl-wrap{border:1px solid var(--ink);color:#d8d2c0;background:#0e0d0a;border-radius:4px;font-size:13px;overflow:hidden}.repl-head{color:#8a8373;background:#1a1814;border-bottom:1px solid #2a261e;align-items:center;gap:.5rem;padding:10px 14px;font-size:11px;display:flex}.repl-dot{border-radius:50%;width:10px;height:10px}.repl-dot.r{background:#e76454}.repl-dot.y{background:#e8c872}.repl-dot.g{background:#8ab04a}.repl-body{min-height:320px;max-height:420px;padding:1.25rem;line-height:1.55;overflow-y:auto}.repl-body::-webkit-scrollbar{width:8px}.repl-body::-webkit-scrollbar-thumb{background:#2a261e;border-radius:4px}.repl-line{white-space:pre-wrap;word-break:break-word}.repl-line.sys{color:#e8c872}.repl-line.ok{color:#8ab04a}.repl-line.err{color:#e76454}.repl-line.info{color:#7ba2f0}.repl-line.mute{color:#666}.repl-line.user{color:#d8d2c0}.repl-prompt{color:#8ab04a}.repl-input{align-items:center;gap:.5rem;padding:0 1.25rem 1.25rem;display:flex}.repl-input input{color:#d8d2c0;cursor:none;background:0 0;border:0;outline:0;flex:1;font-size:13px}.contact-wrap{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}@media (max-width:880px){.contact-wrap{grid-template-columns:1fr}}.contact-big{letter-spacing:-.01em;margin:0 0 1.5rem;font-size:clamp(2.5rem,5vw,4.5rem);font-style:italic;line-height:1}.contact-big em{color:var(--accent);font-style:normal}.contact-lines{border-top:1px solid var(--ink)}.contact-lines a{border-bottom:1px solid var(--rule);grid-template-columns:120px 1fr auto;align-items:center;gap:1rem;padding:1.25rem 0;transition:padding .3s,color .2s;display:grid}.contact-lines a:hover{color:var(--accent);padding-left:.5rem}.contact-lines .lbl{letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;font-size:11px}.contact-lines .val{font-size:1.3rem}footer{border-top:1px solid var(--rule);color:var(--ink-mute);padding:3rem 0 2rem;font-size:11px}.footer-inner{max-width:var(--maxw);padding:0 var(--pad-inline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;margin:0 auto;display:flex}#dust{pointer-events:none;z-index:3;position:fixed;inset:0}.reveal{opacity:0;transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1);transform:translateY(20px)}.reveal.in{opacity:1;transform:none}.reveal.delay-1{transition-delay:.1s}.reveal.delay-2{transition-delay:.2s}.reveal.delay-3{transition-delay:.3s}#tweaks{z-index:200;background:var(--paper);border:1px solid var(--ink);border-radius:4px;width:280px;max-height:80vh;padding:1rem 1.1rem;font-size:11px;display:none;position:fixed;bottom:1.5rem;right:1.5rem;overflow-y:auto;box-shadow:4px 6px 20px #00000014}#tweaks.open{display:block}#tweaks h5{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);border-bottom:1px solid var(--rule);margin:0 0 .75rem;padding-bottom:.5rem;font-size:11px}#tweaks .tw-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}#tweaks .tw-label{color:var(--ink-soft);flex-shrink:0}#tweaks .tw-opts{gap:3px;display:flex}#tweaks .tw-opts button{border:1px solid var(--rule);color:var(--ink-mute);border-radius:2px;padding:3px 7px;font-size:10px;transition:all .15s}#tweaks .tw-opts button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}#tweaks .tw-swatches{gap:4px;display:flex}#tweaks .tw-swatches button{border:1.5px solid var(--rule);border-radius:50%;width:18px;height:18px;padding:0}#tweaks .tw-swatches button.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper), 0 0 0 3px var(--ink)}
