:root{color-scheme:dark;--bg:#0b0e12;--panel:#12171d;--line:#252d35;--muted:#9aabb8;--white:#eff5f8;--lime:#c1ff58;--pink:#ff5cbb;--blue:#6ce3ff;--mono:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;--body:'Noto Sans JP',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 0%,#182321 0%,transparent 45%),var(--bg);color:var(--white);font-family:var(--body);font-size:14px;min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--blue);outline-offset:4px}button{transition:background .18s,transform .18s,border-color .18s}button:hover:enabled{transform:translateY(-1px)}.shell{max-width:1256px;margin:auto;padding:30px 40px 22px}.header{display:flex;align-items:center;justify-content:space-between;padding-bottom:26px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center;color:var(--white);text-decoration:none;font-family:var(--mono);font-weight:800;font-size:29px;letter-spacing:1px}.brand-light{color:var(--lime)}.brand small{display:block;font:500 12px var(--body);letter-spacing:1px;color:var(--muted);margin-top:3px}.mark{background:var(--lime);color:var(--bg);height:43px;width:43px;border-radius:10px;font-size:43px;line-height:40px;font-weight:900;padding-left:9px;position:relative}.mark span{font:900 24px system-ui;position:absolute;right:6px;top:2px}.header-actions{display:flex;align-items:center;gap:9px}.edition{font:600 14px var(--mono);letter-spacing:2px;color:var(--muted);margin-right:22px}.icon-button{border:1px solid var(--line);border-radius:8px;background:#13191e;min-width:37px;height:37px;font-size:14px;padding:0 10px}.icon-button:hover:enabled{background:#253029}.icon-button[aria-pressed=true]{border-color:#708b44;color:var(--lime)}.hud{display:flex;align-items:center;justify-content:space-between;padding:27px 0 24px;gap:22px}.eyebrow{font:600 13px var(--mono);letter-spacing:2px;color:var(--muted);display:block}.score-group{position:relative;min-width:215px}.score-group strong{font:700 56px/1 var(--mono);letter-spacing:2px;font-variant-numeric:tabular-nums}.multiplier{color:var(--lime);font:700 23px var(--mono);padding-left:10px}.run-info{display:flex;gap:42px}.run-info strong{display:block;font:700 30px var(--mono);font-variant-numeric:tabular-nums;margin-top:4px}.muted{color:#647581;font-size:23px}.time-box{min-width:94px}.run-info .lives{color:var(--pink);font:500 22px var(--body);letter-spacing:2px;padding-top:2px}.best-group{text-align:right}.best-group strong{font:600 26px var(--mono);color:#9cb0bf}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:23px}.arena-section{min-width:0;border:1px solid #344038;border-radius:13px;overflow:hidden;background:#10171b;box-shadow:0 18px 80px #0005}.arena-top,.arena-bottom{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;font:600 12px var(--mono);letter-spacing:1px;color:#9fadb7;gap:8px}.arena-top{border-bottom:1px solid #29352f}.arena-top>span:first-child{display:flex;gap:8px;align-items:center;color:var(--lime)}.live-pip{width:5px;height:5px;background:var(--lime);border-radius:50%}.arena{position:relative;aspect-ratio:4/3;overflow:hidden;background:#0b1419;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.arena-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px #02060966;z-index:1}.arena-bottom{height:54px;border-top:1px solid #29352f}.wave-track{display:flex;gap:5px}.wave-track i{display:block;width:18px;height:4px;background:#2c393b;border-radius:2px}.wave-track i.active{background:var(--lime);box-shadow:0 0 8px #c1ff5840}.pulse-button{background:none;border:none;padding:7px 0 7px 6px;color:#cbd5dd;display:flex;gap:8px;align-items:center;font:500 12px var(--body)}.pulse-button span{font:600 12px var(--mono);padding:3px 5px;border:1px solid #41534d;border-radius:3px}.pulse-button b{color:var(--lime);font:700 13px var(--mono)}.sidebar{display:flex;flex-direction:column;gap:15px}.sidebar section{padding:19px;border:1px solid var(--line);border-radius:10px;background:#11171c}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-head h2{font:700 15px var(--mono);letter-spacing:1.5px;margin:0}.panel-head>span{font:600 14px var(--mono);color:var(--muted)}.fever-bar{background:#283333;height:7px;border-radius:4px;margin-top:17px;overflow:hidden}.fever-bar div{height:100%;background:var(--lime);width:0;transition:width .1s linear;box-shadow:0 0 15px #c1ff58}.fever-panel p{font-size:12px;color:#a4b2bc;line-height:1.8;margin:10px 0 20px}.combo-line{display:flex;align-items:baseline;gap:14px;border-top:1px solid var(--line);padding-top:13px}.combo-line span{font:600 13px var(--mono);letter-spacing:2px;color:#a4b2bc}.combo-line strong{font:700 48px/1 var(--mono);color:var(--lime)}.build-panel{flex:1;min-height:150px}.build-list{margin-top:17px;display:flex;flex-direction:column;gap:15px}.build-item{display:flex;gap:10px;align-items:center}.build-icon{width:32px;height:32px;flex-shrink:0;border:1px solid #485239;background:#20291b;color:var(--lime);border-radius:7px;display:grid;place-items:center;font-size:21px}.build-item strong{display:block;font-size:13px;font-weight:600}.build-item small{font-size:11px;color:#a4b2bc;display:block;margin-top:3px;line-height:1.5}.build-item b{margin-left:auto;font:600 12px var(--mono);color:var(--muted);white-space:nowrap}.tips-panel .eyebrow{margin-bottom:15px}.control-row{display:flex;align-items:center;gap:8px;margin:11px 0;font-size:11px}.key{min-width:28px;height:25px;border:1px solid #3a484c;display:grid;place-items:center;font:600 12px var(--mono);border-radius:4px;padding:0 4px}.tips-panel p{color:#b1bec7;font-size:12px;line-height:1.9;margin:16px 0 12px}.tip-foot{font-size:11px;color:#778d9b}.footer{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:12px;color:#7d919c}.footer>span:first-child{font:600 13px var(--mono);letter-spacing:2px;color:#b3c2c9}.overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:25px;background:#07101955}.overlay.hidden{display:none}.screen{width:100%;max-width:550px;text-align:center;animation:appear .25s ease}.start-screen .kicker{font:700 13px var(--mono);letter-spacing:4px;color:var(--lime)}.game-title{font:900 italic clamp(66px,8vw,110px)/.85 var(--mono);letter-spacing:-1px;margin:25px 0 20px;text-shadow:0 5px 30px #0009;transform:rotate(-3deg)}.game-title .outline{color:var(--lime)}.start-screen p{font-size:15px;font-weight:500;color:#d3dee4;line-height:1.8;margin:24px 0}.primary{background:var(--lime);color:#101610;border:0;font-weight:800;border-radius:7px;padding:14px 31px;box-shadow:0 0 30px #c1ff5830;font-size:15px;min-width:185px}.primary:hover:enabled{background:#d3ff8f;box-shadow:0 0 40px #c1ff5850}.start-foot{display:block;margin-top:17px;font-size:12px;color:#a7b9bf}.secondary{background:#243039;border:1px solid #4a5b62;border-radius:7px;padding:12px 20px;font-size:14px;color:#eff5f8}.screen .eyebrow{color:var(--lime);margin-bottom:8px}.screen h2{font:800 italic 44px var(--mono);letter-spacing:1px;margin:10px 0}.screen .jp-title{font:800 25px var(--body);margin:8px 0 12px}.screen>.description{color:#c3d0d7;font-size:14px;line-height:1.8;margin:12px 0 22px}.modal-screen{background:#0b131aee;border:1px solid #3d5354;border-radius:12px;padding:30px;box-shadow:0 10px 80px #0008}.upgrade-screen{max-width:680px}.upgrade-screen h2{font-size:34px}.upgrade-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.upgrade-card{text-align:left;background:#18232b;border:1px solid #3a4f57;border-radius:9px;padding:17px 13px;min-height:152px}.upgrade-card:hover{background:#25351f;border-color:var(--lime)}.upgrade-card .upgrade-icon{font-size:30px;color:var(--lime);display:block;line-height:1.3}.upgrade-card strong{font-size:15px;display:block;margin:12px 0 8px}.upgrade-card p{font-size:12px;line-height:1.8;color:#bccbd3;margin:0}.upgrade-card small{font:600 12px var(--mono);color:var(--lime);display:block;margin-top:12px}.result-score{font:800 70px/1 var(--mono);color:var(--lime);margin:16px 0}.result-stats{display:flex;justify-content:center;gap:30px;margin:20px 0 25px}.result-stats small{color:#a4b6c1;font-size:12px;display:block}.result-stats b{font:700 28px var(--mono)}.result-badge{font:700 13px var(--mono);letter-spacing:2px;color:var(--pink);margin:10px}.help-steps{text-align:left;line-height:1.9;font-size:14px;padding-left:22px;color:#cbd8de}.help-steps li{margin:9px 0}.toast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;font:900 italic 51px var(--mono);color:var(--lime);letter-spacing:2px;white-space:nowrap;pointer-events:none;opacity:0;text-shadow:0 2px 20px #000}.toast.show{animation:toast 1.8s ease both}.combo-pop{position:absolute;right:22px;bottom:80px;z-index:2;color:var(--lime);font:800 italic 39px var(--mono);pointer-events:none;opacity:0;transform:rotate(-5deg)}.combo-pop.show{animation:pop .65s ease both}.fever .arena-section{border-color:var(--pink);box-shadow:0 0 35px #ff5cbb15}.fever .fever-bar div{background:var(--pink)}.fever .fever-panel h2,.fever .fever-panel p{color:var(--pink)}@keyframes appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}12%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-55%) scale(1.08)}}@keyframes pop{0%{opacity:0;transform:scale(.7) rotate(-5deg)}15%,60%{opacity:1;transform:scale(1) rotate(-5deg)}100%{opacity:0;transform:translateY(-20px) rotate(-5deg)}}
@media(min-width:1500px){.shell{padding-top:44px}}@media(max-width:1000px){.shell{padding:22px}.game-layout{grid-template-columns:minmax(0,1fr) 215px;gap:15px}.run-info{gap:25px}.sidebar section{padding:15px}.score-group{min-width:190px}.score-group strong{font-size:48px}.edition{display:none}.build-item small{display:none}.control-row{font-size:10px}.arena-bottom #stageName{display:none}.game-title{font-size:84px}.start-screen p{font-size:14px}.upgrade-card{padding:12px 9px}.upgrade-card strong{font-size:13px}.upgrade-card p{font-size:11px}.modal-screen{padding:20px}.upgrade-options{gap:7px;margin-top:14px}}
@media(max-width:760px){.shell{padding:17px 14px 24px}.header{padding-bottom:17px}.brand{font-size:25px;gap:10px}.brand small{font-size:10px}.mark{width:35px;height:35px;font-size:36px;line-height:33px;padding-left:7px}.mark span{font-size:20px;right:5px}.header-actions{gap:6px}.icon-button{min-width:33px;height:33px;padding:0 7px;font-size:12px}.hud{padding:20px 0 18px;gap:10px}.score-group{min-width:126px}.score-group strong{font-size:39px;letter-spacing:1px}.eyebrow{font-size:12px;letter-spacing:1.5px}.multiplier{font-size:18px;padding-left:4px}.run-info{gap:16px}.run-info strong{font-size:25px}.run-info .muted{font-size:18px}.run-info .lives{font-size:15px;letter-spacing:0}.time-box{min-width:62px}.best-group{display:none}.game-layout{display:flex;flex-direction:column;gap:14px}.arena-top{height:34px;padding:0 12px;font-size:11px}.arena-bottom{height:47px;padding:0 12px}.wave-track i{width:15px}.arena-bottom #stageName{display:block;font-size:10px}.pulse-button{font-size:11px;gap:5px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sidebar section{padding:14px;min-height:0}.tips-panel{grid-column:1/-1;display:none}.fever-panel p{margin:8px 0 12px;font-size:11px}.combo-line{padding-top:10px}.combo-line strong{font-size:31px}.build-list{gap:10px;margin-top:12px}.build-icon{width:25px;height:25px;font-size:18px}.build-item{gap:7px}.build-item strong{font-size:11px}.build-item b{font-size:11px}.panel-head h2{font-size:13px}.footer{margin-top:17px;font-size:10px}.footer>span:first-child{font-size:11px}.footer>span:last-child{display:none}.overlay{padding:12px}.game-title{font-size:clamp(54px,15vw,96px);margin:16px 0 13px}.start-screen .kicker{font-size:11px;letter-spacing:3px}.start-screen p{font-size:12px;line-height:1.6;margin:13px 0}.primary{font-size:13px;padding:11px 24px;min-width:150px}.start-foot{font-size:10px;margin-top:10px}.modal-screen{padding:16px}.screen h2{font-size:31px;margin:6px 0}.screen .jp-title{font-size:19px}.screen>.description{font-size:12px;margin:8px 0 12px}.upgrade-options{gap:6px;margin-top:12px}.upgrade-card{padding:10px 8px;min-height:128px}.upgrade-card .upgrade-icon{font-size:23px}.upgrade-card strong{font-size:12px;margin:7px 0 6px}.upgrade-card p{font-size:10px;line-height:1.6}.upgrade-card small{font-size:11px;margin-top:7px}.result-score{font-size:47px;margin:10px 0}.result-stats{gap:20px;margin:12px 0}.result-stats small{font-size:10px}.result-stats b{font-size:21px}.result-badge{font-size:11px;margin:6px}.help-steps{font-size:11px;line-height:1.7;padding-left:16px;margin:10px 0}.help-steps li{margin:5px 0}.secondary{font-size:12px;padding:8px 16px}.toast{font-size:33px}.combo-pop{font-size:28px;right:15px;bottom:50px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}@media(max-width:360px){.shell{padding:12px 9px}.run-info{gap:10px}.score-group{min-width:114px}.score-group strong{font-size:35px}.run-info strong{font-size:22px}.brand small{display:none}.header-actions{gap:4px}.arena-bottom #stageName{display:none}}
@media (min-width:761px) and (min-height:600px) and (max-height:820px){.shell{max-width:calc((100dvh - 298px)*1.3333 + 351px);padding-top:18px;padding-bottom:14px}.header{padding-bottom:18px}.hud{padding:18px 0}.score-group{min-width:155px}.score-group strong{font-size:45px}.run-info{gap:23px}.run-info strong{font-size:27px}.run-info .lives{font-size:19px}.game-title{font-size:85px}.start-screen p{margin:18px 0}.start-foot{margin-top:12px}.sidebar section{padding:15px}.sidebar{gap:12px}.tips-panel p{margin:10px 0}.footer{margin-top:15px}}

@media(max-width:480px){.arena{min-height:300px}.upgrade-card p{font-size:12px}.upgrade-card{min-height:155px}.upgrade-card strong{font-size:13px}.help-steps{font-size:12px}}

/* CHAOS EDITION */
.chaos-kicker{color:var(--pink)!important;letter-spacing:2px!important}.fever .arena-top{background:#341329}.fever .arena-bottom{background:#221423}.fever .combo-line strong{color:var(--pink)}.big-score strong{font-size:38px}.fever .pulse-button b{color:var(--pink)}.fever-panel p{min-height:24px}.upgrade-card .upgrade-icon{filter:drop-shadow(0 0 9px #c1ff5833)}@media(max-width:760px){.big-score strong{font-size:27px}.score-group{min-width:125px}.start-screen .chaos-kicker{font-size:11px;letter-spacing:1px!important}.fever-panel p{min-height:32px}}
.modal-screen{max-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#485a55 transparent}

/* 最小の高さを保つスマホでも、盤面の右端まで表示する。 */
.arena{width:100%}
/* 高得点・15倍・ライフ5でも、ウェーブや残り時間を折り返さない。 */
.run-info strong{white-space:nowrap}
@media(max-width:760px){.score-group strong{font-size:35px}.big-score strong{font-size:27px}}
@media(max-width:360px){.hud{gap:6px}.run-info{gap:8px}.score-group{min-width:110px}.score-group strong{font-size:28px}.big-score strong{font-size:25px}.time-box{min-width:52px}}

/* ポータルは押した人だけ新しいタブで開く。ゲームの進行や記録には影響しない。 */
.asobi-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:4px 10px;color:inherit;font:700 14px/1.4 system-ui,sans-serif;text-decoration:underline;text-underline-offset:4px;border-radius:6px;touch-action:manipulation}
.asobi-link:hover{background:#8882}
.asobi-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.asobi-row{display:flex;justify-content:center;margin-top:6px}
footer,.footer{flex-wrap:wrap;align-items:center;gap:8px 12px;opacity:1}

/* ポータルへは別タブで移動し、ゲームに戻れるようにする。 */
.portal-links{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0 16px;margin:12px 0 0;padding:2px 0;border-top:1px solid #ffffff26;width:100%;letter-spacing:normal}.portal-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:4px 2px;color:#c1ff58;font-size:14px;font-weight:700;line-height:1.6;text-align:center;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.portal-links a:hover{ text-decoration-thickness:2px }.portal-links a:focus-visible{outline:3px solid #c1ff58;outline-offset:3px;border-radius:3px}
