﻿:root{font-family:ui-rounded,'Arial Rounded MT Bold','Trebuchet MS',sans-serif;color:#233b38;background:#fbf8f0;font-synthesis:none;--accent:#197f6a;--accent-dark:#105c4d;--wash:#e9f2e9;--ink:#233b38;--line:#e5e6d9;--soft:#f2ecd8;--shadow:0 18px 55px #283b3210}
*{box-sizing:border-box}body{margin:0}body[data-theme=elsa]{--accent:#8360b2;--accent-dark:#61408e;--wash:#eee8f7;--ink:#47375d;--line:#e9e0ef;--soft:#f5eaf5;background:#fcf9ff;color:var(--ink)}button,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #f5ae32;outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.topbar{max-width:1180px;height:94px;margin:auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}.back{font-size:13px;font-weight:700;color:#7a8178}.brand{font-size:24px;font-weight:900;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.brand-icon{background:var(--accent);color:#fff5d7;border-radius:12px;font-size:25px;width:38px;height:38px;display:grid;place-items:center;transform:rotate(-7deg)}.quiet{color:var(--ink);background:transparent;font-size:13px;font-weight:700;padding:12px;border:1px solid var(--line);border-radius:24px}.quiet span:first-child{margin-right:4px}main{max-width:1040px;margin:auto;padding:0 32px}.intro{text-align:center;padding:45px 0 25px}.eyebrow{font-size:10px;letter-spacing:2.8px;font-weight:900;color:var(--accent);margin:0 0 13px}h1{font-size:clamp(32px,5.2vw,58px);letter-spacing:-2.7px;line-height:1.12;margin:0 0 14px;font-weight:900}.lead{font-family:system-ui,sans-serif;font-size:15px;line-height:1.6;max-width:590px;margin:auto;color:#747b73}.world-picker{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:690px;margin:0 auto 26px}.world{padding:16px 20px;background:#fff;border:2px solid var(--line);border-radius:17px;display:flex;align-items:center;gap:14px;text-align:left;color:var(--ink);transition:transform .15s,border-color .15s;min-height:88px}.world:hover{transform:translateY(-2px)}.world.selected{background:var(--wash);border-color:var(--accent)}.world strong{display:block;font-size:15px}.world small{display:block;font:12px system-ui,sans-serif;margin-top:5px;color:#72756d}.world-symbol{font-size:34px;color:#eab856;line-height:1}.world[data-world=elsa] .world-symbol{color:#9d83c3}.world-check{margin-left:auto;width:20px;height:20px;border-radius:50%;border:1px solid var(--line);color:transparent;font-size:12px;display:grid;place-items:center}.selected .world-check{background:var(--accent);color:white;border:0}.game-shell{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.game-bar{height:54px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:8px}.game-bar>div{display:flex;align-items:center;gap:10px}.status-dot{width:7px;height:7px;background:#e5a944;border-radius:50%}.level-pill{font:10px system-ui;background:var(--soft);padding:4px 8px;border-radius:8px;white-space:nowrap}.game-actions{gap:3px!important}.icon-button{background:transparent;min-width:36px;height:36px;border-radius:10px;color:var(--ink);font-size:20px}.icon-button:hover{background:var(--wash)}.stage{position:relative;width:100%;aspect-ratio:16/9;background:#c9e8de;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;top:15px;left:18px;right:18px;display:flex;gap:10px;pointer-events:none}.hud>span{background:#fffffff0;padding:7px 11px;border-radius:10px;font-size:15px;font-weight:900;box-shadow:0 2px 10px #0000000d}.hud-hearts{color:#d96564}.power-indicator{color:#b25bba;margin-left:auto}.start-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#192b3115,#ffffec06,#192b3115)}.start-card{background:#fffdf5ed;backdrop-filter:blur(12px);padding:28px 38px 23px;border:1px solid #ffffffc9;border-radius:24px;text-align:center;box-shadow:0 14px 42px #183c3c24;max-width:90%;min-width:320px}.mini-label{font-size:8px;letter-spacing:2px;font-weight:900;color:var(--accent)}.start-card h2{font-size:26px;letter-spacing:-1px;margin:11px 0 20px}.primary{display:block;background:var(--accent);color:white;border-radius:12px;padding:15px 28px;font-size:15px;font-weight:800;box-shadow:0 4px 0 var(--accent-dark);width:100%;transition:transform .1s,background .1s}.primary:hover{background:var(--accent-dark);transform:translateY(-1px)}.primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-dark)}.start-hint{font:11px system-ui;color:#7b8076;margin:17px 0 0}.continue,.text-button{display:block;background:transparent;color:var(--accent);font-size:12px;font-weight:bold;margin:14px auto 0;padding:5px}.touch-controls{padding:13px 17px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line)}.touch-controls p{font:11px system-ui;color:#889084}.directions,.action-controls{display:flex;gap:7px}.touch-controls button{height:48px;min-width:50px;border-radius:12px;background:var(--wash);color:var(--accent);font-size:24px;font-weight:bold;touch-action:none;user-select:none;-webkit-user-select:none}.touch-controls button.pressed{background:var(--accent);color:white;transform:translateY(2px)}.touch-controls button.jump{min-width:104px;background:var(--accent);color:white;font-size:14px}.jump>span:first-child{font-size:25px;margin-right:7px}.touch-controls button.run{font-size:11px}.keyboard-guide{text-align:center;font:10px system-ui;color:#8c9288;padding:0 0 12px}.level-picker{padding:28px 0 0}.section-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-line h2{font-size:9px;letter-spacing:2px;color:#858d81;margin:0}.section-line>span{font-size:12px;font-weight:800;color:#bd943d}.level-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.level-card{display:flex;align-items:center;gap:12px;background:#fff;padding:17px;border:1px solid var(--line);border-radius:14px;color:var(--ink);text-align:left}.level-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.level-card>span:first-child{background:var(--wash);border-radius:9px;width:34px;height:34px;display:grid;place-items:center;font-weight:bold;color:var(--accent);flex-shrink:0}.level-card strong{display:block;font-size:12px;line-height:1.3}.level-card small{font-size:10px;display:block;color:#b79550;margin-top:4px}.help{display:flex;gap:14px;margin:25px 0 32px;padding:17px 22px;border-radius:15px;background:var(--soft)}.help>span{font-size:25px;color:#bb9440}.help h2{font-size:12px;margin:0 0 5px}.help p{font:12px/1.6 system-ui;margin:0;color:#7e806f}footer{max-width:1180px;margin:0 auto;padding:22px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;color:#93998d;font:10px system-ui}.overlay{position:absolute;inset:0;background:#14373666;backdrop-filter:blur(4px);display:grid;place-items:center}.modal-card{padding:25px 30px;background:#fffdf7;text-align:center;max-width:90%;width:340px;border-radius:22px}.modal-icon{font-size:32px;color:#d4a348}.modal-card h2{font-size:25px;margin:5px 0 14px}.modal-card p{font:13px system-ui;color:#838578}.secondary{background:var(--wash);color:var(--accent);padding:12px;border-radius:10px;margin:12px 0 0;width:100%}.finish-stats{display:flex;justify-content:center;gap:15px;font-size:20px;font-weight:900;margin:20px 0;color:var(--accent)}.toast{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:#fffdf6f2;color:var(--ink);border-radius:12px;padding:11px 18px;font-size:12px;font-weight:800;max-width:90%;text-align:center;box-shadow:0 5px 15px #0001;pointer-events:none}dialog{border:1px solid var(--line);border-radius:22px;padding:0;color:var(--ink);width:min(420px,90vw);box-shadow:var(--shadow)}dialog::backdrop{background:#102d4277;backdrop-filter:blur(5px)}.settings-content{padding:25px}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading h2{margin:0 0 20px;font-size:24px}.settings-content label{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:18px 0;font-size:14px}.settings-content select{max-width:58%;border:1px solid var(--line);border-radius:9px;background:#faf9f5;padding:10px;color:var(--ink);font-size:12px}.settings-content .primary{margin-top:28px}.playing .intro,.playing .world-picker,.playing .level-picker,.playing .help{display:none}.playing main{padding-top:24px}.game-shell:fullscreen{border-radius:0;display:flex;flex-direction:column;background:#172d35;justify-content:center}.game-shell:fullscreen .stage{max-height:calc(100dvh - 70px);aspect-ratio:16/9;width:auto;max-width:100%;margin:auto}.game-shell:fullscreen .game-bar,.game-shell:fullscreen .touch-controls{background:#fff}.game-shell:fullscreen .keyboard-guide{display:none}
@media(max-width:650px){.topbar{height:72px;padding:0 16px}.brand{font-size:19px;gap:6px}.brand-icon{width:30px;height:30px;font-size:21px}.back{font-size:0}.back:before{content:'←';font-size:22px}.quiet{font-size:0;padding:7px;border:0}.quiet span:first-child{font-size:23px}main{padding:0 12px}.intro{padding:28px 8px 21px}h1{letter-spacing:-1.4px;font-size:34px}.lead{font-size:12px;max-width:320px}.world-picker{gap:8px;margin-bottom:16px}.world{padding:11px 10px;gap:8px;border-radius:13px;min-height:78px}.world strong{font-size:12px}.world small{font-size:9px;line-height:1.4}.world-symbol{font-size:25px}.world-check{display:none}.game-shell{border-radius:15px}.game-bar{padding:0 10px;height:45px;font-size:10px}.game-bar>div{gap:6px}.icon-button{min-width:31px;font-size:18px}.start-card{padding:15px 22px;min-width:0;width:245px;border-radius:16px}.start-card h2{font-size:20px;margin:7px 0 10px}.mini-label{font-size:7px;letter-spacing:1px}.primary{padding:11px 16px;font-size:13px}.start-hint{display:none}.continue{margin:8px auto 0;font-size:10px}.hud{top:8px;left:8px;right:8px;gap:5px}.hud>span{font-size:10px;padding:5px 7px}.touch-controls{padding:10px}.touch-controls p{display:none}.touch-controls button{height:50px;min-width:49px}.keyboard-guide{display:none}.level-picker{padding-top:21px}.level-cards{gap:6px}.level-card{padding:10px 7px;display:block;min-height:105px}.level-card>span:first-child{width:25px;height:25px;font-size:11px;margin-bottom:7px}.level-card strong{font-size:10px}.level-card small{font-size:9px}.help{padding:14px;margin:20px 0}.help p{font-size:11px}footer{padding:16px;flex-wrap:wrap;font-size:9px}.playing main{padding:10px 0 0}.playing .game-shell{border-left:0;border-right:0;border-radius:0}.modal-card{padding:12px 22px;width:260px}.modal-icon{font-size:21px}.modal-card h2{font-size:19px;margin:3px 0 8px}.modal-card p{margin:5px 0;font-size:11px}.secondary{padding:8px;margin-top:8px;font-size:11px}.modal-card .text-button{margin:8px auto 0;font-size:10px}.finish-stats{margin:8px 0;font-size:16px}.toast{font-size:10px;bottom:8px;padding:7px 10px}}
@media(max-height:550px) and (orientation:landscape){.playing .topbar,.playing footer{display:none}.playing main{padding:0;max-width:960px}.playing .game-shell{border-radius:0}.playing .game-bar{height:34px}.playing .stage{height:calc(100dvh - 70px);width:auto;max-width:100%;aspect-ratio:16/9;margin:auto}.playing .touch-controls{padding:5px 20px}.playing .touch-controls button{height:48px}.playing .keyboard-guide{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.fullscreen-mode .topbar,.fullscreen-mode footer{display:none}
.fullscreen-mode main{padding:0;max-width:none}
.fullscreen-mode .game-shell{border-radius:0;border:0;box-shadow:none;display:flex;flex-direction:column;background:#172d35;justify-content:center;height:100vh;height:100dvh;width:100vw;position:fixed;inset:0;z-index:9999}
.fullscreen-mode .stage{max-height:calc(100dvh - 70px);aspect-ratio:16/9;width:auto;max-width:100%;margin:auto}
.fullscreen-mode .game-bar,.fullscreen-mode .touch-controls{background:#fff}
.fullscreen-mode .keyboard-guide{display:none}
@media(max-width:650px){.fullscreen-mode .stage{max-height:calc(100dvh - 60px)}}
@media(max-height:550px) and (orientation:landscape){.fullscreen-mode .topbar,.fullscreen-mode footer{display:none}.fullscreen-mode main{padding:0;max-width:960px}.fullscreen-mode .game-shell{border-radius:0}.fullscreen-mode .game-bar{height:34px}.fullscreen-mode .stage{height:calc(100dvh - 70px);width:auto;max-width:100%;aspect-ratio:16/9;margin:auto}.fullscreen-mode .touch-controls{padding:5px 20px}.fullscreen-mode .touch-controls button{height:48px}.fullscreen-mode .keyboard-guide{display:none}}
