:root{--bg:#0c1519;--panel:#132229;--rail:#294049;--live:#7fe8d2;--text:#e4eff1;--dim:#7a929b;--font-ui:-apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", system-ui, sans-serif;--font-num:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);overscroll-behavior:none;touch-action:manipulation}.app{max-width:460px;height:100%;padding:12px 12px calc(12px + env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin:0 auto;display:flex}@media (width>=720px) and (height>=780px){.app{max-width:540px}}.hud{align-items:baseline;gap:18px;padding:2px 4px;display:flex}.hud-block{flex-direction:column;gap:2px;display:flex}.hud-right{align-items:flex-end;margin-left:auto}.hud-label{letter-spacing:.16em;color:var(--dim);font-size:10px}.hud-value{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.hud-value.dim{color:var(--dim);font-size:15px}.hud-value.pop{animation:.26s cubic-bezier(.34,1.56,.64,1) score-pop}@keyframes score-pop{0%{color:#ffd166;transform:scale(1.22)}to{transform:scale(1)}}.stage{flex:1;justify-content:center;min-height:0;display:flex;position:relative}.board{touch-action:none;cursor:crosshair;width:auto;height:100%;max-height:100%;display:block}.board.locked{cursor:default}.death-line{opacity:.7}.death-line.danger{animation:.9s ease-in-out infinite danger-line}.danger-veil{pointer-events:none;animation:.9s ease-in-out infinite danger-veil}@keyframes danger-line{0%,to{opacity:.55}50%{opacity:1}}@keyframes danger-veil{0%,to{opacity:.35}50%{opacity:.9}}.barrel{transform-origin:0 0}.gauge{transition:width .2s linear}.cap{font-family:var(--font-ui);letter-spacing:.18em;pointer-events:none;-webkit-user-select:none;user-select:none}.aim{opacity:.32;transition:opacity .14s ease-out}.aim-live{opacity:.9}.aim-line{animation:.64s linear infinite dash-flow}@keyframes dash-flow{to{stroke-dashoffset:-12px}}.aim-mark{animation:1.1s ease-in-out infinite mark-pulse}@keyframes mark-pulse{0%,to{opacity:.45}50%{opacity:.95}}.slot{transition:transform .26s cubic-bezier(.22,1,.36,1)}.orb{transform-box:fill-box;transform-origin:50%}.orb.fresh{animation:.19s cubic-bezier(.22,1,.36,1) impact}.orb.clearing{animation:.185s ease-out forwards dissolve}.orb.blasting{animation:.21s cubic-bezier(.3,0,.7,1) forwards blast-out}.item-ring{animation:1.5s ease-in-out infinite item-ring}@keyframes item-ring{0%,to{opacity:.3}50%{opacity:.85}}@keyframes blast-out{0%{filter:brightness();transform:scale(1)}30%{filter:brightness(3);transform:scale(1.5)}to{filter:brightness(3.4);opacity:0;transform:scale(.1)}}.shock{pointer-events:none;fill:none;stroke:#fff;stroke-width:3px;transform-box:fill-box;transform-origin:50%}.shock circle{transform-box:fill-box;transform-origin:50%;animation:.32s cubic-bezier(.15,.8,.4,1) forwards shock-ring}.shock rect{transform-box:fill-box;transform-origin:50%;animation:.32s cubic-bezier(.15,.8,.4,1) forwards shock-bar}.shock-color circle{stroke:#ffe9a8}@keyframes shock-ring{0%{opacity:.95;transform:scale(.4)}to{opacity:0;transform:scale(3.6)}}@keyframes shock-bar{0%{opacity:.95;transform:scaleX(.05)scaleY(.7)}to{opacity:0;transform:scaleX(1)scaleY(1.5)}}.orb.dropping{animation:.3s cubic-bezier(.5,0,1,.5) forwards fall}@keyframes impact{0%{transform:scale(1.16,.86)}55%{transform:scale(.97,1.03)}to{transform:scale(1)}}@keyframes dissolve{0%{filter:brightness();transform:scale(1)}32%{filter:brightness(1.9);transform:scale(1.2)}to{filter:brightness(2.4);opacity:0;transform:scale(.14)}}@keyframes fall{0%{opacity:1;transform:translate(0)rotate(0)}20%{opacity:1}to{transform:translate(var(--drift,0px), 280px) rotate(var(--spin,0deg));opacity:0}}.flight{opacity:0;pointer-events:none;will-change:transform}.flight.on{opacity:1}.hud-combo{align-items:center;animation:.22s cubic-bezier(.34,1.56,.64,1) combo-in}.hud-combo .hud-value{color:#ffd166}@keyframes combo-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.combo-pop{pointer-events:none;flex-direction:column;align-items:center;gap:1px;animation:.9s cubic-bezier(.22,1,.36,1) forwards combo-pop;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.combo-count{font-family:var(--font-num);color:#ffd166;text-shadow:0 0 18px #ffd1668c,0 3px #00000080;font-size:52px;font-weight:700;line-height:.9}.combo-word{letter-spacing:.34em;text-indent:.34em;color:#ffe6b0;text-shadow:0 2px 8px #000000b3;font-size:13px;font-weight:700}.combo-mult{font-family:var(--font-num);color:var(--live);text-shadow:0 2px 8px #000000b3;font-size:13px;font-weight:700}@keyframes combo-pop{0%{opacity:0;transform:translate(-50%)scale(.5)}22%{opacity:1;transform:translate(-50%)scale(1.12)}40%{transform:translate(-50%)scale(1)}75%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-22px)scale(.95)}}.banner{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);font-family:var(--font-num);letter-spacing:.05em;color:var(--live);text-shadow:0 0 12px #7fe8d273;pointer-events:none;white-space:nowrap;background:#091013c7;border-radius:999px;padding:7px 16px;font-size:16px;font-weight:700;animation:.24s ease-out rise;position:absolute;top:42%;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #7fe8d22e,0 6px 20px #00000073}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c1519e0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.over-label{letter-spacing:.3em;color:var(--dim);margin:0;font-size:11px}.over-score{font-family:var(--font-num);margin:0;font-size:46px;font-weight:700;line-height:1}.over-best{font-family:var(--font-num);color:var(--dim);margin:0 0 14px;font-size:13px}.btn{font-family:var(--font-ui);color:var(--text);cursor:pointer;background:#ffffff12;border:1px solid #7fe8d238;border-radius:999px;min-width:190px;padding:12px 30px;font-size:14px;font-weight:600;transition:background .13s ease-out,transform 90ms ease-out}.btn:hover{background:#ffffff21}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--live);outline-offset:3px}.btn-main{color:#04211f;background:var(--live);border-color:#0000}.btn-main:hover{background:#9ff3e2}.over-menu{flex-direction:column;gap:8px;display:flex}.title{text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a1216e6;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;animation:.22s ease-out fade-in;display:flex;position:absolute;inset:0}.title-mark{width:92px;height:82px;margin-bottom:6px;position:relative}.title-orb{border-radius:50%;width:46px;height:46px;animation:2.6s ease-in-out infinite title-bob;position:absolute;box-shadow:inset -4px -6px 10px #00000059}.title-orb.o1{background:radial-gradient(circle at 34% 28%,#ff9bb0,#ff4d74 52%,#a81840);top:0;left:0}.title-orb.o2{background:radial-gradient(circle at 34% 28%,#ffc978,#ff9520 52%,#a85400);animation-delay:.25s;top:0;right:0}.title-orb.o3{background:radial-gradient(circle at 34% 28%,#9bc7ff,#3e93ff 52%,#15499c);animation-delay:.5s;bottom:0;left:23px}@keyframes title-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.title-name{letter-spacing:.02em;margin:0;font-size:34px;font-weight:800}.title-sub{color:var(--dim);margin:0;font-size:12px}.title-best{font-family:var(--font-num);color:#ffd166;margin:4px 0 0;font-size:13px}.title-menu{flex-direction:column;gap:9px;margin-top:20px;display:flex}.title-foot{color:var(--dim);margin:18px 0 0;font-size:11px}.toast{background:#091013f0;border-radius:999px;padding:9px 18px;font-size:12px;animation:.16s ease-out fade-in;position:absolute;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #7fe8d233}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080e12f2;border-radius:10px;justify-content:center;align-items:stretch;animation:.18s ease-out fade-in;display:flex;position:absolute;inset:0}.sheet-body{width:100%;padding:22px 20px calc(22px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;overflow-y:auto}.sheet-title{margin:0 0 16px;font-size:20px;font-weight:700}.help-block{margin-bottom:18px}.help-block h3{letter-spacing:.2em;color:var(--live);margin:0 0 6px;font-size:11px}.help-block p{color:#c8d8dd;margin:0 0 7px;font-size:13px;line-height:1.65}.help-items{flex-direction:column;gap:10px;margin:10px 0 0;padding:0;list-style:none;display:flex}.help-items li{color:#c8d8dd;align-items:center;gap:11px;font-size:13px;line-height:1.5;display:flex}.help-glyph{flex:none;width:30px;height:30px}.sheet-close{width:100%;margin-top:4px}.hint{text-align:center;color:var(--dim);margin:0;font-size:11px;line-height:1.5}@media (prefers-reduced-motion:reduce){.slot,.orb,.banner,.aim-line,.aim-mark,.item-ring,.shock circle,.shock rect,.hud-combo,.combo-pop,.hud-value.pop,.death-line.danger,.danger-veil,.title-orb{transition:none!important;animation:none!important}.shock{display:none}}
