:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#fff0d0;background:#111a2b;font-synthesis:none;--ink:#fff1cd;--muted:#c4b393;--gold:#f4c66f;--line:#2b201b;--wood:#735032;--grain:repeating-linear-gradient(0deg,transparent 0 25px,#35231938 25px 28px,#c08a4a20 28px 30px,transparent 30px 60px)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe3a0;outline-offset:3px}button:active:not(:disabled){translate:0 2px}button{color:inherit}a{color:var(--gold)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}svg{display:block;width:100%;height:100%;image-rendering:pixelated}small{font-size:11px}.wood{background-color:var(--wood);background-image:var(--grain);border:3px solid var(--line);box-shadow:inset 0 3px #c58d4c70,inset 0 -4px #3a281f80}.game{max-width:1440px;margin:auto;height:100svh;min-height:360px;display:grid;grid-template-rows:70px minmax(0,1fr);overflow:hidden;position:relative;background:#202a3d;border-inline:4px solid #2b201b}.topbar{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;padding:10px 20px;align-items:center;z-index:8;border-top:0;border-inline:0}.brand{border:0;background:none;display:flex;align-items:center;gap:10px;text-align:left;font-size:19px;font-weight:900;letter-spacing:.05em;padding:0;width:max-content;text-shadow:2px 2px #392b24}.brand small{display:block;font-size:9px;letter-spacing:.17em;color:#d9bf94;margin-top:2px}.brand-mark{font-size:28px;color:var(--gold)}nav{display:flex;justify-content:flex-end;gap:7px}.small-button,.secondary,.primary{border:2px solid #30241e;border-bottom-width:4px;box-shadow:inset 0 2px #d6a26277;background:#956539;padding:9px 16px;min-height:42px;font-weight:700;color:var(--ink)}.small-button{font-size:12px;padding:7px 12px;min-width:38px}.primary{background:#f1c16d;color:#34271f;box-shadow:inset 0 3px #ffe3a3;border-color:#3c2d20;font-size:15px}.primary:hover{background:#ffdb8d}.secondary:hover,.small-button:hover{background:#ab7843}.quiet{border:0;background:transparent;color:var(--muted);font-size:12px;padding:10px}.quiet:hover{color:var(--ink)}.run-score{text-align:center;font-size:13px;white-space:nowrap}.run-score strong{font-size:22px;color:#ffe0a0;margin-inline:4px}.run-score .loss{color:#f5a28b;font-size:14px}.eyebrow{color:#cdbb9b;font-size:11px;letter-spacing:.09em}.pips{display:flex;gap:5px;justify-content:center;margin-top:5px}.pips i{height:5px;width:12px;background:#36291f}.pips i.won{background:var(--gold);box-shadow:0 1px #ffe4ae}#screen{min-height:0;position:relative;overflow:auto}.scene-bg{background:#1c2b42 url('media/city-night.png') center bottom/cover no-repeat;image-rendering:pixelated}.setup{height:100%;display:grid;grid-template-columns:1.05fr 1fr;gap:28px;padding:25px 32px;background:radial-gradient(ellipse at top left,#32465a,#1a2437 70%)}.setup-art{display:grid;grid-template-rows:minmax(150px,1fr) auto;min-height:0;gap:14px}.mascot-stage{position:relative;border:3px solid #101b2d;overflow:hidden;min-height:160px;box-shadow:inset 0 0 80px #13223b55}.mascot-stage:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:#a57b4b}.mascot-hero{position:absolute;inset:20px 20% 40px;filter:drop-shadow(3px 6px #10172455)}.mascot-nameplate{position:absolute;bottom:12px;left:50%;translate:-50% 0;padding:7px 22px;font-size:15px;font-weight:800;white-space:nowrap;z-index:1}.cosmetic-label{position:absolute;left:12px;top:10px;font-size:10px;color:#c6dbeb;background:#18283cc9;padding:5px 8px}.mascot-grid{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:5px}.mascot-pick{height:57px;min-width:0;background:#344154;border:2px solid #4a5b6e;padding:5px;position:relative;transition:background .15s}.mascot-pick:hover{background:#526078}.mascot-pick[aria-pressed=true]{background:#716346;border-color:var(--gold);box-shadow:inset 0 0 0 1px #ffe2a5}.setup-form{display:flex;flex-direction:column;justify-content:center;gap:18px;min-height:0}.section-heading{display:flex;align-items:baseline;gap:10px;justify-content:space-between;margin-bottom:9px}.section-heading h1{font-size:25px;letter-spacing:.01em}.section-heading h2{font-size:15px}.section-heading small{color:#98a9bc;font-size:11px}.intro{font-size:12px;color:#afbed0;line-height:1.8;margin-top:7px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mode-card{position:relative;text-align:left;padding:13px 15px;background:#725034;border:3px solid #33251e;box-shadow:inset 0 2px #b8844e;color:#fce7bd;min-height:94px}.mode-card[aria-pressed=true]{border-color:var(--gold);background:#8a6038}.mode-card .mode-icon{position:absolute;right:12px;top:8px;font-size:26px;color:#f4c66f80}.mode-card strong{font-size:16px;display:block;margin-bottom:6px}.mode-card span:last-child{font-size:11px;line-height:1.6;color:#e3caa4;display:block;max-width:90%}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:7px}.segmented button{border:2px solid #3a4b5d;background:#29374a;color:#bfcedc;padding:11px;font-size:12px}.segmented button[aria-pressed=true]{border-color:#9cb2c4;color:#fff1d0;background:#42546a}.start-row{display:flex;gap:9px}.start-row .primary{flex:1}.local-note{font-size:10px;color:#8295ab;line-height:1.7}.resume-banner{padding:8px 10px;background:#35455b;border-left:3px solid var(--gold);font-size:12px;display:flex;align-items:center;gap:10px;justify-content:space-between}.resume-banner button{padding:7px 15px;font-size:12px}.page{height:100%;padding:22px 30px;display:flex;flex-direction:column;gap:16px;background:radial-gradient(ellipse at top,#324356,#192335 80%);overflow:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.page-heading h1{font-size:24px;color:#ffdea0}.page-heading p{font-size:12px;color:#afbed0;line-height:1.7;margin-top:6px}.page-heading .pill{white-space:nowrap}.pill{font-size:10px;background:#344459;padding:5px 8px;color:#b7cbdf;display:inline-block}.player-summary{display:flex;align-items:center;gap:15px;padding:10px 15px;background:#14203399;border:1px solid #48576b}.avatar{height:65px;width:65px;flex-shrink:0}.player-summary h3{font-size:14px;margin-bottom:5px}.stats-line{font-size:11px;color:#b6c9db;line-height:1.8}.summary-gear{margin-left:auto;display:flex;gap:5px;max-width:43%;flex-wrap:wrap}.tiny-tag{font-size:10px;border:1px solid #5b6370;color:#dfcba7;background:#2f3742;padding:4px 7px}.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;min-height:0;flex:1;align-content:center;max-width:1080px;width:100%;margin:auto}.choices.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:750px}.choice-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;justify-content:center;min-height:245px;max-height:390px;padding:23px 20px;text-align:center;background-color:#e1bb7c;background-image:var(--grain);border:4px solid #39291f;border-bottom-width:8px;color:#3c2c22;box-shadow:inset 0 3px #fff0b4,inset 0 -3px #b7894f}.choice-card:before,.choice-card:after{content:"";position:absolute;top:9px;width:5px;height:5px;background:#6e4d30;box-shadow:1px 1px #ffe2a5}.choice-card:before{left:9px}.choice-card:after{right:9px}.choice-card:hover{background-color:#efd090;translate:0 -3px}.choice-card[aria-pressed=true]{background-color:#ffe0a1;border-color:#f1bd63;box-shadow:inset 0 0 0 3px #684322,inset 0 5px #fff1bf}.choice-art{height:110px;width:130px}.choice-glyph{width:76px;height:76px;background:#59765d;color:#f2e8bc;display:grid;place-items:center;font-size:37px;font-weight:900;border:4px solid #394e44;box-shadow:inset 4px 4px #94aa7699;margin-bottom:12px}.choice-card h2{font-size:21px}.choice-card .category{font-size:11px;color:#80603f}.choice-card p{font-size:12px;color:#6c5139;line-height:1.8;max-width:270px}.choice-card .pick-hint{font-size:10px;color:#976d42;margin-top:8px}.page-actions{display:flex;justify-content:center;gap:10px;align-items:center;min-height:46px}.page-actions .primary{min-width:180px}.reward-notice{color:#ead39a;font-size:12px;text-align:center;padding:9px;background:#57472d66;border:1px solid #7d6b45}.opponent-card{background:#27354a;border:2px solid #506077;padding:15px;display:flex;flex-direction:column;gap:9px;min-width:0;cursor:pointer}.opponent-card:hover{background:#33445c}.opponent-card.selected{border-color:var(--gold);background:#39465a}.npc-art{height:130px;max-width:170px;margin:0 auto;width:100%}.opponent-card h2{font-size:16px;text-align:center}.npc-style{font-size:10px;letter-spacing:.06em;text-align:center;color:var(--gold)}.opponent-card .stats-line{border-block:1px solid #46556b;padding:6px 0;text-align:center}.mini-weapons{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.item-icon{position:relative;height:40px;width:40px;min-width:40px;border:2px solid #2a201b;background:#3b3028;box-shadow:inset 0 2px #a97b4d;padding:4px;cursor:pointer}.item-icon .tier{position:absolute;right:2px;bottom:0;font-size:9px;line-height:1.2;color:#ffe09e;text-shadow:1px 1px #2b211d}.item-icon.active{outline:2px solid #f0c268;outline-offset:1px}.item-icon.lost{opacity:.25}.skill-chip{font-size:10px;background:#182539;color:#b2c7d8;padding:4px 7px;border:1px solid #4a5d70}.npc-skills{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;min-height:19px}.npc-details{padding:7px;background:transparent;border:0;color:#c2d3e6;font-size:11px;text-decoration:underline;text-underline-offset:3px}.arena-page{height:100%;display:grid;grid-template-rows:minmax(0,1fr) 70px;position:relative}.battle-view{position:relative;overflow:hidden;isolation:isolate;background-color:#192a42;background-image:url('media/city-night.png');background-size:cover;background-position:center bottom}.battle-view.arena{background-image:url('media/arcade-arena.png')}.battle-hud{position:absolute;top:14px;left:20px;right:20px;display:grid;grid-template-columns:1fr 60px 1fr;gap:20px;align-items:start;z-index:5;pointer-events:none}.fighter-hud{width:100%;max-width:340px;padding:9px 12px;pointer-events:auto}.fighter-hud.enemy{justify-self:end}.fighter-name{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:800;margin-bottom:8px;align-items:center}.fighter-name small{font-weight:500;color:#e2c89e;font-size:10px}.hp-track{height:17px;padding:3px;background:#231e1d;border:2px solid #30211b;box-shadow:inset 0 2px #0f1519}.hp-fill{height:100%;background:repeating-linear-gradient(90deg,#65b96e 0 11px,#345a36 11px 13px);box-shadow:inset 0 2px #bce6a080;transition:width .18s steps(8)}.enemy .hp-fill{background:repeating-linear-gradient(90deg,#df7155 0 11px,#773e35 11px 13px);box-shadow:inset 0 2px #ffd79c70}.hp-text{font-size:10px;color:#edd9b0;margin-top:4px}.weapon-strip{display:flex;gap:5px;overflow-x:auto;padding:4px 2px 2px;max-width:100%;scrollbar-width:thin}.weapon-strip .item-icon{height:34px;width:34px;min-width:34px}.vs{font-weight:900;color:#f8d482;text-shadow:3px 3px #253145;text-align:center;padding-top:19px;font-size:24px}.clock{font-size:10px;color:#bbcede;text-shadow:1px 1px #172032;margin-top:8px;font-weight:500}.fighter{position:absolute;width:21%;height:43%;bottom:11%;left:27%;translate:-50% 0;z-index:3;will-change:transform}.fighter.enemy{left:73%}.fighter-shadow{position:absolute;bottom:-4px;left:13%;right:13%;height:10px;background:#10192d66;border-radius:50%}.fighter-motion{position:absolute;inset:0;transform-origin:50% 100%}.fighter-art{position:absolute;inset:0;filter:drop-shadow(2px 3px #17213b66);transform-origin:50% 100%}.enemy .fighter-art{transform:scaleX(-1)}.fighter.defeated .fighter-art{rotate:-70deg;opacity:.65;translate:0 16px}.fighter.enemy.defeated .fighter-art{rotate:70deg}.held-weapon{position:absolute;width:58%;height:67%;left:65%;bottom:9%;transform-origin:10% 80%;transform:rotate(-20deg);filter:drop-shadow(2px 2px #1c274755);z-index:1}.enemy .held-weapon{left:auto;right:65%;scale:-1 1;transform-origin:10% 80%}.held-weapon svg{overflow:visible}.combat-float{position:absolute;z-index:7;left:50%;top:20%;translate:-50% 0;font-size:24px;font-weight:900;white-space:nowrap;text-shadow:2px 2px #151b2e,-1px -1px #151b2e;color:#ffdf94;pointer-events:none}.combat-float.damage{color:#fff1cd}.combat-float.critical{color:#ff956f;font-size:30px}.combat-float.heal{color:#99e6ad}.combat-float.skill{font-size:15px;color:#a4e0f2}.projectile{position:absolute;width:70px;height:70px;z-index:6;bottom:26%;pointer-events:none}.arena-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 20px;border-inline:0;border-bottom:0}.battle-log{font-size:12px;color:#e8d1a9;min-width:0;line-height:1.7}.battle-log small{display:block;font-size:10px;color:#bca586;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}.battle-controls{display:flex;gap:7px;align-items:center}.result-banner{position:absolute;z-index:8;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#101a2b80;gap:10px;backdrop-filter:blur(2px)}.result-banner h1{font-size:48px;color:#ffe09e;text-shadow:4px 4px #33251e;letter-spacing:.12em}.result-banner p{font-size:13px;color:#f6e3bc;margin-bottom:9px}.ready-banner{position:absolute;left:50%;bottom:5%;translate:-50% 0;z-index:7;display:flex;gap:8px;white-space:nowrap}.battle-skill-label{position:absolute;bottom:3%;left:15px;font-size:10px;color:#c0d2df;background:#15253aca;padding:4px 8px;max-width:40%;line-height:1.5}.battle-skill-label.enemy{left:auto;right:15px;text-align:right}.end-page{text-align:center;align-items:center;justify-content:center;gap:15px}.end-page .end-art{height:150px;width:170px;filter:drop-shadow(2px 4px #141e32)}.end-page h1{font-size:38px;letter-spacing:.08em;color:#ffe0a0}.end-score{font-size:23px;color:#f4d7a4}.end-score strong{font-size:48px;color:var(--gold);margin-inline:8px}.end-page p{font-size:12px;line-height:1.8;color:#b5c6d9}.end-build{display:flex;gap:6px;flex-wrap:wrap;max-width:700px;justify-content:center}.end-buttons{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:8px}.audience-layer{position:absolute;inset:0;z-index:0;isolation:isolate;pointer-events:none;--crowd-speed:1}.audience-row{position:absolute;left:0;right:0}.audience-row:after{content:"";position:absolute;left:2%;right:2%;bottom:-3px;height:6px;background:#1c2a44;border-top:2px solid #657b9690;box-shadow:0 3px #111c32;z-index:3}.audience-row-far{height:12%;bottom:46%;z-index:0;filter:brightness(.64) saturate(.64);opacity:.8}.audience-row-middle{height:15%;bottom:36%;z-index:1;filter:brightness(.76) saturate(.72);opacity:.9}.audience-row-near{height:18%;bottom:26%;z-index:2;filter:brightness(.88) saturate(.85)}.audience-member{position:absolute;left:var(--audience-x);bottom:0;height:100%;width:10%;translate:-50% 0}.audience-row-far .audience-member{width:8%}.audience-row-near .audience-member{width:12%}.audience-bob,.audience-turn{position:absolute;inset:0}.audience-bob{transform-origin:50% 100%;animation:crowd-bob calc(var(--cheer-period)/var(--crowd-speed)) steps(2,end) var(--cheer-delay) infinite}.audience-turn.is-mirrored{transform:scaleX(-1)}.audience-member.is-cheering .audience-bob{animation-name:crowd-cheer}.audience-spark{position:absolute;top:4%;right:9%;width:3px;height:5px;background:#ffe4a0;box-shadow:5px -4px #9be1ef;opacity:.5}.game[data-speed="2"] .audience-layer{--crowd-speed:2}.game[data-paused="true"] .audience-bob{animation-play-state:paused}@keyframes crowd-bob{0%,45%,100%{transform:translateY(0)}50%,65%{transform:translateY(-1px)}}@keyframes crowd-cheer{0%,65%,100%{transform:translateY(0)}73%,87%{transform:translateY(var(--cheer-rise)) rotate(var(--cheer-lean))}80%,94%{transform:translateY(0)}}
dialog{color:var(--ink);background:#202d42;border:3px solid #a47a47;padding:0;width:min(720px,calc(100vw - 32px));max-height:88svh;box-shadow:0 16px 70px #0009}dialog::backdrop{background:#080f1cd9;backdrop-filter:blur(4px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:2px solid #aa7a43;background:#69492f}.modal-heading h2{font-size:19px}.modal-body{padding:20px;overflow:auto;max-height:calc(88svh - 65px)}.modal-body p,.modal-body li{font-size:13px;line-height:1.9;color:#c6d0dc}.modal-body ul{padding-left:20px;margin:12px 0}.modal-body h3{color:#efd3a0;font-size:14px;margin:16px 0 8px}.modal-body h3:first-child{margin-top:0}.modal-body .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.stat-box{padding:10px;background:#152237;text-align:center;color:#9cb3ca;font-size:11px}.stat-box strong{display:block;color:#ffdfa1;font-size:23px;margin-bottom:3px}.build-list{display:grid;gap:7px}.build-row{display:flex;align-items:center;gap:12px;border:1px solid #45546a;padding:9px 12px;background:#28364b}.build-row .row-art{width:45px;height:45px;flex-shrink:0}.build-row .row-glyph{width:40px;height:40px;background:#52654f;color:#f1dbac;font-size:24px;text-align:center;line-height:40px;flex-shrink:0}.build-row strong{font-size:13px;display:block;margin-bottom:4px}.build-row p{font-size:11px;line-height:1.6}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #415067;font-size:13px}.settings-row select{background:#304159;color:#ffe2b0;padding:9px;border:1px solid #6a7b91;max-width:50%}.settings-row input{accent-color:#e9bd72}.records-tabs{display:flex;gap:6px;margin-bottom:14px}.records-tabs button{flex:1;padding:9px 5px;border:1px solid #52647b;background:#2b3b52;color:#b5c6d9;font-size:12px}.records-tabs button[aria-pressed=true]{background:#8a623b;color:#ffe6ad;border-color:#d3a55f}.record-row{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid #42536a}.record-row .record-art{width:44px;height:44px}.record-place{width:20px;font-size:14px;color:#a6bbd0}.record-row .record-meta{flex:1;font-size:12px}.record-meta small{display:block;color:#93a9c1;margin-top:4px;font-size:10px}.record-row strong{font-size:21px;color:#f0ca85}.empty-state{padding:30px;text-align:center;color:#9eb2c9;font-size:13px}.modal-actions{margin-top:16px;display:flex;gap:9px;justify-content:flex-end}.confirm-text{margin-bottom:16px!important}.toast,#toast{position:absolute;bottom:20px;left:50%;translate:-50% 0;background:#f1d396;color:#3d3026;padding:12px 20px;border:3px solid #493523;font-size:12px;z-index:30;max-width:90%;box-shadow:0 4px 20px #0006;white-space:pre-line;line-height:1.6}.rotate-tip{display:none}.loading{height:100%;display:grid;place-items:center;color:#c9d4df}.resume-hint{font-size:11px;color:#efc67d}.error-panel{padding:40px;color:#f0cbb0;line-height:1.8}
.item-icon>[data-art],.fighter-art>[data-art]{width:100%;height:100%}.fighter-art>[data-art]{position:absolute;inset:0}.score-card-preview{display:block;width:100%;height:auto;image-rendering:pixelated}.card-download{display:inline-block;text-decoration:none}
@media(min-width:1441px){.game{height:min(100svh,860px);margin-top:max(0px,calc((100svh - 860px)/2));border-block:4px solid #2b201b}}
@media(max-width:1100px){.game{grid-template-rows:60px minmax(0,1fr)}.topbar{padding:8px 14px;gap:8px}.brand{font-size:16px}.brand-mark{font-size:23px}.setup{padding:18px;gap:20px}.mascot-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.mascot-pick{height:48px}.setup-form{gap:13px}.mode-card{padding:11px;min-height:87px}.page{padding:18px 22px;gap:12px}.choices{gap:12px}.choice-card{min-height:220px;padding:18px 13px}.choice-art{height:90px;width:110px}.npc-art{height:110px}.fighter-hud{max-width:280px}.end-page .end-art{height:120px}}
@media(max-height:600px) and (min-width:620px){.game{grid-template-rows:47px minmax(0,1fr);min-height:320px}.topbar{padding:4px 12px;gap:8px}.brand{font-size:14px;gap:6px}.brand small{font-size:7px;margin-top:1px}.brand-mark{font-size:20px}nav{gap:5px}.small-button{min-height:31px;padding:4px 9px;font-size:11px;min-width:31px}.run-score{font-size:11px}.run-score strong{font-size:17px}.run-score .loss{font-size:11px}.pips{margin-top:3px;gap:4px}.pips i{width:10px;height:4px}.eyebrow{font-size:9px}.setup{padding:11px 15px;gap:16px;grid-template-columns:.85fr 1.15fr}.setup-art{grid-template-rows:minmax(95px,1fr) auto;gap:8px}.mascot-stage{min-height:95px}.mascot-hero{inset:8px 25% 30px}.mascot-nameplate{font-size:11px;bottom:5px;padding:4px 15px}.cosmetic-label{font-size:8px;top:6px;left:6px;padding:3px 5px}.mascot-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.mascot-pick{height:36px;padding:3px}.setup-form{gap:9px}.section-heading{margin-bottom:5px}.section-heading h1{font-size:18px}.section-heading h2{font-size:12px}.section-heading small{font-size:9px}.intro{display:none}.mode-grid{gap:5px}.mode-card{min-height:64px;padding:8px 10px;border-width:2px}.mode-card strong{font-size:13px;margin-bottom:3px}.mode-card .mode-icon{font-size:20px;right:8px;top:6px}.mode-card span:last-child{font-size:9px;line-height:1.45}.segmented{gap:5px}.segmented button{padding:7px;font-size:10px}.start-row{gap:5px}.primary,.secondary{min-height:35px;font-size:12px;padding:7px 13px}.quiet{font-size:10px;padding:7px}.local-note{font-size:8px}.resume-banner{font-size:10px;padding:4px 7px}.resume-banner button{padding:4px 10px;min-height:27px;font-size:10px}.page{padding:10px 18px;gap:8px}.page-heading h1{font-size:19px}.page-heading p{font-size:10px;margin-top:3px}.page-heading .pill{font-size:9px}.player-summary{padding:5px 10px;gap:10px}.avatar{width:40px;height:40px}.player-summary h3{font-size:11px;margin-bottom:2px}.stats-line{font-size:9px;line-height:1.6}.tiny-tag{font-size:9px;padding:3px 5px}.choices{gap:10px}.choice-card{min-height:160px;gap:5px;padding:13px 10px;border-width:3px;border-bottom-width:5px}.choice-art{width:70px;height:56px}.choice-glyph{width:43px;height:43px;font-size:24px;margin-bottom:5px;border-width:3px}.choice-card h2{font-size:15px}.choice-card p{font-size:10px;line-height:1.6}.choice-card .category{font-size:9px}.choice-card .pick-hint{font-size:8px;margin-top:3px}.page-actions{min-height:35px}.page-actions .primary{min-width:150px}.reward-notice{font-size:10px;padding:5px}.opponent-card{padding:8px;gap:5px}.npc-art{height:65px}.opponent-card h2{font-size:13px}.npc-style{font-size:9px}.opponent-card .stats-line{padding:4px 0}.item-icon{width:30px;height:30px;min-width:30px;padding:3px}.npc-skills{min-height:16px;gap:3px}.skill-chip{font-size:8px;padding:2px 4px}.npc-details{padding:4px;font-size:9px}.arena-page{grid-template-rows:minmax(0,1fr) 46px}.battle-hud{top:7px;left:12px;right:12px;gap:10px;grid-template-columns:1fr 40px 1fr}.fighter-hud{max-width:255px;padding:5px 8px;border-width:2px}.fighter-name{font-size:11px;margin-bottom:4px;gap:7px}.fighter-name small{font-size:8px}.hp-track{height:13px;padding:2px}.hp-text{font-size:8px;margin-top:2px}.weapon-strip{gap:4px;padding:3px 1px 1px}.weapon-strip .item-icon{width:26px;height:26px;min-width:26px;padding:2px}.item-icon .tier{font-size:8px}.vs{font-size:18px;padding-top:12px}.clock{font-size:8px;margin-top:4px}.fighter{width:17%;height:48%;bottom:9%}.held-weapon{width:70%;height:77%}.arena-bottom{padding:5px 12px;gap:8px}.battle-log{font-size:10px}.battle-log small{font-size:8px}.battle-controls{gap:5px}.battle-controls .small-button{min-height:32px}.battle-skill-label{font-size:8px;bottom:2%;padding:2px 5px}.ready-banner{bottom:3%;gap:5px}.combat-float{font-size:20px}.combat-float.critical{font-size:24px}.combat-float.skill{font-size:12px}.end-page{gap:7px}.end-page .end-art{height:75px;width:100px}.end-page h1{font-size:25px}.end-score{font-size:15px}.end-score strong{font-size:32px}.end-page p{font-size:10px}.end-buttons{margin-top:3px;gap:6px}.end-build{max-width:600px;gap:4px}.result-banner h1{font-size:36px}.result-banner p{font-size:11px}.modal-heading{padding:10px 15px}.modal-heading h2{font-size:16px}.modal-body{padding:14px 18px;max-height:calc(88svh - 52px)}}
@media(max-width:619px){.game{min-height:660px;grid-template-rows:60px minmax(0,1fr);height:100svh;overflow:auto}.topbar{grid-template-columns:1fr auto;padding:7px 10px}.topbar>.run-score{display:none}.brand{font-size:15px}.brand-mark{display:none}.brand small{font-size:8px}nav{gap:4px}.small-button{padding:6px 9px;min-width:32px}.setup{padding:12px;gap:15px;grid-template-columns:1fr;overflow:auto}.setup-art{min-height:270px;grid-template-columns:1fr 1.1fr;grid-template-rows:1fr;gap:10px}.mascot-stage{min-height:240px}.mascot-hero{inset:20px 10% 50px}.mascot-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:4px}.mascot-pick{height:43px}.setup-form{min-height:380px;gap:13px}.section-heading h1{font-size:21px}.mode-card{min-height:85px}.page{padding:15px 12px}.page-heading h1{font-size:20px}.page-heading p{font-size:11px}.summary-gear{display:none}.choices{gap:7px}.choice-card{min-height:235px;padding:13px 7px;gap:8px}.choice-art{height:70px;width:75px}.choice-card h2{font-size:15px}.choice-card p{font-size:10px;line-height:1.65}.choice-card .pick-hint{display:none}.choice-glyph{height:50px;width:50px;font-size:27px}.choices.two{max-width:100%}.player-summary{padding:7px 10px}.player-summary h3{font-size:12px}.stats-line{font-size:10px}.avatar{width:50px;height:50px}.opponent-card{padding:9px 5px}.npc-art{height:80px}.opponent-card h2{font-size:12px}.opponent-card .stats-line{font-size:9px}.npc-style{font-size:9px}.npc-skills{gap:3px}.skill-chip{font-size:8px;padding:3px}.item-icon{width:29px;height:29px;min-width:29px;padding:3px}.npc-details{font-size:9px;padding:5px}.arena-page{grid-template-rows:minmax(0,1fr) 83px}.battle-view{background-size:auto 100%}.battle-hud{left:10px;right:10px;gap:6px;grid-template-columns:1fr 26px 1fr;top:10px}.fighter-hud{padding:7px;border-width:2px}.fighter-name{font-size:11px;display:block;margin-bottom:5px}.fighter-name small{display:block;font-size:9px;margin-top:2px}.hp-track{height:14px;padding:2px}.hp-text{font-size:9px}.weapon-strip{gap:4px}.weapon-strip .item-icon{width:27px;height:27px;min-width:27px;padding:2px}.vs{font-size:16px;padding-top:20px}.clock{font-size:8px}.fighter{width:30%;height:40%;left:25%;bottom:16%}.fighter.enemy{left:75%}.arena-bottom{padding:8px 10px;gap:8px;flex-wrap:wrap}.battle-log{font-size:10px;max-width:100%}.battle-log small{max-width:90vw;font-size:9px}.battle-controls{margin-left:auto}.battle-skill-label{bottom:3%;max-width:45%;font-size:8px}.ready-banner{bottom:7%;width:max-content;max-width:95%;gap:4px}.ready-banner .primary{min-height:38px;font-size:12px;padding:8px 14px}.ready-banner .secondary{font-size:10px;padding:8px}.end-page h1{font-size:30px}.end-page .end-art{height:120px}.end-score strong{font-size:40px}.modal-body{padding:15px}.modal-heading{padding:12px 15px}.modal-heading h2{font-size:17px}.modal-body .stats-grid{gap:5px}.stat-box{padding:8px 5px;font-size:9px}.stat-box strong{font-size:20px}.build-row{gap:9px;padding:8px}.build-row .row-art{height:35px;width:35px}.rotate-tip{display:block;font-size:10px;color:#b5a886;text-align:center}}
@media(prefers-reduced-motion:reduce){.audience-bob{animation:none}.choice-card{transition:none}.hp-fill{transition:none}}

/* Demo 02: readable type, larger combat feedback and spaced spectator rows. */
:root{font-size:16px}
.game{grid-template-rows:76px minmax(0,1fr)}
.brand{font-size:22px}.brand small{font-size:11px}.eyebrow{font-size:13px}
.small-button,.primary,.secondary{font-size:16px;min-height:46px}.small-button{padding:8px 14px}
.run-score{font-size:16px}.run-score strong{font-size:27px}.run-score .loss{font-size:16px}
.setup{gap:24px;padding:24px 28px}.setup-form{gap:15px}.section-heading h1{font-size:28px}.section-heading h2{font-size:18px}
.section-heading small{font-size:13px}.intro{font-size:16px;line-height:1.7}
.mode-card{min-height:108px;padding:15px}.mode-card strong{font-size:20px}.mode-card span:last-child{font-size:14px;line-height:1.6}
.segmented button{font-size:15px;padding:13px}.pill,.local-note,.cosmetic-label{font-size:12px}
.mascot-nameplate{font-size:19px}.mascot-pick{height:62px}.resume-banner{font-size:14px}
.quiet{font-size:14px}.page{gap:14px;padding:20px 28px}.page-heading h1{font-size:28px}.page-heading p{font-size:15px;line-height:1.6}
.player-summary h3{font-size:17px}.player-summary h3 small{font-size:13px}.stats-line{font-size:14px}.tiny-tag{font-size:12px}
.reward-notice{font-size:14px}.choice-card{min-height:300px;max-height:none;padding:19px 18px;gap:9px}
.choice-card h2{font-size:23px}.choice-card p{font-size:15px;line-height:1.65}.choice-card .category{font-size:14px}
.choice-card .pick-hint{font-size:12px}.choice-art{height:88px;width:110px}.choice-glyph{height:70px;width:70px;font-size:34px;margin-bottom:4px}
.weapon-choice .choice-art{height:75px}.weapon-facts{display:grid;grid-template-columns:.8fr 1.5fr 1.1fr;gap:5px;width:100%;padding:10px 0;border-block:1px solid #8d6e454d}
.weapon-facts>div{display:flex;flex-direction:column;gap:5px;text-align:center;min-width:0}.weapon-facts span{font-size:12px;opacity:.8}.weapon-facts strong{font-size:19px;white-space:nowrap}.weapon-facts strong small{font-size:13px}
.weapon-traits{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;width:100%}.weapon-trait{background:#7c69442b;padding:4px 6px;font-size:12px;color:inherit;border:1px solid #85663d66}.weapon-trait.drawback{color:#8c3d2f;background:#ad493118}
.opponent-card{padding:18px;gap:11px}.opponent-card h2{font-size:23px}.npc-style{font-size:17px}.npc-art{height:125px}.npc-details{font-size:14px;padding:8px}.skill-chip{font-size:12px;padding:5px 7px}
.item-icon{height:49px;width:49px;min-width:49px;padding:5px}.item-icon .tier{font-size:13px}
.arena-page{grid-template-rows:minmax(0,1fr) 80px}.battle-hud{top:14px;left:19px;right:19px;grid-template-columns:1fr 64px 1fr;gap:20px}
.fighter-hud{max-width:390px;padding:11px 14px}.fighter-name{font-size:19px;margin-bottom:8px}.fighter-name small{font-size:13px}
.hp-track{height:25px;padding:4px}.hp-text{font-size:14px;margin-top:6px}.weapon-strip{padding-top:7px;gap:7px}.weapon-strip .item-icon{height:48px;width:48px;min-width:48px;padding:5px}
.vs{font-size:30px}.clock{font-size:14px;margin-top:9px}.fighter{height:39%;bottom:10%;width:20%}.fighter-reaction{position:absolute;inset:0}
.combat-float{font-size:44px;top:calc(-20px - var(--float-slot,0)*27px);left:calc(50% + var(--float-slot,0)*8px);line-height:1.15;text-shadow:3px 3px #151b2e,-2px -2px #151b2e}
.combat-float.critical{font-size:52px}.combat-float.skill{font-size:26px;color:#b1ebff;top:calc(-32px - var(--float-slot,0)*30px)}
.battle-log{font-size:16px}.battle-log small{font-size:13px;max-width:65vw}.arena-bottom{padding:10px 18px}.battle-skill-label{font-size:12px;max-width:41%;bottom:2%;padding:5px 9px}
.result-banner h1{font-size:54px}.result-banner p{font-size:17px}.end-page h1{font-size:40px}.end-page p{font-size:16px}.end-score{font-size:25px}
.audience-row-far{height:10%;bottom:45%}.audience-row-middle{height:12%;bottom:35%}.audience-row-near{height:14%;bottom:25%}
.audience-member,.audience-row-far .audience-member{width:8%}.audience-row-near .audience-member{width:9%}
dialog{width:min(820px,calc(100vw - 28px))}.modal-heading h2{font-size:23px}.modal-body p,.modal-body li{font-size:16px;line-height:1.8}.modal-body h3{font-size:18px}
.build-row strong{font-size:17px}.build-row p{font-size:14px}.build-row .row-art{height:60px;width:60px}.build-row .row-glyph{font-size:30px;line-height:50px;width:50px;height:50px}
.weapon-build-row{align-items:flex-start}.weapon-build-row>div:last-child{flex:1;min-width:0}.weapon-build-row .weapon-explainer{font-size:13px;line-height:1.7;margin-top:8px}
.weapon-modal-art{height:130px;width:200px;margin:0 auto 14px}.modal-body>.weapon-explainer{font-size:14px;margin-top:14px}
.modal-body .weapon-trait{font-size:13px;background:#42506555}.modal-body .weapon-trait.drawback{color:#ffc2a7}.stat-box{font-size:14px}.stat-box strong{font-size:28px}
.settings-row{font-size:17px}.settings-row select{font-size:16px}.records-tabs button{font-size:16px}.record-row .record-meta{font-size:16px}.record-meta small{font-size:12px}.record-row strong{font-size:25px}
#toast{font-size:16px;padding:14px 20px}.empty-state{font-size:16px}
@media(max-width:1100px) and (min-height:601px){
  .game{grid-template-rows:68px minmax(0,1fr)}.brand{font-size:20px}.topbar{padding:8px 12px}.small-button{font-size:14px;padding:8px 10px;min-height:43px}
  .setup{padding:18px;gap:18px}.section-heading h1{font-size:24px}.mode-card{min-height:100px;padding:12px}.mode-card strong{font-size:18px}.mode-card span:last-child{font-size:13px}
  .intro{font-size:14px}.segmented button{font-size:13px}.local-note{font-size:12px}.page{padding:16px 18px}.choice-card{padding:17px 12px;min-height:290px}
  .choice-card h2{font-size:21px}.choice-card p{font-size:14px}.weapon-facts strong{font-size:17px}.weapon-facts strong small{font-size:12px}.weapon-trait{font-size:11px}
  .fighter-hud{max-width:320px}.fighter-name{font-size:17px}.fighter-name small{font-size:12px}.weapon-strip .item-icon{width:43px;height:43px;min-width:43px}
}
@media(max-height:600px) and (min-width:620px){
  .choice-page>.player-summary,.choice-page .page-heading p{display:none}.choice-page .page-heading{flex-shrink:0}.choice-page .choices{flex:1;align-content:center}.choice-page .reward-notice{padding:3px;font-size:11px}
  .game{grid-template-rows:49px minmax(0,1fr);min-height:320px}.topbar{padding:4px 10px;gap:8px}.brand{font-size:16px}.brand small{font-size:9px}.brand-mark{font-size:23px}
  .small-button{font-size:13px;padding:5px 9px;min-width:34px;min-height:34px}.primary,.secondary{font-size:14px;min-height:38px;padding:7px 13px}.quiet{font-size:12px;padding:7px}
  .run-score{font-size:13px}.run-score strong{font-size:20px}.run-score .loss{font-size:13px}.eyebrow{font-size:11px}
  .setup{padding:9px 12px;gap:14px;grid-template-columns:.8fr 1.2fr}.setup-art{gap:6px}.mascot-stage{min-height:90px}.mascot-hero{inset:6px 25% 28px}.mascot-nameplate{font-size:13px;padding:3px 13px;bottom:4px}
  .cosmetic-label{font-size:10px;padding:3px 5px;top:5px;left:5px}.mascot-pick{height:35px;padding:2px}.setup-form{gap:7px}.intro{display:none}.section-heading{margin-bottom:4px}
  .section-heading h1{font-size:20px}.section-heading h2{font-size:14px}.section-heading small{font-size:11px}.pill{font-size:10px;padding:3px 5px}
  .mode-grid{gap:5px}.mode-card{min-height:65px;padding:7px 9px}.mode-card strong{font-size:16px;margin-bottom:3px}.mode-card span:last-child{font-size:12px;line-height:1.35;max-width:96%}.mode-card .mode-icon{font-size:19px;right:5px}
  .segmented button{font-size:12px;padding:7px 4px}.local-note{font-size:10px;line-height:1.4}.resume-banner{font-size:11px;padding:5px 7px}.resume-banner button{font-size:12px;min-height:29px;padding:3px 9px}
  .page{padding:9px 14px;gap:7px}.page-heading{gap:10px}.page-heading h1{font-size:21px}.page-heading p{font-size:12px;line-height:1.45;margin-top:3px}.player-summary{padding:5px 9px;gap:9px}
  .avatar{width:40px;height:40px}.player-summary h3{font-size:14px}.player-summary h3 small{font-size:11px}.stats-line{font-size:12px;line-height:1.5}.summary-gear{max-width:42%;gap:3px}.tiny-tag{font-size:10px;padding:3px 5px}.summary-gear .quiet{font-size:11px;padding:4px}
  .choices{gap:9px;align-content:start;min-height:auto}.choice-card{min-height:190px;padding:10px 8px;gap:5px;border-width:3px;border-bottom-width:5px}.choice-card .category{font-size:12px}.choice-card h2{font-size:18px}.choice-card p{font-size:13px;line-height:1.45}
  .choice-art,.weapon-choice .choice-art{height:41px;width:68px}.choice-glyph{height:43px;width:43px;font-size:26px;border-width:3px;margin-bottom:1px}.choice-card .pick-hint{display:none}
  .weapon-facts{padding:6px 0;gap:3px}.weapon-facts>div{gap:3px}.weapon-facts span{font-size:11px}.weapon-facts strong{font-size:15px}.weapon-facts strong small{font-size:11px}.weapon-traits{gap:3px}.weapon-trait{font-size:11px;padding:3px 4px}
  .reward-notice{font-size:12px;padding:5px}.page-actions{min-height:38px;position:sticky;bottom:0;padding:3px 0;background:#1d2a3cf2;z-index:3;flex-shrink:0}.page-actions .primary{min-width:160px}
  .opponent-card{padding:9px 7px;gap:6px}.opponent-card h2{font-size:19px}.npc-style{font-size:14px}.npc-art{height:54px}.opponent-card .stats-line{font-size:11px;padding:4px 0}.npc-details{font-size:12px;padding:4px}.skill-chip{font-size:10px;padding:3px 5px}.item-icon{height:34px;width:34px;min-width:34px;padding:3px}.item-icon .tier{font-size:11px}
  .arena-page{grid-template-rows:minmax(0,1fr) 53px}.battle-hud{top:6px;left:10px;right:10px;gap:10px;grid-template-columns:1fr 44px 1fr}.fighter-hud{max-width:275px;padding:6px 8px;border-width:2px}
  .fighter-name{font-size:15px;margin-bottom:5px;gap:5px}.fighter-name small{font-size:11px}.hp-track{height:19px;padding:3px}.hp-text{font-size:12px;margin-top:3px}.weapon-strip{padding-top:4px;gap:5px}.weapon-strip .item-icon{height:34px;width:34px;min-width:34px;padding:3px}
  .vs{font-size:22px;padding-top:10px}.clock{font-size:12px;margin-top:5px}.fighter{width:17%;height:40%;bottom:11%}.combat-float{font-size:36px;top:calc(-8px - var(--float-slot,0)*22px)}.combat-float.critical{font-size:43px}.combat-float.skill{font-size:22px;top:calc(-14px - var(--float-slot,0)*24px)}
  .battle-log{font-size:13px;max-width:66%}.battle-log small{font-size:11px;max-width:63vw}.arena-bottom{padding:5px 10px;gap:8px}.battle-controls{gap:5px}.battle-controls .small-button{font-size:13px;min-height:36px;padding:5px 9px}
  .battle-skill-label{font-size:10px;padding:3px 5px;bottom:2%;max-width:42%;max-height:35px;overflow:hidden}.ready-banner{bottom:4%}.ready-banner .primary,.ready-banner .secondary{font-size:14px}
  .result-banner h1{font-size:38px}.result-banner p{font-size:14px}.result-banner .eyebrow{font-size:12px}.end-page{gap:7px}.end-page h1{font-size:27px}.end-page p{font-size:13px}.end-page .end-art{height:65px;width:90px}.end-score{font-size:18px}.end-score strong{font-size:34px}.end-buttons{gap:6px;margin-top:3px}
  .modal-heading{padding:9px 14px}.modal-heading h2{font-size:19px}.modal-body{padding:12px 16px}.modal-body p,.modal-body li{font-size:14px;line-height:1.65}.modal-body h3{font-size:16px}.build-row strong{font-size:15px}.build-row p{font-size:13px}.weapon-build-row .weapon-explainer{font-size:12px}.modal-body .weapon-trait{font-size:12px}
  .stat-box{font-size:12px;padding:6px}.stat-box strong{font-size:23px}.build-row .row-art{width:43px;height:43px}.weapon-modal-art{height:75px;width:140px;margin-bottom:9px}.settings-row{font-size:15px;padding:9px 0}.settings-row select{font-size:14px}.records-tabs button{font-size:14px}.record-row .record-meta{font-size:14px}.record-meta small{font-size:11px}
}
@media(max-width:619px){
  .game{grid-template-rows:65px minmax(0,1fr)}.brand{font-size:17px}.brand small{font-size:9px}.topbar .small-button{font-size:13px;min-height:38px;padding:6px 9px}.setup{display:flex;flex-direction:column;padding:13px;gap:17px}
  .setup-art{min-height:260px;display:grid;grid-template-columns:1fr 1.2fr}.mascot-nameplate{font-size:15px;padding:6px 12px}.mascot-pick{height:41px}.cosmetic-label{font-size:10px}.setup-form{min-height:465px;gap:15px}.mode-card{min-height:99px;padding:10px}.mode-card strong{font-size:18px}.mode-card span:last-child{font-size:13px}.segmented button{font-size:13px;padding:10px 5px}.local-note{font-size:12px}
  .page{padding:13px 10px;gap:12px}.page-heading h1{font-size:22px}.page-heading p{font-size:14px}.page-heading .pill{display:none}.player-summary h3{font-size:15px}.stats-line{font-size:12px}.choices{gap:7px;align-content:start;grid-template-columns:1fr}.choices.two{grid-template-columns:1fr}.choice-card{min-height:230px;gap:8px;padding:15px}.choice-card h2{font-size:22px}.choice-card p{font-size:15px;max-width:100%}.choice-art,.weapon-choice .choice-art{height:65px;width:100px}.choice-glyph{height:50px;width:50px;font-size:28px}.choice-card .category{font-size:14px}.weapon-facts strong{font-size:20px}.weapon-facts span,.weapon-trait{font-size:13px}.choice-card .pick-hint{display:none}.page-actions{position:sticky;bottom:0;padding:8px;background:#1b293cf5;z-index:4;flex-shrink:0}
  .opponent-card{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;padding:13px;text-align:left}.npc-art{grid-column:1;grid-row:1/5;width:90px;height:110px}.npc-style,.opponent-card h2,.opponent-card .stats-line,.npc-details{grid-column:2;text-align:left}.npc-style{font-size:16px}.opponent-card h2{font-size:22px}.opponent-card .stats-line{font-size:12px}.mini-weapons,.npc-skills{grid-column:1/3}.npc-details{font-size:13px}
  .fighter-hud{padding:7px}.fighter-name{font-size:14px}.fighter-name small{font-size:10px}.hp-track{height:19px;padding:3px}.hp-text{font-size:12px}.weapon-strip .item-icon{height:34px;width:34px;min-width:34px;padding:3px}.weapon-strip{gap:5px}.item-icon .tier{font-size:11px}.battle-hud{grid-template-columns:1fr 27px 1fr;gap:6px}.vs{font-size:19px}.clock{font-size:11px}.fighter{width:29%;height:34%;bottom:16%}.arena-page{grid-template-rows:minmax(0,1fr) 98px}.battle-log{font-size:13px;max-width:100%}.battle-log small{font-size:11px}.battle-skill-label{font-size:10px}.combat-float{font-size:36px}.combat-float.critical{font-size:43px}.combat-float.skill{font-size:21px}.ready-banner .primary,.ready-banner .secondary{font-size:12px}.modal-heading h2{font-size:20px}.modal-body{padding:15px}.modal-body p,.modal-body li{font-size:15px}.weapon-build-row{display:block}.build-row strong{font-size:16px}.build-row p{font-size:14px}.build-row .row-art{width:50px;height:50px}.record-row .record-meta{font-size:14px}
}
