:root{font-family:ui-rounded,"Segoe UI",system-ui,sans-serif;color:#f7f5e8;font-synthesis:none;--ink:#19283f;--cream:#fff5dc;--teal:#72e2d0;--purple:#bfaaff;--gold:#ffc879}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#bdc5c0}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:3px solid #ffba50;outline-offset:4px}button{transition:transform .13s,background .13s}button:active:not(:disabled){transform:scale(.97)}[hidden]{display:none!important}#world{display:block;position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:fixed;inset:20px 26px auto;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}header>*{pointer-events:auto}.brand{background:none;border:0;color:var(--ink);font-size:26px;font-weight:1000;letter-spacing:-1.3px;text-shadow:0 2px #ffffff50}.brand span{color:#f77649}.nav{display:flex;gap:8px}.nav button{width:46px;height:46px;border:1px solid #fff8;border-radius:16px;background:#19283fee;color:white;font-size:25px;box-shadow:0 5px 12px #19283f19}#missionName{padding:10px 24px;background:#fff5dfeb;color:var(--ink);text-align:center;border-radius:16px;border:1px solid #fff8;box-shadow:0 6px 22px #23354a15}#missionName small{display:block;text-transform:uppercase;font-size:11px;letter-spacing:2px;color:#66717b;font-weight:750}#missionName strong{font-size:19px;line-height:1.6}#guide{position:fixed;left:26px;top:105px;width:260px;background:#19283ff0;border:1px solid #ffffff18;padding:18px 20px;border-radius:18px;box-shadow:0 10px 30px #19283f1a}#guide>span{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-weight:800}#guide p{font-size:16px;line-height:1.5;margin:10px 0}#hint{background:none;color:#c7d0d9;font-size:13px;border:0;padding:4px 0;text-decoration:underline;text-underline-offset:4px}#score{position:fixed;right:28px;top:110px;color:var(--ink);text-align:right}#sparks{font-size:35px;letter-spacing:5px;color:#925a16;text-shadow:0 1px #fff9}#score small{display:block;font-size:9px;letter-spacing:1.6px;font-weight:900}#console{position:fixed;bottom:37px;left:50%;transform:translateX(-50%);width:min(510px,calc(100% - 32px));padding:12px 14px 14px;background:#19283ff2;border:1px solid #ffffff25;border-radius:21px;box-shadow:0 12px 40px #172e4440;backdrop-filter:blur(12px)}.copyRow{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:650}.copyRow>span:not(:last-child){padding:5px 10px;border-radius:7px;background:#ffffff0b;color:#92a4b8}.copyRow .filled:first-child{background:#72e2d01f;color:var(--teal)}.copyRow .filled:nth-child(2){background:#bfaaff24;color:var(--purple)}#recordTime{margin-left:auto;color:#bfd0df;letter-spacing:1px;font-size:12px}#timeline{height:3px;background:#506070;border-radius:3px;margin:9px 0 11px;overflow:hidden}#timeline i{display:block;height:100%;width:0;background:#ff9270;transition:width .06s linear}.actions{display:flex;gap:7px}.actions button{display:flex;align-items:center;gap:8px;justify-content:center;border:1px solid #ffffff1c;border-radius:10px;background:#ffffff0d;color:#f5f2e9;padding:12px 10px;min-height:47px;font-size:14px;font-weight:650}.actions button:first-child{flex:1.5;background:var(--cream);color:var(--ink);border-color:var(--cream)}.actions button:not(:first-child){flex:1}kbd{display:inline-grid;place-items:center;font-family:inherit;font-size:11px;border:1px solid currentColor;opacity:.65;min-width:19px;height:19px;border-radius:4px}.recordDot{width:9px;height:9px;border-radius:50%;background:#e96850}.recording #record{background:#ef7b59;border-color:#ef7b59;color:#14273c}.recording #record .recordDot{border-radius:2px;background:#19283f}.recording #recordTime{color:#ffb39c}#context{position:fixed;left:50%;bottom:175px;transform:translateX(-50%);background:#fff6e2;color:#213348;box-shadow:0 5px 22px #182e4133;border:1px solid white;padding:10px 17px;border-radius:10px;font-size:15px;font-weight:750;max-width:90%;text-align:center}#toast{position:fixed;left:50%;top:110px;transform:translateX(-50%);padding:12px 22px;background:#fff1c9;color:#27364a;box-shadow:0 6px 22px #19283f30;border-radius:12px;font-size:16px;max-width:85%;text-align:center}#keyboardHelp{position:fixed;bottom:12px;left:0;right:0;text-align:center;color:#24354b;text-shadow:0 1px #fff8;font-size:12px;font-weight:650}#keyboardHelp span{margin-left:15px}#overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:20;background:#15263f88;backdrop-filter:blur(4px);padding:24px}#modal{background:#fff5df;color:var(--ink);width:min(560px,100%);max-height:88dvh;overflow:auto;padding:34px;border-radius:25px;box-shadow:0 24px 90px #15263f55;border:1px solid #fff9}#modal .eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#897457;font-weight:800}#modal h1{font-size:70px;line-height:.98;letter-spacing:-4px;margin:18px 0 24px;font-weight:1000}#modal h1 em{font-style:normal;color:#ed794f}#modal h2{font-size:32px;line-height:1.12;margin:12px 0 18px;letter-spacing:-.8px}#modal p{font-size:16px;line-height:1.65;color:#526075;margin:10px 0 22px}#modal button{min-height:47px;border:1px solid #c9c6b6;background:transparent;color:var(--ink);padding:12px 18px;border-radius:11px;font-size:15px;font-weight:700}#modal .primary{background:var(--ink);color:#fff5df;border-color:var(--ink)}#modal .buttonRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}#modal .buttonRow button{flex:1}#modal .how{display:grid;grid-template-columns:30px 1fr;gap:8px 13px;align-items:center;margin:24px 0;color:#435167;font-size:15px;line-height:1.5}.how b{background:#dfe9dc;color:#355b4f;width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.levelGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.levelGrid button{text-align:left!important;line-height:1.4}.levelGrid small{display:block;font-weight:400;color:#7a7b79;font-size:12px;margin-top:5px}.bigStars{font-size:56px;color:#cf922b;letter-spacing:10px}#modal .fine{font-size:12px;line-height:1.6;margin-top:20px}#loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#182940;color:#ffeed1;z-index:30}#loading>b{font-size:44px;letter-spacing:-2px}#loading p{font-size:16px}#loading small{color:#8fadb9}.loader-mark{font-size:72px;color:#7addc9;animation:spin 2s ease-in-out infinite}#loading button{padding:12px;background:#ffdeaa;border:0;border-radius:8px}#touchControls{display:none}body.touch #touchControls{display:block}body.touch #keyboardHelp{display:none}body.touch #console{bottom:145px}body.touch #context{bottom:278px}#joystick{position:fixed;left:26px;bottom:25px;width:108px;height:108px;border-radius:50%;background:#21324c55;border:2px solid #ffffff88;touch-action:none;box-shadow:inset 0 0 0 22px #ffffff10}#stick{position:absolute;width:46px;height:46px;border-radius:50%;left:29px;top:29px;background:#fff1d9d9;border:2px solid #ffffff90;pointer-events:none}.touchActions{position:fixed;bottom:31px;right:25px;display:flex;gap:16px;align-items:center}.touchActions button{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #fff9;background:#23344bcc;color:#fff4dd;border-radius:50%;width:66px;height:66px;font-size:24px;font-weight:800;touch-action:none}.touchActions button span{font-size:11px;font-weight:600}.touchActions button:last-child{width:77px;height:77px;background:#fff3daee;color:#25344b}body.rewinding #world{filter:saturate(.3) brightness(1.35);transition:filter .15s}body.won #guide,body.won #context{display:none}
@media(min-width:1000px){#overlay.title{justify-content:flex-start;background:linear-gradient(90deg,#17293f99,transparent 75%);backdrop-filter:none;padding-left:8vw}#overlay.title #modal{width:410px;background:#fff5dff2;}}
@media(max-width:700px){header{inset:12px 14px auto;gap:8px}.brand{font-size:21px}#missionName{padding:7px 12px;border-radius:12px}#missionName small{font-size:9px;letter-spacing:1px}#missionName strong{font-size:13px;line-height:1.5}.nav{gap:5px}.nav button{height:39px;width:36px;border-radius:11px;font-size:20px}#guide{top:77px;left:14px;right:14px;width:auto;padding:10px 13px;border-radius:13px}#guide>span{font-size:10px;letter-spacing:1px}#guide p{font-size:14px;line-height:1.4;margin:4px 0}#hint{font-size:12px}#score{right:15px;top:183px}#sparks{font-size:27px}#score small{display:none}#console{padding:10px 11px 11px;border-radius:17px}.actions button{font-size:12px;padding:11px 7px;gap:5px}.copyRow{font-size:11px}#toast{top:184px;font-size:14px;width:88%}#context{font-size:13px;padding:8px 12px}#modal{padding:25px;border-radius:20px}#modal h1{font-size:56px}#modal h2{font-size:27px}#modal p{font-size:15px}.levelGrid button{font-size:13px!important;padding:11px!important}#keyboardHelp{font-size:10px}#keyboardHelp span{margin-left:6px}}
@media(max-height:520px) and (min-width:701px){header{top:8px}#guide{top:70px;left:15px;width:210px;padding:12px}#guide p{font-size:13px}#guide>span{font-size:10px}#score{top:75px}body.touch #console,#console{width:370px;bottom:15px}.actions button{font-size:12px;padding:7px;min-height:39px}#context,body.touch #context{bottom:132px}.copyRow{font-size:10px}#keyboardHelp{display:none}#modal{padding:20px;max-height:92dvh}#modal h1{font-size:42px;margin:10px 0}#modal .how{margin:12px 0}#modal p{margin:8px 0}#joystick{width:88px;height:88px;left:15px;bottom:15px}#stick{left:19px;top:19px}.touchActions{right:15px;bottom:20px;gap:8px}.touchActions button{width:56px;height:56px}.touchActions button:last-child{width:64px;height:64px}#toast{top:77px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
body.touch #console{bottom:120px;padding:8px 10px 10px}body.touch .actions kbd{display:none}body.touch .actions button{min-height:42px;padding:9px 6px}body.touch .copyRow>span:not(:last-child){padding:3px 7px}body.touch #timeline{margin:6px 0 8px}body.touch #context{bottom:228px}body.touch #joystick{width:88px;height:88px;left:18px;bottom:18px}body.touch #stick{left:19px;top:19px}body.touch .touchActions{right:18px;bottom:22px;gap:12px}body.touch .touchActions button{width:60px;height:60px}body.touch .touchActions button:last-child{width:70px;height:70px}
@media(max-height:520px) and (min-width:701px){body.touch #console{bottom:12px}body.touch #context{bottom:117px}body.touch .touchActions{bottom:18px}body.touch #joystick{bottom:14px}}
#missionProgress{font-size:11px;font-weight:850;letter-spacing:.8px;color:var(--teal);margin:8px 0}body[data-theme=night] .brand,body[data-theme=festival] .brand{color:#fff4dd}body[data-theme=night] #keyboardHelp,body[data-theme=night] #score{color:#fff1d6;text-shadow:none}.levelGrid button small{color:#486877;font-weight:650}

.levelFilters{display:flex;flex-wrap:wrap;gap:6px;position:sticky;top:-1px;background:#fff5df;padding:8px 0 14px;z-index:1}#modal .levelFilters button{font-size:13px;min-height:40px;padding:8px 12px}#modal .levelFilters button[aria-pressed=true]{background:var(--ink);color:var(--cream)}.levelGrid button[data-difficulty=hard]{border-left:4px solid #c78549}.levelGrid button[data-difficulty=expert]{border-left:4px solid #a7516d}.missionStatus{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#missionTime{font-size:13px;font-weight:850;background:#ffffff15;color:#ffdd96;border-radius:6px;padding:4px 7px}#missionTime.urgent{background:#752f36;color:#fff0e1}#shareLink{width:100%;font:inherit;padding:12px;border:1px solid #b0bcba;border-radius:8px}#missionName{max-width:49vw}#missionName strong{display:block;line-height:1.2}#modal .levelGrid small{line-height:1.4}

@media(max-width:700px){#missionName strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#score{top:auto;bottom:225px}#toast{top:auto;bottom:232px;font-size:13px;padding:9px 13px}}
@media(max-width:700px){header{gap:6px}.brand{font-size:17px;white-space:nowrap;flex-shrink:0;color:var(--ink)!important;background:#fff5dcf0;border-radius:8px;padding:5px 6px;text-shadow:none}#missionName{flex:1;min-width:0;max-width:none;padding:7px 8px}#missionName strong{font-size:12px}.nav{flex-shrink:0}}
@media(max-height:520px) and (min-width:701px){#guide .missionStatus{flex-wrap:nowrap;align-items:center}#guide #missionProgress{font-size:10px;letter-spacing:.4px;margin:6px 0}#guide #missionTime{font-size:11px;white-space:nowrap}#guide{max-height:calc(100dvh - 188px);overflow:auto}#guide p{margin:6px 0}}
