@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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}:root{color-scheme:dark;--ink-950:#06070a;--ink-900:#0a0c11;--ink-850:#0e1118;--ink-800:#141821;--ink-700:#1d2230;--ink-600:#2b3244;--slate-400:#8d97a9;--slate-300:#aab3c2;--slate-100:#e6eaf0;--white:#f5f7fa;--cyan-400:#42d5f2;--cyan-300:#8ae6f8;--blue-500:#4f7cff;--blue-400:#7ea4ff;--amber-400:#f5c451;--red-400:#ff8080;--color-bg:var(--ink-950);--color-bg-raised:var(--ink-900);--color-surface:var(--ink-850);--color-surface-hover:var(--ink-800);--color-surface-inset:#ffffff08;--color-border:#ffffff14;--color-border-strong:#ffffff29;--color-text:var(--white);--color-text-muted:var(--slate-300);--color-text-subtle:var(--slate-400);--color-accent:var(--cyan-400);--color-accent-hover:var(--cyan-300);--color-on-accent:#03161d;--color-accent-2:var(--blue-500);--color-info:var(--blue-400);--color-warning:var(--amber-400);--color-danger:var(--red-400);--color-success:var(--cyan-400);--color-focus:var(--cyan-400);--accent-rgb:66 213 242;--accent-2-rgb:79 124 255;--success-rgb:var(--accent-rgb);--gradient-signal:linear-gradient(100deg, var(--cyan-400) 0%, var(--blue-500) 100%);--gradient-surface:linear-gradient(180deg, #ffffff0b, #ffffff03);--gradient-hairline:linear-gradient(90deg, transparent, #ffffff24, transparent);--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:clamp(1.0625rem, 1rem + .3vw, 1.1875rem);--text-xl:clamp(1.1875rem, 1.05rem + .6vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.25rem + 1vw, 2rem);--text-3xl:clamp(1.875rem, 1.35rem + 2.2vw, 3.125rem);--text-4xl:clamp(2.375rem, 1.5rem + 4vw, 4.75rem);--leading-tight:1.04;--leading-snug:1.2;--leading-normal:1.6;--tracking-tight:-.035em;--tracking-snug:-.02em;--tracking-wide:.14em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--section-y:clamp(4.5rem, 2.5rem + 8vw, 9rem);--gutter:clamp(1.125rem, .6rem + 2.4vw, 2rem);--container:74rem;--container-narrow:46rem;--header-h:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--radius-full:999px;--shadow-card:inset 0 1px 0 #ffffff0d, 0 24px 48px -28px #000000b3;--shadow-float:inset 0 1px 0 #ffffff0f, 0 40px 80px -30px #000000d9;--shadow-glow:0 0 0 1px rgb(var(--accent-rgb) / .35), 0 10px 40px -10px rgb(var(--accent-rgb) / .45);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--duration-fast:.16s;--duration-base:.26s;--duration-reveal:.8s;--stagger:80ms;--z-sticky:40;--z-header:50;--z-overlay:80;--tap-min:44px}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--space-4))}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-x:clip}[hidden]{display:none!important}img,svg,video,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}h1,h2,h3,h4{font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);text-wrap:balance}p,li{text-wrap:pretty}ul[role=list],ol[role=list]{padding:0;list-style:none}::selection{background:rgb(var(--accent-rgb) / .3);color:var(--white)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.container--narrow{max-width:calc(var(--container-narrow) + var(--gutter) * 2)}.section{padding-block:var(--section-y);position:relative}.section+.section:before{content:"";inset:0 var(--gutter) auto;background:var(--gradient-hairline);height:1px;position:absolute}.section--raised{background:var(--color-bg-raised)}.stack{gap:var(--stack-gap,var(--space-4));flex-direction:column;display:flex}.cluster{align-items:center;gap:var(--cluster-gap,var(--space-3));flex-wrap:wrap;display:flex}@media (width<=899px){.snap-row{gap:var(--space-3);margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);padding-bottom:var(--space-2);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;grid-template-columns:none;grid-auto-columns:min(86%,24rem);grid-auto-flow:column;display:grid;overflow-x:auto}.snap-row::-webkit-scrollbar{display:none}.snap-row>*{scroll-snap-align:start}}.bg-grid{background-image:linear-gradient(90deg,#ffffff0b 1px,#0000 1px),linear-gradient(#ffffff0b 1px,#0000 1px);background-size:56px 56px;mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 75%)}.text-gradient{background:var(--gradient-signal);color:#0000;-webkit-background-clip:text;background-clip:text}.text-muted{color:var(--color-text-muted)}.lead{font-size:var(--text-lg);color:var(--color-text-muted);max-width:38rem}.mono{font-family:var(--font-mono);font-feature-settings:"zero" 1}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{top:var(--space-3);left:var(--space-3);z-index:calc(var(--z-overlay) + 1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);font-weight:var(--weight-semibold);position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.btn{--btn-bg:transparent;--btn-fg:var(--color-text);--btn-border:var(--color-border-strong);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-5);border:1px solid var(--btn-border);border-radius:var(--radius-full);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:-.005em;white-space:nowrap;transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out);line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn:active{transform:translateY(1px)scale(.99)}.btn svg{width:1.1em;height:1.1em;transition:transform var(--duration-base) var(--ease-out)}.btn:hover svg:last-child{transform:translate(3px)}.btn--primary{--btn-bg:var(--color-accent);--btn-fg:var(--color-on-accent);--btn-border:transparent}.btn--primary:hover{--btn-bg:var(--color-accent-hover);box-shadow:var(--shadow-glow)}.btn--secondary{--btn-bg:#ffffff08;backdrop-filter:blur(8px)}.btn--secondary:hover{--btn-bg:#ffffff12;--btn-border:#ffffff47}.btn--ghost{--btn-border:transparent;padding-inline:var(--space-3)}.btn--ghost:hover{--btn-bg:#ffffff0d}.btn--lg{min-height:52px;padding-inline:var(--space-6);font-size:var(--text-base)}.btn--block{width:100%}.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--gradient-surface), var(--color-surface);box-shadow:var(--shadow-card);transition:border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out);position:relative}.card--interactive:after{content:"";border-radius:inherit;background:radial-gradient(240px circle at var(--spot-x,50%) var(--spot-y,0%), rgb(var(--accent-rgb) / .45), transparent 70%);opacity:0;transition:opacity var(--duration-base) var(--ease-out);pointer-events:none;padding:1px;position:absolute;inset:-1px;mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-position:0 0,0 0;mask-size:auto,auto;mask-repeat:repeat,repeat;mask-clip:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}@media (hover:hover){.card--interactive:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.card--interactive:hover:after{opacity:1}}.eyebrow{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent);display:inline-flex}.badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-inset);color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.6;display:inline-flex}.status-dot{background:var(--color-success);width:7px;height:7px;box-shadow:0 0 0 3px rgb(var(--success-rgb) / .18);border-radius:50%}.icon-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:linear-gradient(180deg, rgb(var(--accent-rgb) / .1), rgb(var(--accent-rgb) / .02));width:44px;height:44px;color:var(--color-accent);flex:none;place-items:center;display:grid}.icon-tile svg{width:22px;height:22px}.check-list{gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);padding:0;list-style:none;display:grid}.check-list li{gap:var(--space-2);display:flex}.check-list li:before{content:"";background:var(--color-accent);flex:none;width:16px;height:16px;margin-top:.2em;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.motion [data-reveal]:not(.is-visible){opacity:0}.motion [data-reveal].is-visible{animation:reveal-up var(--duration-reveal) var(--ease-out) backwards;animation-delay:calc(var(--i,0) * var(--stagger))}.motion [data-reveal=fade].is-visible{animation-name:reveal-fade}.motion [data-reveal=scale].is-visible{animation-name:reveal-scale;animation-duration:1.1s}.motion [data-reveal=line]{transform-origin:0}.motion [data-reveal=line].is-visible{animation-name:reveal-line;animation-duration:1.2s;animation-delay:calc(var(--i,0) * var(--stagger) + .25s)}@keyframes reveal-up{0%{opacity:0;transform:translateY(28px)}}@keyframes reveal-fade{0%{opacity:0}}@keyframes reveal-scale{0%{opacity:0;filter:blur(6px);transform:translateY(20px)scale(.96)}}@keyframes reveal-line{0%{transform:scaleX(0)}}[data-parallax]{translate:0 var(--parallax-y,0px);will-change:translate}.page-progress{background:var(--gradient-signal);transform-origin:0;height:1px;transform:scaleX(var(--page-progress,0));position:absolute;inset:auto 0 -1px}:root{--viz-series:#1f9fbd;--viz-series-hover:#2bb6d4;--viz-grid:#ffffff12;--panel-sidebar:15rem;--color-success:#34d399;--success-rgb:52 211 153}body{font-size:var(--text-sm)}.panel-title{font-size:var(--text-2xl);letter-spacing:var(--tracking-tight)}.panel-subtitle{color:var(--color-text-muted)}.panel-section,.panel-grid{gap:var(--space-4);display:grid}.panel-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=900px){.panel-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.panel-card{padding:var(--space-5)}.panel-card h2{font-size:var(--text-base);font-weight:var(--weight-semibold)}.panel-card .panel-card__hint{color:var(--color-text-subtle);font-size:var(--text-xs)}.input,.select,.textarea{width:100%;min-height:40px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#00000040}.select{appearance:none;padding-right:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23aab3c2' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px}.select option{background:var(--color-surface)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .18);outline:none}.label{margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);display:block}.btn--sm{min-height:36px;padding-inline:var(--space-4);font-size:var(--text-xs)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--color-danger);background:#ff808014;border:1px solid #ff808059}.alert--ok{border-color:rgb(var(--success-rgb) / .35);background:rgb(var(--success-rgb) / .08);color:var(--color-success)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.table{border-collapse:collapse;white-space:nowrap;width:100%}.table th,.table td{padding:var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.table th{background:var(--color-bg-raised);color:var(--color-text-subtle);font-size:var(--text-xs);font-weight:var(--weight-medium);position:sticky;top:0}.table tbody tr{transition:background-color var(--duration-fast)}.table tbody tr:hover{background:var(--color-surface-inset)}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.muted{color:var(--color-text-subtle)}.link{color:var(--color-text);font-weight:var(--weight-medium);text-decoration:none}.link:hover{text-decoration:underline}.logo[data-astro-cid-53trl24y]{color:var(--color-text);align-items:center;gap:.6rem;display:inline-flex}.logo__word[data-astro-cid-53trl24y]{font-size:1.125rem;font-weight:var(--weight-semibold);letter-spacing:.06em}
