@charset "UTF-8";
:root{color-scheme:dark;--bg:#102728;--panel:#163436;--line:#38504c;--text:#f5f6e8;--muted:#a7bbb1;--mint:#6aefb9;--gold:#ffdd79;font-family:Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 48%,#224641 0,#102728 65%);color:var(--text);min-height:100svh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button{touch-action:manipulation}a{color:inherit;text-decoration:none}button[hidden],[hidden]{display:none!important}.arcade{width:min(1180px,calc(100% - 64px));margin:auto;padding:28px 0 20px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px}.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;font:900 20px monospace;letter-spacing:-3px;background:var(--mint);border-radius:12px 12px 12px 3px;color:#163b36;padding-right:3px;transform:rotate(-5deg)}.brand-mark span{align-self:center;padding-top:6px}.brand-name{font-size:20px;letter-spacing:1.5px;line-height:1.2;font-weight:900;display:block}.brand-credit{display:block;font-size:12px;letter-spacing:2.8px;color:var(--muted);margin-top:5px}.toolbar{display:flex;gap:8px}.icon-button{display:flex;align-items:center;gap:8px;background:#ffffff06;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px 13px;font-size:14px;min-height:42px}.icon-button:hover:enabled{background:#ffffff10}.icon-button[aria-pressed="false"] .sound-on,.icon-button[aria-pressed="true"] .sound-off{display:none}.game-frame{border:1px solid #46645c;border-radius:15px;box-shadow:0 22px 72px #0005,inset 0 1px #ffffff15;overflow:hidden;background:#1e4140}.game-screen{position:relative;aspect-ratio:16/9;overflow:hidden;isolation:isolate;background:#72c5b2}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline:none}.hud{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:start;padding:24px 28px;gap:12px;pointer-events:none;color:#fff8e5;text-shadow:0 2px #203b35,2px 0 #203b35,-2px 0 #203b35}.hud-world{display:flex;flex-direction:column;gap:4px;font-weight:800;font-size:18px}.hud-caption{font:bold 12px monospace;letter-spacing:1.5px;color:#f4ffde}.hud-items{display:flex;align-items:center;gap:24px;font:700 23px monospace}.hud-items>span{display:inline-flex;align-items:center;gap:7px}.hud-coin i{display:block;height:21px;width:16px;background:#ffdc72;border:3px solid #fff0a4;box-shadow:2px 2px #b5843d,-2px -2px #b5843d;border-radius:3px}.hud-stars{color:#ffe790}.hud-small{font-size:14px}.hearts{color:#fff5e7!important;letter-spacing:3px}.screen-overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:center}.title-overlay{background:linear-gradient(#16413b10,#123b3430 60%,#102e3040)}.title-content{text-align:center;margin-top:-24px;position:relative}.eyebrow{font-size:12px;letter-spacing:3.5px;font-weight:800;color:#f1ffeb;display:block;text-shadow:0 1px 3px #102e3070}.title-content h1{font-family:Impact,"Arial Black",sans-serif;font-weight:900;margin:17px 0 0;font-size:clamp(64px,8.8vw,110px);letter-spacing:3px;line-height:.85;filter:drop-shadow(0 6px 0 #214b46);transform:rotate(-3deg);-webkit-text-stroke:1px #fff8de;color:#fff8de}.title-content h1>span{display:block}.title-content .hop{color:#ffdd78;-webkit-text-stroke:1px #ffdd78;font-size:1.22em;letter-spacing:8px;margin-top:10px}.title-star{position:absolute;right:-39px;top:90px;font-size:44px;-webkit-text-stroke:0;text-shadow:none;filter:none;transform:rotate(12deg)}.title-jp{font-size:15px;letter-spacing:5px;margin:23px 0;color:#fbffec;font-weight:700;text-shadow:0 2px 3px #102e3070}.primary-button{min-height:53px;display:inline-flex;justify-content:center;align-items:center;gap:24px;padding:14px 28px;border:2px solid #183c36;border-radius:8px;color:#123b30;background:var(--mint);box-shadow:0 5px 0 #174a3e;font-weight:800;font-size:16px;transition:transform .12s,background .12s,box-shadow .12s}.primary-button:hover:enabled{background:#8dffd0;transform:translateY(-2px);box-shadow:0 7px 0 #174a3e}.primary-button:active:enabled{transform:translateY(3px);box-shadow:0 2px 0 #174a3e}.start-hint{font-size:12px;margin:15px 0 0;color:#fffbe9;text-shadow:0 1px 2px #143d3b;letter-spacing:.5px}.world-tour{position:absolute;bottom:24px;display:flex;gap:18px;align-items:center;font-size:12px;color:#fffcea;text-shadow:0 1px 3px #092d34}.world-tour b{color:#ffe28d;font:700 12px monospace;margin-right:6px}.world-tour i{height:1px;width:20px;background:#d5f2d677}.game-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 23px;background:#183b39;font-size:13px;color:#c2d7c8;min-height:52px;border-top:1px solid #59827355}.game-bottom-label{display:flex;align-items:center;gap:10px}.spark{font-size:18px;color:var(--gold)}.edition{font:700 11px monospace;letter-spacing:2px;color:#8baa9b}.instructions{padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#a8bdb2;font-size:13px}.keyboard-instructions{display:flex;gap:18px;align-items:center}.keyboard-instructions>span{display:flex;align-items:center;gap:6px;white-space:nowrap}kbd{border:1px solid #507067;border-bottom-width:3px;border-radius:4px;font:700 11px monospace;padding:5px 7px;color:#d9e8dc;background:#ffffff04;min-width:25px;text-align:center}.instructions p{margin:0;display:flex;align-items:center;gap:10px;font-size:13px}.tip-label{font:700 11px monospace;color:var(--mint);letter-spacing:1px}.touch-controls{display:none;justify-content:space-between;align-items:center;padding:20px 4px 6px;gap:10px;touch-action:none;user-select:none;-webkit-user-select:none}.direction-controls,.action-controls{display:flex;align-items:center;gap:10px}.control{border:1px solid #55766b;border-bottom-width:5px;border-radius:14px;width:65px;height:65px;background:#284c46;color:#e3f9e7;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;display:flex;justify-content:center;align-items:center;flex-direction:column;font-size:13px;letter-spacing:1px;font-weight:900}.control svg{width:25px;height:25px}.control span{font-size:11px;font-weight:600;letter-spacing:0;margin-top:5px}.control.dash{background:#304d47;width:66px;height:58px}.control.jump{background:var(--mint);color:#173f33;border-color:#418d6f;width:79px;height:73px}.control.pressed{transform:translateY(3px);border-bottom-width:2px;filter:brightness(1.12)}.modal-overlay{background:#102c2cc7;backdrop-filter:blur(5px);padding:20px}.game-dialog{width:min(420px,95%);text-align:center;border:1px solid #8caf9566;background:#1a3d37;padding:34px 30px;border-radius:15px;box-shadow:0 20px 60px #0005}.game-dialog .eyebrow{color:var(--mint);font-size:11px}.game-dialog h2{font-size:28px;line-height:1.4;margin:16px 0;color:#fff5da;letter-spacing:-.5px}.game-dialog p{font-size:15px;line-height:1.8;color:#c2d7c8;margin:12px 0 22px;white-space:pre-line}.game-dialog .primary-button{width:100%;gap:0}.text-button{background:none;border:0;color:#bcd4c4;margin-top:16px;font-size:13px;padding:8px}.text-button:hover{color:white}.result-stars{font-size:44px;letter-spacing:10px;color:var(--gold);text-shadow:0 4px #936137}.result-stars:empty{display:none}.toast{position:absolute;top:99px;left:50%;transform:translate(-50%,-8px);background:#173a32ed;color:#f5ffde;border:1px solid #c3df9a77;box-shadow:0 4px 14px #123a3340;border-radius:8px;padding:10px 19px;font-weight:700;font-size:14px;z-index:2;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%,0)}.progress-track{position:absolute;left:0;bottom:0;width:100%;height:4px;background:#19443566;z-index:2}.progress-track>div{height:100%;background:var(--gold);width:0;transition:width .15s linear}.game-screen:fullscreen{aspect-ratio:auto;height:100vh}.title-overlay.ready .primary-button{animation:button-in .3s ease both}@keyframes button-in{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.arcade{padding-top:45px}}@media(pointer:coarse){.touch-controls{display:flex}.keyboard-instructions{display:none}.instructions{justify-content:center;padding-top:15px}.arcade{padding-bottom:max(20px,env(safe-area-inset-bottom))}}@media(max-width:800px){.arcade{width:calc(100% - 32px);padding-top:20px}.topbar{margin-bottom:18px}.instructions{flex-direction:column;gap:14px}.keyboard-instructions{gap:14px}.hud{padding:18px 20px}.hud-items{gap:18px}.title-content h1{font-size:75px}.title-content{margin-top:-15px}.title-content .hop{margin-top:5px}.title-jp{margin:15px 0;font-size:14px}.world-tour{bottom:17px;gap:12px}.primary-button{min-height:48px;padding:12px 24px}.start-hint{margin-top:12px}}
@media(max-width:560px){.arcade{width:calc(100% - 24px);padding-top:max(16px,env(safe-area-inset-top))}.brand-mark{width:35px;height:36px;border-radius:9px;font-size:17px}.brand{gap:9px}.brand-name{font-size:17px;letter-spacing:.7px}.brand-credit{font-size:10px;letter-spacing:1.8px}.toolbar{gap:7px}.icon-button{padding:10px;min-width:42px}.icon-button span{display:none}.game-frame{border-radius:12px}.game-screen{aspect-ratio:1.04;min-height:320px}.game-bottom{padding:12px 13px;min-height:47px;font-size:12px}.edition{display:none}.title-content{margin-top:-12px}.eyebrow{font-size:10px;letter-spacing:2.5px}.title-content h1{font-size:72px;letter-spacing:1px;margin-top:21px}.title-star{right:-31px;top:79px;font-size:34px}.title-jp{font-size:13px;margin:19px 0;letter-spacing:4px}.start-hint{font-size:11px;letter-spacing:0}.world-tour{gap:9px;bottom:15px;font-size:10px}.world-tour b{font-size:10px;margin-right:3px}.world-tour i{width:9px}.hud{padding:15px 14px}.hud-world{font-size:14px;gap:5px}.hud-caption{font-size:10px;letter-spacing:.7px}.hud-items{font-size:18px;gap:12px}.hud-items>span{gap:4px}.hud-coin i{width:12px;height:17px;border-width:2px}.hud-small{font-size:12px}.hearts{position:absolute;right:15px;top:45px;font-size:17px;letter-spacing:3px}.touch-controls{display:flex;padding-top:20px}.instructions{padding-top:20px}.keyboard-instructions{display:none}.instructions p{font-size:12px}.game-dialog{padding:27px 23px}.game-dialog h2{font-size:24px}.game-dialog p{font-size:14px}.result-stars{font-size:34px}.toast{top:81px;font-size:12px;padding:9px 14px}}
@media(max-width:360px){.world-tour{font-size:9px;gap:6px}.title-content h1{font-size:63px}.title-star{top:71px}.control{width:56px;height:60px}.control.dash{width:56px}.control.jump{width:69px}.direction-controls,.action-controls{gap:7px}.brand-name{font-size:15px}.game-screen{aspect-ratio:1}}
@media(orientation:landscape) and (max-height:550px) and (pointer:coarse){.arcade{width:min(1060px,calc(100% - 160px));padding:10px 0}.topbar{margin-bottom:8px}.brand-mark{width:28px;height:28px;font-size:14px}.brand-credit,.game-bottom,.instructions{display:none}.brand-name{font-size:15px}.icon-button{padding:6px;min-height:31px}.icon-button span{display:none}.game-screen{height:calc(100svh - 66px);aspect-ratio:auto;min-height:0}.touch-controls{position:fixed;inset:50% 7px auto;padding:0;pointer-events:none}.direction-controls{flex-direction:column;pointer-events:auto}.action-controls{flex-direction:column-reverse;pointer-events:auto}.control{width:61px;height:57px}.control.jump{width:69px;height:65px}.title-content h1{font-size:54px;margin-top:10px}.title-jp{margin:12px 0}.title-star{top:56px;font-size:24px}.title-content .eyebrow,.world-tour,.start-hint{display:none}.title-content{margin-top:0}.title-content .primary-button{padding:10px 22px;min-height:42px}.hud{padding:12px 18px}.hud-items{font-size:18px}.hud-world{font-size:14px}.game-dialog{padding:15px 24px}.game-dialog h2{font-size:23px;margin:10px 0}.game-dialog p{font-size:13px;margin:8px 0 14px}.result-stars{font-size:25px}.text-button{margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Adventure controls and clear recovery rules. */
.stamina{width:162px;margin-top:8px;text-shadow:none}.stamina>span{display:flex;justify-content:space-between;font:700 10px monospace;letter-spacing:.5px;color:#efffec}.stamina b{font:inherit}.stamina>div{height:10px;background:#153a3cbb;border:1px solid #e0f2c488;border-radius:4px;overflow:hidden;margin-top:5px}.stamina i{display:block;height:100%;width:100%;background:#9df0a7;transition:width .15s}.stamina i.low{background:#ff987b}.hud-items{gap:18px}.hud-items .hud-leaf{color:#b7ffa6}.hud-leaf>span:first-child{font:900 29px Georgia}.hearts{font-size:19px;letter-spacing:1px}.boss-hud{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);width:min(360px,80%);padding:9px 13px;background:#172e39ed;border:1px solid #dfc68f88;border-radius:8px;z-index:2}.boss-hud>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:7px;color:#fff0c7}.boss-hud span{font-size:11px;color:#b6dbd1}.boss-meter{height:7px;border-radius:3px;overflow:hidden;background:#5a3c4c}.boss-meter i{display:block;height:100%;width:100%;background:#ffc585;transition:width .15s}.boss-hud.vulnerable{border-color:#a0ffd0}.boss-hud.vulnerable .boss-meter i{background:#8df0c0}.toast{top:115px}.direction-controls{display:grid;grid-template-columns:65px 65px;gap:8px}.control.crouch{grid-column:1/3;justify-self:center;width:68px;height:42px;flex-direction:row;gap:7px;font-size:22px;border-radius:9px;border-bottom-width:3px}.control.crouch span{margin:0;font-size:11px}.action-controls{display:grid;grid-template-columns:66px 79px;grid-template-rows:34px 73px;gap:8px 10px;align-items:end}.control.dash{grid-column:1/3;grid-row:1;width:92px;height:34px;justify-self:end;flex-direction:row;gap:5px;border-radius:8px;border-bottom-width:3px;font-size:11px}.control.dash span{margin:0;font-size:10px}.control.punch{grid-column:1;grid-row:2;background:#ffdc80;color:#59442d;border-color:#ab8746;width:66px;height:65px}.control.jump{grid-column:2;grid-row:2}.touch-controls{align-items:end}.keyboard-instructions{gap:12px;flex-wrap:wrap}.instructions{align-items:start}.instructions>p{max-width:320px;font-size:12px;line-height:1.6}.help-dialog{color:var(--text);background:#1a3d37;border:1px solid #749283;border-radius:16px;padding:25px;width:min(550px,calc(100% - 32px));max-height:85svh;overflow:auto;box-shadow:0 30px 100px #0009}.help-dialog::backdrop{background:#091e26cc}.help-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.help-heading h2{font-size:23px;margin:0}.help-heading button{font-size:25px;line-height:1;min-height:38px}.help-intro{font-size:14px;line-height:1.8;color:#cbdfcd}.item-guide{margin:20px 0}.item-guide>div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:13px 0;border-top:1px solid #a8ccaf22;font-size:14px;line-height:1.8}.item-guide dt{font-weight:800;color:#ffe08a}.item-guide dd{margin:0;color:#d6e6d7}.help-note{font-size:12px;line-height:1.8;color:#a5bfb0}.game-dialog{max-height:95%;overflow:auto}.game-dialog p{font-size:14px}.hud-world{min-width:0}
@media(max-width:560px){.stamina{width:145px;margin-top:7px}.stamina>div{height:9px}.hud-items{gap:9px;font-size:17px}.hud-leaf>span:first-child{font-size:24px}.hud-small{font-size:11px}.hearts{top:48px;font-size:15px}.hud-world{font-size:13px}.hud-caption{font-size:9px}.toast{top:104px;max-width:94%;white-space:normal;text-align:center}.direction-controls{grid-template-columns:58px 58px;gap:7px}.direction-controls .direction{width:58px;height:62px}.control.crouch{height:39px;width:69px}.touch-controls{padding:15px 2px 2px}.action-controls{grid-template-columns:63px 75px;grid-template-rows:32px 71px;gap:7px}.control.punch{width:63px;height:64px;font-size:12px}.control.jump{width:75px;height:71px}.control.dash{width:88px;height:32px}.instructions{padding-top:15px}.instructions>p{max-width:100%;font-size:11px}.game-bottom{font-size:11px}.boss-hud{padding:7px 10px;bottom:10px}.boss-hud>div:first-child{font-size:11px;margin-bottom:5px}.boss-hud span{font-size:10px}.boss-meter{height:6px}.item-guide>div{grid-template-columns:1fr;gap:3px;padding:10px 0;font-size:14px}.help-dialog{padding:20px}.game-dialog{padding:22px}.game-dialog h2{font-size:22px}.game-dialog p{font-size:12px;line-height:1.7}.result-stars{font-size:30px}}
@media(max-width:360px){.direction-controls{grid-template-columns:52px 52px}.direction-controls .direction{width:52px;height:57px}.action-controls{grid-template-columns:58px 68px;gap:6px}.control.punch{width:58px}.control.jump{width:68px}.hud{padding:12px 10px}.stamina{width:128px}.hud-items{gap:7px}}
@media(orientation:landscape) and (max-height:550px) and (pointer:coarse){.arcade{width:calc(100% - 262px)}.touch-controls{inset:42% 7px auto;align-items:center}.direction-controls{display:grid;grid-template-columns:50px 50px;gap:5px}.direction-controls .direction{width:50px;height:56px}.control.crouch{height:37px}.action-controls{display:grid;grid-template-columns:56px 64px;grid-template-rows:30px 62px;gap:5px}.control.punch{width:56px;height:56px;font-size:10px}.control.jump{width:64px;height:62px;font-size:11px}.control.dash{height:30px}.stamina{width:138px}.hud-items{font-size:16px;gap:10px}.toast{top:90px;font-size:11px}.boss-hud{bottom:7px;padding:5px 10px}.boss-hud>div:first-child{font-size:10px;margin-bottom:4px}.boss-hud span{font-size:9px}.game-dialog{padding:13px 18px}.game-dialog h2{font-size:20px;margin:8px 0}.game-dialog p{font-size:11px;margin:6px 0 10px}.game-dialog .primary-button{min-height:36px;padding:8px 18px;font-size:13px}.game-dialog .eyebrow{font-size:9px}.result-stars{font-size:22px}.stamina>span{font-size:9px}.hud-world{font-size:12px}.hud{padding:10px 14px}}

@media(orientation:landscape) and (max-height:550px) and (pointer:coarse){.hearts{position:absolute;right:14px;top:42px;font-size:14px}.hud-items{font-size:15px}}

.weapon-label{font-size:11px;color:#ffe99c;margin-top:4px;letter-spacing:0}.stamina{margin-top:4px}.toast{top:132px}@media(max-width:560px){.weapon-label{font-size:10px}.toast{top:119px}}

.hud-timer{font-size:16px;position:absolute;right:28px;top:64px;font-variant-numeric:tabular-nums;color:#fff1ac}.hud-timer.low{color:#ff9c84}.clear-result{text-align:left;margin:12px auto 20px;max-width:420px;font-size:14px}.result-time{display:flex;justify-content:space-between;color:#ffe19a;font-size:17px}.clear-result h3{font-size:14px;margin:12px 0 4px;color:#b0f0c7}.clear-result .result-items{font-size:14px;line-height:1.7;margin:0 0 12px;color:#e1efdb;white-space:normal}.score-breakdown{margin:0}.score-breakdown>div{display:flex;justify-content:space-between;gap:16px;padding:5px 0}.score-breakdown dd{margin:0;font-variant-numeric:tabular-nums;font-weight:800}.stage-total{border-top:1px solid #b8d7aa55;margin-top:5px}.score-breakdown .grand-total{font-size:22px;color:#ffdf83;border-top:1px solid #b8d7aa55;padding-top:10px;margin-top:5px}.game-dialog:has(.clear-result:not([hidden])){width:min(520px,94%)}
@media(max-width:560px){.hud-timer{right:14px;top:76px;font-size:14px}.clear-result{font-size:14px}.game-dialog:has(.clear-result:not([hidden])){padding:18px}.clear-result .result-items{font-size:14px}.score-breakdown .grand-total{font-size:20px}}
@media(orientation:landscape) and (max-height:550px) and (pointer:coarse){.hud-timer{right:14px;top:63px}.game-dialog:has(.clear-result:not([hidden])){max-height:98%;overflow:auto}}

/* Safari: recognize ordinary taps on the whole game, including blank space.
   Gamepad/canvas retain touch-action:none; result scrolling and pinch remain usable. */
.arcade,.modal-overlay,.help-dialog{touch-action:manipulation}
#modal{position:fixed;inset:0;margin:auto;width:min(540px,calc(100vw - 24px));height:fit-content;max-width:none;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:15px;background:transparent;color:var(--text);overflow:hidden;box-shadow:0 20px 60px #0008;backdrop-filter:none}
#modal:not([open]){display:none}
#modal::backdrop{background:#102c2ce8}
#modal .game-dialog{display:flex;flex-direction:column;width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);min-height:0;margin:0;padding:0;overflow:hidden;box-shadow:none}
.dialog-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:manipulation;padding:22px 24px 8px;text-align:center}
.dialog-actions{flex:0 0 auto;padding:12px 24px max(16px,env(safe-area-inset-bottom));border-top:1px solid #a9d9b43d;background:#1a3d37;touch-action:manipulation}
#modal .dialog-actions .primary-button{min-height:48px;touch-action:manipulation}
#modal .clear-result{margin-bottom:10px}
@media(max-width:560px){.dialog-body{padding:18px 18px 8px}.dialog-actions{padding:12px 18px max(14px,env(safe-area-inset-bottom))}}
@media(orientation:landscape) and (max-height:550px){.dialog-body{padding:10px 20px 6px}.dialog-actions{padding:9px 20px max(10px,env(safe-area-inset-bottom))}}
