*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--card: #1e293b;--border: #334155;--muted: #64748b;--subtle: #475569;--text: #ffffff;--textMid: #94a3b8;--purple: #7c3aed;--purpleL: #a78bfa;--pink: #f472b6;--yellow: #fbbf24;--green: #4ade80;--red: #f87171;--blue: #60a5fa;--safe-top: env(safe-area-inset-top, 0px);--safe-bot: env(safe-area-inset-bottom, 0px)}html,body,#root{height:100%;width:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:Nunito,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:none}#root{display:flex;flex-direction:column;max-width:430px;margin:0 auto;position:relative}.screen{flex:1;height:100dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 20px;padding-top:calc(var(--safe-top) + 16px);padding-bottom:calc(var(--safe-bot) + 24px);display:flex;flex-direction:column;gap:14px}.font-display{font-family:Fredoka One,cursive}.font-body{font-family:Nunito,sans-serif}h1,h2,.display{font-family:Fredoka One,cursive}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:18px}.btn{display:flex;align-items:center;justify-content:center;width:100%;padding:15px 24px;border:none;border-radius:16px;font-family:Fredoka One,cursive;font-size:18px;letter-spacing:.3px;cursor:pointer;transition:transform .1s,box-shadow .1s;-webkit-user-select:none;user-select:none;touch-action:manipulation}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;box-shadow:0 4px 20px #7c3aed44}.btn-primary:active{box-shadow:0 2px 8px #7c3aed44}.btn-primary:disabled{background:var(--border);color:var(--muted);box-shadow:none;cursor:not-allowed}.btn-secondary{background:var(--card);color:var(--textMid);border:2px solid var(--border);font-size:16px}.btn-danger{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}input[type=text],input[type=number]{width:100%;padding:13px 16px;background:#0f172a;border:2px solid var(--border);border-radius:12px;color:var(--text);font-size:17px;font-family:Nunito,sans-serif;outline:none;transition:border-color .2s;-webkit-appearance:none}input:focus{border-color:var(--purple)}input::placeholder{color:var(--muted)}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes pop{0%{transform:scale(.8);opacity:0}80%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeUp{animation:fadeUp .35s ease both}.animate-bounce{animation:bounce 1.2s ease infinite}.animate-pulse{animation:pulse 2s ease infinite}.animate-pop{animation:pop .4s cubic-bezier(.34,1.56,.64,1) both}.animate-wiggle{animation:wiggle .5s ease}.progress-track{width:100%;height:8px;background:#0f172a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--purpleL),var(--pink));transition:width 1s linear}.gradient-text{background:linear-gradient(135deg,var(--purpleL),var(--pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.divider{height:1px;background:var(--border);margin:8px 0}.badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}.online-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 2s ease infinite}.tap-btn{width:200px;height:200px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--purpleL),var(--purple));font-size:64px;cursor:pointer;box-shadow:0 8px 40px #7c3aed55;transition:transform .08s,box-shadow .08s;touch-action:manipulation}.tap-btn:active{transform:scale(.91);box-shadow:0 4px 16px #7c3aed33}.color-btn{flex:1;min-height:90px;border-radius:16px;border:3px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font-size:28px;transition:transform .1s,box-shadow .1s;touch-action:manipulation}.color-btn:active{transform:scale(.94)}canvas{display:block;border-radius:14px;background:#0f172a;touch-action:none}.screen::-webkit-scrollbar{display:none}.screen{-ms-overflow-style:none;scrollbar-width:none}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}
