:root{color-scheme:dark;--void:#05060b;--void-deep:#020308;--panel:255 255 255/0.045;--panel-raised:255 255 255/0.075;--panel-sunken:0 0 0/0.25;--edge:255 255 255/0.09;--edge-bright:255 255 255/0.18;--edge-strong:255 255 255/0.28;--ink:#f2f4fb;--ink-soft:#b9c0d4;--ink-mute:#7d859d;--ink-faint:#4d556c;--iris:#8b5cf6;--iris-lift:#a78bfa;--iris-deep:#6d28d9;--cyan:#22d3ee;--cyan-lift:#67e8f9;--magenta:#e879f9;--grad-action:linear-gradient(135deg,var(--iris) 0%,var(--cyan) 100%);--grad-action-hot:linear-gradient(135deg,var(--iris-lift) 0%,var(--cyan-lift) 100%);--grad-ink:linear-gradient(120deg,var(--ink) 20%,var(--iris-lift) 55%,var(--cyan-lift) 90%);--ok:#34d399;--warn:#fbbf24;--bad:#fb7185;--font-sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Inter var",Inter,"Helvetica Neue",Arial,"Noto Sans","PingFang SC","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans CJK SC","Microsoft YaHei","Malgun Gothic",sans-serif;--font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--t-xs:0.8125rem;--t-sm:0.875rem;--t-md:1rem;--t-lg:1.1875rem;--t-xl:1.5rem;--t-2xl:2rem;--t-3xl:2.75rem;--t-4xl:3.75rem;--t-5xl:clamp(2.75rem,7vw,5.5rem);--lh-tight:1.05;--lh-snug:1.25;--lh-body:1.65;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:72px;--s-9:112px;--s-10:160px;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-xl:32px;--r-full:999px;--lift-1:0 1px 2px rgb(0 0 0/0.4),inset 0 1px 0 rgb(255 255 255/0.06);--lift-2:0 12px 32px -12px rgb(0 0 0/0.7),inset 0 1px 0 rgb(255 255 255/0.08);--lift-3:0 32px 64px -24px rgb(0 0 0/0.85),inset 0 1px 0 rgb(255 255 255/0.1);--glow-iris:0 0 0 1px rgb(139 92 246/0.4),0 8px 32px -8px rgb(139 92 246/0.5);--glow-cyan:0 0 0 1px rgb(34 211 238/0.4),0 8px 32px -8px rgb(34 211 238/0.5);--ms-1:120ms;--ms-2:220ms;--ms-3:380ms;--ms-4:620ms;--ms-5:1100ms;--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-swift:cubic-bezier(0.2,0,0,1);--ease-glide:cubic-bezier(0.16,1,0.3,1);--ease-out:cubic-bezier(0,0,0.2,1);--page-max:1240px;--gutter:20px;--z-aurora:0;--z-base:1;--z-sticky:100;--z-header:200;--z-overlay:400;--z-modal:500;--z-toast:600;--flow:1}[dir=rtl]{--flow:-1}@media (min-width:768px){:root{--gutter:40px}}@media (min-width:1180px){:root{--gutter:64px}}:root[data-theme=light]{color-scheme:light;--void:#eef0f7;--void-deep:#e2e6f1;--panel:255 255 255/0.72;--panel-raised:255 255 255/0.9;--panel-sunken:12 16 32/0.05;--edge:14 18 38/0.1;--edge-bright:255 255 255/0.9;--edge-strong:14 18 38/0.24;--ink:#0a0d1a;--ink-soft:#333c56;--ink-mute:#5a6480;--ink-faint:#8b93a9;--iris:#6d28d9;--iris-lift:#5b21b6;--iris-deep:#4c1d95;--cyan:#0891b2;--cyan-lift:#0e7490;--ok:#059669;--warn:#b45309;--bad:#be123c;--lift-1:0 1px 2px rgb(10 13 26/0.06),0 1px 3px rgb(10 13 26/0.04);--lift-2:0 2px 4px rgb(10 13 26/0.04),0 14px 28px -10px rgb(10 13 26/0.14);--lift-3:0 4px 8px rgb(10 13 26/0.05),0 36px 64px -20px rgb(10 13 26/0.2)}.glass{position:relative;background-color:rgb(var(--panel));border:1px solid rgb(var(--edge));border-radius:var(--r-lg);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);box-shadow:var(--lift-2)}.glass:before{content:"";position:absolute;inset-block-start:0;inset-inline:12%;block-size:1px;background:linear-gradient(90deg,transparent,rgb(var(--edge-bright)) 35%,rgb(var(--edge-bright)) 65%,transparent);pointer-events:none}.glass-raised{background-color:rgb(var(--panel-raised));box-shadow:var(--lift-3)}.glass-sunken{background-color:rgb(var(--panel-sunken));border:1px solid rgb(var(--edge));border-radius:var(--r-md);box-shadow:inset 0 2px 8px rgb(0 0 0/.25)}.grad-text{background:var(--grad-ink);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--ink)}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-block-start:96px}body{min-block-size:100dvh;background-color:var(--void);color:var(--ink);font-family:var(--font-sans);font-size:var(--t-md);line-height:var(--lh-body);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}canvas,img,picture,svg,video{display:block;max-inline-size:100%}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-weight:700;line-height:var(--lh-snug);letter-spacing:-.022em;text-wrap:balance}p{text-wrap:pretty}ol,ul{list-style:none}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:var(--r-sm)}::selection{background-color:rgb(139 92 246/.35);color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:rgb(var(--edge-strong)) transparent}::-webkit-scrollbar{inline-size:10px;block-size:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:rgb(var(--edge-strong));border-radius:var(--r-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--edge-bright))}.aurora{position:fixed;inset:0;z-index:var(--z-aurora);overflow:hidden;pointer-events:none;contain:strict}.aurora__blob{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform;opacity:.5}.aurora__blob--1{inline-size:46vw;block-size:46vw;inset-block-start:-12vw;inset-inline-start:-8vw;background:radial-gradient(circle,rgb(139 92 246/.55),transparent 68%);animation:drift-1 37s var(--ease-glide) infinite alternate}.aurora__blob--2{inline-size:38vw;block-size:38vw;inset-block-start:8vh;inset-inline-end:-10vw;background:radial-gradient(circle,rgb(34 211 238/.42),transparent 68%);animation:drift-2 43s var(--ease-glide) infinite alternate}.aurora__blob--3{inline-size:42vw;block-size:42vw;inset-block-end:-16vw;inset-inline-start:22vw;background:radial-gradient(circle,rgb(232 121 249/.32),transparent 68%);animation:drift-3 53s var(--ease-glide) infinite alternate}.aurora__blob--4{inline-size:30vw;block-size:30vw;inset-block-start:42vh;inset-inline-start:38vw;background:radial-gradient(circle,rgb(109 40 217/.38),transparent 70%);animation:drift-4 61s var(--ease-glide) infinite alternate}@keyframes drift-1{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(14vw,10vh,0) scale(1.18)}}@keyframes drift-2{0%{transform:translateZ(0) scale(1.1)}to{transform:translate3d(-12vw,16vh,0) scale(.9)}}@keyframes drift-3{0%{transform:translateZ(0) scale(.95)}to{transform:translate3d(10vw,-12vh,0) scale(1.2)}}@keyframes drift-4{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-16vw,-8vh,0) scale(1.15)}}:root[data-theme=light] .aurora__blob{opacity:.3;filter:blur(110px)}.grain{position:fixed;inset:0;z-index:var(--z-aurora);pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");contain:strict}.shell{position:relative;z-index:var(--z-base);display:flex;flex-direction:column;min-block-size:100dvh}.wrap{inline-size:100%;max-inline-size:var(--page-max);margin-inline:auto;padding-inline:var(--gutter)}[data-reveal=pending]{opacity:0;transform:translate3d(0,24px,0)}[data-reveal=shown]{opacity:1;transform:none;transition:opacity var(--ms-4) var(--ease-out),transform var(--ms-4) var(--ease-glide)}@media (prefers-reduced-motion:reduce){.aurora__blob{animation:none!important}[data-reveal=pending]{opacity:1;transform:none}}::view-transition-new(root),::view-transition-old(root){animation-duration:var(--ms-3);animation-timing-function:var(--ease-swift);mix-blend-mode:normal}@media (prefers-reduced-motion:reduce){::view-transition-new(root),::view-transition-old(root){animation:none}}