@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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{--ink: oklch(.23 .02 280);--text-2: oklch(.3 .015 280);--muted: oklch(.55 .012 280);--placeholder: oklch(.62 .012 280);--border: oklch(.92 .006 280);--divider: oklch(.94 .005 280);--surface: #fff;--sidebar: oklch(.972 .005 280);--field: oklch(.965 .005 280);--canvas: oklch(.93 .006 280);--accent: oklch(.52 .19 280);--accent-hover: oklch(.48 .19 280);--accent-soft: oklch(.955 .022 280);--accent-text: oklch(.4 .17 280);--danger: oklch(.6 .2 25);--success: oklch(.62 .14 160);--warn: oklch(.7 .15 70);--ease-out: cubic-bezier(.22,1,.36,1);--band-solid: 6px;--band: calc(var(--band-solid) + 20px);--safe-top: calc(env(safe-area-inset-top) + var(--band) + 4px);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}#root{padding-top:var(--safe-top)}body{background:var(--surface);color:var(--ink);font-family:Geist Variable,Geist,system-ui,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}input,textarea,button,select{font:inherit;color:inherit}input::placeholder,textarea::placeholder{color:var(--placeholder)}code,pre,.mono{font-family:Geist Mono Variable,Geist Mono,ui-monospace,monospace;font-size:12.5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--border);background:#fff;font-weight:500;cursor:pointer;transition:background .15s var(--ease-out),border-color .15s var(--ease-out),transform .1s;white-space:nowrap}.btn:hover{background:var(--sidebar)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--field);color:var(--ink)}.btn.danger{color:var(--danger)}.btn.sm{height:28px;padding:0 10px;font-size:13px}.field{width:100%;height:38px;padding:0 12px;border-radius:9px;border:1px solid var(--border);background:var(--field);outline:none;transition:border-color .15s,background .15s}.field:focus{border-color:var(--accent);background:#fff}textarea.field{height:auto;padding:10px 12px;resize:vertical}.label{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.panel{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;min-width:0}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:10px}.stack{display:flex;flex-direction:column;gap:12px}.grid{display:grid;gap:14px}.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:500;background:var(--field);color:var(--text-2)}.badge.ok{background:color-mix(in oklch,var(--success) 14%,white);color:color-mix(in oklch,var(--success) 70%,black)}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.code{background:#15151d;color:#e6e7ef;border-radius:10px;padding:12px 14px;overflow-x:auto;white-space:pre;margin:0}.fade-in{animation:fade .25s var(--ease-out)}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.legal{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:12px;color:var(--muted)}.legal a{color:var(--muted)}.legal a:hover{color:var(--ink)}.notch-band{position:fixed;top:0;left:0;right:0;z-index:100;pointer-events:none}.notch-band .boat{transform-box:fill-box;transform-origin:50% 100%;animation:boat-rock 3.6s ease-in-out infinite}@keyframes boat-rock{0%,to{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(4deg) translateY(-.6px)}}@media (prefers-reduced-motion: reduce){.notch-band .boat{animation:none}}
