:root{--ink: #1c1c1e;--on-ink: #ffffff;--surface: #f5f5f4;--card: #ffffff;--canvas: #e4e4e2;--hairline: #e7e7e5;--chip-grey: #ececec;--text-primary: #111827;--text-muted: #878787;--text-faint: #9ca3af;--green-deep: #0a6e48;--green-bg: #e7f8ef;--green-border: #a9e7c8;--red-text: #8e1519;--red-bg: #fdecec;--red-border: #fbd5d6;--disabled-bg: #e7e7e5;--disabled-text: #a7b0c0;--feature-start: #1c1c1e;--feature-end: #3a3a3c;--results-start: #1c1c1e;--results-end: #161618;--ring-inner: #2a2a2c;--nav-bg: rgba(255, 255, 255, .94);--ink-light: #3a3a3c;--green: #089a82;--green-dark: #0a8f5f;--red: #bf2026;--gold: #e3a008;--gold-deep: #c99700;--muted-on-dark: #b4b4b8;--font: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--ink: #f1f1f4;--on-ink: #17171a;--surface: #121215;--card: #1e1e23;--canvas: #0b0b0d;--hairline: #303038;--chip-grey: #2a2a31;--text-primary: #f1f1f4;--text-muted: #9aa0a8;--text-faint: #6f757e;--green-deep: #5fe0ab;--green-bg: #13291f;--green-border: #1f6b4d;--red-text: #fca5a5;--red-bg: #2b1517;--red-border: #6d2a2d;--disabled-bg: #26262d;--disabled-text: #5b616b;--feature-start: #26262c;--feature-end: #383840;--results-start: #1c1c20;--results-end: #0d0d10;--ring-inner: #17171a;--nav-bg: rgba(24, 24, 28, .92)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--canvas);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:var(--text-primary);transition:background .25s ease}.app{transition:background .25s ease}button{font-family:inherit;color:inherit;cursor:pointer}#root{display:flex;justify-content:center}.app{width:100%;max-width:480px;height:100dvh;background:var(--surface);position:relative;overflow:hidden;display:flex;flex-direction:column}.scroll{-webkit-overflow-scrolling:touch;overflow-y:auto}.scroll::-webkit-scrollbar{width:0;background:transparent}@keyframes riseUp{0%{transform:translateY(103%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(.4);opacity:0}62%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}@keyframes confFall{0%{transform:translateY(-30px) rotate(0);opacity:1}to{transform:translateY(900px) rotate(560deg);opacity:0}}
