@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-italic.BicUS2cM.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-italic.BfTTTDIL.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-italic.Py8at3oI.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAaEABMAAAAADFgAAAYdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJpBmA/U1RBVIE4AFwvbBEICoJ8gkMLFAAwhCoBNgIkAyIEIAWGUAdiDAcbvgpRVHJOI/viwCYyfSFrJjFIG8raYpYj9+IeSF0s6zD+Lk/4OGrZHhHV+wvt2ffuWPwlA51lIICIosSVmyOKEs5Uzlx3NKeXIgn1ssCydUybDV0IHga+SszIyfrQe9bLTFNxjayzgs76hNsDoSYtRe32fiJ4gxBjrP8L+w//zzHjv7Yqyr9o2vOBDXhCo2jMtr4uwAK/gV1U0PxAq/EAD+yW9EoKOL1KLw8rHrFgCSgRTQRzBzpeXVhweEDlyfY8gIoOa2CQJzrTAHIIoitTMVV2dyFwpJ2iAEQTpSkhPitxD3YwuZHEagTcAhyKAcBmUyPdhTovJThOw6HYiaF2M/J7erdi2OUutor6ES6Ac88AvfZvKpb6fJoArohb524042j6Jij36NI7P8Pb7s721naN9gcTtcjXQP4l+8BKEzFVGMxxoHqlq8Ul4LGneFJBDFaOdKpLPcg8P14YSDwIcn75hdlyJLTBlZ4voL6tT46yC/njunXqpJ0/bSvmrH1o3kRlwZ+j0DBogkF3KbDRVBlbOc+fY5HVXwPoT9hfekPnyZMaEmenYLMSg5npqegFOsgXsBv1IoF9aIVfSCNHkk6+gIzILsiYuhWQCfUtZEpbkRntQxBZgw7MwFbMcRvwJrAnBlDqs7isLtL7pO84Xru1i7ah7tckH1Wreqq6K9u0amxU1bcff/s2Y1ni3rh2I8zHzqkm3PGvv3mzC6NDBz/UcOBIg+nm88rxN8MbdtypvHUL5o1c2zG0urYpRmW+VHZdiba6GXN/3v0B3i3nt4RBsbfAu8ftLqRcTIlZ4VYheFTAS5nXLS65VZrbuW3daF2Ze1ChyGXWZN6u9nUuH1LfyTERifZXEpIueMe28vF8FOoTnsONzw+1djo9P71lZGx1vM8mH/BhvSa2HDsRZ1+Ul+RmpnPOIaEuwWnZZdkgQWAAyCDDZ1wk+0sh7wseAAwA6UlHxbftCgYAAwKAgwIAEA7ACfHIRbV7J6dwF/ZzcRRmAjXUYKAGWAlDCCFmKnH+LJEQfHKEmVrfmKwSEab36AcubXQBoDYJV/aRV+funFD8wAXLSLYbwr9+DR+h/qZIKCfeqRG5ghHpdY0zcV2nuz5iJMhAFjaTDwOcoyKGG9JHrCfdp4cC+kCvUrxc7+bliIMiHj95sPIbUeWZEP/HLnN2tlr9EBeRiktHuWvErx98fRz1MuEvHO3FDRgtsSzL/P0hsDLK2n5/uHMOjvTst0HD6t+80ZN798j7j//kjqHxIOZDFPR/FxurFD6/HxGbB799RPHLx5F89MoBOub9jVuOWtmPH3o9H3r26DIuff+LqPLwff/xryDRmiAYmjxiK0GwS9XU+k8QpUrHsCTs4qH89Fv44ubWbQmOE51M7J8Pt8+h+NKt3zZpa2L9zZqcRlyEc4MaNGdfjQCxgIygn78ne4yAzcLWA3zAJ6RRGbijvHr1W+XN8ywrG0EoZSySb0/A9KsllI7Q/Pq8hLu76tfTy5cF4X8bQxTtYp2vr6/+1oI4AhgAlNYFryt62VaX9ktO6VsAeDLeWx6fff4vdV1ts7N6+gw9GCsQnqPB0QUttB9nEc7Aaf4XM0NQ90VJ+HV1rG04znGCmXcpPCA9+nxdMPgPlT7Dz83NMfZuMJaNeRqbc+tjd2QER/b0B44d7nv5Rif7VC8svYkx9SKWwb3YzN2M3cY8jSNLl+PYZqfjxNTxOLXVCmfmduDc0ty1kLbjeiGfIrDFJXWPTTMD5TKupR8cpZgJeXTofId8NoUj6E8XfAc2k4WPdbCberDYAp8Q7L5dUo8wE8cs9QINZYvwXKzvBS4v/n+fQZkGrrFysKEIuFBgjQpxiHH1XA+ZBI+C+oAoxhYKECc42rGOc8L4mYhsiThGfFjOcKmFubPpDgwnY1918Fwo8ouenDJxvGP96HFWJ28hiOy251oKjkcbGz2POMme8CTMThx6wqOPsFtPI6j6HhDyDTxFQYnL88FcXGAGHl3ZuueRbEuxbK6Hc84ZDvRrREtLzyjj8Xkd/uShR1b0sYd8Nh8/c8znxCnadxQcf2nFVWIyw1g+4StXav9j75s+CQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-vietnamese-wght-normal.CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-ext-wght-normal.Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,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(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0a0b0d;--bg-1: #0e0f12;--bg-2: #14151a;--bg-3: #1a1c22;--bg-inset: #060708;--line: color-mix(in oklab, #ffffff 8%, transparent);--line-soft: color-mix(in oklab, #ffffff 5%, transparent);--line-strong: color-mix(in oklab, #ffffff 15%, transparent);--text: #e9e8e3;--text-dim: #b8b8b2;--text-mute: #7d7d82;--text-faint:#4f4f55;--accent: #7fb4e0;--accent-bright:#a3cbef;--accent-dim: #5c7f9c;--accent-soft: color-mix(in oklab, #7fb4e0 10%, transparent);--accent-glow: color-mix(in oklab, #7fb4e0 18%, transparent);--live: #7fb4e0;--alert: #e07070;--cool: #7fb4e0;--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono Variable", ui-monospace, "SFMono-Regular", monospace;--font-sans: "Hanken Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: 1rem;--fs-md: 1.0625rem;--fs-lg: clamp(1.1rem, .95rem + .7vw, 1.3rem);--fs-xl: clamp(1.3rem, 1.05rem + 1vw, 1.6rem);--fs-2xl: clamp(1.55rem, 1.2rem + 1.4vw, 2rem);--fs-3xl: clamp(1.8rem, 1.4rem + 1.6vw, 2.4rem);--fs-display: clamp(2.2rem, 1.6rem + 2.6vw, 3.4rem);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--sp-20: 5rem;--sp-24: 6rem;--section-y: clamp(3rem, 5vw, 4.5rem);--maxw: 1440px;--readw: 70ch;--pad-x: clamp(1.25rem, 4vw, 4rem);--aside-w: clamp(150px, 16vw, 220px);--r-1: 2px;--r-2: 4px;--r-3: 8px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-1: .18s;--dur-2: .32s;--dur-3: .6s;--header-h: 64px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}*{margin:0}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem);tab-size:2}body{min-height:100svh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.6;font-feature-settings:"cv05" 1,"ss01" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,picture,svg,video,canvas{display:block;max-width:100%}svg{fill:currentColor}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}ul[role=list],ol[role=list]{list-style:none;padding:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-1)}::selection{background:var(--accent);color:#0a0a0b}*{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--bg-3);border:3px solid var(--bg);border-radius:99px}*::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:480;line-height:1.08;letter-spacing:-.005em;text-wrap:balance}h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}p{text-wrap:pretty}strong{color:var(--text);font-weight:600}small{font-size:var(--fs-sm)}code,kbd,samp{font-family:var(--font-mono)}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad-x)}.wrap--narrow{max-width:760px}.colsec__grid{display:grid;grid-template-columns:var(--aside-w) 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:start}.colsec__label{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);position:sticky;top:calc(var(--header-h) + 1.5rem)}@media(max-width:760px){.colsec__grid{grid-template-columns:1fr;gap:var(--sp-4)}.colsec__label{position:static;margin-bottom:var(--sp-1)}}@media(max-width:640px){:root{--section-y: 2.75rem}}.section{padding-block:var(--section-y);position:relative}.section+.section{border-top:1px solid var(--line-strong)}.stack>*+*{margin-top:var(--flow, 1rem)}.mono{font-family:var(--font-mono)}.disp{font-family:var(--font-display)}.label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.22em;text-transform:uppercase;color:var(--text-mute)}.meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text-mute)}.accent{color:var(--accent)}.dim{color:var(--text-dim)}.mute{color:var(--text-mute)}.caret{display:inline-block;width:.62em;height:1.05em;margin-left:.12em;translate:0 .16em;background:var(--accent);animation:blink 1.05s steps(1) infinite}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.rule{display:flex;align-items:center;gap:var(--sp-4);color:var(--text-faint)}.rule:after{content:"";flex:1;height:1px;background:var(--line)}.btn{--bd: var(--line-strong);display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.02em;padding:.7em 1.15em;border:1px solid var(--bd);border-radius:var(--r-2);background:var(--bg-1);color:var(--text);position:relative;transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease);white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--primary{background:var(--accent);color:#0a0a0b;border-color:var(--accent);font-weight:600}.btn--primary:hover{background:var(--accent-bright);border-color:var(--accent-bright);color:#0a0a0b;box-shadow:0 0 0 1px var(--accent-bright),0 8px 30px -10px var(--accent-glow)}.btn--ghost{background:transparent;border-color:var(--line)}.chip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;padding:.34em .7em;border:1px solid var(--line);border-radius:99px;color:var(--text-dim)}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--live);box-shadow:0 0 0 0 var(--live);animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--live) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--text-mute);border:1px solid var(--line-soft);padding:.2em .55em;border-radius:var(--r-1)}.link{color:var(--accent);position:relative;text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-2) var(--ease)}.link:hover{background-size:100% 1px}.arrow{display:inline-block;transition:transform var(--dur-1) var(--ease)}a:hover>.arrow,.btn:hover .arrow{transform:translate(2px,-2px)}.card{position:relative;display:block;border:1px solid var(--line);border-radius:var(--r-2);background:linear-gradient(180deg,var(--bg-1),var(--bg));padding:var(--sp-6);transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),transform var(--dur-2) var(--ease);overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0%,var(--accent-soft),transparent 55%);opacity:0;transition:opacity var(--dur-2) var(--ease);pointer-events:none}a.card:hover,.card.is-hover{border-color:var(--line-strong);transform:translateY(-3px)}a.card:hover:before{opacity:1}.ticked{position:relative}.ticked:before,.ticked:after{content:"";position:absolute;width:7px;height:7px;border-color:var(--accent);border-style:solid;opacity:.5}.ticked:before{top:-1px;left:-1px;border-width:1px 0 0 1px}.ticked:after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.data-row{display:flex;align-items:baseline;gap:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-sm);padding-block:.55rem;border-bottom:1px solid var(--line-soft)}.data-row__k{color:var(--text-mute);white-space:nowrap}.data-row__dots{flex:1;border-bottom:1px dotted var(--line);translate:0 -.28em}.data-row__v{color:var(--text);text-align:right}.readout{font-family:var(--font-display);font-variant-numeric:tabular-nums;line-height:1}.shead{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-10)}.shead__idx{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent);letter-spacing:.1em}.shead__title{font-family:var(--font-display);font-size:var(--fs-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.shead__line{flex:1;height:1px;background:linear-gradient(90deg,var(--line-strong),transparent)}.prose{font-size:var(--fs-md);line-height:1.75;color:var(--text-dim);max-width:var(--readw)}.prose>*+*{margin-top:1.3em}.prose h2,.prose h3,.prose h4{color:var(--text);margin-top:2em;line-height:1.2}.prose h2{font-size:var(--fs-xl)}.prose h3{font-size:var(--fs-lg)}.prose strong,.prose em{color:var(--text)}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-dim);text-underline-offset:3px;transition:text-decoration-color var(--dur-1)}.prose a:hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin-top:.5em}.prose ul>li::marker{color:var(--accent-dim)}.prose ol>li::marker{color:var(--text-mute);font-family:var(--font-mono);font-size:.85em}.prose blockquote{border-left:2px solid var(--accent);padding:.2em 0 .2em 1.2em;color:var(--text);font-style:italic;background:linear-gradient(90deg,var(--accent-soft),transparent 60%)}.prose code:not(pre code){font-size:.88em;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-1);padding:.12em .4em;color:var(--accent-bright)}.prose pre{font-size:var(--fs-sm);line-height:1.6;padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-2);overflow-x:auto;background:var(--bg-inset)!important}.prose img,.prose video{border-radius:var(--r-2);border:1px solid var(--line)}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.5em}.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.prose th,.prose td{text-align:left;padding:.6em .8em;border-bottom:1px solid var(--line)}.prose th{font-family:var(--font-mono);color:var(--text);text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:.08em}.js [data-reveal]{opacity:0;transform:translateY(16px)}.js [data-reveal].is-visible{opacity:1;transform:none;transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);transition-delay:var(--reveal-delay, 0ms)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.stagger>*{opacity:0;animation:rise .7s var(--ease-out) forwards;animation-delay:calc(var(--i, 0) * 70ms + .12s)}@keyframes scan-flicker{0%,to{opacity:.04}50%{opacity:.025}}.atmos{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.atmos__glow{position:absolute;inset:0;background:radial-gradient(65% 45% at 50% -12%,color-mix(in oklab,var(--accent) 6%,transparent),transparent 70%)}.atmos__grid{position:absolute;inset:-2px;background-image:linear-gradient(to right,var(--line-soft) 1px,transparent 1px),linear-gradient(to bottom,var(--line-soft) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 80%);opacity:.6}.atmos__scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 2px,color-mix(in oklab,#000 60%,transparent) 2px 3px);opacity:.04;animation:scan-flicker 6s ease-in-out infinite}.atmos__grain{position:absolute;inset:-100%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");opacity:.035;mix-blend-mode:overlay}.skip{position:absolute;left:50%;translate:-50% -150%;top:.5rem;z-index:100;background:var(--accent);color:#0a0a0b;padding:.5rem 1rem;border-radius:var(--r-2);font-family:var(--font-mono);font-size:var(--fs-sm);transition:translate var(--dur-1)}.skip:focus{translate:-50% 0}.secret{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:60;max-width:270px;padding:.85rem 2.2rem .85rem 1rem;background:var(--bg-2);border:1px solid var(--line-strong);border-radius:var(--r-2);box-shadow:0 20px 50px -20px #000000d9;font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.55;color:var(--text-dim);opacity:0;transform:translateY(10px);transition:opacity var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.secret.is-in{opacity:1;transform:none}.secret b{color:var(--accent);font-weight:500}.secret__x{position:absolute;top:.35rem;right:.45rem;width:1.5rem;height:1.5rem;line-height:1.4;text-align:center;font-size:1.15rem;color:var(--text-mute);border-radius:var(--r-1);transition:color var(--dur-1)}.secret__x:hover{color:var(--text)}@media(pointer:coarse),(hover:none),(max-width:820px){.secret{display:none!important}}.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.flow-sm{--flow: .6rem}.flow-md{--flow: 1.2rem}.flow-lg{--flow: 2rem}.center{text-align:center}.grid{display:grid;gap:var(--sp-6)}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cluster{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.between{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4)}.max-read{max-width:var(--readw)}@media(max-width:760px){.cols-2,.cols-3{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.js [data-reveal]{opacity:1!important;transform:none!important}.stagger>*{opacity:1!important;animation:none!important}.atmos__scan{display:none}.caret{animation:none}}@media print{.atmos,.skip,header.site,footer.site,.no-print{display:none!important}body{background:#fff;color:#000}.prose,.prose *{color:#000!important}a{color:#000;text-decoration:underline}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.site[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;background:color-mix(in oklab,var(--bg) 72%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease)}.site[data-astro-cid-3ef6ksr2][data-scrolled]{border-bottom-color:var(--line-soft);background:color-mix(in oklab,var(--bg) 88%,transparent)}.bar[data-astro-cid-3ef6ksr2]{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6)}.wordmark[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:baseline;font-family:var(--font-mono);font-weight:500;font-size:.95rem;letter-spacing:.01em}.wordmark__name[data-astro-cid-3ef6ksr2]{color:var(--text)}.wordmark__dot[data-astro-cid-3ef6ksr2],.wordmark[data-astro-cid-3ef6ksr2]:hover .wordmark__name[data-astro-cid-3ef6ksr2]{color:var(--accent)}.nav__list[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:clamp(.9rem,2vw,1.8rem)}.navlink[data-astro-cid-3ef6ksr2]{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-mute);transition:color var(--dur-1) var(--ease)}.navlink[data-astro-cid-3ef6ksr2]:hover{color:var(--text)}.navlink[data-astro-cid-3ef6ksr2].is-active{color:var(--accent)}.menu-btn[data-astro-cid-3ef6ksr2]{display:none;width:34px;height:34px;position:relative}.menu-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{position:absolute;left:7px;right:7px;height:1.5px;background:var(--text);transition:transform var(--dur-2) var(--ease),opacity var(--dur-1)}.menu-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(1){top:14px}.menu-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(2){bottom:14px}.site[data-astro-cid-3ef6ksr2].is-open .menu-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(1){transform:translateY(4px) rotate(45deg)}.site[data-astro-cid-3ef6ksr2].is-open .menu-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(2){transform:translateY(-4px) rotate(-45deg)}.mobile[data-astro-cid-3ef6ksr2]{border-top:1px solid var(--line);background:var(--bg-1);padding:var(--sp-2) var(--pad-x) var(--sp-6)}.mobile__list[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column}.mobile__link[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:1.2rem;color:var(--text);padding:1.15rem .4rem;border-bottom:1px solid var(--line);transition:color var(--dur-1) var(--ease),padding-left var(--dur-1) var(--ease),background var(--dur-1)}.mobile__link[data-astro-cid-3ef6ksr2]:after{content:"→";color:var(--text-faint);font-size:.85em}.mobile__link[data-astro-cid-3ef6ksr2]:active{color:var(--accent);padding-left:.7rem;background:var(--bg-2)}.mobile__link[data-astro-cid-3ef6ksr2].is-active,.mobile__link[data-astro-cid-3ef6ksr2].is-active:after{color:var(--accent)}@media(max-width:720px){.nav[data-astro-cid-3ef6ksr2]{display:none}.menu-btn[data-astro-cid-3ef6ksr2]{display:block}}@media(min-width:721px){.mobile[data-astro-cid-3ef6ksr2]{display:none!important}}.site[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line-soft);margin-top:var(--sp-24);padding-block:var(--sp-8)}.foot[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap}.foot__links[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:var(--sp-5)}.foot__link[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-mute);transition:color var(--dur-1) var(--ease)}.foot__link[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.foot__copy[data-astro-cid-sz7xmlte]{color:var(--text-faint)}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
