:root{--navy:#1B2845;--navy-light:#243352;--navy-dark:#111D35;--coral:#E8645A;--coral-light:#F28B7D;--coral-dark:#D14E44;--teal:#2BA5A5;--teal-light:#3DC4C4;--teal-dark:#1E8A8A;--mustard:#F2B541;--mustard-light:#F5C968;--mustard-dark:#D99E2E;--blue:#4A7BD4;--blue-light:#6B9AE8;--cream:#FAF3E8;--cream-dark:#E8DCC8;--off-white:#F5F0E6;--text-dark:#1B2845;--text-mid:#5A6A85;--text-light:#8A97AD;--card-bg:#ffffff;--card-border:#E8DCC8;--card-shadow:0 2px 12px rgba(27,40,69,0.06);--font-display:"DM Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-family:var(--font-display);color:var(--text-dark);background:var(--off-white)}body{max-width:480px;margin:0 auto;min-height:100dvh;padding-bottom:80px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@keyframes flip{0%{transform:scaleY(1)}50%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}.animate-fade-up{animation:fadeUp .3s ease}.animate-slide-in{animation:slideIn .3s ease}@keyframes confettiFall{0%{transform:translateY(-10px) rotate(0deg);opacity:1}70%{opacity:1}to{transform:translateY(100vh) translateX(var(--drift,0)) rotate(2turn);opacity:0}}@keyframes gentlePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.92}}.animate-gentle-pulse{animation:gentlePulse 2s ease-in-out infinite}@keyframes scoreReveal{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.animate-score-reveal{animation:scoreReveal .5s ease-out forwards}@keyframes toastSlideUp{0%{transform:translateX(-50%) translateY(100%);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}.animate-toast{animation:toastSlideUp .4s ease-out forwards}