html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:linear-gradient(180deg,#5fb8e6,#2c3e66);font-family:ui-rounded,SF Pro Rounded,Segoe UI,ui-sans-serif,system-ui,-apple-system,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#game-root{position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);width:min(100vw,56.25vh);overflow:hidden;box-shadow:0 0 40px #00000059}#rotate-hint{display:none;position:fixed;inset:0;z-index:100;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#2c3e66;color:#fff;font-size:22px;font-weight:900;text-align:center}#rotate-hint small{font-size:14px;font-weight:700;opacity:.8}.rotate-phone{font-size:64px;animation:rotate-phone 1.8s ease-in-out infinite}@keyframes rotate-phone{0%,30%{transform:rotate(-90deg)}60%,to{transform:rotate(0)}}@media(orientation:landscape)and (pointer:coarse){#rotate-hint{display:flex}}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#ui-overlay{position:absolute;inset:0;pointer-events:none}#ui-overlay>*{pointer-events:auto}.warm.hidden,.warm{display:flex!important;visibility:hidden!important;animation:none!important}.hidden{display:none!important}.hud-score{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);font-size:clamp(44px,9vw,64px);font-weight:900;color:#fff;text-shadow:0 3px 0 #3b2f2f,0 0 14px rgba(0,0,0,.25);letter-spacing:2px}.hud-best{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;font-size:15px;font-weight:800;color:#fff;text-shadow:0 2px 0 rgba(59,47,47,.8)}.round-btn{position:absolute;top:max(10px,env(safe-area-inset-top));width:46px;height:46px;border-radius:50%;border:3px solid #3b2f2f;background:#fff8ec;font-size:20px;cursor:pointer;box-shadow:0 3px #3b2f2f;display:flex;align-items:center;justify-content:center;padding:0}.round-btn:active{transform:translateY(2px);box-shadow:0 1px #3b2f2f}.btn-mute{right:12px}.btn-pause{right:66px}.panel{position:absolute;left:50%;top:calc(50% + (env(safe-area-inset-top) - env(safe-area-inset-bottom))/2);transform:translate(-50%,-50%);width:min(88%,380px);max-height:calc(100% - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)) - 16px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fff8ec;border:4px solid #3b2f2f;border-radius:22px;box-shadow:0 8px #3b2f2f8c;padding:20px 18px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;animation:panel-pop .25s ease-out}@keyframes panel-pop{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.game-logo{display:flex;flex-direction:column;line-height:.95;font-weight:900;letter-spacing:1px;transform:rotate(-2.5deg)}.logo-line0{font-size:clamp(18px,5vw,24px);color:#3d5a99;letter-spacing:3px;text-shadow:0 2px 0 #2c3e66,0 3px 0 #3b2f2f;margin-bottom:2px}.logo-line1{font-size:clamp(38px,10vw,52px);color:#c06a45;text-shadow:0 3px 0 #8a4530,0 5px 0 #3b2f2f}.logo-line2{font-size:clamp(30px,8vw,42px);color:#3d5a99;text-shadow:0 3px 0 #2c3e66,0 5px 0 #3b2f2f}.tagline{font-size:14px;font-style:italic;color:#7a6a5a}.howto{font-size:15px;font-weight:700;color:#3b2f2f;white-space:pre-line;line-height:1.45}.install-hint{font-size:12px;color:#9a8a7a;line-height:1.4}.title-best{font-size:16px;font-weight:800;color:#b8860b;min-height:20px}.panel-title-sm{font-size:24px;font-weight:900;color:#3b2f2f;letter-spacing:1px}.over-title{color:#c0392b;text-shadow:0 2px 0 rgba(59,47,47,.3)}.over-victim{font-size:17px;font-weight:900;color:#3b2f2f;background:#ffe08a;border:3px dashed #b8860b;border-radius:14px;padding:8px 12px;line-height:1.3;transform:rotate(-1deg)}.over-score{font-size:20px;font-weight:900;color:#3b2f2f}.over-newbest{font-size:15px;font-weight:900;color:#b8860b;animation:blink .8s ease-in-out infinite alternate}@keyframes blink{0%{opacity:1;transform:scale(1)}to{opacity:.75;transform:scale(1.06)}}.btn{border:3px solid #3b2f2f;border-radius:14px;background:#e74c3c;color:#fff;font-weight:900;font-family:inherit;cursor:pointer;box-shadow:0 4px #3b2f2f;letter-spacing:1px}.btn:active{transform:translateY(3px);box-shadow:0 1px #3b2f2f}.btn[disabled]{opacity:.55;cursor:default}.btn-big{font-size:22px;padding:12px 34px}.btn-small{font-size:15px;padding:10px 18px;background:#3d5a99}.btn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}.form-row{display:flex;gap:8px;width:100%;align-items:stretch}.name-input{flex:1;min-width:0;border:3px solid #3b2f2f;border-radius:12px;padding:10px 12px;font-size:16px;font-weight:700;font-family:inherit;background:#fff;color:#3b2f2f;outline:none}.name-input:focus{border-color:#e74c3c}.submit-msg{font-size:13px;font-weight:700;color:#7a6a5a;min-height:16px}.submit-msg.ok{color:#27ae60}.submit-msg.err{color:#c0392b}.mini-board{width:100%;background:#fdf1dc;border:3px solid #3b2f2f;border-radius:14px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.mini-board-title{font-size:15px;font-weight:900;color:#b8860b;letter-spacing:1px;margin-bottom:4px}.mini-board-row{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#3b2f2f;padding:3px 6px;border-radius:8px}.mini-board-row.me{background:#ffe08a;outline:2px solid #b8860b}.mb-rank{width:30px;text-align:left;flex-shrink:0}.mb-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mb-score{font-weight:900}.pop-layer{position:absolute;inset:0;overflow:hidden}.pop{position:absolute;transform:translate(-50%,-50%);font-size:30px;font-weight:900;color:#fff;text-shadow:0 2px 0 #3b2f2f,0 0 10px rgba(0,0,0,.3);opacity:0;will-change:transform,opacity}.pop.big{color:#ffd54a;font-size:40px}@keyframes pop-rise{0%{opacity:1;transform:translate(-50%,-50%) scale(.7)}30%{transform:translate(-50%,-80%) scale(1.15)}to{opacity:0;transform:translate(-50%,-160%) scale(1)}}.btn-skins{font-size:16px;padding:10px 20px;background:#f39c12}.title-next,.over-next{font-size:13px;font-weight:700;color:#9a7a5a;margin-top:-4px}.over-unlock{font-size:15px;font-weight:900;color:#fff;background:linear-gradient(135deg,#f39c12,#e74c3c);border:3px solid #3b2f2f;border-radius:14px;padding:8px 12px;animation:blink .8s ease-in-out infinite alternate}.panel-skins{width:min(92%,420px)}.skins-info{font-size:14px;font-weight:700;color:#7a6a5a;min-height:36px;line-height:1.35}.skins-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%}.skin-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 4px 8px;border:3px solid #3b2f2f;border-radius:16px;background:#fdf1dc;box-shadow:0 3px #3b2f2f;font-family:inherit;cursor:pointer}.skin-card:active{transform:translateY(2px);box-shadow:0 1px #3b2f2f}.skin-card.selected{background:#ffe08a;outline:3px solid #e74c3c}.skin-card.gold{background:linear-gradient(160deg,#fff6c8,#f5cf5a)}.skins-head{display:flex;align-items:center;gap:10px;width:100%;position:sticky;top:-20px;z-index:2;margin:-20px 0 0;padding:14px 0 8px;background:#fff8ec}.skins-head .btn-small{padding:6px 10px;font-size:13px}.skins-head .panel-title-sm{font-size:20px}.skin-img{width:100%;aspect-ratio:8 / 5;object-fit:contain;pointer-events:none}.skin-card.locked .skin-img{filter:brightness(0) opacity(.35)}.skin-name{font-size:14px;font-weight:900;color:#3b2f2f}.skin-req{font-size:12px;font-weight:800;color:#b8860b}.skin-card.locked .skin-req{color:#7a6a5a}.banner{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);padding:10px 18px;border:4px solid #3b2f2f;border-radius:18px;background:linear-gradient(135deg,#ffd54a,#f39c12);color:#3b2f2f;font-size:20px;font-weight:900;text-align:center;width:max-content;max-width:86vw;box-shadow:0 5px #3b2f2f;animation:banner-in 2.2s ease-out forwards}@keyframes banner-in{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}12%{transform:translate(-50%,-50%) scale(1.12);opacity:1}20%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{transform:translate(-50%,-70%) scale(1);opacity:0}}.fps-meter{position:absolute;left:8px;bottom:max(8px,env(safe-area-inset-bottom));padding:4px 8px;border-radius:8px;background:#0000008c;color:#7cfc9a;font:700 12px ui-monospace,Menlo,monospace;pointer-events:none!important}.hud-level{position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + clamp(52px,10vw,74px));left:50%;transform:translate(-50%);padding:2px 10px;border-radius:10px;background:#3b2f2f8c;color:#ffd54a;font-size:13px;font-weight:900;letter-spacing:1.5px;white-space:nowrap}.hud-level.bump{animation:level-bump .6s ease-out}@keyframes level-bump{0%{transform:translate(-50%) scale(1)}30%{transform:translate(-50%) scale(1.5);background:#e74c3c;color:#fff}to{transform:translate(-50%) scale(1)}}.banner-sub{font-size:14px;font-weight:800;margin-top:2px;color:#5a3a22}.title-screen{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 66px) 18px calc(env(safe-area-inset-bottom) + 18px);pointer-events:none!important;text-align:center}.title-screen button{pointer-events:auto}.title-top{display:flex;flex-direction:column;align-items:center;gap:8px;animation:logo-float 3.2s ease-in-out infinite}@keyframes logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.title-screen .game-logo{filter:drop-shadow(0 6px 0 rgba(59,47,47,.25))}.title-screen .logo-line0{font-size:min(6.5vw,3.4vh,32px)}.title-screen .logo-line1{font-size:min(14vw,7.4vh,72px);-webkit-text-stroke:2px #3b2f2f}.title-screen .logo-line2{font-size:min(11.5vw,6.1vh,60px);-webkit-text-stroke:2px #3b2f2f}.title-screen .tagline{color:#fff;font-weight:800;font-style:italic;text-shadow:0 2px 0 rgba(59,47,47,.7);font-size:15px}.title-bottom{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(92vw,400px)}.title-screen .title-best{color:#ffd54a;font-size:18px;font-weight:900;text-shadow:0 2px 0 #3b2f2f,0 0 8px rgba(0,0,0,.35);min-height:0}.btn-play{font-size:30px;padding:16px 58px;border-radius:20px;box-shadow:0 6px #3b2f2f;animation:play-pulse 1.4s ease-in-out infinite}@keyframes play-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.title-row{display:flex;gap:10px;width:100%}.title-row .btn{flex:1;font-size:min(16px,4.1vw);padding:12px 6px;white-space:nowrap;letter-spacing:.5px}.btn-board{background:#3d5a99}.title-screen .title-next,.title-screen .howto,.title-screen .install-hint{color:#fff;font-weight:800;text-shadow:0 2px 0 rgba(59,47,47,.85);margin:0}.title-screen .howto{font-size:14px}.title-screen .title-next{font-size:13px;color:#ffe9a8}.title-screen .install-hint{font-size:12px;opacity:.9}.panel-board .mini-board{max-height:62vh;overflow-y:auto}.hud-flame{position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + clamp(52px,10vw,74px) + 30px);left:50%;transform:translate(-50%);padding:3px 12px;border-radius:10px;background:linear-gradient(135deg,#ff7a1a,#e74c3c);border:2px solid #3b2f2f;color:#fff;font-size:14px;font-weight:900;white-space:nowrap;pointer-events:none!important;animation:blink .6s ease-in-out infinite alternate}.over-flame{font-size:14px;font-weight:900;color:#c0392b}.skin-card.flame{background:linear-gradient(160deg,#ffe2b8,#ff9a4a)}
