:root{--paper:#f4ecd8;--ink:#2b241c;--line:#d7c7a5;--accent:#8b3a2a;--muted:#6d6254}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;background:radial-gradient(circle at 20% 0,#fff8ea,transparent 40%),var(--paper);color:var(--ink)}main{max-width:40rem;margin:0 auto;padding:3rem 1.5rem}h1{font-weight:600;letter-spacing:-.02em;margin:0 0 .5rem}.error,.hint,.status,p.lead{color:var(--muted)}.card{background:rgba(255,252,245,.85);border:1px solid var(--line);border-radius:12px;padding:1.5rem;box-shadow:0 10px 30px rgba(80,50,20,.06)}button.primary,button.secondary{font:inherit;cursor:pointer;border-radius:8px;padding:.65rem 1.1rem}button.primary{background:var(--accent);color:#fff8ea;border:0}button.primary:disabled{opacity:.5;cursor:default}button.secondary{background:transparent;border:1px solid var(--line);color:var(--ink)}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}input[type=text]{font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fffdf8;min-width:8rem}.board{display:grid;grid-template-columns:repeat(3,5.5rem);grid-template-rows:repeat(3,5.5rem);grid-gap:.4rem;gap:.4rem;margin:1.25rem 0}.cell{font:inherit;font-size:2rem;background:#fffdf8;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.cell.playable{cursor:pointer;box-shadow:inset 0 0 0 1px #c9a36a}.cell.filled{cursor:default}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;letter-spacing:.18em}.link{color:var(--accent)}