@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-ext-opsz-normal.C5tfwALZ.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-opsz-normal.DgmypKXX.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-ext-opsz-normal.DGm64vGR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-opsz-normal.DFglUmAd.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-vietnamese-opsz-normal.Gqw5JQlq.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-ext-opsz-normal.STiTPs0F.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:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-opsz-normal.BHZsWIlc.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:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-ext-opsz-italic.5yUt4G_9.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:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-opsz-italic.Bj0ndbyp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-ext-opsz-italic.DFpO5j-Z.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-opsz-italic.CHERNRFq.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:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-vietnamese-opsz-italic.BdcrZMcO.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:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-ext-opsz-italic.4y8iAqqs.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:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-opsz-italic.CJ93D38p.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:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-wght-normal.C6vrW8VD.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:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/atkinson-hyperlegible-next-latin-wght-normal.BcXVPD7q.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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-mono-latin-ext-400-normal.CpVFOiMk.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-ext-400-normal.ITMuFrSK.woff)format("woff");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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/atkinson-hyperlegible-mono-latin-400-normal.CmMGer93.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-400-normal.Cmjm2dBj.woff)format("woff");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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/atkinson-hyperlegible-mono-latin-ext-500-normal.DE1cvYE7.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-ext-500-normal.BiHEOgiK.woff)format("woff");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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/atkinson-hyperlegible-mono-latin-500-normal.CfDLaOZW.woff2)format("woff2"),url(/_astro/atkinson-hyperlegible-mono-latin-500-normal.BV5ipwqM.woff)format("woff");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:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-cyrillic-ext-700-normal.CrK2-ngJ.woff2)format("woff2"),url(/_astro/caveat-cyrillic-ext-700-normal.DjFGiEhD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-cyrillic-700-normal.BIyejhEL.woff2)format("woff2"),url(/_astro/caveat-cyrillic-700-normal.Bhcx9qBB.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-ext-700-normal.DFbRgDry.woff2)format("woff2"),url(/_astro/caveat-latin-ext-700-normal.DjJQd59I.woff)format("woff");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:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-700-normal.D8_1Nw6V.woff2)format("woff2"),url(/_astro/caveat-latin-700-normal.cPyBTTZN.woff)format("woff");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{--paper:#f6f7fb;--sheet:#fff;--ink:#161b3a;--ink-soft:#363c5e;--muted:#5d6381;--hairline:#161b3a21;--hairline-soft:#161b3a12;--rule:#3868d62b;--margin:#d6345a6b;--pen:#c8264f;--pen-ink:#fff;--pen-soft:#c8264f17;--marker:#ffcc338c;--panel-bg:radial-gradient(120% 130% at 50% 0%, #fff 0%, #e8ebf6 64%);--panel-ink:#161b3a;--panel-muted:#5d6381;--panel-track:#161b3a1a;--panel-glow:#c8264f29;--board:#121631;--board-ink:#f1f2fa;--board-muted:#a6abc7;--board-rule:#a0b4ff12;--board-pen:#ff7d9e;--board-pen-ink:#1b0a12;--board-marker:#ffc4334d;--glyph:#161b3a;--glyph-pen:#c8264f;--glyph-alpha:.2;--shadow:0 1px 2px #161b3a0f, 0 18px 40px -18px #161b3a38;--font-display:"Literata Variable", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-body:"Atkinson Hyperlegible Next Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Atkinson Hyperlegible Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-hand:"Caveat", "Segoe Print", "Bradley Hand", cursive;--ease-out:cubic-bezier(.16, 1, .3, 1);--nav-h:64px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0b0e1c;--sheet:#131833;--ink:#eef0fa;--ink-soft:#c8cce2;--muted:#989eba;--hairline:#eef0fa21;--hairline-soft:#eef0fa12;--rule:#82a5ff1a;--margin:#ff7a9c5c;--pen:#ff7d9e;--pen-ink:#1b0a12;--pen-soft:#ff7d9e1f;--marker:#ffc4333d;--panel-bg:radial-gradient(120% 130% at 50% 0%, #20264a 0%, #0d1022 62%);--panel-ink:#fff;--panel-muted:#a0a6c2;--panel-track:#ffffff1f;--panel-glow:#ff7d9e3d;--board:#060814;--glyph:#eef0fa;--glyph-pen:#ff7d9e;--glyph-alpha:.15;--shadow:0 1px 2px #0006, 0 18px 44px -18px #000000b3;color-scheme:dark}}:root[data-theme=dark]{--paper:#0b0e1c;--sheet:#131833;--ink:#eef0fa;--ink-soft:#c8cce2;--muted:#989eba;--hairline:#eef0fa21;--hairline-soft:#eef0fa12;--rule:#82a5ff1a;--margin:#ff7a9c5c;--pen:#ff7d9e;--pen-ink:#1b0a12;--pen-soft:#ff7d9e1f;--marker:#ffc4333d;--panel-bg:radial-gradient(120% 130% at 50% 0%, #20264a 0%, #0d1022 62%);--panel-ink:#fff;--panel-muted:#a0a6c2;--panel-track:#ffffff1f;--panel-glow:#ff7d9e3d;--board:#060814;--glyph:#eef0fa;--glyph-pen:#ff7d9e;--glyph-alpha:.15;--shadow:0 1px 2px #0006, 0 18px 44px -18px #000000b3;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--pen);outline-offset:3px;border-radius:8px}::selection{background:color-mix(in srgb, var(--pen) 24%, transparent)}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{width:min(1120px,100% - 32px);margin-inline:auto}section[id]{scroll-margin-top:calc(var(--nav-h) + 8px)}.kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--pen);margin:0 0 16px;font-size:.75rem}.h2{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(2rem,4.4vw,3.5rem);font-weight:500;line-height:1.08}.sub{color:var(--muted);text-wrap:pretty;margin:16px 0 0;font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.5}.sec{padding-block:clamp(88px,12vw,150px)}.sec-head{text-align:center;max-width:780px;margin:0 auto clamp(48px,7vw,80px)}.hand{font-family:var(--font-hand);color:var(--pen);font-weight:700;line-height:1}.mark{background-image:linear-gradient(100deg, transparent .18em, var(--marker) .32em, var(--marker) calc(100% - .3em), transparent calc(100% - .12em));-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size 1.1s var(--ease-out);background-position:0 88%;background-repeat:no-repeat;background-size:0% .5em;margin-inline:-.1em;padding-inline:.1em}.mark.on,:root:not([data-js]) .mark{background-size:100% .5em}.btn{height:50px;font-family:var(--font-body);cursor:pointer;transition:transform .45s var(--ease-out), box-shadow .35s, background-color .25s, border-color .25s;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:1rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn svg{transition:transform .3s var(--ease-out);flex:none}.btn:hover svg{transform:translate(2px,-2px)}.btn-ink{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.btn-ink:hover{box-shadow:0 16px 36px -14px color-mix(in srgb, var(--ink) 70%, transparent)}.btn-soft{background:var(--pen-soft);color:var(--ink);border:1px solid color-mix(in srgb, var(--pen) 42%, transparent)}.btn-soft:hover{box-shadow:0 0 44px -10px color-mix(in srgb, var(--pen) 65%, transparent)}.btn-pen{background:var(--pen);color:var(--pen-ink);border:1px solid var(--pen)}.btn-pen:hover{box-shadow:0 0 50px -12px var(--pen)}.btn-pen:hover svg{transform:none}.shimmer{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.shimmer:before{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--pen) 24%, transparent), transparent);animation:2.6s 2.2s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.ping{width:12px;height:12px;position:absolute;top:-4px;right:-4px}.ping:before,.ping:after{content:"";background:var(--pen);border-radius:50%;position:absolute;inset:0}.ping:before{opacity:.7;animation:1.7s cubic-bezier(0,0,.2,1) infinite ping}@keyframes ping{75%,to{opacity:0;transform:scale(2.3)}}.magnetic{will-change:transform}.btn-quiet{color:var(--pen);align-items:center;gap:6px;font-size:1.0625rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-quiet:hover{text-underline-offset:5px;text-decoration:underline}.nav{z-index:50;padding-top:env(safe-area-inset-top,0px);transition:transform .5s var(--ease-out), background-color .3s, box-shadow .3s;position:fixed;inset:0 0 auto}.nav.scrolled{background-color:var(--paper);box-shadow:0 1px 0 var(--hairline-soft)}@supports (background-color:color-mix(in srgb, white 50%, transparent)){.nav.scrolled{background-color:color-mix(in srgb, var(--paper) 74%, transparent);backdrop-filter:blur(18px)saturate(1.5)}}.nav.hide{transform:translateY(-100%)}.nav-inner{height:var(--nav-h);justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:10px;min-width:0;font-weight:500;text-decoration:none;display:flex}.brand-mark{width:36px;height:36px;transition:transform .5s var(--ease-out);flex:none;overflow:visible}.brand-bg{fill:var(--ink)}.brand-letters{fill:var(--paper)}.brand-ring{fill:none;stroke:var(--pen);stroke-width:26px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1}.brand:hover .brand-mark{transform:rotate(-8deg)scale(1.06)}.brand:hover .brand-ring{animation:.8s ease-out dash}.brand-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-links{gap:2px;display:flex;position:relative}.nav-links a{color:var(--muted);border-radius:999px;padding:8px 12px;font-size:.9375rem;text-decoration:none;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--ink)}.nav-indicator{background:var(--pen);opacity:0;width:0;height:2px;transition:left .5s var(--ease-out), width .5s var(--ease-out), opacity .3s;border-radius:2px;position:absolute;bottom:3px;left:0}.nav-tools{flex:none;align-items:center;gap:8px;display:flex}.lang{border:1px solid var(--hairline);background:var(--sheet);border-radius:999px;grid-template-columns:1fr 1fr;padding:3px;display:inline-grid;position:relative}.lang a{z-index:1;color:var(--muted);font-family:var(--font-mono);letter-spacing:.14em;text-align:center;text-transform:uppercase;border-radius:999px;padding:7px 11px;font-size:.75rem;font-weight:500;line-height:1;text-decoration:none;transition:color .3s;display:block;position:relative}.lang a:hover{color:var(--ink)}.lang a[aria-current=true]{color:var(--paper)}.lang-pill{background:var(--ink);width:calc(50% - 3px);transition:transform .55s var(--ease-out);border-radius:999px;position:absolute;top:3px;bottom:3px;left:3px}.lang[data-lang=en] .lang-pill{transform:translate(100%)}.theme-btn{border:1px solid var(--hairline);background:var(--sheet);width:38px;height:38px;color:var(--ink);cursor:pointer;transition:transform .5s var(--ease-out);border-radius:50%;place-items:center;display:grid}.theme-btn:hover{transform:rotate(-20deg)}.theme-btn .i-sun{display:none}.theme-btn[data-eff=dark] .i-sun{display:block}.theme-btn[data-eff=dark] .i-moon{display:none}@media (width<=860px){.nav-links{display:none}}@media (width<=380px){.brand-name{display:none}}.margin-progress{z-index:40;pointer-events:none;width:2px;display:none;position:fixed;top:0;bottom:0;left:clamp(12px,2vw,28px)}.margin-progress:before{content:"";background:var(--rule);position:absolute;inset:0}.margin-progress i{background:var(--margin);transform-origin:top;position:absolute;inset:0;transform:scaleY(0)}@media (width>=1280px){.margin-progress{display:block}}.hero{padding-top:calc(var(--nav-h) + clamp(72px, 11vw, 136px));padding-bottom:clamp(56px,8vw,96px);position:relative;overflow:clip}.ruled{pointer-events:none;height:100%;max-height:980px;position:absolute;inset:0 0 auto;-webkit-mask-image:radial-gradient(74% 64% at 50% 40%,#000 22%,#0000 78%);mask-image:radial-gradient(74% 64% at 50% 40%,#000 22%,#0000 78%)}.rl{background:var(--rule);transform-origin:0;height:1px;animation:draw-x 1.4s var(--ease-out) backwards;animation-delay:calc(var(--i) * 26ms);position:absolute;left:0;right:0}.rm{background:var(--margin);transform-origin:top;width:1.5px;animation:draw-y 1.8s .15s var(--ease-out) backwards;position:absolute;top:0;bottom:0;left:calc(50% - min(540px,44vw))}@keyframes draw-x{0%{transform:scaleX(0)}}@keyframes draw-y{0%{transform:scaleY(0)}}.glyphs{z-index:0;pointer-events:none;width:100%;height:0;position:absolute;top:0;left:0}.hero-inner{z-index:1;text-align:center;width:min(980px,100% - 32px);margin-inline:auto;position:relative}.eyebrow{color:var(--pen);animation:rise .9s .1s var(--ease-out) backwards;margin:0;font-size:clamp(1rem,1.4vw,1.1875rem);font-weight:500}.name-wrap{margin-top:16px;display:inline-block;position:relative}.hero-name{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;text-shadow:0 4px 60px color-mix(in srgb, var(--pen) 22%, transparent);margin:0;font-size:clamp(2.9rem,8.4vw,6.25rem);font-weight:500;line-height:1.02}.hero-name .w{white-space:nowrap;display:inline-block}.hero-name .w-it{font-style:italic;font-weight:400}.ch{animation:ch-in 1.1s var(--ease-out) backwards;animation-delay:calc(var(--i) * 42ms + .26s);transition:transform .45s var(--ease-out), color .3s;display:inline-block}.ch:hover{color:var(--pen);transform:translateY(-.07em)rotate(-5deg)}@keyframes ch-in{0%{opacity:0;filter:blur(10px);transform:translateY(.5em)rotate(7deg)}}.note{pointer-events:none;display:flex;position:absolute}.note-text{white-space:nowrap;display:inline-block}.note svg path{fill:none;stroke:var(--pen);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1}.note-hero{flex-direction:column;align-items:flex-end;font-size:clamp(1.4rem,2.4vw,1.95rem);top:-50px;right:-36px;transform:rotate(-6deg)}.note-hero svg{width:64px;height:46px;margin-top:-2px;margin-right:44px}.note-hero .note-text{animation:1s ease-out 1.5s backwards write}.note-hero path{animation:.7s ease-out 2.2s backwards dash}.note-hero path+path{animation-duration:.3s;animation-delay:2.75s}@keyframes write{0%{clip-path:inset(-30% 100% -30% 0)}to{clip-path:inset(-30% -5% -30% 0)}}@keyframes dash{0%{stroke-dashoffset:1px}}.hero-lede{max-width:640px;margin:30px auto 0}.lede-strong{letter-spacing:-.015em;text-wrap:balance;animation:rise .9s .85s var(--ease-out) backwards;margin:0;font-size:clamp(1.25rem,2.1vw,1.75rem);font-weight:500;line-height:1.3}.lede{color:var(--muted);text-wrap:pretty;animation:rise .9s .95s var(--ease-out) backwards;margin:12px 0 0;font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.5}.hero-ctas{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:38px;display:flex}.hero-ctas>*{animation:rise .9s var(--ease-out) backwards}.hero-ctas>:first-child{animation-delay:1.05s}.hero-ctas>:nth-child(2){animation-delay:1.15s}.hero-meta{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);animation:rise .9s 1.25s var(--ease-out) backwards;justify-content:center;align-items:center;gap:10px;margin:30px 0 0;font-size:.75rem;display:flex}.dot{flex:none;width:6px;height:6px;position:relative}.dot:before,.dot:after{content:"";background:var(--pen);border-radius:50%;position:absolute;inset:0}.dot:before{opacity:.7;animation:1.7s cubic-bezier(0,0,.2,1) infinite ping}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}@media (width<=640px){.name-wrap{margin-top:54px}.note-hero{top:-46px;right:0}.note-hero svg{width:50px;height:38px;margin-right:30px}}.panel{border:1px solid var(--hairline-soft);background:var(--panel-bg);color:var(--panel-ink);text-align:center;box-shadow:var(--shadow);border-radius:28px;padding:clamp(48px,8vw,92px) clamp(20px,5vw,64px);position:relative;overflow:hidden}.panel-glow{background:radial-gradient(ellipse at center, var(--panel-glow), transparent 66%);pointer-events:none;width:900px;height:440px;position:absolute;top:-200px;left:50%;transform:translate(-50%)}.panel>:not(.panel-glow){position:relative}.panel-cap{color:var(--panel-muted);margin:0;font-size:clamp(.9375rem,1.3vw,1.0625rem)}.cefr-head{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.15em .35em;margin:18px 0 0;display:flex}.cefr-big-wrap{display:inline-block;position:relative}.cefr-big{min-width:2.15ch;font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:lining-nums;text-shadow:0 8px 80px var(--panel-glow);font-size:clamp(5rem,15vw,10.5rem);font-weight:500;line-height:.95;display:inline-block}.cefr-word{font-family:var(--font-display);color:var(--panel-muted);font-size:clamp(1.5rem,4vw,3.25rem);font-style:italic}.cefr-scale{width:min(640px,100%);margin:52px auto 0}.segs,.cefr-labels{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.seg{background:var(--panel-track);border-radius:999px;height:8px;overflow:hidden}.seg i{background:var(--pen);height:100%;opacity:calc(.42 + var(--k) * .145);transform-origin:0;transition:transform .45s cubic-bezier(.5,0,.2,1);display:block;transform:scaleX(0)}.seg.full i{transform:scaleX(1)}.seg.instant i{transition:none}.cefr-labels{font-family:var(--font-mono);color:var(--panel-muted);margin:12px 0 0;padding:0;font-size:.8125rem;list-style:none}.cefr-labels li{transition:color .3s}.cefr-labels li.on{color:var(--panel-ink)}.cefr-labels li.cur{color:var(--pen);font-weight:500}.cefr-groups{color:var(--panel-muted);grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:16px;font-size:.8125rem;display:grid}.cefr-groups span{border-top:1px solid var(--panel-track);padding-top:10px;line-height:1.35;position:relative}.cefr-groups span:before,.cefr-groups span:after{content:"";background:var(--panel-track);width:1px;height:9px;position:absolute;top:-5px}.cefr-groups span:before{left:0}.cefr-groups span:after{right:0}.panel-foot{max-width:46ch;color:var(--panel-muted);margin:36px auto 0;font-size:.875rem}.ann{pointer-events:none;position:absolute;overflow:visible}.ann path{fill:none;stroke:var(--pen);stroke-width:2.8px;stroke-linecap:round;stroke-linejoin:round}.stats{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(44px,5vw,64px);padding-block:clamp(88px,12vw,150px);display:grid}.stat-num{font-family:var(--font-display);font-variant-numeric:lining-nums tabular-nums;margin:0;font-size:clamp(3.75rem,7vw,5.75rem);font-weight:500;line-height:1.1}.odo{vertical-align:top;height:1.1em;display:inline-block;overflow:hidden}.odo-strip{transform:translateY(calc((10 + var(--n)) * -1.1em));flex-direction:column;display:flex}.odo-strip span{height:1.1em;line-height:1.1;display:block}.stat-label{max-width:26ch;color:var(--muted);margin:10px auto 0;font-size:1rem;line-height:1.5}@media (width<=760px){.stats{grid-template-columns:1fr}}.band{background:var(--sheet);border-block:1px solid var(--hairline-soft);padding-block:clamp(88px,12vw,150px)}.band-top{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(36px,6vw,80px);display:grid}.band-copy{min-width:0}.cycle{justify-self:center;width:min(440px,100%);height:auto;overflow:visible}.cy-ring{fill:none;stroke:var(--hairline);stroke-width:1.5px;stroke-dasharray:3 7}.cy-arrow{fill:none;stroke:var(--muted);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.cy-trail{fill:none;stroke:var(--pen);stroke-width:3px;stroke-linecap:round;opacity:.5}.cy-dot{fill:var(--pen)}.cy-halo{fill:var(--pen);opacity:.16}.cy-orbit{transform-origin:220px 190px;animation:8s linear infinite orbit}@keyframes orbit{to{transform:rotate(360deg)}}.cy-node circle{fill:var(--sheet);stroke:var(--ink-soft);stroke-width:1.6px;transform-box:fill-box;transform-origin:50%;animation:8s linear infinite node}.cy-node text{fill:var(--muted);font:500 17px var(--font-body);animation:8s linear infinite node-t}.n1>*{animation-delay:-6s}.n2>*{animation-delay:-4s}.n3>*{animation-delay:-2s}@keyframes node{0%,13%{fill:var(--pen);stroke:var(--pen);transform:scale(1.3)}22%,93%{fill:var(--sheet);stroke:var(--ink-soft);transform:scale(1)}to{fill:var(--pen);stroke:var(--pen);transform:scale(1.3)}}@keyframes node-t{0%,13%{fill:var(--ink)}22%,93%{fill:var(--muted)}to{fill:var(--ink)}}.cy-center{fill:var(--pen);font:700 25px var(--font-hand)}.chips{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(28px,4vw,48px);margin-top:clamp(64px,8vw,100px);display:grid}.chip{padding-top:22px;position:relative}.chip:before,.chip:after{content:"";transform-origin:0;transition:transform 1.2s var(--ease-out) .2s;position:absolute;top:0;left:0}.chip:before{background:var(--hairline);height:1px;right:0}.chip:after{background:var(--pen);width:44px;height:2px;transition-delay:.5s;top:-.5px}:root[data-js] .chip:not(.in):before,:root[data-js] .chip:not(.in):after{transform:scaleX(0)}.chip-title{letter-spacing:-.01em;margin:0;font-size:1.1875rem;font-weight:500}.chip-body{color:var(--muted);margin:8px 0 0;font-size:.96875rem;line-height:1.55}@media (width<=1000px){.chips{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.band-top{grid-template-columns:1fr}.band-copy{text-align:center}}@media (width<=560px){.chips{grid-template-columns:1fr}}.tl{--when-w:210px;--node-w:56px;position:relative}.tl-line{background:var(--hairline);border-radius:2px;width:2px;height:0;position:absolute;top:0;left:0}.tl-progress{background:linear-gradient(var(--pen), color-mix(in srgb, var(--pen) 50%, transparent));transform-origin:top;border-radius:2px;position:absolute;inset:0}.tl-list{margin:0;padding:0;list-style:none}.tl-item{grid-template-columns:var(--when-w) var(--node-w) minmax(0, 1fr) auto;grid-template-areas:"when node body tag";align-items:start;padding-block:30px;display:grid}.tl-when{text-align:right;font-family:var(--font-mono);color:var(--ink-soft);flex-direction:column;grid-area:when;gap:2px;padding-top:3px;font-size:.8125rem;display:flex}.tl-dur{color:var(--muted)}.tl-node{z-index:1;border:2px solid var(--hairline);background:var(--paper);width:14px;height:14px;transition:background-color .3s, border-color .3s, box-shadow .45s, transform .45s var(--ease-out);border-radius:50%;grid-area:node;justify-self:center;margin-top:6px;position:relative}:root:not([data-js]) .tl-node,.tl-node.passed{border-color:var(--pen);background:var(--pen);box-shadow:0 0 0 6px var(--pen-soft);transform:scale(1.12)}.tl-body{grid-area:body;min-width:0}.tl-org{color:var(--pen);margin:0;font-size:.9375rem;font-weight:500}.tl-role{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:6px 0 0;font-size:clamp(1.375rem,2.6vw,2rem);font-weight:500;line-height:1.15}.tl-points{max-width:62ch;color:var(--muted);gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.tl-points li{padding-left:20px;position:relative}.tl-points li:before{content:"";background:var(--pen);opacity:.7;width:9px;height:1.5px;position:absolute;top:.78em;left:2px}.tag-chip{border:1px solid var(--hairline);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;border-radius:999px;grid-area:tag;margin:2px 0 0 24px;padding:6px 12px;font-size:.6875rem}@media (width<=860px){.tl{--when-w:0px;--node-w:34px}.tl-item{grid-template-columns:var(--node-w) minmax(0, 1fr);grid-template-areas:"node when""node body""node tag";padding-block:24px}.tl-node{grid-row:1/span 3;margin-top:3px}.tl-when{text-align:left;flex-flow:wrap;gap:4px 12px;margin-bottom:8px;padding-top:0}.tag-chip{white-space:normal;justify-self:start;margin:14px 0 0}}.gantt{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:center;gap:30px clamp(24px,4vw,52px);display:grid}.g-row{display:contents}.g-title{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:clamp(1.125rem,1.8vw,1.375rem);font-weight:500;line-height:1.25}.g-years{font-family:var(--font-mono);color:var(--muted);margin:6px 0 0;font-size:.8125rem}.g-track{border:1px solid var(--hairline-soft);background-color:var(--sheet);background-image:linear-gradient(to right, var(--hairline-soft) 1px, transparent 1px);background-size:25% 100%;border-radius:14px;height:50px;position:relative}.g-bar{top:9px;bottom:9px;left:calc(var(--from) * 100%);width:calc((var(--to) - var(--from)) * 100%);background:var(--pen);transform-origin:0;transition:transform 1.4s var(--ease-out);border-radius:9px;position:absolute}.g-bar-tsu{background:var(--ink-soft);transition-delay:.25s}:root[data-js] .gantt:not(.in) .g-bar{transform:scaleX(0)}.g-axis{height:20px;font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;grid-column:2;margin-top:-14px;font-size:.75rem;position:relative}.g-axis span{left:calc(var(--p) * 100%);position:absolute;transform:translate(-50%)}.g-axis span:first-child{transform:none}.g-axis span:last-child{transform:translate(-100%)}.note-lic{align-items:center;gap:6px;font-size:1.6rem;bottom:calc(100% + 4px);right:-6px;transform:rotate(-5deg)}.note-lic svg{width:26px;height:26px}:root[data-js] .gantt:not(.in) .note-lic .note-text{clip-path:inset(-30% 100% -30% 0)}:root[data-js] .gantt:not(.in) .note-lic path{stroke-dashoffset:1px}.gantt.in .note-lic .note-text{animation:.9s ease-out 1.35s backwards write}.gantt.in .note-lic path{animation:.6s ease-out 2.1s backwards dash}@media (width<=760px){.gantt{grid-template-columns:1fr;gap:12px}.g-track{margin-bottom:26px}.g-row:first-child .g-track{margin-top:34px}.g-axis{grid-column:1;margin-top:-18px}}.feats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.feat{border:1px solid var(--hairline-soft);background:var(--panel-bg);height:100%;color:var(--panel-ink);transition:transform .5s var(--ease-out), box-shadow .5s;border-radius:24px;padding:clamp(28px,4vw,48px);position:relative;overflow:hidden}.feat:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.feat-glyph{font-family:var(--font-display);color:var(--pen);opacity:.12;pointer-events:none;transition:transform .8s var(--ease-out), opacity .4s;font-size:10rem;font-style:italic;line-height:1;position:absolute;top:-.18em;right:clamp(16px,3vw,32px)}.feat:hover .feat-glyph{opacity:.2;transform:translateY(10px)rotate(-6deg)}.feat>:not(.feat-glyph){position:relative}.feat-meta{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--pen);margin:0;font-size:.75rem}.feat-title{max-width:20ch;font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:18px 0 0;font-size:clamp(1.5rem,2.8vw,2.25rem);font-weight:500;line-height:1.12}.feat-body{max-width:52ch;color:var(--panel-muted);margin:14px 0 0}.feat-org{margin:22px 0 0;font-size:.9375rem;font-weight:500}@media (width<=820px){.feats{grid-template-columns:1fr}}.certs{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.cert-cell.is-feature{grid-column:span 2}.cert{--rx:0deg;--ry:0deg;border:1px solid var(--hairline-soft);background:var(--sheet);height:100%;min-height:214px;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--ease-out), border-color .3s, box-shadow .4s;border-radius:20px;flex-direction:column;gap:12px;padding:24px;display:flex;position:relative;overflow:hidden}.cert:after{content:"";border-radius:inherit;background:radial-gradient(280px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--pen) 14%, transparent), transparent 65%);opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.cert:hover{border-color:color-mix(in srgb, var(--pen) 35%, transparent);box-shadow:var(--shadow)}.cert:hover:after{opacity:1}.cert-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cert-issuer{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.71875rem;line-height:1.5}.stamp{width:40px;height:40px;color:var(--pen);flex:none}.stamp circle,.stamp path{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1}:root[data-js] .cert-cell:not(.in) .stamp{opacity:0}.cert-cell.in .stamp{animation:stamp .6s var(--ease-out) backwards;animation-delay:calc(var(--d,0s) + .25s)}.cert-cell.in .stamp circle{animation:.7s ease-out backwards dash;animation-delay:calc(var(--d,0s) + .38s)}.cert-cell.in .stamp path{animation:.45s ease-out backwards dash;animation-delay:calc(var(--d,0s) + .9s)}@keyframes stamp{0%{opacity:0;transform:scale(1.7)rotate(-22deg)}}.cert-title{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:1.25rem;font-weight:500;line-height:1.25}.is-feature .cert-title{font-size:clamp(1.5rem,2.6vw,2rem)}.cert-note{max-width:46ch;color:var(--muted);margin:0;font-size:.9375rem}.cert-date{font-family:var(--font-mono);color:var(--muted);margin:auto 0 0;font-size:.8125rem}.certs-foot{text-align:center;margin-top:36px}@media (width<=1000px){.certs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.certs{grid-template-columns:1fr}.cert-cell.is-feature{grid-column:auto}}.skills{border-top:1px solid var(--hairline)}.skill-row{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:16px 40px;padding-block:26px;display:grid}.skill-h{font-family:var(--font-display);margin:0;font-size:1.25rem;font-weight:500;line-height:1.3}.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--hairline);background:var(--sheet);transition:opacity .6s var(--ease-out), transform .6s var(--ease-out), border-color .25s, color .25s;transition-delay:calc(var(--i,0) * 45ms + .14s);border-radius:999px;padding:7px 14px;font-size:.9375rem;line-height:1.3}.tag:hover{border-color:var(--pen);color:var(--pen);transition-delay:0s}.tag-pen{border-color:color-mix(in srgb, var(--pen) 32%, transparent);background:var(--pen-soft)}:root[data-js] .skill-row:not(.in) .tag{opacity:.15;transform:translateY(10px)}@media (width<=760px){.skill-row{grid-template-columns:1fr}}.board{--ink:var(--board-ink);--muted:var(--board-muted);--pen:var(--board-pen);--pen-ink:var(--board-pen-ink);--marker:var(--board-marker);background-color:var(--board);background-image:repeating-linear-gradient(to bottom, transparent 0 39px, var(--board-rule) 39px 40px);color:var(--ink);text-align:center;padding-block:clamp(100px,14vw,180px);position:relative;overflow:hidden}.board:before{content:"";background:color-mix(in srgb, var(--board-pen) 30%, transparent);width:1.5px;position:absolute;top:0;bottom:0;left:calc(50% - min(540px,44vw))}.board-inner{position:relative}.board-title{max-width:16ch;font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0 auto;font-size:clamp(2.25rem,5.2vw,4.25rem);font-weight:500;line-height:1.06}.board-body{max-width:52ch;color:var(--muted);text-wrap:pretty;margin:22px auto 0;font-size:clamp(1.0625rem,1.4vw,1.25rem)}.email-big{font-family:var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere;margin:46px 0 0;font-size:clamp(1.375rem,4vw,2.75rem);font-style:italic}.email-big a{color:inherit;-webkit-user-select:all;user-select:all;text-decoration:none;position:relative}.email-big a:hover{color:var(--pen)}.email-big a:after{content:"";background:var(--pen);transform-origin:0;height:2px;transition:transform 1.3s var(--ease-out) .45s;position:absolute;bottom:-.06em;left:0;right:0}:root[data-js] .board-inner:not(.in) .email-big a:after{transform:scaleX(0)}.board-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 30px;margin-top:36px;display:flex}.board-loc{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:40px 0 0;font-size:.75rem}.foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding-block:28px 44px;font-size:.875rem;display:flex}.foot p{margin:0}.foot a{color:var(--ink);text-decoration:none}.foot a:hover{color:var(--pen)}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--ink);max-width:calc(100% - 32px);color:var(--paper);box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:transform .5s var(--ease-out), opacity .3s, visibility 0s .5s;border-radius:999px;padding:12px 20px;font-size:.9375rem;font-weight:500;position:fixed;transform:translate(-50%,24px)}.toast.show{opacity:1;visibility:visible;transition:transform .5s var(--ease-out), opacity .3s, visibility 0s;transform:translate(-50%)}@media (prefers-reduced-motion:no-preference){:root[data-js] .reveal{opacity:.14;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(30px)}:root[data-js] .reveal.in{opacity:1;transform:none}:root[data-js] .settle{opacity:.5;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);transform:scale(.94)translateY(26px)}:root[data-js] .settle.in{opacity:1;transform:none}}@keyframes failsafe{to{opacity:1;transform:none}}:root[data-js]:not([data-reveal]) .reveal,:root[data-js]:not([data-reveal]) .settle{animation:1ms linear 6s forwards failsafe}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
