:root{--navy: #05071a;--ink: #f4f1ea;--red: #ff3355;--gold: #ffc933;--cyan: #38d4ff;--pink: #ff4fa3;--font: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{color-scheme:dark}html,body{margin:0;height:100%;overflow:hidden;background:#020310;color:var(--ink);font-family:var(--font)}body{background:radial-gradient(circle at 12% 18%,rgba(255,60,60,.18) 0 18px,transparent 19px),radial-gradient(circle at 88% 30%,rgba(255,140,40,.16) 0 22px,transparent 23px),radial-gradient(circle at 8% 62%,rgba(255,140,40,.14) 0 16px,transparent 17px),radial-gradient(circle at 92% 74%,rgba(255,60,60,.16) 0 20px,transparent 21px),radial-gradient(ellipse at 50% 120%,#2a0a3a,#05071a 60%),#020310;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.hidden{display:none!important}#app{position:relative;margin:0 auto;height:100%;overflow:hidden;touch-action:none;box-shadow:0 0 60px #783cff40}#game{position:absolute;left:0;top:0;display:block}#hud{position:absolute;left:0;right:0;top:0;height:calc(54px + env(safe-area-inset-top));padding:calc(6px + env(safe-area-inset-top)) 12px 6px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:2;background:linear-gradient(#020310b3,#02031000)}.hud-balls{display:flex;align-items:baseline;gap:10px}#ballCount{display:inline-block;font-size:30px;font-weight:900;letter-spacing:.02em;color:#fff7da;transform-origin:left center;text-shadow:0 0 8px rgba(255,201,51,.9),0 0 18px rgba(255,120,40,.6);font-variant-numeric:tabular-nums}.unit{font-size:13px;font-weight:800;color:var(--gold);opacity:.9}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.badge{font-size:12px;font-weight:900;padding:2px 9px;border-radius:999px;white-space:nowrap}.badge.rush{color:#fff;background:linear-gradient(90deg,#f35,#f6c,#b48cff);box-shadow:0 0 12px #f6cc;animation:glowpulse 1s ease-in-out infinite alternate}.badge.streak{color:#2a0a00;background:var(--gold);box-shadow:0 0 12px #ffc933cc;font-size:15px}@keyframes glowpulse{0%{filter:brightness(.9)}to{filter:brightness(1.25)}}#controls{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:6px 14px calc(10px + env(safe-area-inset-bottom));background:none;pointer-events:none}#gauge{margin-bottom:8px}.gauge-labels{display:flex;justify-content:space-between;font-size:11px;font-weight:800;color:#b9c2ff;margin-bottom:3px}#gaugeHint{color:#fff;opacity:.85}.gauge-bar{position:relative;height:14px;border-radius:999px;background:#ffffff14;border:1px solid rgba(120,140,255,.5);overflow:visible}.gauge-zone{position:absolute;inset:0 0 0 48%;border-radius:0 999px 999px 0;background:repeating-linear-gradient(45deg,rgba(255,79,163,.18) 0 6px,transparent 6px 12px)}#gaugeFill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#38d4ff,#b48cff 55%,#ff4fa3);box-shadow:0 0 10px #38d4ffb3}#gaugeKnob{position:absolute;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#c9cfe6 50%,#4a4f78);box-shadow:0 0 10px #fffc}#gauge.firing #gaugeKnob{box-shadow:0 0 16px #fff,0 0 28px var(--cyan)}#gauge.auto #gaugeFill{background:linear-gradient(90deg,#ffc933,#f35);animation:glowpulse .3s infinite alternate}#buttons{display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none}#buttons .btn{pointer-events:auto}.btn.fix{display:inline-flex;align-items:center;gap:8px}.btn.fix .dot{width:10px;height:10px;border-radius:50%;background:#4a3a58;box-shadow:inset 0 0 2px #000}.btn.fix.on{border-color:var(--gold);box-shadow:0 0 14px #ffc933b3,inset 0 0 8px #ffc93340}.btn.fix.on .dot{background:#3dff8c;box-shadow:0 0 8px #3dff8c}.btn{font-family:var(--font);font-size:15px;font-weight:900;color:#fff;padding:10px 18px;min-height:44px;border-radius:12px;border:1.5px solid rgba(255,255,255,.5);background:linear-gradient(#2a1a55,#160c33);box-shadow:0 0 12px #b48cff73,inset 0 0 8px #ffffff1a;cursor:pointer;pointer-events:auto}.btn:active{transform:scale(.96)}.btn.share{background:linear-gradient(#111,#000);border-color:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn.danger,button.danger{background:linear-gradient(#a0103a,#600820);border-color:#ff6a8a;color:#fff}.btn.ghost{background:transparent}.bubble{position:absolute;left:50%;bottom:120px;transform:translate(-50%);z-index:3;pointer-events:none;padding:10px 16px;border-radius:14px;font-size:16px;font-weight:900;white-space:nowrap;color:#2a0a00;background:#fff2b0;box-shadow:0 0 18px #ffc933e6;animation:bob .9s ease-in-out infinite alternate}.bubble:after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-8px;border:8px solid transparent;border-bottom:0;border-top-color:#fff2b0}@keyframes bob{0%{transform:translate(-50%)}to{transform:translate(-50%,-6px)}}#scrim{position:absolute;inset:0;background:#00000a8c;z-index:5}.panel{position:absolute;left:10px;right:10px;bottom:10px;z-index:6;max-height:82%;overflow-y:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:18px;background:linear-gradient(#1a0f3d,#0b0722);border:1.5px solid rgba(180,140,255,.6);box-shadow:0 0 30px #b48cff66;touch-action:pan-y}.panel h2{margin:0 0 10px;font-size:20px;color:var(--gold);text-shadow:0 0 10px rgba(255,201,51,.7)}.panel h3{margin:14px 0 4px;font-size:15px;color:var(--cyan)}.stats div{display:flex;justify-content:space-between;padding:6px 2px;border-bottom:1px dashed rgba(255,255,255,.12);font-size:15px}.stats b{color:#fff7da}.howto{font-size:14px;line-height:1.6;margin:0;color:#dfe3ff}.btn-col{display:flex;flex-direction:column;gap:8px;margin-top:14px}.btn-row{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}#settingsBody .row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.12);font-size:14px;font-weight:700}#settingsBody input[type=range]{width:46%;accent-color:var(--pink)}.seg{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.seg button{font-family:var(--font);font-size:13px;font-weight:800;padding:7px 10px;min-height:36px;border-radius:9px;color:#cfd3ff;background:#ffffff0f;border:1px solid rgba(255,255,255,.25);cursor:pointer}.seg button.on{color:#2a0a00;background:var(--gold);border-color:var(--gold);box-shadow:0 0 10px #ffc933b3}.help{font-size:12px;color:#a9b0e8;margin:2px 0 6px;text-align:right}#settingsBody button.danger{margin-top:14px;width:100%;padding:12px;border-radius:12px;font-family:var(--font);font-size:15px;font-weight:900;border:1.5px solid #ff6a8a}#confirmPanel p{font-size:16px;font-weight:800;line-height:1.6}#resultPanel{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#00000a59}.result-card{width:86%;padding:18px 18px 14px;border-radius:18px;text-align:center;background:linear-gradient(#3a0a3e,#12061e);border:2px solid var(--gold);box-shadow:0 0 30px #ffc93399;animation:popin .35s cubic-bezier(.2,1.6,.4,1)}@keyframes popin{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.result-card h2{margin:0 0 8px;color:var(--gold);font-size:20px}.res-row{display:flex;justify-content:space-between;padding:6px 4px;font-size:15px;font-weight:800}.res-row.big b{font-size:26px;color:#fff7da;text-shadow:0 0 10px rgba(255,201,51,.9)}.res-rush{margin:8px 0;font-size:18px;font-weight:900;color:#fff;background:linear-gradient(90deg,#f35,#f6c,#b48cff);border-radius:10px;padding:6px}.result-card .btn.share{width:100%;margin-top:8px}.res-tap{margin-top:8px;font-size:11px;color:#a9b0e8}.hud-target{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:11px;font-weight:800;color:#cfd3ff}.tbar{position:relative;display:inline-block;width:90px;height:6px;border-radius:999px;background:#ffffff1f;overflow:hidden}.tbar b{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;background:linear-gradient(90deg,#ffc933,#ff4fa3)}.btn.shop{position:relative;overflow:hidden}.btn.shop .prog{position:absolute;left:8px;right:8px;bottom:5px;height:4px;border-radius:999px;background:#ffffff26}.btn.shop .prog b{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;background:#3dff8c}.btn.shop.ready{border-color:#3dff8c;box-shadow:0 0 16px #3dff8ccc;animation:glowpulse .6s infinite alternate}.btn.newboard{position:absolute;left:50%;top:calc(62px + env(safe-area-inset-top));transform:translate(-50%);z-index:3;pointer-events:auto;color:#2a0a00;background:linear-gradient(#fff2b0,#ffc933);border-color:#fff;box-shadow:0 0 20px #ffc933e6;animation:bob .8s ease-in-out infinite alternate;white-space:nowrap}.panel.sheet{left:0;right:0;bottom:0;max-height:52%;border-radius:18px 18px 0 0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;z-index:6}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tabs{display:flex;gap:6px}.tab{font-family:var(--font);font-size:14px;font-weight:900;color:#cfd3ff;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#ffffff0f}.tab.on{color:#2a0a00;background:var(--gold);border-color:var(--gold)}.btn.small{min-height:36px;padding:6px 12px;font-size:13px}.shop-list{overflow-y:auto;display:flex;flex-direction:column;gap:6px;touch-action:pan-y}.srow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 8px;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.srow.can{border-color:#3dff8cb3;box-shadow:0 0 10px #3dff8c59}.sicon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:17px;font-weight:900;color:#fff;background:linear-gradient(#5a2a8a,#2a1050)}.sname{font-size:14px;font-weight:900;color:#fff7da}.slv{font-size:11px;color:#a9b0e8;margin-left:4px;font-variant-numeric:tabular-nums}.sdesc{font-size:11px;color:#cfd3ff;line-height:1.35}.sdesc b{color:#3dff8c}.sbuy{font-family:var(--font);min-width:76px;min-height:38px;padding:4px 8px;border-radius:10px;font-size:13px;font-weight:900;color:#8a8fb8;background:#ffffff0f;border:1px solid rgba(255,255,255,.2);font-variant-numeric:tabular-nums}.srow.can .sbuy{color:#052010;background:linear-gradient(#a8ffcf,#3dff8c);border-color:#fff}.srow.max .sbuy{color:#ffc933}.shop-note{font-size:12px;color:#a9b0e8;margin:2px 2px 4px}#bigPanel{position:absolute;inset:0;z-index:7;display:flex;align-items:center;justify-content:center;background:#00000a8c;padding-inline:16px}.big-card{width:100%;max-width:360px;max-height:88%;overflow-y:auto;padding:18px 16px 14px;border-radius:18px;text-align:center;background:linear-gradient(#3a0a3e,#12061e);border:2px solid var(--gold);box-shadow:0 0 30px #ffc93399;animation:popin .35s cubic-bezier(.2,1.6,.4,1)}.big-card h2{margin:0 0 8px;font-size:22px;color:var(--gold);text-shadow:0 0 12px rgba(255,201,51,.8);text-wrap:balance}.big-card p{font-size:14px;line-height:1.6;color:#e8e8ff;margin:6px 0 10px}.big-card .res-row{font-size:14px}.big-card .btn-col{margin-top:12px}.big-card .choice{display:flex;justify-content:space-between;align-items:center;width:100%}.big-card .choice small{color:#a9b0e8;font-weight:700}#toast{position:absolute;left:50%;top:70px;transform:translate(-50%);z-index:8;padding:8px 14px;border-radius:10px;background:#140c32e6;border:1px solid var(--cyan);font-size:14px;font-weight:800;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap}#toast.show{opacity:1}#debugPanel{inset:60px 4px auto auto;overflow-y:auto;width:150px;max-height:70%;padding:6px;display:flex;flex-wrap:wrap;gap:3px;z-index:7;background:#0a061ed9}#debugPanel button{font-size:12px;padding:7px 6px;border-radius:6px;border:1px solid #556;background:#223;color:#fff}.build{margin:10px 0 0;font-size:11px;color:#8a8fb8;text-align:center;font-variant-numeric:tabular-nums}#debugPanel .fps{width:100%;font-size:10px;color:#3dff8c}#debugPanel.mini>button:not(:last-child){display:none}@media(min-width:700px){.bubble{font-size:18px}}#title{position:absolute;inset:0;z-index:9;overflow:hidden;container-type:size;background:#04051a;transition:opacity .38s,transform .38s}#title.leaving{opacity:0;transform:scale(1.06)}#titleCanvas{position:absolute;left:0;top:0;display:block}.t-logo{position:absolute;left:0;right:0;top:calc(9cqh + env(safe-area-inset-top));text-align:center;pointer-events:none;line-height:.95}.t-l1,.t-l2{font-weight:900;letter-spacing:.04em;font-size:min(17cqw,9cqh,76px);animation:neonOn 1.4s steps(1) both}.t-l1{color:#fff6d6;text-shadow:0 0 3px #fff,0 0 10px #ffc933,0 0 24px #ff9a1f,0 0 48px #ff6a00}.t-l2{color:#ffe3f3;text-shadow:0 0 3px #fff,0 0 10px #ff4fa3,0 0 24px #ff2a8a,0 0 48px #c0007a;animation-delay:.25s}.t-sub{margin-top:1.4cqh;font-size:min(4.2cqw,17px);font-weight:800;letter-spacing:.18em;color:#9ef0ff;text-shadow:0 0 8px #38d4ff}@keyframes neonOn{0%{opacity:.1}12%{opacity:1}18%{opacity:.25}26%{opacity:1}34%{opacity:.5}40%,to{opacity:1}}.t-btns{position:absolute;left:0;right:0;bottom:calc(8cqh + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:10px;padding-inline:16px}.btn.t-main{width:min(78cqw,320px);min-height:62px;font-size:22px;letter-spacing:.12em;border-color:var(--gold);color:#fff7da;background:linear-gradient(180deg,#ff8c288c,#78143cbf);box-shadow:0 0 18px #ffaa3c99,inset 0 0 12px #ffdc8c59;animation:tPulse 1.6s ease-in-out infinite}@keyframes tPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.btn.t-new{min-height:40px;font-size:14px;padding:6px 18px}.t-foot{position:absolute;left:0;right:0;bottom:calc(2.4cqh + env(safe-area-inset-bottom));text-align:center;font-size:11px;color:#f4f1ea8c;pointer-events:none}#app.titling #scrim{z-index:10}#app.titling .panel{z-index:11}#toast{z-index:12}#backdrop{position:fixed;left:0;top:0;width:100%;height:100%;display:block;pointer-events:none}#app{z-index:1}#buttons .btn{white-space:nowrap;flex:1 1 0;min-width:0;justify-content:center}#buttons .btn.shop{flex:.9 1 0}@media(max-width:360px){#controls{padding-inline:10px}#buttons{gap:6px}#buttons .btn{font-size:14px;padding:10px 8px}.btn.fix{gap:5px}}@supports not (container-type: size){.t-logo{top:calc(60px + env(safe-area-inset-top))}.t-l1,.t-l2{font-size:60px}.t-sub{margin-top:10px;font-size:15px}.t-btns{bottom:calc(50px + env(safe-area-inset-bottom))}.btn.t-main{width:280px}.t-foot{bottom:calc(14px + env(safe-area-inset-bottom))}}#app.demo .hud-target,#app.demo #btnNewBoard{display:none!important}#demoStart{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:30;width:260px;animation:none}#demoLogo{position:absolute;inset:0;z-index:25;container-type:size;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(ellipse at 50% 40%,#1406288c,#020310eb)}#demoLogo.on{opacity:1}#demoLogo .t-logo{top:34cqh}
