#root{min-height:100dvh}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;background:radial-gradient(circle at 10% 10%,rgb(61 79 117 / .24),transparent 36%),radial-gradient(circle at 90% -10%,rgb(197 129 48 / .2),transparent 38%),var(--surface-base)}.app-header{display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;padding:var(--space-4) var(--space-4) var(--space-3)}.eyebrow{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.app-header h1{margin:.2rem 0 0;font-size:1.4rem;line-height:1.2}.ghost-action{border-radius:999px;min-height:2.5rem;padding-inline:var(--space-4)}.app-content{padding:var(--space-2) var(--space-4) var(--space-5);display:grid;gap:var(--space-4);align-content:start}.hero-header{margin-bottom:var(--space-4)}.hero-actions{display:grid;gap:var(--space-2)}.dev-link-wrap{margin:var(--space-3) 0 0}.dev-link{color:var(--text-muted);font-size:.9rem;text-underline-offset:.14em}.smoke-grid{margin-top:var(--space-4);display:grid;gap:var(--space-2)}.smoke-meta{margin:0;color:var(--text-muted)}.smoke-meta strong{color:var(--text-primary)}.smoke-actions{margin-top:var(--space-4);display:grid;gap:var(--space-2)}.smoke-note{margin:var(--space-4) 0 0;color:var(--text-muted);font-size:.9rem}.smoke-output-grid{margin-top:var(--space-4);display:grid;gap:var(--space-3)}.smoke-output{margin:0;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-soft)}.smoke-output-label{margin:0;color:var(--text-muted);font-size:.8rem}.smoke-output-value{margin:var(--space-1) 0 0;font-family:JetBrains Mono,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.4;word-break:break-word}.smoke-output-value--idle{color:var(--text-muted)}.smoke-output-value--success{color:var(--accent-strong)}.smoke-output-value--error{color:#8c2f2f}.status-grid{display:grid;gap:var(--space-3)}.status-card{padding:var(--space-3) var(--space-4)}.status-label{margin:0;color:var(--text-muted);font-size:.8rem}.status-value{margin:var(--space-1) 0 0;font-size:1.05rem;color:var(--text-primary)}.game-preset-grid{display:grid;gap:var(--space-2)}.game-mode-switch{margin-bottom:var(--space-4);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.game-preset-card{text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-soft);padding:var(--space-3);color:var(--text-primary);font:inherit}.game-preset-card.is-selected{border-color:var(--accent-strong);box-shadow:0 0 0 1px #2d6a572e}.game-preset-card__title{font-size:.98rem;font-weight:600}.game-preset-card__description{margin-top:var(--space-1);font-size:.9rem;color:var(--text-muted)}.game-advanced-settings{margin-top:var(--space-4);border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.game-advanced-settings summary{cursor:pointer;font-weight:600}.game-field-grid{margin-top:var(--space-3);display:grid;gap:var(--space-3)}.game-field{display:grid;gap:var(--space-1)}.game-field span{font-size:.84rem;color:var(--text-muted)}.game-field input,.game-field select{min-height:2.5rem;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-elevated);padding:0 var(--space-3);font:inherit}.game-operations{margin-top:var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-2)}.game-operation-toggle{display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--border-subtle);border-radius:999px;padding:.35rem .7rem;background:var(--surface-elevated);font-size:.88rem}.game-operation-toggle input{margin:0}.game-scaling-note{margin-top:var(--space-3);color:var(--text-muted);font-size:.85rem}.game-actions{margin-top:var(--space-4);display:grid;gap:var(--space-2)}.game-active-meta{margin-top:var(--space-3);display:grid;gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.game-active-meta p{margin:0;font-size:.86rem;color:var(--text-muted)}.game-active-meta strong{color:var(--text-primary)}.game-question{margin-top:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--surface-soft);font-size:1.5rem;font-weight:700;letter-spacing:.02em;text-align:center}.game-question--parity{text-align:left;font-size:1.1rem;line-height:1.35;white-space:pre-line}.game-answer-form{margin-top:var(--space-4)}.game-feedback{margin-top:var(--space-3);font-size:.9rem}.game-feedback--idle{color:var(--text-muted)}.game-feedback--success{color:var(--accent-strong)}.game-feedback--warning{color:#7a560f}.game-feedback--error{color:#8c2f2f}.game-results-grid{margin-top:var(--space-4);display:grid;gap:var(--space-2)}.game-result-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-soft);padding:var(--space-3)}.game-result-card__label{margin:0;color:var(--text-muted);font-size:.82rem}.game-result-card__value{margin-top:var(--space-1);font-size:1.15rem;font-weight:600}.parity-family-grid{margin-top:var(--space-3);display:grid;gap:var(--space-2)}.parity-family-toggle{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2);align-items:start;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-elevated);padding:var(--space-2) var(--space-3)}.parity-family-toggle input{margin-top:.2rem}.parity-family-toggle span{display:grid;gap:.12rem}.parity-family-toggle small{color:var(--text-muted);font-size:.82rem}.bottom-nav{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));background:#fffaf1f0;border-top:1px solid var(--border-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(min-width:48rem){.app-shell{max-width:52rem;margin:var(--space-6) auto;border-radius:1.2rem;border:1px solid var(--border-subtle);overflow:hidden}.app-header,.app-content{padding-inline:var(--space-6)}.status-grid,.game-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-mode-switch{grid-template-columns:repeat(2,max-content);justify-content:start}.game-field-grid,.game-actions,.game-results-grid,.smoke-actions,.smoke-output-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-nav{position:static}}:root{font-family:Sora,Avenir Next,Trebuchet MS,sans-serif;line-height:1.45;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface-base: #f7f2e7;--surface-elevated: #fffcf5;--surface-soft: #f2e8d2;--text-primary: #1f2a37;--text-muted: #5d6878;--accent-strong: #2d6a57;--border-subtle: #d8cfbb;--border-strong: #c8bfa8;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--radius-md: .8rem;--radius-lg: 1rem}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;color:var(--text-primary);background:linear-gradient(145deg,#f4ecdc,#f9f5eb 52%,#efe6d2)}h1,p{margin:0}button{cursor:pointer}.tg-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4)}.tg-card--elevated{background:var(--surface-elevated)}.tg-card--soft{background:var(--surface-soft)}.tg-button{min-height:2.75rem;border-radius:var(--radius-md);border:1px solid transparent;padding:0 var(--space-4);font:inherit}.tg-button--primary{background:var(--accent-strong);color:#fff}.tg-button--secondary{background:var(--surface-soft);color:var(--text-primary);border-color:var(--border-subtle)}.tg-button--ghost{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}.tg-button--nav{background:transparent;color:var(--text-muted)}.tg-button--nav.is-active{background:var(--surface-soft);color:var(--text-primary);border-color:var(--border-subtle)}.tg-section-header{display:grid;gap:var(--space-2)}.tg-section-header__eyebrow{margin:0;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.tg-section-header__title{margin:0;font-size:1.25rem;line-height:1.25}.tg-section-header__description{margin:0;color:var(--text-muted)}
