:root{--bg: #15232d;--panel: #223643;--panel-hi: #2c4554;--line: #34505f;--text: #f6f7ee;--dim: #b4c3ca;--accent: #f7a34b;--blue: #43bbdd;--violet: #ad87e8;--good: #7dd87d;--danger: #e5484d;--sat: env(safe-area-inset-top, 0px);--sar: env(safe-area-inset-right, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font:15px/1.35 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{background:linear-gradient(180deg,#ffffff06 0,#fff0 120px),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 64px),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 64px),var(--bg)}#app{position:fixed;inset:0}#app>.info,#app>.tip,#app>.stage,#app>.actions{position:absolute}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}button:focus-visible{outline:3px solid #ffe9a8;outline-offset:2px}button[disabled]{cursor:default}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--panel)}.icon-btn svg{width:24px;height:24px}.icon-btn:hover{background:var(--panel-hi)}.info{display:flex;align-items:center;gap:10px;padding:0 2px}.level-label{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.lvl-num{font-weight:700;font-size:15px;letter-spacing:.02em}.lvl-name{color:var(--dim);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deliveries{display:flex;gap:5px;flex:0 0 auto}.chip{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--panel);border:2px solid var(--k)}.chip.done{background:var(--k)}.chip.done .sym{background:#17303c}.sym{width:14px;height:14px;background:var(--k)}.sym-orange{border-radius:50%}.sym-blue{clip-path:polygon(50% 4%,98% 92%,2% 92%)}.sym-violet{clip-path:polygon(50% 0,92% 50%,50% 100%,8% 50%)}.moves{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;font-size:14px}.moves b{font-size:17px}.moves .goal{color:var(--dim);font-size:12.5px;white-space:nowrap}.settings-btn{flex:0 0 auto}body[data-orientation=landscape] .info{flex-direction:column;align-items:stretch;gap:8px}body[data-orientation=landscape] .info .settings-btn{position:absolute;right:0;top:0}body[data-orientation=landscape] .level-label{margin-right:52px}@media(max-width:420px){body[data-orientation=portrait] .goal-word{display:none}}.tip{overflow:hidden}.tip-text{line-height:1.3}body[data-orientation=landscape] .lvl-name{white-space:normal}body[data-orientation=landscape] .moves{align-items:flex-start}.tip{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--dim);font-size:14px;padding:0 4px}.tip.tutorial .tip-text{color:var(--text);font-weight:600;font-size:15.5px}.tip-text{max-width:560px}.tip.name .tip-text{color:var(--text);font-weight:600;font-size:16px;letter-spacing:.01em}body[data-orientation=landscape] .tip.name .tip-text,body[data-orientation=portrait] .lvl-name{display:none}body.tip-busy[data-orientation=portrait] .lvl-name{display:block}.diag-tech{font-size:11.5px;opacity:.75}body[data-orientation=landscape] .tip{flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left}.phases{display:flex;gap:6px;flex:0 0 auto}.phases[hidden]{display:none}.phase{padding:3px 8px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--panel);color:var(--dim);border:1px solid var(--line);transition:background .12s,color .12s}.phase.on{background:#ffe9a8;color:#17303c;border-color:#ffe9a8}.stage{touch-action:none}.stage canvas{position:absolute;left:0;top:0;touch-action:none}.arrow{position:absolute;display:grid;place-items:center;color:#17303c;border-radius:12px}.arrow:before{content:"";position:absolute;inset:6px;border-radius:10px;background:#cfd9d4;box-shadow:0 2px #8fa3a0;transition:transform .08s,background .12s}.arrow svg{position:relative;width:22px;height:22px;stroke-width:3.2}.arrow[data-dir=LEFT] svg{transform:rotate(180deg)}.arrow[data-dir=UP] svg{transform:rotate(-90deg)}.arrow[data-dir=DOWN] svg{transform:rotate(90deg)}.arrow:hover:before{background:#fff}.arrow:active:before{transform:translateY(1px)}.arrow.locked{color:#6d8590;cursor:not-allowed}.arrow.locked:before{background:transparent;box-shadow:none;border:1.5px dashed #34505f;inset:10px}.arrow.locked svg{width:15px;height:15px;stroke-width:2.2;transform:none!important}.arrow.locked:hover:before{background:#ffffff0a}.arrow.hinted:before{background:#ffe9a8;animation:pulse 1s ease-in-out infinite}.arrow.shake{animation:shake .3s}@keyframes pulse{50%{box-shadow:0 0 0 5px #ffe9a859,0 2px #8fa3a0}}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.actions{position:absolute}.act{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:14px;background:var(--panel);color:var(--text);font-size:12.5px;font-weight:600;padding:2px 4px;box-shadow:inset 0 -3px #0000002e}.act svg{width:22px;height:22px}.act:hover{background:var(--panel-hi)}.act[disabled]{opacity:.42}.act.nudge{box-shadow:0 0 0 3px #ffe9a8,inset 0 -3px #0000002e;animation:nudge 1.2s ease-in-out infinite}@keyframes nudge{50%{box-shadow:0 0 0 6px #ffe9a859,inset 0 -3px #0000002e}}.tip.dead .tip-text{color:#ffe9a8;font-weight:600}.act span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}body[data-orientation=landscape] .act{flex-direction:row;gap:8px;font-size:14px}body[data-orientation=landscape] .actions.compact .act{flex-direction:column;gap:2px;font-size:12.5px}.decor{position:absolute;inset:0;pointer-events:none}.deco{position:absolute;opacity:.85}.deco svg{width:100%;height:100%}.overlay{position:fixed;inset:0;display:grid;place-items:center;background:#0a12189e;padding:max(12px,var(--sat)) max(12px,var(--sar)) max(12px,var(--sab)) max(12px,var(--sal));z-index:10}.overlay[hidden]{display:none}.card{grid-area:1 / 1;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;width:min(420px,100%);max-height:100%;overflow:auto;box-shadow:0 18px 50px #00000073;animation:pop .16s ease-out}.card.small{width:min(360px,100%)}.card.wide{width:min(560px,100%)}@keyframes pop{0%{transform:scale(.96);opacity:0}}.card h2{margin:0 0 10px;font-size:21px}.card p{margin:8px 0;color:var(--dim)}.row{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}.btn{min-height:46px;padding:0 18px;border-radius:12px;background:var(--panel-hi);font-weight:600}.btn:hover{filter:brightness(1.1)}.btn.primary{background:var(--accent);color:#17303c}.btn.big{min-width:140px;font-size:17px}.btn.danger{background:transparent;color:#ff9b9e;border:1.5px solid #8a3a3d}.head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.head h2{flex:1;margin:0}.head .total{color:var(--dim);font-weight:600}.result{text-align:center}.result h2{font-size:30px;margin-bottom:6px}.result .row{justify-content:center}.res-moves{font-size:17px;color:var(--text)!important}.tag{margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--good);color:#17303c;font-size:12px;font-weight:700}.decor-note{color:#ffe9a8!important}.stars{display:inline-flex;gap:4px;color:#ffd36b}.stars .star{color:#4f6b78;display:inline-grid}.stars .star.on{color:#ffd36b}.stars.lg svg{width:44px;height:44px}.stars.md svg{width:22px;height:22px}.stars.sm svg{width:13px;height:13px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}@media(max-width:460px){.level-grid{grid-template-columns:repeat(4,1fr)}}.lv{position:relative;aspect-ratio:1;min-height:52px;border-radius:12px;background:var(--panel-hi);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.lv .n{font-size:18px;font-weight:700}.level-grid .chapter{grid-column:1 / -1;color:var(--dim);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:6px 2px 0}.lv.locked{background:#1b2c37;color:#6d8590;cursor:not-allowed}.lv.locked .lock svg{width:16px;height:16px}.lv.current{box-shadow:0 0 0 3px var(--accent)}.settings .set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid var(--line)}.settings .set-row:last-of-type{border-bottom:0}.switch{width:54px;height:32px;border-radius:999px;background:#4f6b78;position:relative;flex:0 0 auto}.switch .knob{position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;transition:left .12s}.switch[aria-checked=true]{background:var(--good)}.switch[aria-checked=true] .knob{left:26px}.seg{display:flex;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.settings .lang-row{flex-wrap:wrap;padding:6px 0}.settings .lang-row .seg{flex:1 1 auto;justify-content:stretch}.settings .lang-row .seg-btn{flex:1 1 0;padding:0 8px}.seg-btn{min-height:44px;padding:0 12px;background:transparent;color:var(--dim)}.seg-btn.on{background:var(--accent);color:#17303c;font-weight:700}.diag{margin-top:10px;color:var(--dim);font-size:12.5px}.diag summary{cursor:pointer;min-height:32px}.hint-card .hint-tip{color:var(--text)!important;font-size:16px}.hint-card .hint-more{font-size:13.5px}.rule canvas.demo{display:block;margin:6px auto;width:240px;height:240px}@media(max-height:560px)and (orientation:landscape){.card.rule-card{width:min(600px,100%)}.rule{display:grid;grid-template-columns:200px 1fr;column-gap:18px;align-items:center}.rule h2{grid-column:1 / -1}.hint-card .hint-tip{color:var(--text)!important;font-size:16px}.hint-card .hint-more{font-size:13.5px}.rule canvas.demo{grid-row:2 / 4;width:200px!important;height:200px!important;margin:0}.rule .row{grid-column:2}}.toast{position:fixed;left:50%;top:max(10px,var(--sat));transform:translate(-50%);max-width:min(92vw,520px);padding:10px 14px;border-radius:12px;background:#0e1920;border:1px solid var(--line);color:var(--text);font-size:14px;z-index:20;pointer-events:none}.toast[hidden]{display:none}.busy{position:fixed;inset:0;display:grid;place-items:center;background:#0a1218b3;z-index:30;font-weight:600}body.reduced *,body.reduced *:before{animation-duration:.01ms!important;transition-duration:.01ms!important}@media(prefers-reduced-motion:reduce){.card{animation:none}.arrow.hinted:before{animation:none}}
