:root{color-scheme:dark;--bg: #141416;--surface: #1c1c1f;--surface2: #232327;--fg: #ececed;--mid: #a5a5ab;--faint: #8e8e96;--line: rgba(236, 237, 237, .14);--hair: rgba(236, 237, 237, .07);--accent: #7b4dff;--accent-text: #b9a3ff;--acc-1: #7b4dff;--acc-2: #9b78ff;--acc-3: #c0acff;--ribbon: var(--accent);--on-ribbon: var(--fg);--accent-wash: rgba(123, 77, 255, .16);--accent-tint: rgba(123, 77, 255, .1);--header: var(--bg);--stripe: rgba(236, 237, 237, .05);--stripe2: rgba(236, 237, 237, .02);--code: #101013;--codefg: #e6e6e8;--shadow-panel: 0 18px 40px rgba(0, 0, 0, .55)}[data-theme=light]{color-scheme:light;--bg: #f5f5f6;--surface: #ecedee;--surface2: #e4e5e7;--fg: #17171a;--mid: #55555e;--faint: #62626c;--line: rgba(23, 23, 26, .15);--hair: rgba(23, 23, 26, .07);--accent: #5b21b6;--accent-text: #5b21b6;--acc-1: #5b21b6;--acc-2: #7440cf;--acc-3: #9068e0;--ribbon: #c9b6ff;--accent-wash: rgba(91, 33, 182, .13);--accent-tint: rgba(91, 33, 182, .08);--stripe: rgba(23, 23, 26, .05);--stripe2: rgba(23, 23, 26, .02);--code: #17171a;--codefg: #e6e6e8;--shadow-panel: 0 18px 40px rgba(23, 23, 26, .16)}:root{--on-accent: #ffffff;--danger: #ff8a80;--traffic-red: #ff5f57;--traffic-amber: #febc2e;--traffic-green: #28c840;--font-sans: "Archivo", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--fs-hero: clamp(46px, 7.8vw, 112px);--fs-page-title: clamp(40px, 6.6vw, 88px);--fs-detail-title: clamp(36px, 6vw, 78px);--fs-h2: 25px;--fs-card-title: 21px;--fs-body: 17px;--fs-meta: 12px;--fs-label: 11px;--container: 1280px;--gutter: 32px;--bento-gap: 16px;--rhythm: 104px;--page-top: 56px;--r-card: 0;--r-inner: 0;--r-input: 0;--r-pill: 0;--ease: cubic-bezier(.2, .72, .16, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--stripes: repeating-linear-gradient(135deg, var(--stripe) 0 8px, var(--stripe2) 8px 16px);--tint-dot: radial-gradient(currentcolor 1px, transparent 1.1px)}@media(max-width:680px){:root{--gutter: 22px;--rhythm: 72px;--page-top: 36px}}@font-face{font-family:Archivo;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/archivo-latin.woff2) format("woff2");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:Archivo;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/archivo-latin-ext.woff2) format("woff2");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;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");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;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2) format("woff2");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}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{position:relative;margin:0;min-height:100dvh;overflow-x:hidden;background-color:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;-webkit-font-smoothing:antialiased;transition:background-color .45s var(--ease),color .45s var(--ease)}body:after{content:"";position:fixed;z-index:60;inset:0;opacity:.045;background-image:var(--tint-dot);background-size:4px 4px;color:var(--fg);pointer-events:none}h1,h2,h3,h4,p,figure{margin:0}a{color:inherit;text-decoration:none;transition:color .3s}a:hover{color:var(--accent-text)}button,input,select,textarea{font:inherit;color:inherit}code,kbd,pre,samp{font-family:var(--font-mono)}img{max-width:100%}input::placeholder{color:var(--faint)}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}.theme-switching,.theme-switching *,.theme-switching *:before,.theme-switching *:after{transition:background-color .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease),fill .4s var(--ease),stroke .4s var(--ease)!important}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.mono{font-family:var(--font-mono)}.stamp{color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.2em;text-transform:uppercase}@media(max-width:760px){html.is-menu-open,html.is-menu-open body{overflow:hidden}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.rule-link{position:relative}.rule-link:after{content:"";position:absolute;right:0;bottom:50%;left:0;height:2px;background:var(--accent);transform:translateY(.82em) scaleX(0);transform-origin:left center;transition:transform .32s var(--ease)}.rule-link:hover:after,.rule-link:focus-visible:after{transform:translateY(.82em) scaleX(1)}@media(prefers-reduced-motion:reduce){.rule-link:after{transition:none}}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border:2px solid var(--fg);border-radius:var(--r-pill);background-color:transparent;background-image:linear-gradient(var(--fg),var(--fg));background-repeat:no-repeat;background-position:0 100%;background-size:100% 0;color:var(--fg);font-size:15px;font-weight:700;white-space:nowrap;cursor:pointer;transition:color .35s var(--ease),background-size .42s var(--ease),border-color .35s var(--ease)}.btn:hover{color:var(--bg);background-size:100% 100%}.btn--fill{border-color:transparent;background-color:var(--accent);background-image:linear-gradient(color-mix(in srgb,var(--accent) 78%,#fff),color-mix(in srgb,var(--accent) 78%,#fff));color:var(--on-accent)}.btn--fill:hover{color:var(--on-accent)}@keyframes rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}.reveal.is-revealed{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important}.reveal,.reveal.is-revealed{opacity:1;transform:none;transition:none}}
