@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) 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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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{--color-background: 255 255 255;--color-background-alt: 245 247 250;--color-surface: 255 255 255;--color-surface-soft: 245 247 250;--color-surface-raised: 255 255 255;--color-surface-overlay: 255 255 255;--color-border: 217 226 236;--color-border-strong: 188 204 220;--color-text: 31 41 51;--color-text-muted: 82 96 109;--color-text-faint: 123 144 163;--color-brand-primary: 30 58 95;--color-brand-primary-soft: 44 82 130;--color-brand-secondary: 44 82 130;--color-brand-secondary-soft: 66 104 152;--color-brand-tertiary: 66 104 152;--color-brand-tertiary-soft: 96 132 174;--color-signal: 217 119 6;--color-on-brand: 255 255 255;--color-primary: 30 58 95;--color-primary-soft: 44 82 130;--color-on-primary: 255 255 255;--color-accent: 30 58 95;--color-accent-soft: 44 82 130;--color-on-accent: 255 255 255;--color-header-brand: 30 58 95;--color-header-brand-soft: 44 82 130;--color-on-header-brand: 255 255 255;--color-button-brand: 30 58 95;--color-button-brand-soft: 44 82 130;--color-on-button-brand: 255 255 255;--color-panel-brand: 30 58 95;--color-panel-brand-soft: 44 82 130;--color-on-panel-brand: 255 255 255;--color-chrome-bg: 255 255 255;--color-chrome-muted: 245 247 250;--color-chrome-border: 217 226 236;--color-chrome-foreground: 31 41 51;--font-body: "Inter Variable", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Inter Variable", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 12px;--shadow-soft: 0 14px 34px rgba(15, 23, 42, .08);--shadow-panel: 0 18px 42px rgba(31, 41, 51, .12);--shadow-chrome: 0 18px 42px rgba(31, 41, 51, .12);--content: 1120px;--gutter: 22px;color-scheme:light}[data-theme=dark]{--color-background: 15 23 42;--color-background-alt: 17 24 39;--color-surface: 17 24 39;--color-surface-soft: 31 41 55;--color-surface-raised: 31 41 55;--color-surface-overlay: 17 24 39;--color-border: 55 65 81;--color-border-strong: 75 85 99;--color-text: 229 231 235;--color-text-muted: 156 163 175;--color-text-faint: 107 114 128;--color-brand-primary: 59 130 246;--color-brand-primary-soft: 96 165 250;--color-brand-secondary: 96 165 250;--color-brand-secondary-soft: 125 211 252;--color-brand-tertiary: 125 211 252;--color-brand-tertiary-soft: 167 139 250;--color-signal: 245 158 11;--color-on-brand: 255 255 255;--color-primary: 59 130 246;--color-primary-soft: 96 165 250;--color-on-primary: 255 255 255;--color-accent: 59 130 246;--color-accent-soft: 96 165 250;--color-on-accent: 255 255 255;--color-header-brand: 59 130 246;--color-header-brand-soft: 96 165 250;--color-on-header-brand: 255 255 255;--color-button-brand: 59 130 246;--color-button-brand-soft: 96 165 250;--color-on-button-brand: 255 255 255;--color-panel-brand: 59 130 246;--color-panel-brand-soft: 96 165 250;--color-on-panel-brand: 255 255 255;--color-chrome-bg: 17 24 39;--color-chrome-muted: 31 41 55;--color-chrome-border: 55 65 81;--color-chrome-foreground: 229 231 235;--shadow-soft: 0 14px 34px rgba(2, 10, 24, .34);--shadow-panel: 0 18px 42px rgba(2, 6, 23, .56);--shadow-chrome: 0 18px 42px rgba(2, 6, 23, .56);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}html{scroll-behavior:smooth}body{margin:0;background-color:rgb(var(--color-background));color:rgb(var(--color-text));font-family:var(--font-body);line-height:1.55;letter-spacing:.01em;text-rendering:optimizeLegibility;transition:background .16s ease,color .16s ease}a{color:inherit;text-decoration:underline;text-decoration-color:rgb(var(--color-brand-primary) / .45);text-underline-offset:.18em}a:hover{text-decoration-color:rgb(var(--color-brand-primary) / .72)}img,svg{max-width:100%;height:auto}*:focus-visible{outline:2px solid rgb(var(--color-brand-primary));outline-offset:3px}::selection{background:rgb(var(--color-brand-primary) / .18)}.skip-link{position:absolute;left:12px;top:10px;z-index:50;padding:10px 12px;border-radius:10px;border:1px solid rgb(var(--color-brand-primary) / .38);background:rgb(var(--color-surface-overlay) / .94);color:rgb(var(--color-text));text-decoration:none;transform:translateY(-140%);transition:transform .18s ease}.skip-link:focus-visible{transform:translateY(0)}.container{width:min(var(--content),calc(100% - (var(--gutter) * 2)));margin:0 auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.surface{background-color:rgb(var(--color-surface));border:1px solid rgb(var(--color-border));border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.surface-card{padding:16px;border:1px solid rgb(var(--color-border-strong) / .72);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);background-color:rgb(var(--color-surface-raised) / .96);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}@media(hover:hover)and (pointer:fine){.surface-card:hover{transform:translateY(-3px);border-color:rgb(var(--color-brand-secondary) / .38);box-shadow:0 20px 36px rgb(var(--color-brand-primary) / .14)}}.surface-card:focus-within{transform:translateY(-2px);border-color:rgb(var(--color-brand-secondary) / .42);box-shadow:0 20px 36px rgb(var(--color-brand-primary) / .14)}@media(prefers-reduced-motion:reduce){.surface-card,.surface-card:hover,.surface-card:focus-within{transform:none}}.surface-card--warm{background-color:rgb(var(--color-brand-secondary-soft) / .08);border-color:rgb(var(--color-brand-secondary) / .18)}.surface-card--cool{background-color:rgb(var(--color-surface-soft) / .92)}.surface-card--signal{background-color:rgb(var(--color-signal) / .08);border-color:rgb(var(--color-signal) / .16)}.surface-callout{background-color:rgb(var(--color-surface-soft));border-color:rgb(var(--color-border-strong) / .82)}.button-row{display:flex;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:34px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid rgb(var(--color-border));background-color:rgb(var(--color-surface));color:rgb(var(--color-text));text-decoration:none;font-size:11px;font-weight:600;line-height:1rem;letter-spacing:.02em;box-shadow:0 1px 2px #0f172a14;transition:border-color .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease}.button:hover{text-decoration:none;border-color:rgb(var(--color-border));background-color:rgb(var(--color-surface-soft) / .9)}.button--primary{border-color:transparent;background-color:rgb(var(--color-button-brand));color:rgb(var(--color-on-button-brand));box-shadow:0 6px 16px rgb(var(--color-button-brand) / .35)}.button--primary:hover{border-color:transparent;background-color:rgb(var(--color-button-brand-soft))}.button--secondary{border-color:rgb(var(--color-border));background-color:rgb(var(--color-surface))}.button--secondary:hover{border-color:rgb(var(--color-border));background-color:rgb(var(--color-surface-soft) / .7)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:var(--radius-md);border:1px solid rgb(var(--color-border));background-color:rgb(var(--color-surface));color:rgb(var(--color-text));cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.icon-button:hover{border-color:rgb(var(--color-border));background-color:rgb(var(--color-surface-soft) / .82)}.site-nav-link{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;color:rgb(var(--color-text-muted));font-size:11px;font-weight:600;line-height:1rem;text-decoration:none;transition:color .15s ease,background-color .15s ease}.site-nav-link:hover,.site-nav-link[aria-current=page],.site-nav-link.active{background-color:rgb(var(--color-surface-soft) / .92);color:rgb(var(--color-text));text-decoration:none;box-shadow:inset 0 -2px rgb(var(--color-button-brand) / .88)}.site-menu-surface{border-radius:var(--radius-md);border:1px solid rgb(var(--color-border));background-color:rgb(var(--color-surface-raised) / .95);box-shadow:var(--shadow-panel);backdrop-filter:blur(8px)}.kicker{display:inline-flex;gap:10px;align-items:center;padding:8px 12px;border-radius:var(--radius-pill);border:1px solid rgb(var(--color-brand-primary) / .14);background:rgb(var(--color-brand-primary) / .06);color:rgb(var(--color-text-muted));font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.kicker:before{content:"";width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,rgb(var(--color-brand-primary)));box-shadow:0 0 0 4px rgb(var(--color-brand-primary) / .12)}.chip{display:inline-flex;align-items:center;gap:10px;padding:7px 11px;border-radius:var(--radius-md);border:1px solid rgb(var(--color-chrome-border));background-color:rgb(var(--color-chrome-bg));color:rgb(var(--color-chrome-foreground));box-shadow:var(--shadow-chrome);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.page-hero{padding:54px 0 18px}.page-title{margin:14px 0 0;font-family:var(--font-display);font-weight:650;font-size:clamp(2.5rem,5vw,3.35rem);line-height:1.02;letter-spacing:-.035em}.page-lede{margin:14px 0 0;max-width:74ch;color:rgb(var(--color-text-muted));font-size:1rem}.section-title{margin:14px 0 0;font-family:var(--font-display);font-weight:600;letter-spacing:-.025em;font-size:clamp(1.8rem,3.4vw,2.2rem);line-height:1.08}.section-body{margin-top:16px}.site-card-title{margin:0;font-size:16px;font-weight:600;letter-spacing:.01em;line-height:1.35}.site-card-body{margin:8px 0 0;color:rgb(var(--color-text-muted))}.meta-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--color-text-faint))}.note{margin-top:14px;color:rgb(var(--color-text-faint));font-size:13.5px}.split-layout{display:grid;gap:14px;align-items:start}.stack-list{margin:10px 0 0;padding-left:18px;color:rgb(var(--color-text-muted))}.detail-list{margin:0}.detail-row{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:10px 0;border-top:1px solid rgb(var(--color-border) / .22)}.detail-list dt,.detail-list dd{margin:0}.detail-key{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--color-text-faint))}.detail-value{color:rgb(var(--color-text-muted))}.page-end{padding:18px 0 74px}.gridlines{position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:linear-gradient(rgb(var(--color-border) / .16) 1px,transparent 1px),linear-gradient(90deg,rgb(var(--color-border) / .16) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at 50% 15%,black 0%,transparent 68%)}#challenge.section{position:relative;overflow:hidden;background:transparent;border-top:1px solid rgb(var(--color-border) / .36);border-bottom:1px solid rgb(var(--color-border) / .36)}#challenge.section>.container{position:relative;z-index:1}.section--solid{background:rgb(var(--color-background-alt) / .72)}.section--fancy{position:relative;overflow:hidden;background:radial-gradient(900px 360px at 18% 12%,rgb(var(--color-brand-secondary) / .08),transparent 62%),radial-gradient(760px 320px at 84% 88%,rgb(var(--color-brand-tertiary) / .08),transparent 64%),linear-gradient(180deg,rgb(var(--color-surface-soft) / .78),rgb(var(--color-background-alt) / .92));border-top:1px solid rgb(var(--color-border) / .28);border-bottom:1px solid rgb(var(--color-border) / .28)}.section--fancy:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.52;background-image:linear-gradient(rgb(var(--color-border) / .12) 1px,transparent 1px),linear-gradient(90deg,rgb(var(--color-border) / .12) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at 50% 18%,black 0%,transparent 76%)}.section--fancy>.container{position:relative;z-index:1}@media(prefers-reduced-motion:no-preference){.reveal{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}.reveal.d2{animation-delay:.12s}.reveal.d3{animation-delay:.24s}.reveal.d4{animation-delay:.36s}}@keyframes rise{0%{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media(min-width:860px){.page-hero{padding:72px 0 22px}.split-layout{grid-template-columns:1.15fr .85fr;gap:18px}}
