:root{--bg:#fffaf0;--paper:#fffaf0;--panel:#fffdf7;--canvas-bg:#fffaf0;--canvas-grid:rgba(75,156,149,.18);--ink:#3d3832;--muted:#8a7c6e;--line:#d9cfc1;--mint:#9eddbd;--blue:#8fc9eb;--yellow:#f7d66c;--coral:#f28c78;--purple:#b8a7e8;--accent:#4b9c95;--shadow:#d6c8b7}
[data-theme="light"]{--bg:#fffaf0;--paper:#fffaf0;--panel:#fffdf7;--canvas-bg:#fffaf0;--canvas-grid:rgba(75,156,149,.18);--ink:#3d3832;--muted:#8a7c6e;--line:#d9cfc1;--mint:#9eddbd;--blue:#8fc9eb;--yellow:#f7d66c;--coral:#f28c78;--purple:#b8a7e8;--accent:#4b9c95;--shadow:#d6c8b7}
[data-theme="dark"]{--bg:#17232b;--paper:#1b2b33;--panel:#20323a;--canvas-bg:#1b2b33;--canvas-grid:rgba(158,221,189,.18);--ink:#fff4dc;--muted:#a8b8b2;--line:#4d6668;--mint:#86cda9;--blue:#76b8de;--yellow:#f1ce63;--coral:#eb806f;--purple:#a99add;--accent:#9eddbd;--shadow:#0d171d}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:12px ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold",system-ui,sans-serif}body{display:flex;justify-content:center}button,a{-webkit-tap-highlight-color:transparent}.page{width:min(760px,100%);padding:14px 14px calc(22px + env(safe-area-inset-bottom))}.topbar{min-height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;border-bottom:2px dashed var(--line);margin-bottom:11px}.back,.quiet{min-height:44px;display:flex;align-items:center;padding:8px 0;border:0;background:none;color:var(--muted);font:900 10px inherit;letter-spacing:.07em;text-decoration:none;cursor:pointer}.quiet{justify-content:flex-end}.back:hover,.back:focus-visible,.quiet:hover,.quiet:focus-visible{color:var(--coral);outline:none}.brand{text-align:center;min-width:0}.brand h1{margin:0;font-size:clamp(17px,4.4vw,24px);font-weight:950;letter-spacing:.07em;line-height:1;white-space:nowrap;transform:rotate(-1deg)}.brand span{display:block;margin-top:5px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em;white-space:nowrap}.game-layout{display:flex;justify-content:center;gap:18px;align-items:flex-start}.board-wrap{position:relative;width:min(300px,100%);min-width:0;padding:5px;border:2px solid var(--ink);border-radius:18px 14px 21px 15px;background:var(--paper);box-shadow:5px 6px var(--shadow);transform:rotate(-.15deg)}#board{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1/2;border-radius:11px 9px 13px 10px;background:var(--canvas-bg);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.message{position:absolute;inset:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:color-mix(in srgb,var(--paper) 93%,transparent);text-align:center}.message.hidden{display:none}.message-spark{color:var(--coral);font-size:38px;line-height:1;transform:rotate(-12deg)}.message strong{font-size:clamp(24px,7vw,35px);font-weight:950;letter-spacing:.05em;line-height:1}.message span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em}.message button,.secondary{min-height:48px;padding:12px 18px;border:2px solid var(--ink);border-radius:14px 10px 16px 11px;background:var(--yellow);color:var(--ink);box-shadow:3px 4px var(--ink);cursor:pointer;font:950 10px inherit;letter-spacing:.08em}.message button:hover,.message button:focus-visible,.secondary:hover,.secondary:focus-visible{background:var(--mint);outline:none}.sidebar{width:155px;display:flex;flex-direction:column;gap:8px}.stat,.next-box{padding:10px 11px;border:2px solid var(--ink);border-radius:12px 10px 14px 11px;background:var(--panel);box-shadow:2px 3px var(--shadow);display:flex;flex-direction:column;gap:4px}.stat span,.next-box>span{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.stat strong{font-size:16px;line-height:1}.stat-score strong{color:var(--coral)}.stat-high strong{color:var(--purple)}.stat-level strong{color:var(--accent)}.stat-lines strong{color:var(--yellow)}.next-box{align-items:center}.next-box canvas{display:block;width:120px;height:90px;background:var(--canvas-bg);touch-action:none}.secondary{width:100%;color:#3d3832}.secondary:hover{background:#ccebd7}[data-theme="dark"] .secondary{color:#20323a}[data-theme="dark"] .secondary:hover{background:#b6e3c2}.keys{margin:3px 2px 0;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.06em;line-height:1.8}.keys b{color:var(--ink)}.touch-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:min(100%,430px);margin:14px auto 0;user-select:none;-webkit-user-select:none}.touch-controls button{min-height:52px;border:2px solid var(--ink);border-radius:14px 10px 16px 11px;background:var(--panel);color:var(--ink);box-shadow:2px 3px var(--shadow);cursor:pointer;touch-action:none;-webkit-touch-callout:none;font:950 20px inherit}.touch-controls button:hover,.touch-controls button:focus-visible,.touch-controls button:active{background:var(--mint);outline:none}.touch-controls button:nth-child(4){grid-column:2}.touch-controls button:nth-child(5){grid-column:4}footer{margin-top:12px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;line-height:1.5;text-align:center}@media(max-width:560px){.page{padding:10px 10px max(18px,env(safe-area-inset-bottom))}.topbar{min-height:54px;gap:4px}.brand h1{font-size:17px}.brand span{font-size:6px;letter-spacing:.04em}.back,.quiet{font-size:8px}.game-layout{gap:12px}.board-wrap{flex-basis:300px}.sidebar{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.sidebar .stat{padding:7px 5px;border-width:1.5px;box-shadow:1px 2px var(--shadow)}.stat span{font-size:6px}.stat strong{font-size:12px}.next-box{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;min-height:62px}.next-box canvas{width:78px;height:58px}.secondary{grid-column:1/-1}.keys{grid-column:1/-1;text-align:center;margin:0}.touch-controls{margin:6px auto 0}.touch-controls button{min-height:50px}.message{inset:5px}.message strong{font-size:25px}}@media(max-width:360px){.touch-controls{margin-top:-4px}}@media(max-width:560px){.game-layout{flex-direction:column}.board-wrap{width:min(100%,300px,calc((100svh - 190px)/2))}.touch-controls{margin:6px auto 0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
