@import "https://fonts.googleapis.com/css2?family=Nunito:wght@600;700;800&family=Outfit:wght@500;600;700;800&display=swap";:root{--bg-deep:#eaf6ff;--bg-surface:#fff;--bg-card:#fff;--bg-card-soft:#ffffffb8;--accent:#00b4a6;--accent-hot:#ff6b4a;--accent-sun:#ffb020;--accent-sky:#3db4ff;--accent-soft:#009688;--accent-glow:#00b4a659;--text-primary:#1a2b3c;--text-secondary:#4a6278;--text-muted:#7a92a8;--success:#22c55e;--warning:#ffb020;--danger-soft:#f07178;--radius:20px;--radius-sm:14px;--touch-min:48px;--font:"Outfit", "Nunito", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1);--ease-soft-spring:cubic-bezier(.22, 1.2, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--shadow-soft:0 10px 40px #3d78b41f;--shadow-card:0 4px 24px #2850781a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);color:var(--text-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;background-color:#0000;background-image:radial-gradient(120% 80% at 10% -10%,#ffe8c8 0%,#0000 45%),radial-gradient(100% 70% at 100% 0,#b8ecff 0%,#0000 50%),radial-gradient(80% 60% at 50% 100%,#c8ffe8 0%,#0000 45%),linear-gradient(165deg,#eaf6ff 0%,#fff8f0 55%,#e8fff6 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}button,input{border:none;outline:none;font-family:inherit}button{cursor:pointer;min-height:var(--touch-min);min-width:var(--touch-min)}.app{flex-direction:column;max-width:430px;height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden}.app:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 20% 30%,#ffb0201f,#0000 35%),radial-gradient(circle at 80% 20%,#3db4ff24,#0000 40%),radial-gradient(circle at 70% 80%,#00b4a61a,#0000 35%);animation:14s ease-in-out infinite alternate ambienceDrift;position:absolute;inset:0}.app>*{z-index:1;position:relative}@keyframes ambienceDrift{0%{opacity:.85;transform:scale(1)}to{opacity:1;transform:scale(1.04)}}.screen{padding:calc(12px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));flex-direction:column;flex:1;display:flex;overflow:hidden}.btn{border-radius:var(--radius-sm);transition:transform .2s var(--ease-soft-spring), background .2s, box-shadow .2s;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{color:#fff;background:linear-gradient(135deg,#00c9b8 0%,#3db4ff 100%);box-shadow:0 8px 28px #00b4a659}.btn-primary:hover{background:linear-gradient(135deg,#00b4a6 0%,#2aa0ef 100%);box-shadow:0 10px 32px #3db4ff66}.btn-ghost{background:var(--bg-card-soft);color:var(--text-primary);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-ghost:hover{background:#fff}.btn-icon{width:var(--touch-min);height:var(--touch-min);color:var(--text-primary);box-shadow:var(--shadow-card);background:#ffffffd9;border-radius:50%;padding:0;font-size:18px}.btn-icon.active{background:var(--accent-glow);color:var(--accent)}.input{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);box-shadow:var(--shadow-card);background:#fff;border:2px solid #3db4ff33;padding:14px 16px;font-size:16px;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.fade-in{animation:fadeIn .45s var(--ease-out-expo)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.flash-wrong{animation:.35s shake}.gesture-area-flash{box-shadow:inset 0 0 0 2px #f0717880}.flash-success{animation:.6s 2 pulse}@media (prefers-reduced-motion:reduce){.fade-in,.flash-success,.flash-wrong,.app:before{animation:none}.progress-bar__fill{transition:none}}
