:root{color-scheme:dark;--bg:#101411;--surface:#191e1a;--line:#343c32;--lime:#c3f45a;--text:#f0f3e9;--muted:#a3ae9b;--orange:#ff9866;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-width:280px}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:4px}button:disabled{opacity:.35;cursor:default}button:active:not(:disabled){transform:translateY(2px)}[hidden]{display:none!important}.arcade{max-width:1040px;margin:auto;padding:28px 32px 20px;padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom))}.masthead,footer{display:flex;justify-content:space-between;align-items:center}.masthead{border-bottom:1px solid var(--line);padding-bottom:22px}.brand{display:flex;gap:11px;align-items:center;font-size:13px;font-weight:750;letter-spacing:1.5px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;background:var(--lime);color:var(--bg);font-size:28px;line-height:1;border-radius:7px}.edition{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.5px;color:var(--muted)}.game-shell{padding:29px 0 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{font-size:14px;color:var(--lime);margin:0 0 5px;letter-spacing:2px}h1{font-size:clamp(30px,4.8vw,48px);letter-spacing:-1.5px;margin:0;line-height:1.25;font-weight:800}h1 span{color:var(--lime);padding-left:3px}.intro-note{font-size:14px;line-height:1.9;color:var(--muted);text-align:right;margin:0}.scorebar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;max-width:600px}.scores{display:flex;gap:36px}.score{display:flex;align-items:center;gap:13px}.score span{font-size:13px;color:var(--muted)}.score strong{font:600 29px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--lime);font-variant-numeric:tabular-nums}.score.best strong{color:var(--text)}.pause-button{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:var(--surface);border-radius:9px;min-height:44px;padding:0 14px;font-size:14px}.play-layout{display:grid;grid-template-columns:minmax(0,600px) minmax(180px,1fr);gap:38px}.board-wrap{position:relative;aspect-ratio:1;border:1px solid #44513b;border-radius:16px;overflow:hidden;background:#171e17;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(16,23,17,.78);text-align:center;padding:20px}.overlay-content{max-width:100%}.overline{font:11px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:2px;color:var(--muted)}.overlay h2{font-size:clamp(30px,5vw,48px);letter-spacing:-1px;margin:14px 0 8px}.overlay p{color:#bbc6b2;font-size:14px;margin:0 0 24px;line-height:1.8}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:35px;background:var(--lime);color:#17200d;border:0;border-radius:10px;min-height:54px;min-width:190px;padding:0 20px;margin:auto;font-size:16px;font-weight:700;box-shadow:0 4px 0 #749438}.primary-button span{font-size:24px}.start-hint{display:block;color:var(--muted);margin-top:20px;font-size:12px}.controls-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 0}.controls-heading{width:100%;max-width:225px}.controls-heading h2{font-size:23px;margin:14px 0 10px;letter-spacing:-.5px}.controls-heading p{font-size:14px;line-height:1.9;color:var(--muted);margin:0}.dpad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,48px);gap:6px;margin:29px 0 18px;touch-action:none;-webkit-user-select:none;user-select:none}.direction{border:1px solid #46503f;border-bottom-width:3px;background:#232c20;border-radius:10px;font-family:Arial,sans-serif;font-size:25px;display:grid;place-items:center;padding:0}.direction:hover{background:#32412a}.up{grid-area:1/2}.left{grid-area:2/1}.right{grid-area:2/3}.down{grid-area:3/2}.dpad-center{grid-area:2/2;display:grid;place-items:center;color:#627055;font-size:21px}.input-hints{text-align:center;font-size:13px;color:var(--muted)}.input-hints p{margin:0 0 10px}.touch-hint{display:none}.secondary{font-size:12px}kbd{display:inline-block;font-family:inherit;font-size:13px;padding:2px 5px;color:#dce5d1}.rule-note{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:23px;margin-top:20px;color:var(--muted);font-size:13px}.fruit-dot{width:10px;height:10px;background:var(--orange);border-radius:50%}.status{font-size:13px;color:var(--muted);margin:12px 0 24px;min-height:18px}footer{border-top:1px solid var(--line);padding-top:17px;color:#8c9785;font-size:12px}footer span:last-child{font:10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.3px}
@media(min-width:701px) and (min-height:501px){.play-layout{grid-template-columns:minmax(0,min(600px,calc(100svh - 320px))) minmax(180px,1fr)}.scorebar{max-width:min(600px,calc(100svh - 320px))}}
@media(pointer:coarse){.touch-hint{display:block}.keyboard-hint,.start-hint{display:none}.direction:hover{background:#232c20}}
@media(max-width:700px){.arcade{max-width:490px;padding:17px 18px;padding-top:max(17px,env(safe-area-inset-top));padding-bottom:max(17px,env(safe-area-inset-bottom))}.masthead{padding-bottom:15px}.brand{font-size:11px;letter-spacing:1px}.brand-mark{width:25px;height:25px;font-size:23px}.edition{font-size:10px}.game-shell{padding-top:20px}.intro{margin-bottom:18px}.eyebrow{font-size:12px;margin-bottom:5px}.intro-note{font-size:12px}.scores{gap:18px}.score{gap:8px}.score span{font-size:12px}.score strong{font-size:25px}.pause-button{padding:0 11px}.play-layout{display:flex;flex-direction:column;gap:0}.board-wrap{width:100%;border-radius:13px}.controls-panel{padding:0;display:grid;grid-template-columns:1fr 174px;gap:0 10px;margin-top:15px}.controls-heading,.rule-note{display:none}.dpad{grid-column:2;grid-row:1;margin:0;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,44px);gap:5px}.input-hints{grid-column:1;grid-row:1;text-align:left;font-size:12px;line-height:1.8}.touch-hint{display:block;max-width:110px}.keyboard-hint{display:none}.status{margin:12px 0 16px;font-size:12px}footer{padding-top:14px;font-size:11px}footer span:last-child{font-size:9px;letter-spacing:.5px}.overlay h2{font-size:35px}.overlay p{font-size:13px;margin-bottom:19px}.overlay .overline{font-size:10px;letter-spacing:1.4px}.primary-button{min-height:50px}.start-hint{display:none}}
@media(max-width:360px){.arcade{padding-left:12px;padding-right:12px}.intro-note{display:none}.scorebar{gap:8px}.scores{gap:14px}.score{gap:5px}.score strong{font-size:22px}.score span{font-size:11px}.pause-button{font-size:12px;padding:0 10px}.overlay{padding:12px}.overlay h2{font-size:30px}}
@media(max-height:760px) and (max-width:700px){.arcade{padding-top:max(12px,env(safe-area-inset-top))}.masthead{padding-bottom:10px}.game-shell{padding-top:12px}.intro{margin-bottom:12px}.eyebrow{display:none}.board-wrap{max-width:min(100%,calc(100svh - 330px));align-self:center}.controls-panel{margin-top:10px}.status{margin-bottom:12px}footer{padding-top:10px}}
@media(max-height:500px) and (orientation:landscape){.arcade{max-width:880px;padding-top:10px}.masthead{padding-bottom:8px}.game-shell{padding-top:10px}.intro{display:none}.play-layout{display:grid;grid-template-columns:minmax(220px,calc(100svh - 160px)) 1fr;gap:26px;justify-content:center}.board-wrap{max-width:100%;width:100%}.scorebar{max-width:none;margin-bottom:8px}.controls-panel{display:flex;padding:0;margin:0}.controls-heading,.rule-note{display:none}.dpad{margin:0 0 10px}.input-hints{text-align:center}.touch-hint{max-width:none}.status{margin:8px 0}footer{display:none}}
@media(max-height:500px) and (orientation:landscape){.overlay{padding:10px}.overlay .overline,.start-hint{display:none}.overlay h2{font-size:28px;margin:0 0 8px}.overlay p{font-size:12px;line-height:1.5;margin:0 0 12px}.overlay .primary-button{min-height:44px;min-width:0;gap:20px}}
@media(prefers-reduced-motion:reduce){button:active:not(:disabled){transform:none}}
