@import"https://cdn.jsdelivr.net/npm/galmuri@latest/dist/galmuri.css";:root{--bg-top: #74cfee;--bg-bottom: #b8e5f3;--ink: #1e2a2a;--ink-soft: #4e6a64;--card: rgba(255, 255, 255, .92);--card-strong: rgba(255, 255, 255, .98);--accent: #6dc352;--accent-dark: #3f9333;--warn: #ff6a6a;--gold: #ffd84d;--good: #7df2a1;--pink: #ff9bd1;--font-pixel: "Galmuri11", "Press Start 2P", "DungGeunMo", "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden;font-family:var(--font-pixel);color:var(--ink);user-select:none;-webkit-user-select:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}body{background:linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%)}.app{position:relative;width:100%;height:100%;overflow:hidden}.sky-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#74cfee,#b8e5f3 55%,#d6f0ee);z-index:0}.canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.canvas-wrap,.canvas-wrap canvas{touch-action:none}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;color:#fff}.weather-grade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:transparent;transition:background 5s ease}.weather-grade.weather-rain{background:#22385c42}.weather-grade.weather-cloud{background:#3034462e}.weather-grade.weather-fog{background:#ced8dc2e}.lightning-flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6;background:radial-gradient(ellipse at 50% 28%,#ebf2fff2,#c8dcff80 55%,#b4cdff33)}.rankup-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:7;overflow:hidden}.rankup-burst{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,transparent 52%,var(--rank-mid, rgba(255, 245, 176, .1)) 74%,var(--rank-edge, rgba(255, 219, 110, .32)) 100%);box-shadow:inset 0 0 var(--rank-shadow, 110px rgba(255, 219, 110, .38));animation:rankupBurst .9s cubic-bezier(.2,.7,.3,1) both}@keyframes rankupBurst{0%{opacity:0}20%{opacity:1}to{opacity:0}}.score-big{position:absolute;top:calc(14px + env(safe-area-inset-top));left:calc(18px + env(safe-area-inset-left))}.score-num{font-size:64px;font-weight:900;line-height:1;letter-spacing:.02em;color:#fff;text-shadow:0 4px 0 rgba(0,0,0,.35),0 0 14px rgba(0,0,0,.25)}.score-hi{font-size:17px;font-weight:800;letter-spacing:.08em;color:#ffe98a;margin-top:4px;text-shadow:0 2px 0 rgba(0,0,0,.35)}.combo-chip{position:absolute;top:62px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;animation:comboPop .28s cubic-bezier(.16,1.35,.42,1) both}.combo-num{font-size:44px;font-weight:900;color:#ffd84d;text-shadow:0 4px 0 rgba(0,0,0,.35)}.combo-mult{font-size:14px;font-weight:800;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.35)}@keyframes comboPop{0%{transform:translate(-50%) scale(.82)}58%{transform:translate(-50%) scale(1.18)}to{transform:translate(-50%) scale(1)}}.combo-chip.warn{animation:comboWarnBlink .5s ease-in-out infinite}.combo-chip.warn .combo-num{color:#ff9a6d}@keyframes comboWarnBlink{0%,to{transform:translate(-50%) scale(1);filter:drop-shadow(0 0 calc(2px + var(--warn, 0) * 3px) rgba(255,90,50,calc(.12 + var(--warn, 0) * .18)))}50%{transform:translate(-50%) scale(calc(1.02 + var(--warn, 0) * .05));filter:drop-shadow(0 0 calc(4px + var(--warn, 0) * 12px) rgba(255,90,50,calc(.3 + var(--warn, 0) * .5)))}}.combo-chip.frozen .combo-num{display:inline-block;animation:comboFreezeNum 1.05s cubic-bezier(.16,1.2,.4,1) both}@keyframes comboFreezeNum{0%{transform:scale(1);color:#ffd84d;text-shadow:0 4px 0 rgba(0,0,0,.35)}18%{transform:scale(1.18);color:#e8fbff;text-shadow:0 4px 0 rgba(0,0,0,.35),0 0 16px rgba(150,225,255,.95)}70%{color:#b6ecff;text-shadow:0 4px 0 rgba(0,0,0,.35),0 0 8px rgba(150,225,255,.5)}to{transform:scale(1);color:#ffd84d;text-shadow:0 4px 0 rgba(0,0,0,.35)}}.combo-frost{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.frost-flake{position:absolute;width:16px;height:16px;color:#d6f6ff;filter:drop-shadow(0 0 4px rgba(150,225,255,.85));opacity:0}.frost-flake.f1{left:-10px;top:4px;animation:frostDrift 1s ease-out both}.frost-flake.f2{right:-8px;top:0;width:12px;height:12px;animation:frostDrift 1s ease-out .08s both}.frost-flake.f3{left:50%;top:-12px;width:13px;height:13px;animation:frostDriftUp 1s ease-out .04s both}@keyframes frostDrift{0%{opacity:0;transform:translateY(-4px) scale(.5) rotate(0)}25%{opacity:1}to{opacity:0;transform:translateY(16px) scale(1) rotate(140deg)}}@keyframes frostDriftUp{0%{opacity:0;transform:translateY(0) scale(.4) rotate(0)}30%{opacity:1;transform:translateY(-6px) scale(1) rotate(60deg)}to{opacity:0;transform:translateY(-22px) scale(.9) rotate(180deg)}}.weather-chip{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:calc(18px + env(safe-area-inset-left));display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffffd9;color:#1e2a2a;font-size:13px;font-weight:800;box-shadow:0 4px #00000026}.buff-row{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));right:calc(18px + env(safe-area-inset-right));display:flex;gap:6px}.buff-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;color:#1e2a2a;font-size:12px;font-weight:800;box-shadow:0 4px #00000026}.weather-chip svg,.buff-chip svg{width:15px;height:15px;flex:0 0 auto;stroke-width:2.6}.charge-zone{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;width:320px;text-align:center}.arc-mini{opacity:.9}.charge-bar{width:280px;height:8px;background:#00000040;border-radius:999px;overflow:hidden}.charge-fill{height:100%;background:linear-gradient(90deg,#7df2a1,#ffd84d 70%,#ff6a6a);transition:width .05s linear}.charge-hint{font-size:11px;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.4);letter-spacing:.05em}.mute-btn{position:absolute;top:calc(16px + env(safe-area-inset-top));right:50%;transform:translate(50%);display:flex;align-items:center;justify-content:center;pointer-events:auto;background:#ffffffd9;border:0;color:#1e2a2a;border-radius:50%;width:38px;height:38px;padding:0;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 4px #00000026}.mute-btn:hover{background:#fff;transform:translate(50%) translateY(-1px)}.mute-btn:active{transform:translate(50%) translateY(1px)}.pause-btn{position:absolute;top:calc(14px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));display:flex;align-items:center;justify-content:center;pointer-events:auto;background:#ffffffd9;border:0;color:#1e2a2a;border-radius:50%;width:44px;height:44px;padding:0;box-shadow:0 4px #00000026}.pause-btn svg{width:22px;height:22px;stroke-width:2.6}.arc-buttons{position:absolute;right:calc(16px + env(safe-area-inset-right));bottom:calc(70px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;pointer-events:auto}.arc-buttons button{display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border-radius:50%;background:#ffffffd9;color:#1e2a2a;box-shadow:0 4px #00000026}.arc-buttons button svg{width:28px;height:28px;stroke-width:2.8}.arc-buttons button:active{transform:translateY(1px)}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#a8d8d866,#141c1e99);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayFade .32s ease both}.card{background:var(--card);border:3px solid var(--accent);border-radius:18px;padding:28px 34px;display:flex;flex-direction:column;gap:12px;min-width:340px;box-shadow:0 24px 40px #00000040;align-items:stretch;animation:cardRise .42s cubic-bezier(.16,1.2,.4,1) both}@keyframes overlayFade{0%{opacity:0}to{opacity:1}}@keyframes cardRise{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}.card.wide{min-width:560px;max-width:720px}.card.big{min-width:440px;text-align:center;align-items:center}.card.big.new-record{position:relative;isolation:isolate;border-color:var(--gold);animation:recordCardPop .42s cubic-bezier(.16,1.25,.42,1) both}.card.big.new-record:before{content:"";position:absolute;top:-28px;right:-28px;bottom:-28px;left:-28px;z-index:-1;border-radius:28px;background:radial-gradient(circle,#ffd84d94,#ffd84d2e 48%,#ffd84d00 72%);filter:blur(4px);opacity:0;animation:recordGlow .82s ease-out both;pointer-events:none}.card .title{font-size:24px;font-weight:800;color:var(--ink);margin-bottom:6px}.record-title{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#c98d00;text-shadow:0 2px 0 rgba(255,255,255,.72);animation:recordTitlePulse .68s ease-out both}.record-title svg{width:26px;height:26px;flex:0 0 auto;fill:#ffd84d;stroke:#a66d00;stroke-width:2.4}button{font-family:inherit;border:none;border-radius:12px;padding:14px 20px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .06s ease,filter .12s ease}button:hover{transform:translateY(-1px);filter:brightness(1.05)}button:active{transform:translateY(1px)}button.primary{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 6px #2a5a18}button.ghost{background:#0000000d;color:var(--ink);border:2px solid rgba(0,0,0,.12)}.logo{animation:cardRise .5s cubic-bezier(.16,1.2,.4,1) both}@media (prefers-reduced-motion: reduce){.overlay,.card,.logo,.help-backdrop,.help-card{animation:none}}.logo{text-align:center;margin-bottom:28px}.logo-jp{font-size:80px;font-weight:900;color:#f4fff0;letter-spacing:.08em;text-shadow:0 8px 0 #2f7d32}.logo-sub{font-size:14px;font-weight:700;color:#f4fff0d1;margin-top:12px;letter-spacing:.06em}.menu .row{font-size:14px;color:var(--ink-soft);margin-top:8px;text-align:center}.menu .row.hi{font-weight:700;color:var(--accent-dark);font-size:16px}.menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.help-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.help-button svg{width:18px;height:18px;flex:0 0 auto;stroke-width:2.6}.help-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;background:#141c1e47;animation:overlayFade .32s ease both}.help-card{width:min(560px,92vw);max-height:min(620px,86vh);overflow:auto;border:3px solid var(--accent);border-radius:18px;background:var(--card-strong);box-shadow:0 24px 42px #00000047;padding:22px;animation:cardRise .42s cubic-bezier(.16,1.2,.4,1) both}.help-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.help-title{font-size:20px;font-weight:900;color:var(--ink)}.help-close{padding:9px 12px;border-radius:10px;background:#0000000f;color:var(--ink-soft);font-size:11px;box-shadow:none}.help-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:14px}.help-tabs button{padding:11px 6px;border-radius:10px;background:#0000000f;color:var(--ink-soft);font-size:12px;white-space:nowrap;box-shadow:none}.help-tabs button.active{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:#fff;box-shadow:0 4px #2a5a18}.help-list{display:grid;gap:8px}.help-item{border:1px solid rgba(0,0,0,.07);border-radius:10px;background:#00000009;padding:12px}.help-item-name{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:900;color:var(--accent-dark);margin-bottom:6px}.help-item-name svg{width:17px;height:17px;flex:0 0 auto;stroke-width:2.6}.help-item-desc{font-size:11px;line-height:1.65;color:var(--ink-soft);word-break:keep-all;white-space:pre-line}.credits{position:absolute;bottom:16px;font-size:11px;color:var(--ink-soft)}.checkbox{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);cursor:pointer}.overlay.control{background:linear-gradient(180deg,#1c2c2a80,#141c1ead)}.control .help-head{width:100%;margin-bottom:4px}.control .help-head .title{margin-bottom:0}.control .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.t-item{display:flex;align-items:flex-start;gap:12px;background:#00000008;padding:12px;border-radius:10px;border:1px solid rgba(0,0,0,.06)}.t-key{background:var(--accent);color:#fff;border-radius:8px;font-size:13px;font-weight:800;padding:8px 10px;min-width:44px;text-align:center}@media (hover: none) and (pointer: coarse){.t-key svg{width:18px;height:18px;vertical-align:middle;stroke-width:2.6}}.t-item b{display:block;font-size:14px;margin-bottom:4px;color:var(--ink)}.t-item div div{font-size:12px;color:var(--ink-soft)}.judgments{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;margin-top:8px;justify-content:center}.actions{display:flex;align-items:center;gap:14px;margin-top:8px;justify-content:center}.control .actions{display:grid;grid-template-columns:1fr auto 1fr;width:100%}.control .actions .primary{grid-column:2;justify-self:center}.gameover .big-score{font-size:56px;font-weight:900;color:var(--accent-dark);margin:8px 0 6px}.gameover .best-score{font-size:12px;font-weight:700;color:#788480b8;margin-bottom:16px}.gameover .stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.gameover .actions .ghost{background:#0000000d;color:var(--ink);border:2px solid rgba(0,0,0,.12);box-shadow:0 6px #0000002e}.gameover .actions .ghost:hover{transform:translateY(-1px);filter:brightness(1.05)}.gameover .actions .ghost:active{transform:translateY(1px)}.stat{background:#0000000a;border-radius:10px;padding:10px 14px;text-align:center}.stat-label{font-size:11px;color:var(--ink-soft)}.stat-value{font-size:18px;font-weight:800;color:var(--ink);margin-top:4px}.stat-value.record-value{color:var(--accent-dark);text-shadow:0 1px 0 #fff8bf,0 0 10px rgba(255,216,77,.55)}@keyframes recordCardPop{0%{opacity:0;transform:translateY(16px) scale(.88)}70%{opacity:1;transform:translateY(-2px) scale(1.035)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes recordTitlePulse{0%{transform:scale(.92)}38%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes recordGlow{0%{opacity:0;transform:scale(.9)}35%{opacity:1;transform:scale(1.02)}to{opacity:.62;transform:scale(1)}}.pause .card .title{text-align:center}.pause .restart{background:#0000000d;color:var(--ink);border:2px solid rgba(0,0,0,.12);box-shadow:0 6px #0000002e}.croc-danger-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:calc(4px + var(--danger, 0) * 16px) solid rgba(255,40,40,calc(.45 + var(--danger, 0) * .55));border-radius:4px;box-shadow:inset 0 0 calc(50px + var(--danger, 0) * 130px) rgba(200,0,0,calc(.2 + var(--danger, 0) * .6)),inset 0 0 calc(10px + var(--danger, 0) * 40px) rgba(255,80,80,calc(.1 + var(--danger, 0) * .35));background:radial-gradient(ellipse at center,transparent 55%,rgba(180,0,0,calc(var(--danger, 0) * .28)) 100%);animation:crocPulse .55s ease-in-out infinite alternate}.croc-warning-text{position:absolute;bottom:78px;left:50%;transform:translate(-50%) scale(calc(.85 + var(--danger, 0) * .9));transform-origin:bottom center;font-size:18px;font-weight:900;color:#f22;text-shadow:0 2px 0 rgba(0,0,0,.7),0 0 calc(6px + var(--danger, 0) * 18px) rgba(255,60,60,calc(.4 + var(--danger, 0) * .6));animation:crocPulse .55s ease-in-out infinite alternate;letter-spacing:.08em;white-space:nowrap}@keyframes crocPulse{0%{opacity:calc(.28 + var(--danger, 0) * .22)}to{opacity:1}}.overlay{padding:16px}@media (max-width: 600px){.card{min-width:0;width:min(92vw,360px);max-height:calc(100vh - 32px);overflow-y:auto;padding:22px 20px}.card.big{min-width:0;width:min(92vw,400px);padding:22px 20px}.card.wide{min-width:0;width:min(94vw,560px)}.control .grid{grid-template-columns:1fr}.logo{margin-bottom:18px}.logo-jp{font-size:54px}.logo-sub{font-size:12px}.score-num{font-size:48px}.charge-zone{width:min(92vw,320px)}.charge-bar{width:100%}.arc-buttons{left:calc(16px + env(safe-area-inset-left));right:auto}.gameover .big-score{font-size:46px}}.tutorial-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.tutorial-button svg{width:18px;height:18px;flex:0 0 auto;stroke-width:2.6}.tutorial-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;animation:overlayFade .32s ease both}.tutorial-top{display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) 0 calc(18px + env(safe-area-inset-left))}.tutorial-progress{display:flex;gap:8px;align-items:center}.tutorial-progress .dot{width:9px;height:9px;border-radius:50%;background:#ffffff73;box-shadow:0 1px 2px #00000059;transition:background .2s ease,transform .2s ease}.tutorial-progress .dot.done{background:var(--accent)}.tutorial-progress .dot.active{background:var(--gold);transform:scale(1.5)}.tutorial-exit{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:50%;border:0;background:#ffffffd9;color:#1e2a2a;cursor:pointer;box-shadow:0 4px #00000026;transition:background .15s,transform .1s}.tutorial-exit:hover{background:#fff}.tutorial-exit:active{transform:translateY(2px);box-shadow:0 2px #00000026}.tutorial-exit svg{width:20px;height:20px;stroke-width:2.6}.tutorial-banner{align-self:center;max-width:min(620px,92vw);margin:0 auto calc(28px + env(safe-area-inset-bottom));padding:16px 22px;text-align:center;background:var(--card-strong);border:3px solid var(--accent);border-radius:16px;box-shadow:0 18px 34px #00000047;animation:cardRise .36s cubic-bezier(.16,1.2,.4,1) both}.tutorial-step-label{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--accent-dark);margin-bottom:6px}.tutorial-instruction{font-size:17px;font-weight:700;line-height:1.5;color:var(--ink);white-space:pre-line}.tutorial-instruction.done{font-size:22px;color:var(--accent-dark)}.tutorial-combo{display:inline-block;margin-top:10px;padding:4px 14px;border-radius:999px;background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:#fff;font-weight:800;font-size:15px}.tutorial-hint{margin-top:10px;font-size:14px;font-weight:700;color:#c0392b}.tutorial-arc{pointer-events:auto;position:absolute;right:calc(18px + env(safe-area-inset-right));bottom:calc(120px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.tutorial-arc button{width:56px;height:56px;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:#141c1e6b;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tutorial-arc button svg{width:28px;height:28px;stroke-width:2.6}@media (max-width: 600px){.tutorial-instruction{font-size:15px}.tutorial-banner{padding:14px 16px;margin-bottom:calc(20px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion: reduce){.tutorial-overlay,.tutorial-banner{animation:none}}
