:root{--color-bg:oklch(10% .008 240);--color-surface:oklch(19% .014 235);--color-surface-raised:oklch(25% .016 235);--color-border:oklch(32% .02 230);--color-glass:#101a229e;--color-line:#8cc8e624;--color-accent-hi:#bff0ff;--glow-accent:0 0 0 1px #bff0ff73 inset, 0 10px 32px -10px #4dc8f0bf;--color-accent:oklch(78% .13 220);--color-accent-active:oklch(70% .14 220);--color-success:oklch(76% .17 145);--color-error:oklch(65% .21 25);--color-text-primary:oklch(96% 0 0);--color-text-secondary:oklch(70% 0 0);--color-text-disabled:oklch(45% 0 0);--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-input:12px;--radius-button:14px;--radius-card:8px;--radius-sheet:16px}body{background-color:var(--color-bg);min-height:100dvh;color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-image:radial-gradient(80% 50% at 50% -10%,#4dc8f021,#0000 70%),radial-gradient(50% 40% at 100% 100%,#a99bff0f,#0000 70%);background-attachment:fixed;margin:0;font-size:1rem;line-height:1.5}h1{letter-spacing:-.025em;margin:0 0 var(--space-4) 0;font-size:1.5rem;font-weight:700;line-height:1.25}button{font-family:var(--font-sans);border-radius:var(--radius-button);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;font-size:1rem;font-weight:600}.button-primary{background:linear-gradient(180deg, #6ad5f6, var(--color-accent));color:#021017;padding:0 var(--space-4);width:100%;height:48px;box-shadow:var(--glow-accent);transition:transform .1s ease-out,box-shadow .25s,filter .2s,opacity .2s}.button-primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:inset 0 0 0 1px #bff0ff99,0 14px 40px -8px #4dc8f0e6}.button-primary:disabled{opacity:.5;cursor:default;box-shadow:none}.button-primary:focus-visible,.button-secondary:focus-visible,.button-danger:focus-visible{outline:2px solid var(--color-accent-hi);outline-offset:3px}.button-primary:active{transform:scale(.96)}.button-secondary{color:var(--color-text-primary);border:1px solid var(--color-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:0 var(--space-4);background-color:#ffffff08;width:100%;height:48px;transition:transform .1s ease-out,border-color .2s,background-color .2s}.button-secondary:hover:not(:disabled){background-color:#4dc8f014;border-color:#bff0ff73}.button-secondary:active{transform:scale(.96)}.input-field{height:48px;padding:0 var(--space-3);font-family:var(--font-sans);border-radius:var(--radius-input);border:1px solid var(--color-line);color:var(--color-text-primary);box-sizing:border-box;background:#ffffff09;width:100%;font-size:1rem;transition:border-color .15s ease-out,box-shadow .2s,background-color .2s}.input-field:focus{border-color:var(--color-accent);background:#4dc8f00d;outline:none;box-shadow:0 0 0 4px #4dc8f029}.input-field::placeholder{color:var(--color-text-disabled)}textarea.input-field{height:auto;padding:var(--space-3);line-height:1.5}.input-field[data-state=error]{border-color:var(--color-error)}.input-label{margin-bottom:var(--space-2);color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;line-height:1.4;display:block}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.app-container{max-width:400px;padding:0 var(--space-4);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.centered-column{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.spin{animation:.9s linear infinite spin}.glass{background:var(--color-glass);border:1px solid var(--color-line);-webkit-backdrop-filter:blur(16px)saturate(140%)}.mono{font-family:var(--font-mono)}.fd-enter{animation:fd-enter .7s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 70ms)}@keyframes fd-enter{0%{opacity:0;filter:blur(6px);transform:translateY(14px)}}.fd-mark{--size:88px;width:var(--size);height:var(--size);flex-shrink:0;position:relative}.fd-mark>i{border:calc(var(--size) * .055) solid var(--color-accent);filter:drop-shadow(0 0 6px #4dc8f099);width:30%;height:30%;animation:3s ease-in-out infinite fd-mark-breathe;position:absolute}.fd-mark>i:first-child{--dx:1;--dy:1;border-bottom:0;border-right:0;border-top-left-radius:28%;top:0;left:0}.fd-mark>i:nth-child(2){--dx:-1;--dy:1;border-bottom:0;border-left:0;border-top-right-radius:28%;top:0;right:0}.fd-mark>i:nth-child(3){--dx:1;--dy:-1;border-top:0;border-right:0;border-bottom-left-radius:28%;bottom:0;left:0}.fd-mark>i:nth-child(4){--dx:-1;--dy:-1;border-top:0;border-left:0;border-bottom-right-radius:28%;bottom:0;right:0}.fd-mark>b{background:var(--color-accent);width:20%;height:20%;box-shadow:0 0 18px var(--color-accent);border-radius:50%;margin:-10% 0 0 -10%;animation:3s ease-in-out infinite fd-dot;position:absolute;top:50%;left:50%}.fd-mark:after{content:"";background:linear-gradient(90deg, transparent, var(--color-accent-hi), transparent);height:2px;box-shadow:0 0 10px var(--color-accent);animation:fd-sweep 3s var(--ease-out) infinite;position:absolute;top:10%;left:12%;right:12%}@keyframes fd-mark-breathe{50%{transform:translate(calc(var(--dx) * 6%), calc(var(--dy) * 6%))}}@keyframes fd-dot{50%{opacity:.7;transform:scale(.75)}}@keyframes fd-sweep{0%{opacity:0;top:10%}15%{opacity:1}70%{opacity:1;top:88%}85%,to{opacity:0;top:88%}}.chip{border:1px solid var(--color-line);font:500 .75rem/1 var(--font-mono);color:var(--color-text-secondary);background:#ffffff08;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}@media (prefers-reduced-motion:reduce){.fd-enter,.fd-mark>i,.fd-mark>b,.fd-mark:after{animation:none}}
