:root{--ink:#171126;--cream:#fff4cf;--lime:#b7f12f;--cyan:#36e1e8;--pink:#ff4f91;--orange:#ff9c35;--panel:rgba(23,17,38,.9);font-family:Impact,Haettenschweiler,Arial Narrow Bold,system-ui,sans-serif;color:var(--cream);background:var(--ink)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{width:100%;height:100%;height:100dvh;margin:0;overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body{background:#111}button,select,input{font:inherit}button{cursor:pointer}#game,#game canvas{position:absolute;inset:0;width:100%;height:100%}#game canvas{object-fit:contain;image-rendering:pixelated}.hidden{display:none!important}.hud{position:absolute;inset:0;z-index:10;pointer-events:none;padding:max(14px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));text-shadow:3px 3px 0 var(--ink);letter-spacing:.06em}.hud__vitals{position:absolute;left:max(18px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));transform:rotate(-1deg)}.pips{display:flex;gap:5px}.heart{width:28px;height:24px;background:var(--pink);border:3px solid var(--ink);box-shadow:3px 3px #8d1f55;clip-path:polygon(0 20%,20% 0,50% 20%,80% 0,100% 20%,100% 60%,50% 100%,0 60%)}.heart.empty{background:#574861;box-shadow:none}.armor{margin-top:7px;color:var(--cyan);font-family:system-ui,sans-serif;font-weight:900;font-size:15px}.hud__progress{position:absolute;width:min(38vw,430px);left:50%;top:max(13px,env(safe-area-inset-top));transform:translate(-50%);text-align:center;font-size:clamp(11px,1.5vw,18px)}.meter{height:14px;background:#3c304b;border:3px solid var(--ink);box-shadow:3px 3px #00000059;margin-top:4px;transform:skew(-8deg)}.meter i{display:block;width:0%;height:100%;background:linear-gradient(90deg,var(--lime),var(--orange));transition:width .15s}.boss-bar{margin-top:6px;color:var(--orange)}.boss-bar i{display:block;height:10px;background:var(--pink);border:2px solid var(--ink);width:100%;transform-origin:left}.hud__score{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));text-align:right}.hud__score b{display:block;color:var(--lime);font-size:clamp(22px,3vw,38px);line-height:.85}.hud__score span{font-size:clamp(10px,1.2vw,15px)}.toast{position:absolute;top:21%;left:50%;transform:translate(-50%,-50%) rotate(-2deg) scale(.6);opacity:0;padding:9px 18px;background:var(--cream);color:var(--ink);border:4px solid var(--ink);box-shadow:6px 6px 0 var(--pink);font-size:clamp(18px,3vw,38px);text-shadow:none;transition:.18s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,-50%) rotate(-2deg) scale(1)}.touch-controls{position:absolute;inset:0;z-index:20;pointer-events:none;padding:0 max(18px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.touch-controls button{pointer-events:auto;border:4px solid rgba(255,244,207,.8);color:#fff;background:#1711269e;box-shadow:0 7px #0000008c,inset 0 0 0 3px #00000040;text-shadow:3px 3px 0 #171126;display:grid;place-items:center;padding:0}.touch-controls button.pressed{transform:translateY(6px) scale(.96)!important;box-shadow:0 1px #0000008c,inset 0 0 22px var(--lime);filter:brightness(1.3)}.touch-controls__move{position:absolute;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));display:flex;gap:16px}.touch-controls__move button{width:clamp(82px,11vw,116px);height:clamp(82px,11vw,116px);border-radius:23% 35% 25% 30%;font-size:40px;transform:rotate(-2deg)}.touch-controls__move button+button{transform:rotate(2deg)}.touch-controls__actions{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:clamp(210px,25vw,300px);height:clamp(115px,16vw,175px)}.touch-controls__actions button{position:absolute;border-radius:30%}.action-jump{width:clamp(92px,12vw,126px);height:clamp(92px,12vw,126px);right:0;bottom:0;background:#36e1e8a1!important;font-size:48px;transform:rotate(3deg)}.action-jump.charging{animation:jumpCharge .12s steps(2) infinite;border-color:var(--orange);box-shadow:0 0 0 8px #ff9c354d,inset 0 0 25px var(--cream)}.action-sword{width:clamp(88px,11vw,118px);height:clamp(88px,11vw,118px);right:clamp(105px,13vw,140px);bottom:4px;background:#ff4f9199!important;font-size:46px;transform:rotate(-3deg)}.screen{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:auto;padding:max(14px,env(safe-area-inset-top)) 18px max(14px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 20%,#54305f 0,#241634 48%,#120d1d)}.start-screen:before{content:"";position:absolute;inset:-30%;opacity:.18;background:linear-gradient(135deg,transparent 25%,#ff4f91 25% 30%,transparent 30% 60%,#36e1e8 60% 65%,transparent 65%);transform:rotate(-8deg);pointer-events:none}.logo-wrap{position:relative;z-index:2;transform:rotate(-2deg);margin-bottom:18px}.logo-wrap h1{font-size:clamp(46px,7.6vw,94px);line-height:.78;margin:0;color:var(--cream);letter-spacing:-.035em;text-shadow:7px 7px 0 #5d2467,12px 12px 0 #171126}.logo-wrap h1 span{color:var(--lime)}.logo-wrap p{margin:20px 0 0;letter-spacing:.18em;font-family:system-ui,sans-serif;font-weight:1000;font-size:clamp(10px,1.3vw,16px)}.fuse-spark{position:absolute;right:1%;top:-65%;color:var(--orange);font-size:clamp(48px,7vw,86px);animation:pop .65s steps(2) infinite}.start-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(430px,1.25fr) minmax(310px,.8fr);gap:24px;width:min(980px,94vw);align-items:stretch}.start-card,.leaderboard-card{border:5px solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:9px 9px 0 var(--pink);padding:18px;transform:rotate(-.5deg)}.start-card{display:flex;flex-direction:column;align-items:center;justify-content:center}.name-label{font-size:clamp(18px,2vw,28px);color:#6c2254;letter-spacing:.08em}.name-input{width:min(390px,100%);margin:8px 0 5px;padding:10px 14px;border:5px solid var(--ink);outline:none;background:#fff;color:var(--ink);box-shadow:6px 6px 0 var(--cyan);font-size:clamp(24px,3vw,38px);text-align:center;text-transform:none;user-select:text;-webkit-user-select:text;touch-action:auto}.name-input:focus{border-color:var(--pink);box-shadow:6px 6px 0 var(--lime)}#name-hint{font-family:system-ui,sans-serif;font-weight:800;font-size:11px}.start-actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:16px}.primary-button,.secondary-button{position:relative;z-index:2;border:5px solid var(--ink);padding:12px 22px;color:var(--ink);background:var(--lime);box-shadow:7px 7px 0 var(--pink);font-size:clamp(18px,2.4vw,30px);transform:rotate(-1deg)}.primary-button:active,.secondary-button:active,.mini-button:active{transform:translate(5px,5px);box-shadow:2px 2px 0 var(--pink)}.primary-button:disabled{filter:grayscale(.8);opacity:.58;cursor:not-allowed;box-shadow:4px 4px #5d2467}.secondary-button{background:var(--cyan);font-size:clamp(14px,1.7vw,20px);box-shadow:6px 6px #5d2467}.start-tip{margin:15px 0 0;font-family:system-ui,sans-serif;font-weight:900;font-size:12px;line-height:1.4}.leaderboard-card h2,.leaderboard-card h3{margin:0 0 8px;color:#6c2254;font-size:clamp(24px,3vw,38px)}.leaderboard-card table{width:100%;border-collapse:collapse;font-family:system-ui,sans-serif;font-weight:1000}.leaderboard-card th,.leaderboard-card td{padding:6px 7px;border-bottom:3px solid var(--ink);text-align:left}.leaderboard-card th:last-child,.leaderboard-card td:last-child{text-align:right;color:#8d1f55}.leaderboard-card tbody tr:first-child{background:var(--lime)}.score-empty,.score-persistence{font-family:system-ui,sans-serif;font-weight:800;font-size:12px}.score-file-actions{display:flex;gap:9px;justify-content:center;margin-top:12px}.mini-button{display:inline-block;padding:7px 9px;border:3px solid var(--ink);background:var(--cyan);color:var(--ink);box-shadow:4px 4px 0 var(--pink);font-size:12px}.score-file-actions input{display:none}.leaderboard-card footer,.victory-panel footer{margin-top:12px;font-family:system-ui,sans-serif;font-size:12px;font-weight:1000;letter-spacing:.08em}.version-badge{position:relative;z-index:2;margin-top:20px;padding:6px 11px;border:3px solid var(--ink);background:var(--orange);color:var(--ink);box-shadow:5px 5px 0 var(--pink);font-family:system-ui,sans-serif;font-size:12px;font-weight:1000;letter-spacing:.06em;transform:rotate(1deg)}.brand-credit{position:relative;z-index:2;margin-top:11px;font-family:system-ui,sans-serif;font-size:11px;font-weight:900;letter-spacing:.1em}.modal-screen{background:#0c0814db;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel{width:min(560px,90vw);max-height:94dvh;overflow:auto;padding:26px;background:var(--cream);color:var(--ink);border:7px solid var(--ink);box-shadow:13px 13px 0 var(--pink);transform:rotate(-1deg)}.panel h2{margin:0 0 8px;font-size:clamp(30px,5vw,58px);line-height:.9}.panel p{font-family:system-ui,sans-serif;font-weight:800}.panel button{display:block;margin:18px auto}.panel label{display:flex;justify-content:space-between;align-items:center;max-width:300px;margin:10px auto;font-family:system-ui,sans-serif;font-weight:900}.panel select{padding:6px;border:3px solid var(--ink)}.kicker{margin:0;color:#8d1f55;letter-spacing:.12em}.victory-panel{width:min(760px,92vw);background:linear-gradient(145deg,var(--cream) 0 70%,#ffd05f 70%);box-shadow:15px 15px 0 var(--lime);transform:rotate(.5deg)}.victory-panel h2{font-size:clamp(38px,6vw,72px);color:#6c2254}.round-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.round-stats div{padding:12px 8px;border:4px solid var(--ink);background:#fff;box-shadow:5px 5px 0 var(--cyan)}.round-stats span{display:block;font-family:system-ui,sans-serif;font-size:10px;font-weight:1000}.round-stats b{display:block;margin-top:5px;font-size:clamp(18px,2.5vw,30px);color:#8d1f55;overflow-wrap:anywhere}.end-panel{width:min(660px,92vw)}.final-score{font-size:17px}.final-score b{display:inline-block;margin-left:8px;font-size:42px;color:#8d1f55}.end-leaderboard{margin:16px auto;padding:12px;box-shadow:6px 6px 0 var(--cyan);transform:none}.end-leaderboard h3{font-size:26px}.end-leaderboard table{font-size:13px}.end-panel>.secondary-button{margin-top:8px}.pause-button{position:absolute;z-index:25;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);width:48px;height:42px;border:3px solid var(--cream);background:#1711268c;color:var(--cream);font-size:19px;border-radius:10px}.orientation-overlay{position:absolute;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#171126;padding:30px}.orientation-overlay h2{color:var(--lime);font-size:clamp(34px,9vw,64px);margin:15px}.orientation-overlay p{font-family:system-ui,sans-serif;font-weight:900}.rotate-icon{width:110px;height:70px;border:8px solid var(--cream);display:grid;place-items:center;font-size:40px;animation:rotateDevice 1.5s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes jumpCharge{to{filter:hue-rotate(35deg) brightness(1.25)}}@keyframes pop{to{transform:scale(1.25) rotate(15deg)}}@keyframes rotateDevice{0%,20%{transform:rotate(90deg)}70%,to{transform:rotate(0)}}.round-stats div:last-child b{font-size:clamp(15px,1.8vw,22px);overflow-wrap:normal}@media(pointer:fine)and (min-width:900px){.touch-controls{opacity:.42}}@media(max-width:760px){.start-grid{grid-template-columns:1fr;width:min(520px,94vw)}.leaderboard-card{display:none}.round-stats{grid-template-columns:1fr 1fr}.logo-wrap h1{font-size:48px}.brand-credit{display:block}}@media(max-height:650px){.screen{justify-content:flex-start}.logo-wrap{margin:4px 0 12px}.logo-wrap h1{font-size:min(11vh,66px)}.logo-wrap p{margin-top:12px}.start-grid{grid-template-columns:minmax(380px,1.2fr) minmax(290px,.8fr);gap:18px}.start-card,.leaderboard-card{padding:12px}.name-input{font-size:24px;padding:6px 10px}.start-actions{margin-top:10px}.start-tip{margin-top:9px}.version-badge{margin-top:13px}.panel{padding:17px}.panel h2{font-size:34px}.panel button{margin:10px auto}.round-stats{margin:12px 0}.round-stats div{padding:8px}.end-leaderboard{margin:9px auto}.end-panel{width:min(720px,94vw)}}@media(max-height:650px)and (max-width:760px){.start-grid{grid-template-columns:1fr}.leaderboard-card{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
