:root{--ice: #bfe9ff;--ice-deep: #2b6fa8;--ice-glow: #7fd0ff;--ink: #0b2a4a;--font: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", "Arial Rounded MT Bold", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#05060a;color:#eaf6ff;font-family:var(--font);font-weight:800;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none}body{position:fixed;inset:0;width:100%}canvas#c{position:fixed;left:0;top:0;display:block;cursor:none}body.touch canvas#c{cursor:default}#hud{position:fixed;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:5;transition:opacity .3s;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.7)}body.screen-on #hud{opacity:0}#hearts{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));display:flex;gap:6px}.heart{width:40px;height:40px;filter:drop-shadow(0 2px 0 #5a0b1c) drop-shadow(0 0 8px rgba(255,80,120,.7));transition:transform .2s}.heart svg{width:100%;height:100%}.heart.lost{filter:grayscale(1) brightness(.45);animation:heart-break .6s ease-out forwards}.heart.pulse{animation:heart-pulse .5s ease-out}@keyframes heart-break{0%{transform:scale(1.5) rotate(0)}40%{transform:scale(1.2) rotate(-18deg)}to{transform:scale(.85) rotate(12deg) translateY(4px)}}@keyframes heart-pulse{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}#counter{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));min-width:120px;padding:6px 14px 10px;background:#081222b3;border:3px solid rgba(191,233,255,.55);border-radius:18px;font-size:clamp(24px,3.2vw,32px);text-align:right;line-height:1}#counter .ghost-ico{font-size:24px;margin-right:6px}#counter .sep{opacity:.6;margin:0 3px}#counter #kills{color:var(--ice);text-shadow:0 0 10px var(--ice-glow);display:inline-block}#counter #kills.bump{animation:bump .3s ease-out}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.45)}to{transform:scale(1)}}#bar{margin-top:8px;height:8px;border-radius:4px;background:#ffffff26;overflow:hidden}#bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,#5fb6ff,#d9f4ff);box-shadow:0 0 8px var(--ice-glow);transition:width .25s ease-out}#boss-hud{position:absolute;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);text-align:center;display:none}#boss-hud.on{display:block;animation:drop-in .5s cubic-bezier(.2,1.4,.4,1)}#boss-name{font-size:clamp(24px,3.4vw,34px);color:#c9ff9a;text-shadow:0 0 12px #6bff3a,0 3px 0 #1d4d0c;letter-spacing:.05em}#boss-hp{font-size:34px;letter-spacing:6px;margin-top:2px}#boss-hp span{display:inline-block;color:var(--ice);text-shadow:0 0 12px var(--ice-glow);transition:transform .3s,opacity .3s}#boss-hp span.used{opacity:.25;transform:scale(.7)}#boss-hp span.hit{animation:bump .4s ease-out}#boss-hint{font-size:clamp(17px,2.4vw,24px);opacity:.95;margin-top:4px}@keyframes drop-in{0%{transform:translate(-50%,-80px);opacity:0}to{transform:translate(-50%);opacity:1}}#pops{position:absolute;inset:0;overflow:hidden}.pop{position:absolute;transform:translate(-50%,-50%);font-size:clamp(28px,4vw,40px);color:#fff;text-shadow:0 0 10px var(--ice-glow),0 3px 0 var(--ice-deep),0 2px 4px #000;animation:pop-rise .9s cubic-bezier(.1,.9,.3,1) forwards;white-space:nowrap}.pop.combo{font-size:clamp(38px,5.5vw,52px);color:#ffe27a;text-shadow:0 0 14px #ffb300,0 4px 0 #8a4b00}.pop.warn{font-size:clamp(22px,3vw,28px);color:#ffd0d0;text-shadow:0 0 10px #ff3d5a,0 2px 0 #5a0b1c}.pop.big{font-size:64px;color:var(--ice);text-shadow:0 0 22px var(--ice-glow),0 5px 0 var(--ice-deep)}@keyframes pop-rise{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}15%{transform:translate(-50%,-60%) scale(1.25);opacity:1}to{transform:translate(-50%,-140%) scale(1);opacity:0}}.ripple{position:absolute;width:70px;height:70px;border-radius:50%;border:4px solid var(--ice);transform:translate(-50%,-50%) scale(.2);box-shadow:0 0 14px var(--ice-glow);animation:ripple .45s ease-out forwards}@keyframes ripple{to{transform:translate(-50%,-50%) scale(1.6);opacity:0}}#warning{position:absolute;inset:0;display:none;align-items:center;justify-content:center}#warning.on{display:flex}#warning span{font-size:clamp(28px,6vw,64px);color:#ffe0e0;padding:14px 32px;background:#7800148c;border-top:4px solid #ff3d5a;border-bottom:4px solid #ff3d5a;text-shadow:0 0 20px #ff3d5a;animation:warn-pulse 2.4s ease-in-out infinite;width:100%;text-align:center}@keyframes warn-pulse{0%,to{opacity:1}50%{opacity:.72}}#reticle{position:fixed;left:0;top:0;z-index:6;pointer-events:none;display:none;font-size:34px;color:var(--ice);text-shadow:0 0 12px var(--ice-glow);transform:translate(-50%,-50%);animation:spin 6s linear infinite}#reticle.on{display:block}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.screen{position:fixed;inset:0;z-index:10;display:none;align-items:center;justify-content:center;background:#040810b8;padding:20px}.screen.on{display:flex;animation:fade-in .4s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.panel{text-align:center;max-width:560px;width:100%}.panel>*+*{margin-top:18px}h1{margin:0;font-size:clamp(36px,8vw,84px);line-height:1.05;color:#eaf8ff;white-space:nowrap;text-shadow:0 0 18px var(--ice-glow),0 0 40px rgba(127,208,255,.5),0 5px 0 var(--ice-deep),0 9px 0 #123a5c;animation:title-float 3s ease-in-out infinite}html[lang=en] h1{font-family:"Creepster",var(--font);letter-spacing:.04em;font-weight:400}@keyframes title-float{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}h2{margin:0;font-size:clamp(30px,6.5vw,60px);line-height:1.1;white-space:nowrap}h2.danger{color:#ffb0b8;text-shadow:0 0 18px #ff3d5a,0 4px 0 #5a0b1c}h2.gold{color:#ffe27a;text-shadow:0 0 18px #ffb300,0 4px 0 #8a4b00;animation:title-float 2s ease-in-out infinite}.sub{font-size:clamp(16px,3.4vw,22px);color:#d6eeff;margin:0}.stat{font-size:32px}.howto{list-style:none;padding:0;margin:0 auto;display:inline-block;text-align:left;font-size:clamp(16px,3.2vw,20px)}.howto li{display:flex;align-items:center;gap:12px;padding:6px 0}.howto .ico{width:64px;text-align:center;font-size:24px}.btn{pointer-events:auto;cursor:pointer;font-family:var(--font);font-weight:900;border-radius:999px;border:4px solid #eaf8ff;color:var(--ink);background:linear-gradient(180deg,#d9f4ff,#5fb6ff);box-shadow:0 8px 0 var(--ice-deep),0 12px 24px #00000080;transition:transform .08s,box-shadow .08s}.btn.big{font-size:clamp(26px,6vw,36px);padding:16px 52px}.btn.small{font-size:16px;padding:8px 18px;box-shadow:0 4px 0 var(--ice-deep)}.btn:active{transform:translateY(6px);box-shadow:0 2px 0 var(--ice-deep)}.btn.small:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ice-deep)}.row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.opt-label{font-size:15px;opacity:.8;margin:0 0 6px}.btn.opt{font-size:17px;padding:8px 18px;box-shadow:0 4px 0 var(--ice-deep);opacity:.6;background:linear-gradient(180deg,#9cc7e6,#4a86b8)}.btn.opt.sel{opacity:1;background:linear-gradient(180deg,#ffe9a8,#ffb93a);border-color:#fff3cc;box-shadow:0 4px #8a4b00}.btn.opt:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ice-deep)}#medal-img{width:min(60vw,280px,38vh);-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 58%,transparent 74%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 58%,transparent 74%);filter:drop-shadow(0 0 30px rgba(255,200,60,.7));animation:medal-in 1.2s cubic-bezier(.2,1.5,.4,1),medal-spin 4s ease-in-out 1.2s infinite}@keyframes medal-in{0%{transform:scale(0) rotate(-40deg)}to{transform:scale(1) rotate(0)}}@keyframes medal-spin{0%,to{transform:rotateY(0)}50%{transform:rotateY(180deg)}}.spinner{font-size:64px;color:var(--ice);animation:spin 2s linear infinite;display:inline-block}#loading-text{font-size:22px;margin-top:10px}#shards{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 48px);left:max(16px,env(safe-area-inset-left));display:flex;align-items:center;gap:7px;font-size:clamp(15px,2vw,19px);padding:4px 10px;border-radius:12px;background:#0812228c}#shards .lbl{margin-right:4px;opacity:.9}#shards i{width:17px;height:17px;border-radius:3px;transform:rotate(45deg);background:#bfe9ff2e;border:2px solid rgba(191,233,255,.6);transition:background .2s,box-shadow .2s}#shards i.on{background:var(--ice);box-shadow:0 0 8px var(--ice-glow)}#score{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%);font-size:clamp(24px,3.4vw,34px);line-height:1;text-align:center;padding:4px 16px;border-radius:14px;background:#0812228c}#score .lbl{display:block;font-size:clamp(12px,1.6vw,15px);opacity:.85;margin-bottom:3px}#score-val{color:#fff;text-shadow:0 0 10px var(--ice-glow);font-variant-numeric:tabular-nums}#score-val.bump{animation:bump .3s ease-out}body.boss-on #score{top:calc(max(12px,env(safe-area-inset-top)) + 136px)}#fever{position:absolute;top:38%;left:50%;transform:translate(-50%);display:none;font-size:clamp(26px,5vw,44px);color:#bfe9ff;text-shadow:0 0 16px var(--ice-glow),0 3px 0 var(--ice-deep);letter-spacing:.08em;animation:fever-pulse 1.6s ease-in-out infinite}#fever.on{display:block}@keyframes fever-pulse{0%,to{transform:translate(-50%) scale(1);opacity:.85}50%{transform:translate(-50%) scale(1.08);opacity:1}}#wave{position:absolute;top:30%;left:50%;transform:translate(-50%);display:none;font-size:clamp(30px,7vw,60px);color:#fff;text-shadow:0 0 18px var(--ice-glow),0 4px 0 var(--ice-deep)}#wave.on{display:block;animation:wave-in 2.2s ease-out forwards}@keyframes wave-in{0%{opacity:0;transform:translate(-50%) scale(.6)}15%{opacity:1;transform:translate(-50%) scale(1.1)}80%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%) scale(1)}}#boss-spots{display:flex;justify-content:center;gap:10px;margin-top:4px}#boss-spots i{width:16px;height:16px;border-radius:50%;border:3px solid #ffd76a;box-shadow:0 0 8px #ffc83c99;transition:all .25s}#boss-spots i.on{background:var(--ice);border-color:#eaf8ff;box-shadow:0 0 10px var(--ice-glow);transform:scale(1.15)}#boss-hint.now{color:#ffe27a;text-shadow:0 0 12px #ffb300;font-size:20px}#collection{font-size:15px;opacity:.9}#collection .lbl{opacity:.75;margin-right:4px}.pop.gain{color:#ffb0c8;text-shadow:0 0 12px #ff4d6d,0 3px 0 #5a0b1c}.pop.bad{color:#d0ffd6;text-shadow:0 0 12px #3dff7a,0 3px 0 #0c5a2a;font-size:clamp(22px,3vw,28px)}.pop.score{font-size:clamp(20px,2.8vw,26px);color:#eaf6ff;opacity:.95}#medal-img.silver{filter:saturate(0) brightness(1.15) drop-shadow(0 0 30px rgba(220,230,255,.7))}#medal-img.bronze{filter:sepia(1) hue-rotate(-25deg) saturate(1.5) brightness(.8) drop-shadow(0 0 30px rgba(255,150,80,.6))}h2.gold.silver{color:#e6eeff;text-shadow:0 0 18px #bcd0ff,0 4px 0 #4a5a80}h2.gold.bronze{color:#ffb37a;text-shadow:0 0 18px #ff7a30,0 4px 0 #6b2f0c}#btn-pause{position:fixed;z-index:7;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:none;font-size:20px;padding:8px 14px;opacity:.8}body.playing #btn-pause{display:block}#pause h2{color:#eaf8ff;text-shadow:0 0 18px var(--ice-glow),0 4px 0 var(--ice-deep)}@media(max-width:480px){.heart{width:32px;height:32px}#counter{min-width:96px;padding:5px 10px 8px;font-size:20px}#counter .ghost-ico{font-size:18px;margin-right:4px}#score{font-size:20px;padding:3px 12px}#shards{top:calc(max(14px,env(safe-area-inset-top)) + 38px);font-size:14px;gap:5px}#shards i{width:13px;height:13px}.howto .ico{width:44px;font-size:20px}}@media(max-height:520px)and (orientation:landscape){.screen{align-items:flex-start;overflow-y:auto;padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}.panel{max-width:none;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;row-gap:8px;align-items:center;text-align:center;margin:auto 0}.panel>*+*{margin-top:0}h1{font-size:clamp(30px,7vh,48px);animation:none}h2{font-size:clamp(24px,7vh,40px)}.sub,.howto{font-size:14px}.howto li{padding:2px 0}.howto .ico{width:40px;font-size:18px}.btn.big{font-size:22px;padding:10px 34px}.btn.small,.btn.opt{font-size:13px;padding:6px 12px}.opt-label{margin:0 0 3px;font-size:13px}#collection{font-size:13px}.stat{font-size:20px;margin:0}#medal-img{width:min(30vw,34vh);grid-row:span 3}#title .panel>h1,#title .panel>.sub,#title .panel>.howto{grid-column:1}#title .panel>#btn-start,#title .panel>#collection,#title .panel>div,#title .panel>.row{grid-column:2}#gameover .panel>*,#pause .panel>*{grid-column:1 / -1}#medal .panel>h2,#medal .panel>.sub,#medal .panel>.stat,#medal .panel>.btn,#medal .panel>.row{grid-column:2}#loading .panel>*{grid-column:1 / -1}.heart{width:28px;height:28px}#hearts{top:max(8px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));gap:4px}#shards{top:max(8px,env(safe-area-inset-top));left:calc(max(10px,env(safe-area-inset-left)) + 104px);font-size:13px;padding:4px 8px;gap:4px}#shards i{width:12px;height:12px}#score{top:max(6px,env(safe-area-inset-top));font-size:18px;padding:2px 10px}#score .lbl{display:none}body.boss-on #score{top:calc(max(6px,env(safe-area-inset-top)) + 84px)}#counter{top:max(6px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));min-width:88px;padding:4px 10px 6px;font-size:18px}#counter .ghost-ico{font-size:16px;margin-right:3px}#bar{margin-top:4px;height:5px}#boss-hud{top:max(6px,env(safe-area-inset-top))}#boss-name{font-size:18px}#boss-hp{font-size:22px;letter-spacing:4px;margin-top:0}#boss-spots{margin-top:2px;gap:8px}#boss-spots i{width:12px;height:12px;border-width:2px}#boss-hint{font-size:14px;margin-top:2px}#fever{top:30%;font-size:26px}#wave{top:22%;font-size:30px}#warning span{font-size:24px;padding:8px 20px}#btn-pause{right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));font-size:16px;padding:5px 10px}.pop{font-size:24px}.pop.combo{font-size:32px}.pop.big{font-size:44px}}
