:root{--font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace}:root{color-scheme:light;--bg: #F8F1E0;--fg: #2A1F16;--muted: #6B5C4A;--line: rgba(42, 31, 22, .16);--thick: rgba(42, 31, 22, .55);--accent: #3F8AA8;--conflict: #E84A2D}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.45}button{font:inherit}.app{min-height:100%;padding:16px 20px 80px;max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:14px}h1{margin:0;font-family:Fraunces,serif;font-size:28px;font-weight:600;letter-spacing:-.01em}.muted{color:var(--muted);font-size:13px}.muted.small{font-size:12px}.head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ghost{height:36px;padding:0 14px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;border-radius:0}.diff-row{display:flex;gap:6px}.tab{height:auto;padding:6px 12px;border:1px solid var(--line);background:transparent;color:var(--fg);font-size:13px;border-radius:999px;cursor:pointer}.tab.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.board{display:grid;grid-template-columns:repeat(9,1fr);background:var(--thick);padding:1px;gap:1px;width:min(100%,calc(100vw - 24px),65vh);max-width:480px;margin:0 auto;aspect-ratio:1 / 1}@media(min-width:768px){.board{max-width:504px}}.cell{appearance:none;aspect-ratio:1;background:#fff;border:0;font-family:Fraunces,serif;font-size:clamp(16px,4.5vw,22px);font-weight:500;color:var(--fg);cursor:pointer}.cell.editable{color:var(--accent);font-weight:600}.cell.given{background:#fbf6e8;color:var(--fg);cursor:default}.cell.selected{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.cell.conflict{color:var(--conflict)}.cell.thick-r{box-shadow:inset -1px 0 0 var(--thick)}.cell.thick-b{box-shadow:inset 0 -1px 0 var(--thick)}.cell.thick-r.thick-b{box-shadow:inset -1px 0 0 var(--thick),inset 0 -1px 0 var(--thick)}.pad{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.pad-btn{appearance:none;height:56px;border:1px solid var(--line);background:#fff;color:var(--fg);font-family:Fraunces,serif;font-size:22px;font-weight:600;cursor:pointer;border-radius:0}.pad-btn:disabled{opacity:.4;cursor:not-allowed}.pad-btn:active:not(:disabled){transform:scale(.97)}.pad-btn.erase{color:var(--muted)}.done{display:flex;align-items:center;gap:12px}.finish-line{margin:0;font-family:Fraunces,serif;font-size:22px}button.primary{height:42px;padding:0 18px;border:1px solid var(--accent);background:var(--accent);color:var(--bg);cursor:pointer;border-radius:0}.footer{display:flex;justify-content:space-between;margin-top:auto;padding-top:24px}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}.actions-row{display:flex;gap:6px;justify-content:center;margin-top:8px}.cell.same-axis{background:#3f8aa814}.cell.same-value{background:#f4b86040}.pencils{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;font-size:9px;color:#6b5c4a;line-height:1}.pencil-cell{display:flex;align-items:center;justify-content:center}.eyebrow{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.score-numeric,.move-count,.time-left{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.018em;line-height:.95}.score-numeric.size-hero,.move-count.size-hero,.time-left.size-hero{font-size:clamp(2.8rem,9vw,5.6rem)}.score-numeric.size-card,.move-count.size-card,.time-left.size-card{font-size:clamp(1.6rem,4vw,2.4rem)}.score-numeric .unit,.move-count .unit,.time-left .unit{font-size:.45em;font-weight:600;color:var(--muted);vertical-align:.35em;margin-left:.2em}.game-code,.level-code{font-family:var(--font-mono);font-style:italic;font-weight:500;font-size:.78rem;letter-spacing:.08em;color:var(--accent, currentColor);text-transform:uppercase}.title-hero{font-family:var(--font-display);font-weight:700;letter-spacing:-.022em;font-size:clamp(2.4rem,7vw,4rem);line-height:.95}.title-hero em{font-style:italic;color:var(--accent, currentColor)}
