:root{--ink: #111827;--on-ink: #ffffff;--ink-mid: #1f2937;--accent-blue: #78716c;--amber: #ea580c;--amber-pressed: #c2410c;--surface: #f0efeb;--card: #ffffff;--canvas: #e4e1d8;--hairline: #dad9d3;--chip-grey: #e8e7e2;--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: #dad9d3;--disabled-text: #b4b4b8;--feature-start: #111827;--feature-end: #1f2937;--results-start: #111827;--results-end: #0a0a0a;--ring-inner: #1f2937;--nav-bg: rgba(255, 255, 255, .94);--green: #089a82;--green-dark: #0a8f5f;--red: #bf2026;--gold: #ea580c;--gold-deep: #c2410c;--muted-on-dark: #b4b4b8;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}[data-theme=dark]{--ink: #f0efeb;--on-ink: #111827;--ink-mid: #2a3340;--accent-blue: #8a8177;--amber: #f97316;--amber-pressed: #ea580c;--surface: #14151a;--card: #1c1e26;--canvas: #0b0c10;--hairline: #2e313c;--chip-grey: #262932;--text-primary: #f0efeb;--text-muted: #9ca0ac;--text-faint: #6b7280;--green-deep: #5fe0ab;--green-bg: #10281f;--green-border: #1f6b4d;--red-text: #fca5a5;--red-bg: #2b1517;--red-border: #6d2a2d;--disabled-bg: #262932;--disabled-text: #5b6070;--feature-start: #232733;--feature-end: #2e3340;--results-start: #14151a;--results-end: #050506;--ring-inner: #14151a;--nav-bg: rgba(16, 17, 22, .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;min-height:100dvh;display:flex;align-items:stretch;justify-content:center}a{color:var(--ink);text-decoration:none}a:hover{color:var(--amber-pressed)}button{font-family:inherit;color:inherit;cursor:pointer}input{font-family:inherit}input::placeholder{color:var(--text-faint)}.field:focus{border-color:var(--ink)}.press-95:active{transform:scale(.95)}.press-98:active{transform:scale(.98)}#root{display:flex;justify-content:center;width:100%}.app{width:100%;max-width:440px;min-height:100dvh;height:100dvh;background:var(--surface);position:relative;overflow:hidden;display:flex;flex-direction:column;color:var(--text-primary);transition:background .25s ease}.app-content{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.app-sidebar{display:none}@media (min-width: 520px){body{align-items:center;padding:28px}.app{height:min(920px,calc(100dvh - 56px));min-height:0;border-radius:14px;box-shadow:0 30px 70px #00000029}}@media (min-width: 1000px){.app--app{max-width:1000px;flex-direction:row}.app--app .app-sidebar{display:flex;flex-direction:column;width:236px;flex:none;padding:22px 16px;background:var(--card);border-right:1px solid var(--hairline)}.app--landing{max-width:min(1200px,calc(100% - 56px))}.bottom-nav{display:none!important}.topic-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}.app--app .scroll{padding-bottom:28px!important}}.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}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes logoPop{0%{transform:scale(.82);opacity:0}60%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}@keyframes screenInFwd{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:translate(0)}}@keyframes screenInBack{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:translate(0)}}@keyframes barGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes storyOpen{0%{opacity:0;transform:translateY(40px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardIn{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes cardInBack{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes rowIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
