@font-face { font-family: 'Geist'; src: url('/assets/fonts/geist-latin-wght-normal.woff2') format('woff2'); font-weight: 100 900; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Geist'; src: url('/assets/fonts/geist-latin-ext-wght-normal.woff2') format('woff2'); font-weight: 100 900; font-display: swap; unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, 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'; src: url('/assets/fonts/geist-mono-latin-wght-normal.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }

:root {
  --font: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'Geist Mono', ui-monospace, 'SF Mono', 'Cascadia Code', Menlo, monospace;
  --r-sm: 10px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --bg: #06071a; --bg-2: #0b0d26;
  --orb-1: #5b3df5; --orb-2: #00b3ff; --orb-3: #d63bd1;
  --glass: rgba(22, 24, 52, .46); --glass-strong: rgba(26, 28, 60, .78); --glass-hi: rgba(255, 255, 255, .07);
  --stroke: rgba(255, 255, 255, .10); --stroke-hi: rgba(255, 255, 255, .22);
  --text: #eef0ff; --text-2: #b6bbe0; --muted: #8a90b9;
  --accent: #8b7bff; --accent-2: #4fd6ff;
  --shadow: 0 30px 80px -20px rgba(0, 0, 0, .6), 0 2px 8px rgba(0, 0, 0, .25);
  --code-bg: rgba(5, 6, 20, .55);
  --ok: #5ee6a8; --warn: #ffc36b; --err: #ff6b8b;
  color-scheme: dark;
}
[data-theme='frost'] {
  --bg: #e9edf7; --bg-2: #f6f7fc;
  --orb-1: #b9a8ff; --orb-2: #8fe0ff; --orb-3: #ffc1e6;
  --glass: rgba(255, 255, 255, .55); --glass-strong: rgba(255, 255, 255, .82); --glass-hi: rgba(255, 255, 255, .7);
  --stroke: rgba(30, 36, 90, .10); --stroke-hi: rgba(255, 255, 255, .95);
  --text: #12142e; --text-2: #3d4266; --muted: #646a90;
  --accent: #5b49e8; --accent-2: #0b8fc4;
  --shadow: 0 30px 70px -24px rgba(40, 50, 120, .28), 0 2px 6px rgba(40, 50, 120, .08);
  --code-bg: rgba(250, 251, 255, .85);
  --ok: #109b64; --warn: #b36b00; --err: #d2335a;
  color-scheme: light;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--font); color: var(--text); background: var(--bg); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { color: inherit; }
button, input, textarea, select { font: inherit; color: inherit; }
::selection { background: color-mix(in srgb, var(--accent) 45%, transparent); }

.aurora { position: fixed; inset: 0; z-index: -1; overflow: hidden; background: radial-gradient(120% 90% at 10% 0%, var(--bg-2), var(--bg)); pointer-events: none; }
.aurora i { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .55; animation: drift 26s var(--ease) infinite alternate; }
.aurora i:nth-child(1) { width: 52vmax; height: 52vmax; left: -14vmax; top: -18vmax; background: var(--orb-1); }
.aurora i:nth-child(2) { width: 44vmax; height: 44vmax; right: -16vmax; top: 10vh; background: var(--orb-2); opacity: .38; animation-duration: 32s; }
.aurora i:nth-child(3) { width: 40vmax; height: 40vmax; left: 30vw; bottom: -24vmax; background: var(--orb-3); opacity: .32; animation-duration: 38s; }
[data-theme='frost'] .aurora i { opacity: .7; }
.aurora::after { content: ''; position: absolute; inset: 0; opacity: .06; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
@keyframes drift { to { transform: translate3d(6vw, 5vh, 0) scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .aurora i { animation: none; } * { scroll-behavior: auto !important; } }

.glass { background: var(--glass); border: 1px solid var(--stroke); border-radius: var(--r-lg); backdrop-filter: blur(28px) saturate(1.4); -webkit-backdrop-filter: blur(28px) saturate(1.4); box-shadow: var(--shadow), inset 0 1px 0 var(--glass-hi); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 18px; border-radius: 12px; border: 1px solid var(--stroke); background: var(--glass); color: var(--text); text-decoration: none; font-weight: 550; font-size: 14.5px; cursor: pointer; transition: transform .15s var(--ease), background .2s, border-color .2s; white-space: nowrap; }
.btn:hover { border-color: var(--stroke-hi); background: color-mix(in srgb, var(--glass) 70%, var(--glass-hi)); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .55; cursor: default; }
.btn.primary { border: 0; color: #fff; background: linear-gradient(135deg, #7a68ff, #3fb8ff); box-shadow: 0 10px 30px -10px rgba(110, 100, 255, .8), inset 0 1px 0 rgba(255, 255, 255, .35); }
.btn.primary:hover { filter: brightness(1.08); }
.btn.lg { height: 50px; padding: 0 24px; font-size: 15.5px; border-radius: 14px; }
.btn.sm { height: 34px; padding: 0 12px; font-size: 13px; border-radius: 10px; }
.btn.ghost { background: transparent; border-color: transparent; }
.btn.ghost:hover { background: var(--glass); border-color: var(--stroke); }
.btn.danger { color: var(--err); }
.btn svg { width: 18px; height: 18px; flex: none; }
:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }

.field { width: 100%; height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--stroke); background: color-mix(in srgb, var(--bg) 40%, transparent); outline: none; transition: border-color .2s, box-shadow .2s; }
.field:focus { border-color: color-mix(in srgb, var(--accent) 70%, transparent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent); }
label.lbl { display: block; font-size: 12.5px; color: var(--text-2); margin: 0 0 6px; font-weight: 500; }
.muted { color: var(--muted); }
.logo { display: inline-flex; align-items: center; gap: 10px; font-weight: 650; letter-spacing: -.01em; text-decoration: none; font-size: 17px; }
.logo img { width: 30px; height: 30px; }
