/* Scoped lobby layout keeps the existing arcade palette and game screens intact. */
.lobby-home main>.heading,.lobby-home main>.mode-switch,.lobby-home main>.cabinet,.lobby-home main>.instructions,.lobby-home main>.touch-controls{display:none}.lobby-heading{display:flex;justify-content:space-between;align-items:center;padding:30px 0 26px}.lobby-heading h1{font-size:46px;line-height:1.14;margin:12px 0;letter-spacing:-1px}.lobby-heading h1>span{display:block;color:var(--gold)}.lobby-star{font-size:36px;margin-left:14px}.lobby-subtitle{color:#a5b8bd;font-size:13px;margin:0}.lobby-stamp{font:10px monospace;color:#7f98a3;text-align:right;line-height:2}.lobby-stamp span{font-size:13px;color:#d2d9d2}.lobby-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px}.lobby-sidebar{background:#1e2c34;border:1px solid #40505a;border-radius:8px;padding:14px 10px;align-self:start;border-bottom:4px solid #0c161e}.lobby-side-label{font:bold 12px monospace;color:var(--gold);padding:6px 10px 18px;margin:0}.lobby-nav{display:flex;align-items:center;gap:9px;width:100%;background:none;color:#8da3ae;border:0;border-bottom:1px solid #ffffff12;font:14px monospace;text-align:left;padding:19px 12px;border-radius:0;cursor:pointer}.lobby-nav span{flex:1}.lobby-nav.selected{background:var(--gold);color:#342916;border-radius:4px;border-bottom:3px solid #a87937;font-weight:bold}.lobby-nav:hover{color:var(--ink);background:#2b3d47}.lobby-nav.selected:hover{background:#ffd074;color:#342916}.lobby-side-foot{font:9px monospace;color:#afcba2;line-height:2;padding:25px 12px 6px}.lobby-side-foot span{color:#718b98}.lobby-side-foot i{display:inline-block;width:5px;height:5px;background:#a7c58b;border-radius:50%;margin-right:8px}.lobby-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lobby-card{min-width:0;display:block;padding:0;text-align:left;background:#1d2c36;border:1px solid #49606b;border-bottom:4px solid #0b151e;border-radius:7px;overflow:hidden;color:var(--ink);cursor:pointer;transition:transform .16s,border-color .16s,background .16s}.lobby-card:hover{transform:translateY(-3px);border-color:var(--accent);background:#263940}.lobby-card canvas{width:100%;height:auto;display:block;image-rendering:pixelated;aspect-ratio:360/128;object-fit:cover}.lobby-card-copy{display:flex;gap:12px;align-items:flex-start;padding:16px 14px 14px}.lobby-index{font:bold 22px monospace;color:var(--accent)}.lobby-card h2{font-size:21px;letter-spacing:0;line-height:1.2;text-shadow:none;margin:0 0 5px;color:var(--ink)}.lobby-card p{font-size:10px;line-height:1.6;color:#9ab0b9;margin:8px 0 0}.lobby-mode-name{font:8px monospace;letter-spacing:1px;color:var(--accent)}.lobby-card-copy>div{flex:1}.lobby-card-copy>b{font-size:23px;color:var(--accent);align-self:center}.lobby-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center}.lobby-card:last-child:nth-child(odd) canvas{max-height:132px;object-fit:cover}.lobby-crew{margin-top:22px;border-top:1px solid #ffffff15;border-bottom:1px solid #ffffff15;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 4px}.lobby-crew p{font-size:12px;color:#a2b3ba;margin:8px 0}.lobby-crew canvas{width:432px;max-width:54%;height:auto;image-rendering:pixelated}.lobby-crew button,.lobby-dialog-back,#lobby-sound-toggle{background:var(--gold);color:#302919;border:0;border-bottom:3px solid #a87732;border-radius:4px;padding:12px 16px;font:12px monospace;cursor:pointer}#lobby-dialog{background:#1d2e38;border:1px solid #59727c;border-radius:8px;color:var(--ink);padding:30px;width:min(480px,calc(100% - 32px));box-sizing:border-box}#lobby-dialog::backdrop{background:#09131ed9}#lobby-dialog h2{font-size:28px;letter-spacing:0;text-shadow:none;margin:15px 0}.lobby-dialog-close{position:absolute;right:12px;top:10px;background:none;border:0;color:#c8d7d8;font-size:26px;cursor:pointer}.lobby-dialog-body{font-size:13px;line-height:1.9;color:#a8bdc6;margin-bottom:24px}.lobby-record{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #ffffff18}.lobby-record strong{color:var(--gold);font-family:monospace}@media(max-width:850px){.lobby-layout{grid-template-columns:155px minmax(0,1fr);gap:14px}.lobby-nav{padding:17px 7px;font-size:12px}.lobby-card-copy{gap:8px;padding:12px 10px}.lobby-card h2{font-size:17px}.lobby-index{font-size:18px}}@media(max-width:600px){.lobby-heading{padding:22px 0}.lobby-heading h1{font-size:32px}.lobby-stamp{display:none}.lobby-layout{display:block}.lobby-sidebar{display:flex;overflow-x:auto;padding:7px;gap:5px;margin-bottom:14px}.lobby-side-label,.lobby-side-foot{display:none}.lobby-nav{width:auto;flex:0 0 auto;padding:11px 8px;border:0;font-size:10px;gap:4px}.lobby-nav>span{white-space:nowrap}.lobby-games{gap:10px}.lobby-card h2{font-size:15px}.lobby-card-copy{gap:6px;padding:12px 8px}.lobby-card-copy>b{display:none}.lobby-index{font-size:16px}.lobby-card p{font-size:9px}.lobby-mode-name{font-size:7px;letter-spacing:0}.lobby-crew{flex-wrap:wrap;gap:5px}.lobby-crew>div{width:100%;text-align:center}.lobby-crew canvas{width:100%;max-width:100%;}.lobby-crew button{margin:auto}.lobby-card:last-child:nth-child(odd){grid-template-columns:1fr 1fr}}
.lobby-card:last-child:nth-child(odd) canvas{height:132px;object-fit:fill}.lobby-picker-back{display:inline-block;color:#d3c28a;font:11px monospace;margin-bottom:14px;text-decoration:none}.lobby-picker-back:hover{color:var(--gold)}@media(max-width:600px){.lobby-card:last-child:nth-child(odd) canvas{height:auto;max-height:none}}
.adventure-start-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px;flex-wrap:wrap}.adventure-start-actions #character-start{margin:0}.adventure-start-actions #character-continue{margin:0;background:#273e46;color:#f2cb7d;border:1px solid #7f764f;border-bottom:4px solid #13252f;border-radius:5px;padding:18px 26px;font:bold 13px monospace;letter-spacing:1px;cursor:pointer}.adventure-start-actions #character-continue:hover:not(:disabled){background:#354c4e;border-color:#f5b947}.adventure-start-actions #character-continue:disabled{opacity:.4;cursor:not-allowed}@media(max-width:700px){.adventure-start-actions{gap:8px;margin-top:14px;flex-wrap:nowrap}.adventure-start-actions #character-start,.adventure-start-actions #character-continue{min-width:0;padding:12px 10px;font-size:10px;letter-spacing:0}}
.adventure-start-actions{flex-wrap:nowrap}.adventure-start-actions #character-start,.adventure-start-actions #character-continue{flex:0 1 300px;width:300px;height:66px;min-height:66px;margin:0;padding:0 16px;border-radius:5px;font:bold 13px 'Space Mono',monospace;letter-spacing:1.2px;white-space:nowrap}.adventure-start-actions #character-continue{background:#a8ddec;color:#1d4354;border:1px solid #d6f3fa;border-bottom:5px solid #619eb2;box-shadow:0 2px 0 #11242d}.adventure-start-actions #character-continue:hover:not(:disabled){background:#c0eaf3;border-color:#eefcff}.adventure-start-actions #character-continue:disabled{opacity:.72;cursor:not-allowed}@media(max-width:700px){.adventure-start-actions #character-start,.adventure-start-actions #character-continue{flex:1 1 0;width:50%;height:47px;min-height:47px;padding:0 5px;font-size:9px;letter-spacing:0;white-space:normal}}@media(max-width:440px){.adventure-start-actions #character-start,.adventure-start-actions #character-continue{height:42px;min-height:42px;font-size:8px}}

/* --- 角色图鉴（纯展示，不可从此启动游戏） --- */
.lobby-roster-note{margin:0 0 18px;padding:12px 14px;border:1px solid #ffffff1f;border-left:3px solid var(--gold);border-radius:8px;background:#ffffff08}
.lobby-roster-note strong{color:var(--gold)}
.lobby-roster{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.lobby-hero{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #ffffff1a;border-radius:10px;background:#ffffff08;transition:border-color .18s,background .18s}
.lobby-hero:hover{border-color:var(--accent);background:#ffffff12}
.lobby-hero canvas{flex:0 0 auto;width:50px;height:50px;image-rendering:pixelated;filter:drop-shadow(0 2px 0 #0006)}
.lobby-hero strong{display:block;font-size:12px;letter-spacing:.06em;color:#e8f1f4}
.lobby-hero span{display:block;margin-top:2px;font-family:monospace;font-size:9px;letter-spacing:.12em;color:var(--accent)}
.lobby-hero p{margin:5px 0 0;font-size:11px;line-height:1.6;color:#9fb4bd}
@media(max-width:560px){.lobby-roster{grid-template-columns:1fr}.lobby-hero{padding:10px 12px}}

/* Six modes use a balanced three-row card grid. */
.lobby-card:last-child:nth-child(odd){grid-column:auto;display:block}.lobby-card:last-child:nth-child(odd) canvas{height:auto;max-height:none}

/* Seven adventure heroes fit two desktop rows; the mobile list remains scroll-free. */
.character-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.screen:has(#choose-astro):has(.character-picker:not([hidden])){min-height:610px}.lobby-crew canvas{width:504px}@media(max-width:700px){.character-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.screen:has(#choose-astro):has(.character-picker:not([hidden])){min-height:620px}.character-card:last-child{grid-column:1/-1}}

.lobby-crew canvas{width:576px}@media(max-width:700px){.character-card:last-child{grid-column:auto}}

.character-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.lobby-crew canvas{width:646px}@media(max-width:700px){.character-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.character-card:last-child{grid-column:1/-1}}
/* Compact nine-card picker uses content height, so actions never fall outside the screen. */
.screen:has(.character-picker:not([hidden])){aspect-ratio:auto;min-height:0!important;height:auto}
.screen:has(.character-picker:not([hidden]))>#game{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.screen:has(.character-picker:not([hidden]))>.overlay{position:relative;inset:auto;width:100%;padding:12px 0}
.character-picker{width:96%;max-width:920px;min-width:0;padding:8px}
.character-picker h3{font-size:20px;margin:5px 0 10px}
.character-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.overlay .character-card{min-width:0;padding:7px 5px;gap:3px}
.overlay .character-card span{margin-left:0;max-width:100%}
.character-card canvas{width:64px;height:42px}
.character-card strong{font-size:9px;overflow-wrap:anywhere}
.character-card .role-number{font-size:7px}
.character-card .role-cn{font-size:10px}
.character-card .role-copy,.character-card .weapon-route{font-size:7px;line-height:1.3;padding-top:1px}
.character-picker .adventure-start-actions{margin-top:10px}
.character-picker .overlay-hint{margin-top:9px}
.screen:fullscreen:has(.character-picker:not([hidden]))>.overlay{max-height:100dvh;overflow-y:auto}
@media(max-width:700px){.character-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.character-card:last-child{grid-column:1/-1}.character-picker h3{font-size:17px}.character-card .role-copy,.character-card .weapon-route{font-size:7px}}

.character-picker .character-card strong{font-size:11px}.character-picker .character-card .role-cn{font-size:12px}.character-picker .character-card .role-copy,.character-picker .character-card .weapon-route{font-size:9px}.character-picker .character-card canvas{width:76px;height:50px}
