/* Self-hosted SIL OFL fonts. See assets/fonts/SOURCES.md. */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/barlow-condensed-800.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('assets/fonts/barlow-condensed-900.woff2') format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/noto-sans-jp-ui-variable.woff2') format('woff2')}
:root{color-scheme:dark;--bg:#080c15;--panel:#111a29;--text:#f2f6fd;--muted:#9baac0;--line:#354055;--red:#ff625e;--blue:#53d1ff;--gold:#ffdb87;--accent:var(--red);--accent-rgb:255,98,94;--sans:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(ellipse at 50% 20%,#20263b 0,#080c15 70%);font:14px/1.6 var(--sans);color:var(--text);overflow-x:hidden}body[data-role=defend]{--accent:var(--blue);--accent-rgb:83,209,255}button,input,select{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:3px}button{border:1px solid var(--line);background:transparent}a{color:#a6e5ff}#app{max-width:1880px;margin:auto;position:relative}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#neonFrame,#pulseFrame{pointer-events:none;position:fixed;z-index:90;inset:0;opacity:0;border:2px solid var(--accent);box-shadow:inset 0 0 28px rgba(var(--accent-rgb),.3),0 0 24px rgba(var(--accent-rgb),.4);transition:border-color .2s,box-shadow .2s}body[data-playing=true] #neonFrame{opacity:.65}#pulseFrame.pulse{animation:inward-wave .42s ease-out both}#pulseFrame{border-width:5px;box-shadow:inset 0 0 42px rgba(var(--accent-rgb),.55),0 0 24px rgba(var(--accent-rgb),.4)}#pulseFrame:after{content:'';position:absolute;inset:12px;border:1px solid rgba(var(--accent-rgb),.3);box-shadow:inset 0 0 35px rgba(var(--accent-rgb),.16)}@keyframes inward-wave{0%{opacity:.68;transform:scale(1)}35%{opacity:.35}100%{opacity:0;transform:scale(.91,.92)}}
.topbar{height:57px;padding:0 3.8%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12;background:#080d17ed;gap:18px;position:relative;z-index:5}.brand{display:flex;gap:10px;align-items:center;border:0;padding:0;text-align:left;line-height:1}.brand>b{font:900 40px/.95 var(--display);background:#f5f1e9;color:#0b101a;padding:2px 7px;transform:skew(-6deg)}.brand>span{font:800 22px/1 var(--display);letter-spacing:2px}.brand small{display:block;font:600 7px/1.5 var(--sans);letter-spacing:2.4px;margin-top:5px;color:#b8c1d2}.edition{font:700 10px var(--display);letter-spacing:3px;color:#8e9ab0;margin-left:auto}.edition span{border:1px solid #64708a;padding:3px 5px;margin-left:7px}.topbar nav{display:flex;gap:6px}.topbar nav button{font-size:11px;padding:8px 13px;min-height:35px;border-color:#49546c;background:#121a2a}.topbar nav button:hover{background:#26344a}
.arena{height:clamp(300px,47svh,530px);position:relative;overflow:hidden;background:#091621}.arena.menu-state{height:clamp(550px,70svh,750px)}canvas{width:100%;height:100%;display:block}.arena-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#080c1580,transparent 25%,transparent 75%,#080c1599)}.fight-hud{position:absolute;z-index:2;left:4%;right:4%;top:15px;display:grid;grid-template-columns:1fr 105px 1fr;align-items:start;gap:22px;pointer-events:none}.health-name{display:flex;justify-content:space-between;align-items:baseline;font:600 11px var(--display);letter-spacing:.4px}.health-name b{font:800 21px var(--display);letter-spacing:2px}.health-name strong{font-weight:800;font-size:14px}.health-track{height:12px;background:#09111fce;border:1px solid #d6e7ff6b;position:relative;margin-top:4px;padding:2px}.health-track i{position:absolute;inset:2px;width:calc(100% - 4px);background:linear-gradient(90deg,#75e0c0,#dcfff0);transform-origin:left;transition:transform .18s ease-out}.health-track .health-ghost{background:#fff;transition:transform .65s .09s ease-in}.enemy .health-track i{background:linear-gradient(90deg,#fff3ca,#ff9b68);transform-origin:right}.enemy .health-track .health-ghost{background:#fff}.health>small{display:none}.round-info{text-align:center;line-height:1.1}.round-info>small{display:block;font:600 8px var(--sans);letter-spacing:2px;color:#d3dce8}.round-info>strong{font:800 34px var(--display);letter-spacing:1px}.round-info>span{font:600 8px var(--display);margin-left:3px}#stageDots{display:flex;gap:4px;justify-content:center;margin-top:6px}#stageDots i{height:2px;width:11px;background:#566477}#stageDots i.on{background:#ffe7aa}
/* Only the opponent grid, count bar and keypad carry live tactical information. */
#fightRead,#roleBadge,#phaseStamp,#zoneLegend,#coach,#turnPill,#selectionState,#zoneReadout,.combo-panel,.control-aside,.controls-foot{display:none!important}
.command-deck{padding:16px 24px 20px;background:linear-gradient(180deg,#101725,#090f1c);position:relative;border:0}.command-deck:before{content:'';height:1px;position:absolute;top:0;left:15%;right:15%;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.8),transparent)}.count-row{max-width:850px;margin:0 auto 16px}.count-track{display:flex;gap:7px;align-items:stretch}.count-lamp{position:relative;flex:1;height:58px;background:#171f2e;border:1px solid #4c5a73;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#b2bed1;transition:background .05s,border .05s}.count-lamp b{font:800 28px/1 var(--display)}.count-lamp small{font:700 9px/1 var(--display);letter-spacing:1px;min-height:9px;margin-top:3px}.count-lamp em{position:absolute;right:7px;top:4px;font:800 19px var(--display);font-style:normal;color:white}.count-lamp:nth-child(4),.count-lamp:nth-child(6){margin-right:7px}.count-lamp:nth-child(n+7){flex:1.25;background:#3c1d26;border:2px solid #ff8d80;color:#ffcebf;box-shadow:inset 0 0 18px #ff624019}.count-lamp:nth-child(8){border-color:#ffdba0;background:#3b3020;color:#ffe2ac}.count-lamp:nth-child(n+7) b{font-size:34px}.count-lamp.done{background:#243047;border-color:#58718a;color:#e0e9f7}.count-lamp.current{background:var(--accent);border-color:#fff0d5;color:#080d17;box-shadow:0 0 24px rgba(var(--accent-rgb),.46),inset 0 0 10px #fff5}.count-lamp[data-grade=perfect]{border-color:#abffe2}.count-lamp[data-grade=miss]{border-color:#ff6262}.count-track.beat-pop .current{animation:count-punch .13s ease-out}.count-track.offbeat{animation:offbeat .15s ease-out}@keyframes count-punch{0%{transform:scale(1.07)}100%{transform:scale(1)}}@keyframes offbeat{0%{filter:brightness(1.4)}100%{filter:brightness(1)}}
.tactical-desk{max-width:850px;margin:auto}.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.actions button{position:relative;min-height:74px;padding:10px 43px 8px 66px;text-align:left;background:linear-gradient(120deg,#263347,#172132 72%);border:1px solid #7d8a9f;border-bottom:3px solid #66758c;border-radius:5px;isolation:isolate;overflow:hidden;transition:background .08s,box-shadow .08s,border-color .08s}.actions button:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(112deg,rgba(255,160,130,.09),transparent 58%)}.actions button:after{content:'';position:absolute;top:0;left:0;bottom:0;width:4px;background:#ff8f79}.actions button.guard-key{background:linear-gradient(120deg,#163449,#122738);border-color:#68a4c0;border-bottom-color:#427a9c}.actions button.guard-key:before{background:linear-gradient(112deg,#5cceff14,transparent 65%)}.actions button.guard-key:after{background:#77d6ff}.action-digit{position:absolute;left:17px;top:13px;font:800 40px/1 var(--display);color:#fff1dc;text-shadow:0 2px 0 #0006}.guard-key .action-digit{color:#c5f0ff}.actions strong{display:block;font:800 18px/1.35 var(--sans);letter-spacing:.015em;color:#fff;white-space:nowrap}.actions small{display:block;color:#b9c7da;font:700 10px/1.1 var(--display);letter-spacing:2px;margin-top:5px}.actions kbd{position:absolute;right:8px;top:7px;min-width:20px;border:1px solid #8495ad;background:#0a1322;padding:1px 4px;text-align:center;font:700 11px/1.3 var(--display);color:#eff5ff;border-radius:2px}.key-symbol{position:absolute;right:14px;bottom:5px;font:800 27px var(--display);color:#f3af95;opacity:.7;transform:skew(-10deg)}.guard-key .key-symbol{color:#8edcfc}.actions button:disabled{opacity:1}.actions button.available{border-color:#e7f1ff;box-shadow:0 0 9px #d5eaff15}.actions button.available:hover{background:#3c4e67}.actions button.selected{background:#f3ecd6!important;border-color:white!important;box-shadow:0 0 22px rgba(var(--accent-rgb),.6)}.actions button.selected strong,.actions button.selected .action-digit{color:#0a1725}.actions button.valid-next{box-shadow:inset 0 0 0 1px #acecda;border-color:#a7e5d0}.actions button.invalid-next{background:#161d2b;border-color:#4b566b}.actions button.invalid-next strong{color:#acb8cc}.actions button.invalid-next .action-digit{color:#9ba7b9}
.callout{pointer-events:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;text-align:center;opacity:0;width:92%}.callout strong{display:block;font:900 clamp(42px,5.5vw,85px)/.95 var(--display);font-style:italic;color:#ffedc9;text-shadow:3px 1px 0 #ff4953,-3px -1px 0 #46d5ff,0 6px 0 #070f1f}.callout span{display:inline-block;margin-top:12px;padding:5px 12px;background:#09111dea;border:1px solid #a7bacb80;color:#f3f8ff;font:700 14px/1.5 var(--sans)}.callout.guard strong,.callout.parry strong{color:#bdf4ff}.callout.hurt strong{color:#ffab9c}.callout.show{animation:impact-card .78s both}@keyframes impact-card{0%{opacity:0;transform:translate(-50%,-50%) scale(1.28) rotate(-4deg)}10%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(.97)}}.screen-flash{position:absolute;inset:0;background:#e9f8ff;opacity:0;pointer-events:none;z-index:7}.ready,.shade{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:#080d18d9}.ready small{font:700 11px var(--display);letter-spacing:4px;color:#b9cbde}.ready strong{font:900 62px/1 var(--display);font-style:italic;margin:18px 0}.ready p,.shade p{font-size:14px;line-height:1.7}.eyebrow{font:700 10px/1.5 var(--display);letter-spacing:3px;color:#a9bcd0}.shade h2{font:900 72px/1 var(--display);margin:14px 0;color:#ffdf9d}.shade .primary{min-width:230px;margin:16px auto 0}.shade .text-btn{display:block;margin:14px auto 0}.result-stats{display:flex;justify-content:center;gap:36px;margin:16px 0}.result-stats b{font:800 38px var(--display);display:block}.result-stats span{font-size:11px;color:#c4d3e4}.result-box #resultCoach{font-size:12px;color:#b7c7d9;max-width:460px;margin:auto}
.menu{position:absolute;left:7%;top:8%;z-index:3;width:42%;max-width:465px}.menu h1{margin:0 0 32px;font:900 clamp(108px,10.4vw,164px)/.84 var(--display);font-style:italic;letter-spacing:-.015em;color:#f5f1df;text-shadow:4px 4px 0 #07101d}.menu h1 span{display:block}.menu h1 .title-lead{font-size:.64em;line-height:.95;letter-spacing:.006em;margin:0 0 .035em}.menu h1 .title-main{font:inherit}.menu-actions{width:min(100%,360px)}.mode-tabs{display:grid;grid-template-columns:1.18fr 1fr;gap:8px;margin-bottom:10px}.mode{background:#081321e8;padding:11px 10px;font-size:12px;font-weight:700;text-align:left;border:1px solid #6c7c8d;min-width:0;min-height:59px}.mode small{display:block;font-weight:400;font-size:9px;color:#adc0ce;margin-top:3px}.mode.active{background:#ede7d5;border-color:#ede7d5;color:#172725}.mode.active small{color:#4c5d59}.mode:hover:not(.active){background:#243a3e}.primary{display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid #ffbba3;background:linear-gradient(120deg,#d94641,#ff805c);color:white;font-weight:800;font-size:16px;padding:14px 24px;box-shadow:0 6px 26px #ff483d1c;min-width:240px}.primary:hover{filter:brightness(1.12)}.primary b{font:500 28px var(--display)}.menu .primary{width:100%;min-width:0;min-height:59px;background:#cf4b39;border-color:#e47860;box-shadow:none;padding:12px 20px}.menu-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.menu-links button{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:11px 15px;background:#081b20e8;border:1px solid #697f84;font-size:12px;font-weight:700;color:#f5f1df;text-decoration:none}.menu-links button span{font:600 20px/1 var(--display);color:#adbdba}.menu-links button:hover{background:#254044;border-color:#cedcd3}.text-btn{border:0;background:none;text-decoration:underline;text-underline-offset:5px;color:#dce9f8;font-size:12px;padding:0}.opponent-intro{position:absolute;right:6%;bottom:6%;text-align:right;z-index:2;text-shadow:0 2px 12px #000}.opponent-intro small{font:600 9px var(--display);letter-spacing:4px;color:#acbed1}.opponent-intro strong{display:block;font:900 58px/.95 var(--display);font-style:italic;letter-spacing:2px}.opponent-intro strong span{display:block;font:700 11px var(--sans);margin-top:9px;letter-spacing:3px}.opponent-intro p{font:600 12px var(--display);letter-spacing:2px;color:#a8bdd4}.menu-deck{padding:24px 6% 23px;background:#0e1726}.stage-heading{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.stage-heading strong{font-size:20px}.stage-heading small{margin-left:auto;color:#9bcfe9;font-size:12px}.stage-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:0}.stage-card{min-height:88px;padding:13px;background:#151f30;position:relative;text-align:left;border:1px solid #50637d;overflow:hidden}.stage-card b{font:800 37px/1 var(--display)}.stage-card small{font:600 10px var(--display);margin-left:4px;color:#8da8c0}.stage-card span{display:block;font:700 10px var(--display);color:#b1c6da;letter-spacing:1px;margin-top:7px}.stage-card i{position:absolute;right:12px;top:14px;font:700 8px var(--display);letter-spacing:1px;font-style:normal;color:#92a6bc}.stage-card.active{border-color:#ffba94;background:#35282f;box-shadow:inset 0 -3px #ff9c78}.stage-card.locked{opacity:.52}.menu-flow{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:22px;font-size:12px;color:#b6c8da}.menu-flow b{color:#fff;font:800 23px var(--display);margin-right:7px}.menu-flow i{color:#697e99}.menu-flow p{margin:0 0 0 auto;font-size:11px}footer{padding:13px 4%;font:600 9px/1.7 var(--display);letter-spacing:1px;color:#70839d;display:flex;justify-content:space-between;gap:15px}footer button{padding:0;border:0;font:inherit;color:#aec1d7}body[data-playing=true] footer{display:none}
dialog{color:#f1f6ff;background:#131d2e;border:1px solid #60718b;box-shadow:0 30px 120px #000b;width:min(600px,calc(100vw - 32px));max-height:88svh;padding:36px;overflow:auto;border-radius:8px}dialog::backdrop{background:#020710c7;backdrop-filter:blur(5px)}dialog h2{font:800 29px var(--sans);margin:12px 0 22px}dialog p{font-size:13px;line-height:1.8;color:#c6d5e7}.close-dialog{position:absolute;right:14px;top:11px;font:400 28px var(--display);border:0;color:#c1d6e7;padding:1px 7px}.close-dialog:hover{color:white}dialog label:not(.check){display:block;position:relative;margin:19px 0 25px;font-size:14px;font-weight:700}dialog output{float:right;font:700 13px var(--display);color:#b8d7ef}input[type=range]{display:block;width:100%;margin:13px 0 0;accent-color:#ff966f;cursor:pointer}dialog .fineprint{font-size:11px;color:#a9bcd1;line-height:1.8}.check{display:flex;gap:9px;align-items:center;font-size:12px;margin:19px 0}.check input{width:17px;height:17px;accent-color:#68cef0}dialog .primary{margin-top:24px;width:100%}.key-binding{display:flex;gap:20px;align-items:center;justify-content:space-between;border-bottom:1px solid #3c4b62;padding:10px 0}.key-binding span{font-size:13px}.key-binding button{font:700 16px var(--display);min-width:90px;padding:5px 9px;background:#23364d}.key-binding .listening{background:#925044;border-color:#ffc8a8}.key-listen{min-height:42px}.moves-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:17px}.move-card{position:relative;min-height:90px;padding:12px 10px 12px 53px;background:#1c2a3e;border:1px solid #465e79}.move-card>b{position:absolute;left:10px;top:9px;font:800 29px var(--display);color:#ffcd9b}.move-card strong{font-size:12px;display:block}.move-card span{font-size:10px;color:#acbed2;display:block;margin-top:5px}.move-filters{display:flex;gap:7px;flex-wrap:wrap}.move-filter{font-size:11px;padding:6px 11px}.move-filter.active{color:#092330;background:#b3e2f3;border-color:#fff}.defense-guide{padding:9px 15px;background:#1b2f42}.defense-guide p{margin:5px 0;display:flex;gap:17px;font-size:13px}.defense-guide b{color:#c7efff;min-width:110px}.help-turns{display:flex;gap:12px}.help-turns>div{flex:1;background:#26354b;padding:12px}.help-turns p{font-size:11px}.help-turns b{font-size:14px;color:#ffd29f}#toast{display:none;position:fixed;z-index:200;bottom:22px;left:50%;transform:translateX(-50%);background:#263c52;border:1px solid #a9d8ef;color:#fff;padding:12px 20px;max-width:90%;font-size:13px;box-shadow:0 5px 40px #0008}
@media(min-width:1450px){.actions button{min-height:84px}.actions strong{font-size:20px}.command-deck{padding-top:20px;padding-bottom:24px}.count-lamp{height:64px}}
@media(max-width:900px){.edition{display:none}.menu{left:6%;width:43%;top:10%}.menu h1{font-size:clamp(94px,11.5vw,110px);margin-bottom:28px}.mode{padding:10px 8px;font-size:10px}.stage-heading>small{margin-left:0}.stage-card{padding:9px}.stage-card span{font-size:8px}.fight-hud{gap:13px;grid-template-columns:1fr 75px 1fr}.health-name b{font-size:18px}.round-info>strong{font-size:30px}.health-name strong{font-size:12px}.fight-hud{left:4%;right:4%}}
@media(max-width:600px){.topbar{height:48px;padding:0 14px;gap:7px}.brand>b{font-size:32px;padding:1px 5px}.brand{gap:7px}.brand>span{font-size:17px;letter-spacing:1px}.brand small{font-size:4.5px;letter-spacing:1.1px}.topbar nav{gap:4px}.topbar nav button{font-size:9px;padding:6px 7px;min-height:29px}.arena{height:clamp(270px,44svh,390px)}.arena.menu-state{height:550px}.fight-hud{top:10px;left:16px;right:16px;gap:10px;grid-template-columns:1fr 61px 1fr}.health-name b{font-size:16px;letter-spacing:1px}.health-name{font-size:8px}.health-name strong{font-size:10px}.health-track{height:9px;margin-top:4px;padding:1px}.health-track i{inset:1px;width:calc(100% - 2px)}.round-info>small{font-size:6px;letter-spacing:1px}.round-info>strong{font-size:29px}.round-info>span{font-size:7px}#stageDots{gap:3px;margin-top:4px}#stageDots i{width:7px}.command-deck{padding:12px 13px 15px}.count-row{margin-bottom:12px}.count-track{gap:4px}.count-lamp{height:51px}.count-lamp b{font-size:23px}.count-lamp small{font-size:7px;letter-spacing:.4px}.count-lamp em{right:3px;top:1px;font-size:13px}.count-lamp:nth-child(4),.count-lamp:nth-child(6){margin-right:3px}.count-lamp:nth-child(n+7){flex:1.35}.count-lamp:nth-child(n+7) b{font-size:29px}.actions{gap:7px}.actions button{min-height:77px;padding:41px 4px 11px;text-align:center;border-bottom-width:3px}.action-digit{top:8px;left:11px;font-size:29px}.actions strong{font-size:16px;line-height:1.3;letter-spacing:0}.actions small{display:none}.actions kbd{font-size:9px;min-width:15px;right:6px;top:5px;padding:0 3px}.key-symbol{font-size:27px;right:auto;left:50%;bottom:auto;top:3px;transform:translateX(-50%) skew(-10deg)}.callout strong{font-size:47px}.callout span{font-size:11px;margin-top:8px;padding:5px 9px;max-width:96%}.ready strong{font-size:42px}.ready p,.shade p{font-size:12px}.ready small{font-size:9px}.shade h2{font-size:46px}.shade{padding:17px}.shade .primary{min-width:225px;font-size:14px;padding:12px 20px}.result-stats{gap:28px}.result-stats b{font-size:30px}.result-stats span{font-size:9px}.result-box #resultCoach{font-size:10px}.menu{left:24px;top:42px;width:calc(100% - 48px);max-width:330px}.menu h1{font-size:116px;line-height:.84;margin:0 0 30px}.menu-actions{max-width:310px}.mode-tabs{gap:7px}.mode{font-size:11px;background:#091d23e8;padding:10px 9px;min-height:58px}.mode small{font-size:8px}.mode.active{background:#ede7d5}.primary{font-size:15px;padding:13px 20px;min-width:230px;width:max-content}.menu .primary{min-height:58px}.menu-links{gap:10px;margin-top:10px}.menu-links button{font-size:12px;min-height:46px}.brand>span{font-size:15px;letter-spacing:.6px}.opponent-intro{right:20px;bottom:20px}.opponent-intro strong{font-size:36px}.opponent-intro small{font-size:7px}.opponent-intro strong span{font-size:9px;margin-top:5px}.opponent-intro p{font-size:10px;margin:9px 0 0}.menu-deck{padding:23px 20px}.stage-heading{gap:8px}.stage-heading>.eyebrow{width:100%;font-size:8px}.stage-heading strong{font-size:18px}.stage-heading>small{font-size:11px;width:100%;margin-top:5px}.stage-cards{gap:5px;margin-top:0}.stage-card{min-height:80px;padding:7px 4px;text-align:center}.stage-card b{font-size:28px}.stage-card small{font-size:7px;margin:0 0 0 1px}.stage-card span{font-size:6px;letter-spacing:.2px;margin-top:7px}.stage-card i{position:static;display:block;font-size:6px;margin-top:3px}.menu-flow{gap:9px;font-size:10px;margin-top:19px}.menu-flow b{font-size:20px;margin-right:3px}.menu-flow p{width:100%;font-size:10px;margin-top:4px}footer{font-size:7px;padding:12px 20px;letter-spacing:.5px;gap:10px}footer>span{max-width:80%}footer button{font-size:8px}dialog{padding:28px 23px;width:calc(100vw - 28px);max-height:90svh}dialog h2{font-size:23px;margin:12px 0 20px}dialog label:not(.check){font-size:13px;margin:16px 0 23px}.moves-list{grid-template-columns:1fr}.move-card{min-height:75px}.help-turns{gap:7px}.help-turns>div{padding:9px}.help-turns p{font-size:10px}.defense-guide{padding:8px 10px}.defense-guide p{font-size:11px;gap:8px}.defense-guide b{min-width:95px}}
@media(max-width:360px){.topbar{padding:0 10px}.brand>span{font-size:14px}.brand small{font-size:4px}.brand>b{font-size:30px}.topbar nav button{padding:6px;font-size:8px}.arena{height:clamp(260px,42svh,320px)}.command-deck{padding:11px 10px 14px}.count-lamp{height:48px}.count-lamp b{font-size:21px}.count-lamp:nth-child(n+7) b{font-size:27px}.count-lamp small{font-size:6px}.count-track{gap:3px}.actions{gap:6px}.actions button{min-height:71px;padding:38px 2px 9px}.action-digit{font-size:27px;left:9px}.actions strong{font-size:14px}.key-symbol{font-size:24px;top:5px}.actions kbd{font-size:8px;right:5px}.fight-hud{left:12px;right:12px;gap:7px}.health-name b{font-size:14px}.health-name strong{font-size:9px}.menu{left:20px;width:calc(100% - 40px);top:38px}.menu h1{font-size:100px;margin-bottom:28px}.mode{font-size:10px;padding:8px}.brand>span{font-size:13px;letter-spacing:.2px}.callout strong{font-size:40px}.callout span{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}body[data-reduced=true] #pulseFrame{display:none}body[data-reduced=true] #neonFrame{box-shadow:inset 0 0 18px rgba(var(--accent-rgb),.2);opacity:.4}body[data-reduced=true] .count-track .current,body[data-reduced=true] .callout.show{animation:none!important}body[data-reduced=true] .callout.show{opacity:1;transform:translate(-50%,-50%)}body[data-reduced=true] .callout strong{text-shadow:0 4px 0 #061020}body[data-reduced=true] .count-track.offbeat{animation:none}

/* Settings and help remain compact, while drill-down dialogs preserve the parent. */
.dialog-link{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;padding:12px 16px;margin:22px 0;background:#26394b;border-color:#748b9e;text-align:left;font-weight:700;font-size:13px}.dialog-link:hover{background:#324b60}.dialog-link b{font:600 24px/1 var(--display)}.effects-toggle{padding:15px 0 6px;font-size:14px;font-weight:700}.effects-toggle input{width:22px;height:22px}.effects-toggle output{margin-left:auto;float:none;color:#d2e8df}.effects-toggle+#effectsNote{margin-top:0}.music-credits{padding-left:22px;color:#dbe6f0;font:600 17px/1.8 var(--display)}.music-credits li{padding-left:4px}.music-credits span{float:right;color:#a5bfce;font-size:14px}
