:root{color:#e1e9df;font-synthesis:none;background:#101a22;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:1px solid #40524f;border-radius:6px;padding:9px 13px}button:hover{background:#294038}button:disabled{cursor:not-allowed;opacity:.35}button:focus-visible{outline:3px solid #eab16d}a{color:inherit;text-decoration:none}[hidden]{display:none!important}header{border-bottom:1px solid #2c3c40;align-items:center;gap:24px;max-width:1440px;margin:auto;padding:24px 38px;display:flex}.brand{letter-spacing:2px;align-items:center;gap:12px;font-weight:800;display:flex}.brand img{border-radius:10px;width:44px;height:44px}.brand b{color:#b1dd8d}.brand small{letter-spacing:3px;color:#99aaa5;margin-top:6px;font-size:10px;display:block}nav{gap:8px;margin-left:auto;display:flex}nav button{border-color:#0000;font-size:12px}.version{color:#9cac9e;border:1px solid #3f5148;padding:5px;font:11px monospace}main{max-width:1440px;margin:auto;padding:0 38px}.intro{justify-content:space-between;align-items:center;gap:20px;padding:36px 0 30px;display:flex}.eyebrow{letter-spacing:2px;color:#a9c599;font:10px monospace}h1{letter-spacing:1px;margin:10px 0;font-size:34px}h1 span{color:#a6d888}p{color:#9eafa9;margin:8px 0;font-size:13px;line-height:1.9}.cartridge{background:#1a292e;border:1px solid #3e5249;border-radius:9px;align-items:center;gap:14px;min-width:258px;padding:14px 20px;display:flex;box-shadow:4px 4px #080e13}.cartridge img{width:52px;height:52px;image-rendering:pixelated;border-radius:7px}.cartridge small,.cartridge span{color:#97aca1;font-size:10px;display:block}.cartridge b{margin:5px 0;display:block}.cartridge i{color:#b6e393;margin-left:auto;font-size:11px}.game-layout{grid-template-columns:218px 1fr;gap:22px;display:grid}.world-panel{background:#19282b;border:1px solid #384d44;border-radius:10px;flex-direction:column;padding:17px 12px;display:flex}.panel-heading{letter-spacing:1px;color:#9ebc9d;margin:0 5px 17px;font:10px monospace}.panel-heading span{float:right}#world-list{flex-direction:column;gap:5px;display:flex}#world-list button{text-align:left;white-space:nowrap;border-color:#0000;align-items:center;gap:10px;padding:13px 9px;font-size:12px;display:flex}#world-list span{color:#8c9e91;font:11px monospace}#world-list small{color:#829485;margin-left:auto}#world-list .active{color:#20372d;background:#b1d997;box-shadow:2px 2px #0c171c}#world-list .active span,#world-list .active small{color:#496747}.guide{border-top:1px solid #34473e;gap:9px;margin-top:auto;padding:18px 4px 0;display:flex}.guide img{border-radius:8px;width:37px;height:37px}.guide b{color:#c9d5bc;font-size:11px}.guide p{font-size:11px;line-height:1.65}.cabinet{background:#24362f;border:1px solid #4b5b4c;border-radius:12px;min-width:0;padding:12px;box-shadow:0 8px #091319,0 20px 40px #0003}.cabinet-top{color:#a6b99e;letter-spacing:2px;justify-content:space-between;align-items:center;padding:0 4px 10px;font:10px monospace;display:flex}.cabinet-top i{background:#b5e589;border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.cabinet-top button{padding:4px 8px;font-size:10px}.hud{background:#111f23;border:1px solid #415448;border-bottom:0;border-radius:5px 5px 0 0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.hud small{color:#94a58c;margin-bottom:6px;font:9px monospace;display:block}.hud b{color:#dbefb9;font:20px monospace}#hp-label{color:#f4ac86}.hud button{padding:6px 10px}.stage{background:#70c6e5;border:1px solid #465647;position:relative;overflow:hidden}canvas{aspect-ratio:16/9;width:100%;image-rendering:pixelated;outline:none;display:block}.overlay{background:linear-gradient(90deg,#102b30ed 0%,#173a35d9 50%,#20453922 100%);align-items:center;padding:6%;display:flex;position:absolute;inset:0}.start-copy{z-index:1;max-width:65%}.start-copy>span{color:#c4dfac;letter-spacing:2px;font:9px monospace}.start-copy h2{margin:17px 0;font-size:clamp(17px,2vw,30px);line-height:1.4}.start-copy p{color:#c2d0bf;white-space:pre-line;font-size:12px}.primary{color:#263f2e;background:#c2e394;border:0;margin:16px 9px 12px 0;padding:13px 23px;font-weight:700;display:inline-block;box-shadow:0 4px #58734a}.primary:hover{background:#d5f2b0}.start-copy>small{color:#adc4a8;margin-top:8px;font-size:10px;display:block}.hero-sprite{aspect-ratio:3/4;height:86%;image-rendering:pixelated;background:url(../assets/hero-sheet.png) 0 0/400% 200%;position:absolute;bottom:7%;right:1%}.controls{justify-content:space-between;align-items:center;gap:9px;padding:17px 9px 12px;display:flex}.dpad,.action-pad{gap:9px;display:flex}.controls button{touch-action:none;-webkit-user-select:none;user-select:none;background:#172b28;border:1px solid #526954;border-radius:9px;width:53px;height:52px;font:18px monospace;box-shadow:0 4px #10211e}.controls button small{color:#a8bda4;margin-top:4px;font:8px sans-serif;display:block}.controls button.held{box-shadow:none;background:#4f7151;transform:translateY(3px)}.controls .jump{color:#25442d;background:#b9d98c;width:66px}.controls .jump small{color:#3d603a}.controls .fire{background:#a16f4e}.lives-info{text-align:center}.lives-info b,.lives-info small{font-size:11px;display:block}.lives-info small{color:#91ab93;margin-top:6px;font-size:9px}.cabinet-foot{color:#9aaf92;border-top:1px solid #455a46;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px 0;font:9px monospace;display:flex}.cabinet-foot button{padding:4px 8px;font-size:10px}.journey{margin:36px 0}.section-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.section-heading h2{margin:8px 0;font-size:20px}.journey-total b{color:#c5e99f;margin-right:8px;font:30px monospace}.journey-total span{color:#a9bba4;font-size:11px}#level-grid{grid-template-columns:repeat(11,1fr);gap:8px;display:grid}.level{background:#19292c;border-color:#324941;border-radius:7px;flex-direction:column;align-items:center;gap:8px;padding:12px 2px;display:flex}.level small{color:#9db393;font:8px monospace}.level b{font:26px monospace}.level span{font-size:10px}.level em{color:#c9dfa3;font-size:9px;font-style:normal}.level.selected{background:#2b4336;border-color:#b8db8c}.level.boss b{color:#ecac7a}.level.speed b,.level.expert b{color:#9ccdd4}.legend{color:#93a491;flex-wrap:wrap;gap:20px;margin-top:16px;font-size:10px;display:flex}.legend i{background:#b8d999;width:6px;height:6px;margin-right:5px;display:inline-block}.legend .boss{background:#ecac7a}.legend .challenge{background:#9ccdd4}.legend span:last-child{margin-left:auto}.features{border-top:1px solid #2e423b;grid-template-columns:repeat(3,1fr);gap:26px;padding:26px 0;display:grid}.features article{gap:12px;display:flex}.features article>span{color:#c2df9a;font-size:28px}.features h3{margin:0;font-size:12px}.features p{margin:5px 0;font-size:11px}footer{color:#8da28f;border-top:1px solid #2e423b;justify-content:space-between;align-items:center;gap:12px;padding:24px 0;font-size:10px;display:flex}footer button{border:0;font-size:10px}footer b{margin-left:9px;font-weight:400}dialog{color:#e1ebd8;background:#1a2b2b;border:1px solid #617958;border-radius:12px;width:calc(100% - 32px);max-width:560px;padding:24px}dialog::backdrop{background:#051014bb}.dialog-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}dialog p{font-size:14px}.dialog-top button{border:0;font-size:24px}#toast{color:#23372c;opacity:0;pointer-events:none;background:#cee3ac;border-radius:6px;max-width:90%;padding:13px 20px;font-size:13px;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}.cabinet:fullscreen{border:0;border-radius:0;flex-direction:column;align-items:stretch;width:100%;height:100%;padding:8px;display:flex}.cabinet:fullscreen .stage{background:#10202b;flex:1;justify-content:center;min-height:0;display:flex}.cabinet:fullscreen canvas{object-fit:contain;width:auto;max-width:100%;height:100%}.cabinet:fullscreen .controls{padding:8px}.cabinet:fullscreen .cabinet-foot{display:none}@media (width>=1600px){.guide{margin-top:22px}}@media (width<=1050px){header{padding:18px 20px}main{padding:0 20px}.game-layout{grid-template-columns:170px 1fr;gap:14px}.world-panel{padding:13px 5px}#world-list button{gap:6px;padding:12px 5px;font-size:10px}.cartridge{min-width:210px}.cabinet-foot>span:last-child{display:none}#level-grid{grid-template-columns:repeat(6,1fr)}.guide{display:none}}@media (width<=760px){header{flex-wrap:wrap;gap:12px;padding:14px 16px}.brand{font-size:14px}.brand img{width:36px;height:36px}.version{margin-left:auto}nav{order:3;justify-content:space-between;width:100%}nav button{padding:5px;font-size:11px}main{padding:0 12px}.intro{padding:24px 4px 20px}.intro h1{font-size:25px}.intro p{max-width:330px;font-size:11px}.eyebrow{font-size:8px}.cartridge{display:none}.game-layout{flex-direction:column;gap:12px;display:flex}.world-panel{border-radius:7px;padding:5px}.panel-heading{display:none}#world-list{flex-direction:row;gap:3px;overflow-x:auto}#world-list button{padding:10px;font-size:11px}#world-list small{display:none}.cabinet{border-radius:9px;padding:6px}.cabinet-top{letter-spacing:1px;padding-bottom:6px;font-size:8px}.hud{gap:5px;padding:10px 8px}.hud small{font-size:7px}.hud b{font-size:15px}.hud button{padding:4px 6px}.overlay{padding:5%}.start-copy{max-width:72%}.start-copy h2{margin:9px 0;font-size:18px}.start-copy>span{letter-spacing:1px;font-size:6px}.start-copy p{margin:4px 0;font-size:9px;line-height:1.6}.primary{margin:7px 5px 7px 0;padding:9px 14px;font-size:12px}.start-copy>small{margin-top:2px;font-size:8px}.hero-sprite{height:75%;right:-5%}.controls{gap:5px;padding:12px 3px}.controls button{width:42px;height:49px}.controls .jump{width:52px}.dpad,.action-pad{gap:6px}.lives-info b{font-size:9px}.lives-info small{font-size:7px}.cabinet-foot{gap:3px;font-size:8px}.cabinet-foot button{white-space:nowrap;font-size:9px}.journey{margin:28px 3px}.section-heading h2{font-size:16px}.journey-total b{font-size:23px}.journey-total span{font-size:9px}#level-grid{grid-template-columns:repeat(4,1fr)}.legend{gap:10px}.legend span:last-child{margin-left:0}.features{grid-template-columns:1fr;gap:16px;padding:20px 4px}footer{flex-wrap:wrap;font-size:9px}footer>span:nth-child(2){display:none}}@media (width<=350px){.lives-info,.hud-time{display:none}.start-copy h2{font-size:15px}.start-copy>small{display:none}.controls button{width:43px}.hud b{font-size:14px}}#circuit-id{color:#e0eacb;background:#101f25;border:1px solid #67825b;border-radius:6px;width:100%;margin:10px 0;padding:13px;font:16px monospace;display:block}#chain-result{white-space:pre-line;overflow-wrap:anywhere;font:12px/1.9 monospace}.controls button{padding:4px}.controls button small{white-space:nowrap}body.game-focus{overflow:hidden}.cabinet.focus-mode{z-index:100;width:100%;height:100dvh;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-radius:0;flex-direction:column;display:flex;position:fixed;inset:0}.cabinet.focus-mode .stage{background:#10202b;flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.cabinet.focus-mode canvas{object-fit:contain;width:100%;height:100%}.cabinet.focus-mode .cabinet-foot{display:none}.cabinet.focus-mode .controls{flex-shrink:0}.controls,.stage{touch-action:none}@media (pointer:coarse){.controls button{min-width:44px;min-height:52px}.controls .jump{min-width:56px}.cabinet-top button{min-height:36px}#pause-btn{min-width:36px;min-height:36px}}@media (orientation:landscape) and (height<=500px){header,.intro,.world-panel,.journey,.features,footer{display:none}main{padding:4px max(8px,env(safe-area-inset-left))}.game-layout{display:block}.cabinet{flex-direction:column;height:calc(100dvh - 8px);padding:4px;display:flex}.cabinet-top{padding:0 4px 3px;font-size:8px}.cabinet-top button{min-height:26px;padding:3px 8px}.hud{padding:4px 12px}.hud small{margin-bottom:2px;font-size:7px}.hud b{font-size:13px}.stage{background:#10202b;flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.stage canvas{object-fit:contain;width:auto;max-width:100%;height:100%}.controls{padding:5px 12px}.controls button{width:58px;height:44px;min-height:44px}.cabinet-foot{display:none}.overlay{padding:2% 12%}.start-copy h2{margin:5px 0;font-size:18px}.start-copy p{font-size:10px}.primary{margin:5px;padding:7px 16px}.start-copy>small{display:none}.hero-sprite{height:90%;right:10%}}
