:root{--bg:#f7f3ee;--surface:#fff;--text:#0d0d0d;--text-muted:#555;--pink:#ff2d78;--pink-light:#ffe0ee;--pink-glow:#ff2d782e;--pink-dark:#d91e60;--border:#d8d2cc;--border-soft:#e0dad2;--input-bg:#fff;--input-border:#c8c2bb;--muted-strong:#bbb;--radius:0px;--radius-lg:0px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--font-display:"Bebas Neue", sans-serif;--font-body:"Space Mono", monospace;--font-mono:"DM Mono", monospace;--slam:cubic-bezier(.2, 1.4, .4, 1);--snap:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px}body{min-height:100dvh}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}button:disabled{cursor:not-allowed}input,textarea{font:inherit}img{max-width:100%;display:block}.btn-primary{background:var(--pink);color:#fff;font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;border-radius:0;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.875rem 1.5rem;font-size:11px;font-weight:700;transition:opacity .15s,transform .1s;display:flex}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:active:not(:disabled){transition-duration:60ms;transform:scale(.94)}.btn-primary:disabled{opacity:.5}.btn-ghost{border:1.5px solid var(--border);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;border-radius:0;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:11px;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex}.btn-ghost:hover{border-color:var(--text-muted);background:#00000008}.error-banner{background:var(--pink-light);border-left:3px solid var(--pink);color:var(--text);border-radius:0;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500}.page{background:var(--bg);max-width:520px;min-height:100dvh;margin:0 auto;padding:2rem 1.25rem 6rem}.page-header{margin-bottom:2rem}.eyebrow{font-family:var(--font-body);letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;margin-bottom:.25rem;font-size:10px;font-weight:700}.page-title{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;animation:titleSlam .5s var(--snap) both;font-size:clamp(2.8rem,10vw,5rem);line-height:.92}.pink{color:var(--pink)}.sticky-bar{padding:1rem 1.25rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);background:#f7f3eeeb;border-top:1px solid #ff2d7840;position:fixed;bottom:0;left:0;right:0}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes titleSlam{0%{opacity:0;transform:translateY(-80px)scaleY(1.4)}60%{opacity:1;transform:translateY(6px)scaleY(.95)}80%{transform:translateY(-3px)scaleY(1.02)}to{transform:translateY(0)scaleY(1)}}@keyframes dividerGrow{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@keyframes rowSlide{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes scorePop{0%{transform:scale(1)}30%{transform:scale(1.35)}60%{transform:scale(.9)}to{transform:scale(1.08)}}@keyframes scoreFlash{0%{color:#fff;background:#ff2d78}40%{color:#ff2d78;background:#fff}to{color:#fff;background:#ff2d78}}@keyframes statePulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes navSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes cardPunch{0%{opacity:0;transform:translateY(28px)scale(.55)rotate(-2deg)}70%{opacity:1;transform:translateY(-6px)scale(1.06)rotate(.5deg)}85%{transform:translateY(2px)scale(.98)}to{transform:translateY(0)scale(1)rotate(0)}}@keyframes confirmPulse{0%,to{box-shadow:0 0 #ff2d7800}50%{box-shadow:0 0 0 8px #ff2d7840}}@keyframes blinkCursor{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(4px)}}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1.05)}}
