:root{font-family:system-ui,sans-serif;color:#102c29;background:#f0f5f2;line-height:1.55;--accent:#08644e;--muted:#48625a}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
header{background:#102c29;color:#fff}
.shell{width:min(100% - 32px,840px);margin-inline:auto}
.brand{min-height:62px;display:flex;align-items:center;gap:10px}
.brand a{margin-left:auto;color:#e1f9ed;font-size:.85rem}
.logo{font-size:1.65rem;color:#97e2bd}
.tag{font-size:.62rem;letter-spacing:.12em;color:#bce0ce;margin-left:6px}
main{padding-block:28px}
.panel{background:#fff;border:1px solid #d8e6de;border-radius:24px;padding:clamp(20px,5vw,48px);box-shadow:0 12px 32px #163d2e0c}
.hero{border-top:5px solid var(--accent)}
h1{font-size:clamp(1.85rem,6vw,3.15rem);line-height:1.08;letter-spacing:-.045em;margin:.22em 0 .45em}
p{margin:.5em 0 1em}
.eyebrow{font-size:.73rem;text-transform:uppercase;font-weight:800;letter-spacing:.12em;color:var(--accent);margin:0}
.facts,.stats{display:flex;flex-wrap:wrap;gap:8px;margin-block:24px}
.facts span,.stats div{background:#e9f4ed;padding:8px 13px;border-radius:10px}
.stats div{flex:1;min-width:95px}
.stats dd{margin:0;font-weight:800;font-size:1.7rem}
.stats dt,.note,footer,#hint{color:var(--muted);font-size:.86rem}
button,select,input{font:inherit;border-radius:10px;padding:9px 14px}
button{background:var(--accent);color:white;border:1px solid var(--accent);font-weight:700;cursor:pointer;margin-block:4px}
button.secondary{background:white;color:var(--accent)}
a{color:var(--accent)}
label{display:block;font-weight:700;margin-top:16px}
select,input{background:#fff;border:1px solid #809a8e;color:inherit}
input{width:100%;margin-bottom:6px}
fieldset{border:0;padding:0;margin:18px 0 10px;min-width:0}
legend{font-weight:700}
#choices{display:flex;flex-wrap:wrap;gap:8px}
.choice{display:grid;justify-items:center;padding:6px;background:white;color:inherit;border:1px solid #809a8e}
.choice[aria-pressed=true]{background:#e1f5e9;border-color:var(--accent);outline:2px solid var(--accent)}
.choice svg,#target svg{width:42px;height:42px;display:block}
.hud{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:5px 10px;position:sticky;top:0;z-index:2;background:#fff;border:1px solid #d8e6de;border-radius:14px;padding:8px 10px;box-shadow:0 4px 12px #163d2e15}
.model{display:flex;align-items:center;gap:8px}
#target{padding:3px;background:#e9f4ed;border-radius:8px}
#time{font-size:1.65rem;font-weight:800;font-variant-numeric:tabular-nums}
#time.urgent,.notice{color:#a02a37}
#hint{margin:9px 0}
#board{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;padding:4px;background:#dbe8e0;border-radius:8px;user-select:none}
.cell{position:relative;background:white;display:grid;place-items:center;aspect-ratio:1;touch-action:none;cursor:crosshair;border-radius:3px}
.cell .symbol{width:83%;height:83%;max-width:58px;max-height:58px;pointer-events:none}
.ink{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ink path{fill:none;stroke:#007a76;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.cell.correct{background:#d9f5e2}
.cell.wrong{background:#ffe0dc}
.cell.missed{background:#fff1cf}
#board[aria-disabled=true] .cell{cursor:default;touch-action:auto}
footer{margin-top:24px;text-align:center}
@media(max-width:460px){.tag{display:none}.hud .secondary{padding:5px 8px;font-size:.8rem}#board{gap:2px}}
