:root{--navy:#14243b;--navy-2:#1e3454;--gold:#c9a227;--gold-soft:#f3e7c0;--bg:#f6f4ef;--card:#fff;--ink:#1b2430;--muted:#6b7686;--line:#e7e3da;--danger:#b4443a;--ok:#2f7d55}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif}button{font:inherit;cursor:pointer}input,textarea{font:inherit}.wrap{max-width:480px;margin:0 auto;padding:0 16px 120px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px}.topbar{background:linear-gradient(135deg, var(--navy), var(--navy-2));color:#fff;border-bottom-right-radius:22px;border-bottom-left-radius:22px;padding:18px 16px 16px}.btn{background:var(--gold);color:#2a2208;border:none;border-radius:14px;width:100%;padding:14px 18px;font-size:16px;font-weight:700;transition:transform 80ms,opacity .2s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5}.btn-ghost{color:var(--ink);border:1px solid var(--line);background:#fff}.btn-navy{background:var(--navy);color:#fff}.chip{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.pulse{animation:1.6s ease-in-out infinite pulse}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.pop{animation:.5s cubic-bezier(.2,.8,.2,1) pop}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.bob{animation:1.1s ease-in-out infinite bob}@keyframes flow{to{background-position:14px 0}}.flow{background-image:repeating-linear-gradient(90deg, var(--gold) 0 7px, var(--gold-soft) 7px 14px);background-size:14px 100%;animation:.5s linear infinite flow}@keyframes fireUp{0%{opacity:0;transform:translateY(20px)scale(.4)}40%{opacity:1}to{opacity:1;transform:translateY(-14px)scale(1.15)}}.fire{animation:.7s cubic-bezier(.2,.8,.2,1) both fireUp;display:inline-block}@keyframes ring{0%,60%,to{transform:rotate(0)}5%,15%,25%{transform:rotate(-14deg)}10%,20%,30%{transform:rotate(14deg)}35%{transform:rotate(0)}}.ring{transform-origin:50% 60%;animation:1.4s ease-in-out infinite ring}.sr{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}
