@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Barlow:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101925;--panel:#172536;--line:#364555;--ink:#f1eee4;--muted:#aebac7;--gold:#edc782;--blue:#79d1e7;--red:#ee917c;font-family:Barlow,Arial,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,a,input,select{touch-action:manipulation}button,input,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{color:inherit;background:var(--panel);border:1px solid var(--line);padding:10px 16px;cursor:pointer;min-height:42px}button:hover,a:hover{filter:brightness(1.13)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:3px}button:disabled{opacity:.42;cursor:default}a{color:inherit;text-decoration:none}h1,h2,h3,.wordmark,.primary,.big-stat{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif}h1,h2,h3,p{margin-top:0}button.selected{border-color:var(--gold);box-shadow:inset 0 -3px var(--gold)}.eyebrow,.edition{letter-spacing:.14em;font-size:13px;font-weight:700;color:var(--gold)}.wordmark{font-size:30px;font-weight:800;letter-spacing:.03em}.wordmark span{font-size:18px;font-weight:600;color:var(--gold);margin-left:6px}.mode-shell{max-width:1440px;min-height:100dvh;margin:auto;padding:34px 4vw 24px;display:flex;flex-direction:column}.mode-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:22px}.mode-intro{padding:clamp(30px,6vh,65px) 0 25px}.mode-intro h1{font-size:clamp(42px,5vw,72px);line-height:1;margin:10px 0 14px;letter-spacing:-.01em}.mode-intro>p:last-child{color:var(--muted);font-size:18px}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;flex:1}.mode-card{position:relative;overflow:hidden;background:#1b2b3d;border:1px solid #536070;display:flex;flex-direction:column;padding:0 24px 24px;transition:transform .18s,border-color .18s}.mode-card:hover{transform:translateY(-5px);border-color:var(--gold)}.mode-art{position:relative;height:clamp(180px,29vh,300px);margin:0 -24px 24px;background:linear-gradient(0deg,#182535,#18253500 70%),url('/game/assets/fighter-stage-v13/white-house-usa250-stage.webp') center 25%/cover}.mode-aram .mode-art{background-position:25% 45%}.mode-brawl .mode-art{background-position:70% 25%}.mode-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1b2b3d,transparent 30%)}.mode-art img{position:absolute;height:93%;width:55%;object-fit:contain;bottom:0;left:0;filter:drop-shadow(0 5px 10px #0009)}.mode-art img.second{left:auto;right:0;transform:scaleX(-1);height:83%}.mode-number{font-size:13px;letter-spacing:.12em;color:var(--gold);font-weight:600}.mode-card h2{font-size:40px;margin:7px 0}.mode-card p{color:var(--muted);line-height:1.5;margin-bottom:24px;min-height:48px}.mode-card>strong{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);font-size:14px;letter-spacing:.04em;display:flex;justify-content:space-between}.mode-footer{display:flex;gap:20px;justify-content:space-between;color:var(--muted);font-size:13px;padding-top:26px}.fighter-loading{min-height:100vh;display:grid;place-items:center;font-size:22px}.fight-header{display:flex;align-items:center;justify-content:space-between;padding:16px 3vw;border-bottom:1px solid var(--line);gap:20px}.fight-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fight-nav a,.text-link{font-size:14px;padding:10px 14px;border:1px solid var(--line)}.fight-nav a[aria-current=page]{color:var(--gold);border-color:var(--gold)}.selection{max-width:1440px;margin:auto;padding:26px 3vw}.select-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.select-title h1{font-size:48px;margin:2px 0 0;line-height:1}.select-title p{color:var(--muted);margin:6px 0 0}.select-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:24px}.roster-panel,.fighter-detail{background:#152232;border:1px solid var(--line);min-width:0}.roster-toolbar{display:flex;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.roster-toolbar input,.roster-toolbar select{background:#101a27;border:1px solid #516173;color:var(--ink);min-height:44px;padding:9px 12px;min-width:0}.roster-toolbar input{flex:1}.fight-roster{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:14px;max-height:560px;overflow-y:auto}.fighter-pick{display:flex;flex-direction:column;align-items:center;padding:0;min-width:0;background:linear-gradient(140deg,#324253,#172635);position:relative;overflow:hidden}.fighter-pick img{height:88px;width:100%;object-fit:contain;object-position:50% 12%;padding:4px}.fighter-pick strong{font-size:13px;line-height:1.15;padding:6px 2px 8px;background:#12202dcc;width:100%;min-height:38px;display:flex;justify-content:center;align-items:center}.fighter-detail{display:flex;flex-direction:column}.detail-preview{position:relative;height:220px;background:linear-gradient(0deg,#142232,#14223230),url('/game/assets/fighter-stage-v13/white-house-usa250-stage.webp') center/cover;overflow:hidden;display:flex;align-items:end;justify-content:space-between;padding:18px 24px}.detail-preview canvas{position:absolute;inset:0;width:100%;height:100%}.detail-preview .detail-name{position:relative;z-index:1;text-shadow:0 2px 7px #000}.detail-name h2{font-size:38px;line-height:1;margin:7px 0}.detail-name span{font-size:14px;color:var(--gold)}.detail-content{padding:18px 22px}.detail-content>p{line-height:1.45;color:var(--muted);font-size:14px;margin-bottom:16px}.combo-label{font-size:13px;letter-spacing:.1em;color:var(--gold);margin-bottom:10px}.combo-cards{display:grid;gap:8px}.combo-card{text-align:left;padding:12px;background:#1c2c3e;display:grid;grid-template-columns:1fr auto;gap:5px 12px}.combo-card strong{font-size:17px}.combo-card small{grid-column:1/-1;color:var(--muted);font-size:14px;line-height:1.35}.combo-card kbd{color:var(--gold);font-size:14px;letter-spacing:.05em}.opponent-row{display:flex;gap:12px;align-items:center;padding:16px 0;color:var(--muted);font-size:14px}.opponent-row select{flex:1;min-width:0;background:#0f1c29;border:1px solid var(--line);color:var(--ink);padding:10px;font-size:16px}.primary{background:var(--gold);border-color:var(--gold);color:#17202c;font-size:23px;letter-spacing:.07em;font-weight:700;width:100%;min-height:52px}.select-help{margin-top:22px;color:var(--muted);font-size:14px;line-height:1.7}.select-help kbd,.control-guide kbd{display:inline-block;color:var(--ink);background:#2a394b;border:1px solid #46566b;border-bottom-width:2px;padding:0 6px;min-width:22px;text-align:center;margin-right:3px;border-radius:3px;font:600 13px Barlow,Arial}.arena-wrap{position:relative;max-width:1600px;margin:auto;background:#101824;overflow:hidden;aspect-ratio:16/9;max-height:calc(100dvh - 162px)}#fight-canvas{display:block;width:100%;height:100%;touch-action:none}.battle-hud{position:absolute;inset:14px 22px auto;display:flex;justify-content:space-between;gap:22px;pointer-events:none}.hud-fighter{flex:1;min-width:0;background:linear-gradient(180deg,#101b2de6,#142236a8);padding:10px 12px;border-top:3px solid var(--fighter)}.hud-name{display:flex;justify-content:space-between;gap:10px;font-weight:700;font-size:16px;white-space:nowrap}.hud-name small{color:var(--muted);font-size:12px}.health-track{height:17px;background:#25191f;border:1px solid #0c111d;margin-top:9px}.health-fill{height:100%;width:100%;background:var(--fighter);transition:width .12s linear}.focus-track{height:5px;background:#091423;margin:4px 0}.focus-fill{height:100%;width:0;background:#efc986;transition:width .12s}.hud-bottom{display:flex;justify-content:space-between;gap:12px;color:#d5dfed;font-size:12px}.timer-box{min-width:86px;text-align:center;padding:0 3px}.timer-box strong{font-family:'Barlow Condensed',sans-serif;font-size:48px;line-height:1;color:#ffecb5;text-shadow:0 2px 6px #001}.timer-box span{display:block;letter-spacing:.1em;font-size:12px;color:white}.brawl-hud{gap:10px}.brawl-hud .hud-fighter{padding:8px}.brawl-hud .hud-name{font-size:14px}.percent{font-family:'Barlow Condensed',sans-serif;font-size:38px;line-height:1;margin:7px 0 2px}.stocks{color:var(--gold);letter-spacing:.1em}.match-controls{max-width:1600px;margin:auto;background:#152235;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;padding:12px 20px;align-items:center}.control-guide{font-size:13px;line-height:1.9;color:var(--muted)}.equipped-combo{min-width:220px;max-width:35%;color:var(--gold);font-size:14px}.equipped-combo strong{display:block;color:var(--ink);margin-bottom:4px}.combo-meter{height:3px;background:#344355;margin-top:5px}.combo-meter i{display:block;background:var(--gold);height:100%;width:100%}.match-tools{display:flex;gap:8px}.match-tools button{font-size:13px}.fight-modal{border:1px solid #8091a3;background:#142234;color:var(--ink);padding:28px;max-width:min(560px,92vw);width:100%;box-shadow:0 25px 100px #0009}.fight-modal::backdrop{background:#07101ab3;backdrop-filter:blur(4px)}.fight-modal h2{font-size:44px;margin-bottom:10px}.fight-modal p{line-height:1.6;color:var(--muted)}.dialog-actions{display:grid;gap:10px;margin-top:22px}.result-line{padding:8px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.game-notice{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#111e32;border:1px solid var(--gold);z-index:100;color:var(--ink);font-size:14px;pointer-events:none}.touch-controls{display:none;gap:8px;justify-content:space-between;padding:10px 16px}.touch-controls>div{display:flex;gap:6px;flex-wrap:wrap}.touch-controls button{user-select:none;-webkit-user-select:none;touch-action:none;min-width:46px;padding:8px}.touch-controls button:active{background:var(--gold);color:#142235}[hidden]{display:none!important}.empty-fighters{grid-column:1/-1;padding:28px;color:var(--muted)}.legal-line{max-width:1440px;margin:20px auto;padding:0 3vw;color:#96a7b8;font-size:12px}.legal-line a{text-decoration:underline}.match-status{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);pointer-events:none;text-align:center;font:800 clamp(40px,7vw,88px) 'Barlow Condensed',sans-serif;color:#fff0c9;text-shadow:0 4px 0 #1a2234,0 6px 30px #08101bcc;white-space:nowrap}.match-status small{display:block;font:600 14px Barlow,Arial;letter-spacing:.2em;color:white;margin-top:8px}
@media(max-width:1050px){.fight-roster{grid-template-columns:repeat(5,minmax(0,1fr))}.mode-shell{padding:24px}.mode-grid{gap:12px}.mode-card{padding:0 16px 20px}.mode-art{margin:0 -16px 20px}.mode-card h2{font-size:34px}.select-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.85fr)}.select-title h1{font-size:40px}.hud-name{font-size:14px}.equipped-combo{min-width:170px}.fight-header{padding:12px 20px}.wordmark{font-size:24px}}
@media(max-width:760px){.mode-grid{grid-template-columns:1fr}.mode-card{min-height:240px;padding:24px 45% 24px 20px}.mode-art{position:absolute;right:0;top:0;bottom:0;width:50%;height:100%;margin:0;opacity:.9}.mode-card>*:not(.mode-art){position:relative;z-index:1}.mode-card h2{font-size:36px}.mode-card p{font-size:14px;min-height:0;margin:10px 0}.mode-card>strong{border:0;padding-top:10px}.mode-intro{padding:28px 0 16px}.edition{display:none}.mode-footer{flex-direction:column;font-size:12px;gap:8px}.fight-header{flex-wrap:wrap;gap:10px}.fight-nav{gap:5px}.fight-nav a{padding:7px 10px}.select-layout{grid-template-columns:1fr}.fight-roster{grid-template-columns:repeat(6,minmax(0,1fr));max-height:350px}.fighter-pick img{height:70px}.fighter-pick strong{font-size:12px}.select-title{display:block}.select-title p{font-size:14px}.detail-preview{height:200px}.selection{padding:20px 14px}.arena-wrap{max-height:none;min-height:340px;aspect-ratio:16/10}.battle-hud{inset:7px 7px auto;gap:10px}.hud-fighter{padding:5px}.hud-name{font-size:12px}.hud-name small{display:none}.health-track{height:10px;margin-top:5px}.hud-bottom{font-size:10px}.timer-box{min-width:48px}.timer-box strong{font-size:32px}.timer-box span{font-size:10px}.match-controls{flex-wrap:wrap;padding:10px}.control-guide{font-size:12px}.equipped-combo{max-width:100%;font-size:13px}.brawl-hud .hud-name{font-size:11px;white-space:normal;min-height:25px}.brawl-hud{gap:4px}.percent{font-size:29px}.stocks{font-size:11px}.brawl-hud .hud-fighter{padding:5px}.touch-controls{display:flex}.legal-line{font-size:12px}.match-status{font-size:42px}}
@media(pointer:coarse){.touch-controls{display:flex}.arena-wrap{max-height:calc(100dvh - 220px)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* V16: readable per-character moves in selection and pause. */
.moveset-list{margin:0 0 20px}.moveset-list h3{font:700 22px 'Barlow Condensed',sans-serif;letter-spacing:.04em;color:#edd49b;margin:0 0 12px}.move-entry{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #90b6c426;align-items:start}.move-entry kbd{display:inline-block;width:max-content;max-width:88px;font-size:12px;padding:4px 6px}.move-entry strong{display:block;font-size:16px;color:#e8e9ed}.move-entry small{display:block;font-size:14px;line-height:1.4;color:#a9bacb;margin-top:4px}.ultimate-entry strong{color:#e9ca88}.fight-modal{max-height:88vh;overflow:auto}.equipped-combo #skill-ready{font-size:11px;color:#9edccf;white-space:normal}.control-guide{line-height:1.8}.match-controls{align-items:center}.touch-controls button{touch-action:none}

.moveset-details{border:1px solid #7297a74d;margin-bottom:16px;padding:12px}.moveset-details summary{cursor:pointer;color:#e8cf96;font-weight:700;font-size:14px}.moveset-details[open] summary{margin-bottom:16px}.moveset-details .moveset-list{max-height:360px;overflow:auto;margin:0}.detail-content .combo-card small{font-size:13px;line-height:1.35}

/* Expanded kit: keep selection and start control within easy reach. */
.fighter-detail .combo-cards{max-height:15rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:.2rem}.fighter-detail .combo-card{flex-shrink:0}.equipped-combo #skill-ready{display:block;max-width:27rem;white-space:normal;line-height:1.5}.move-entry kbd{white-space:nowrap}

.mode-crawl{border-color:#d2ad73;background:#21313b}.mode-crawl .mode-art{background-image:linear-gradient(0deg,#21313b,#21313b00 75%),url('/game/assets/roguelite-v18/scenes/swamp.webp');background-position:center 48%}.mode-crawl .mode-art:after{background:linear-gradient(0deg,#21313b,transparent 30%)}.mode-footer a{text-decoration:underline;text-underline-offset:3px}
/* ---- v18: bot difficulty + online lobby ---- */
.difficulty-picker{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}
.difficulty-pill{background:#151c28;color:#c9d3e2;border:1px solid #2b3648;border-radius:999px;padding:6px 12px;font:700 12px/1 "Barlow Condensed",Arial,sans-serif;letter-spacing:.08em;cursor:pointer}
.difficulty-pill:hover{border-color:#5b6b85;color:#fff}
.difficulty-pill.selected{background:#ffd166;color:#111927;border-color:#ffd166}
.difficulty-blurb{display:block;color:#8b98ad;font-size:12px;margin:0 0 12px;min-height:1.2em}
.friend-panel{margin-top:14px;padding:14px;border:1px solid #2b3648;border-radius:12px;background:#0f1522}
.friend-panel p{margin:6px 0}
.friend-panel .small,.net-status{font-size:12px;color:#8b98ad}
.net-status{margin-top:8px;color:#ffd166}
.room-code{font:800 22px/1 "Barlow Condensed",Arial,sans-serif;letter-spacing:.18em;color:#ffd166;background:#1a2233;padding:4px 10px;border-radius:8px}
.room-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.room-actions button{background:#1a2233;color:#e8eef7;border:1px solid #2b3648;border-radius:8px;padding:8px 12px;font:700 12px/1 "Barlow Condensed",Arial,sans-serif;letter-spacing:.08em;cursor:pointer}
.room-actions button:hover{border-color:#5b6b85}
.room-actions input{background:#0b111b;color:#fff;border:1px solid #2b3648;border-radius:8px;padding:8px 10px;font:700 14px/1 "Barlow Condensed",Arial,sans-serif;letter-spacing:.18em;width:9.5em;text-transform:uppercase}
#start-online[disabled]{opacity:.5;cursor:not-allowed}
