*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;touch-action:manipulation}#app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.game{width:min(92vw,460px);display:flex;flex-direction:column;gap:12px}.crumb{font-size:14px}.crumb a{color:var(--accent);text-decoration:none;font-weight:700}.crumb a:hover{text-decoration:underline}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.title{font-size:clamp(30px,8.5vw,44px);font-weight:800;line-height:1;letter-spacing:-1px}.sizes{display:flex;gap:8px}.size{flex:1;background:var(--surface);color:var(--text);border:2px solid var(--line);border-radius:6px;padding:8px 6px;font-size:13px;font-weight:700;cursor:pointer;transition:border-color .12s ease,background .12s ease}.size:hover{border-color:var(--accent)}.size.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.stats{display:flex;gap:8px}.stat{flex:1;background:var(--board-bg);color:var(--accent-text);border-radius:6px;padding:6px 10px;text-align:center}.stat .label{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.85;font-weight:700}.stat .value{font-size:22px;font-weight:800;line-height:1.1}.board-wrap{position:relative;width:min(100%,62dvh);margin:0 auto}.board{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:2px;padding:6px;background:var(--board-bg);border-radius:10px;width:100%}.cell{aspect-ratio:1 / 1;border-radius:2px;transition:background .2s ease}.colors{display:flex;gap:8px}.color{flex:1;aspect-ratio:1 / 1;min-height:44px;max-height:68px;border:2px solid rgba(0,0,0,.18);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform 80ms ease,filter .12s ease,box-shadow .12s ease}.color.current{border-color:var(--text);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--text)}.color .sym{font-size:clamp(16px,5vw,24px);font-weight:900;color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.45);line-height:1}.color:hover{filter:brightness(1.06)}.color:active{transform:scale(.92)}.btn{background:var(--accent);color:var(--accent-text);border:none;border-radius:6px;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .12s ease}.btn:hover{filter:brightness(1.05)}.btn:active{filter:brightness(.95)}.overlay{position:absolute;inset:0;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px;background:var(--overlay-bg);z-index:10;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show{opacity:1;pointer-events:auto}.overlay .msg{font-size:clamp(26px,8vw,42px);font-weight:800}.overlay.win .msg{color:#43a047}.overlay.over .msg{color:#ef6a4b}.overlay .sub{font-size:15px;font-weight:700;color:var(--text);opacity:.9}.overlay .actions{display:flex;gap:10px;margin-top:8px}.how{font-size:13px;opacity:.85;line-height:1.5}.how b{font-weight:700}
