/* Game-first flow: game lobby, waiting room, join, room cards */
.avatar-emoji .avatar-face{display:block;width:44px;height:44px;margin:0 auto;border-radius:50%;object-fit:cover;border:2px solid #fff;background:var(--soft);box-shadow:var(--shadow-1)}
.avatar.offline .avatar-face{filter:grayscale(.8);opacity:.6}
.avatar.ai .avatar-face{border-color:#ffe3c2}

.gamelobby-screen.active{display:flex;flex-direction:column;align-items:stretch;gap:28px}
.gamelobby-screen{max-width:1288px!important;padding-top:8px}
.gamelobby-screen .stage-backdrop:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#140c0bd1 0%,#140c0b8c 42%,#140c0b1f 72%,#140c0b00 100%)}
.gl-hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:min(62svh,560px);padding:24px 8px 8px;color:#fff}
.gl-back{position:absolute;top:0;left:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid #ffffff40;background:#00000047;color:#fff;font-size:13px;font-weight:700;box-shadow:var(--shadow-1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.gl-back:hover{background:#0000007a}
.gl-copy{max-width:620px;text-shadow:var(--text-shadow-art)}
.gl-tag{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.14em;color:#ffd9ae;padding:6px 12px;border-radius:999px;background:#0000004d;box-shadow:inset 0 0 0 1px #ffffff2e;text-shadow:none}
.gl-copy h1{font-size:clamp(40px,6vw,76px);line-height:1.08;letter-spacing:-.03em;margin:16px 0 12px;font-weight:800}
.gl-tagline{font-size:17px;line-height:1.7;color:#fff1e3;max-width:46ch;margin:0}
.gl-facts .guide-facts{margin-top:18px}
.gl-facts .guide-facts li{background:#ffffff1a;border-color:#ffffff38;box-shadow:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-shadow:none}
.gl-facts .guide-facts span{color:#ffd9ae}
.gl-facts .guide-facts strong{color:#fff}
.gl-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.gl-actions .arcade-button{min-height:56px;padding:0 28px;font-size:16px;gap:14px}
.gl-rules{min-height:56px;background:#ffffffeb;text-shadow:none}
.gl-invite-hint{margin:16px 0 0;font-size:13px;color:#ffe7cfcc}
.gl-rooms{background:var(--page);border-radius:28px;padding:28px;box-shadow:var(--shadow-art)}
.gl-rooms-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.gl-rooms-head h2{font-size:22px;letter-spacing:-.02em;margin:0}
.gl-room-count{font-size:13px;color:var(--cherry);font-weight:700}
.gl-room-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gl-room-list .room-empty,.gl-room-list .room-return-bar{grid-column:1/-1}

.room-card.has-game{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:16px;margin:0;padding:12px 16px 12px 12px;border-radius:20px;text-align:left}
.room-list .room-card.has-game{margin:12px 0}
.room-card-art{display:block;width:112px;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-1)}
.room-card-art .game-cover{aspect-ratio:4/3;height:auto}
.room-card-art .game-cover svg{width:90%}
.room-card-art .cover-mode{display:none}
.room-card-noart{display:grid;place-items:center;font-size:32px}
.room-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.room-card-body small.room-card-game{font-size:12px;color:var(--cherry);font-weight:700;margin:0}
.room-card-body strong{font-size:17px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-card-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);min-width:0}
.room-card-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-card-host{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #fff;box-shadow:var(--shadow-1)}
.room-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.room-card .room-card-status{font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--sage);color:#315f3c;white-space:nowrap}
.room-card .room-card-status.busy{background:var(--yellow);color:#6b5217}
.room-card-cta{font-size:13px;font-weight:800;color:var(--cherry);white-space:nowrap}
.room-card.is-mine{border-color:var(--cherry);box-shadow:var(--shadow-glow)}
.room-return-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px;border-radius:16px;background:var(--pink);font-size:14px;font-weight:600;box-shadow:var(--shadow-1)}
.lobby-rooms-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.lobby-rooms-head h2{margin:0!important}
.lobby-rooms-head .lobby-create{width:auto;margin:0;min-height:46px;padding:0 20px}
.room-filters{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}
.room-filters button{flex-shrink:0;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13px;font-weight:700;box-shadow:var(--shadow-1)}
.room-filters button.active{background:var(--cherry);border-color:var(--cherry);color:#fff;box-shadow:var(--shadow-btn-press)}
.lobby-profile{padding:6px 14px 6px 6px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-1)}
.lobby-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}

.join-panel{position:relative}
#join-screen.has-backdrop .join-panel{box-shadow:var(--shadow-4);border-color:transparent}
.join-context{display:flex;align-items:center;gap:14px;margin:-8px -8px 20px;padding:10px 14px 10px 10px;border-radius:18px;background:var(--soft);box-shadow:var(--shadow-1)}
.join-context-art{flex-shrink:0;width:84px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-1)}
.join-context-art .game-cover{aspect-ratio:4/3;height:auto}
.join-context-art .cover-mode{display:none}
.join-context-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.join-context-copy small{font-size:12px;font-weight:800;color:var(--cherry);letter-spacing:.04em}
.join-context-copy strong{font-size:16px;line-height:1.4}
.join-panel.has-context .join-logo{display:none}
.join-avatars{border:0;margin:20px 0 0;padding:0;min-width:0}
.join-avatars legend{font-size:14px;font-weight:600;margin-bottom:10px;padding:0}
.avatar-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.avatar-choice{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:16px;background:var(--soft);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .15s,box-shadow .15s,border-color .15s}
.avatar-choice img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-choice:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.avatar-choice:active{transform:translateY(0);box-shadow:var(--shadow-press)}
.avatar-choice.selected{border-color:var(--cherry);box-shadow:var(--shadow-glow)}
.avatar-choice.selected:after{content:'✓';position:absolute;right:4px;bottom:4px;width:20px;height:20px;border-radius:50%;background:var(--cherry);color:#fff;font-size:12px;font-weight:800;line-height:20px;text-align:center;box-shadow:var(--shadow-1)}
.avatar-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:22px;background:var(--pink)}
.avatar-none small{font-size:10.5px;font-weight:700;color:var(--muted)}
.avatar-none.selected:after{top:4px;bottom:auto}
.profile-sub{font-size:13px;font-weight:800;color:var(--muted);margin:14px 0 8px;text-align:left}
.profile-card .avatar-picker{margin-bottom:6px}

.room-workspace.has-backdrop>.room-heading{color:#fff;text-shadow:var(--text-shadow-art)}
.room-heading{align-items:flex-end}
.room-heading-copy{min-width:0}
.room-heading h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.02em;line-height:1.15;margin:8px 0 6px}
.room-heading .section-label{display:inline-block;letter-spacing:.14em;padding:5px 12px;border-radius:999px;background:#0000004d;box-shadow:inset 0 0 0 1px #ffffff2e;text-shadow:none}
.room-workspace.has-backdrop .room-heading .section-label{color:#ffd9ae}
.room-name{margin:0;font-size:14px;color:inherit;opacity:.88}
.room-name b{font-weight:700}
.room-name:before{content:'🏠';margin-right:6px}
.room-actions{flex-wrap:wrap;justify-content:flex-end}
.room-invite-btn{color:var(--cherry)!important;font-weight:800!important}
.room-workspace .room-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-template-areas:"seats rules" "chat rules";align-items:start}
.room-workspace .room-main{display:contents}
.room-seats-card{grid-area:seats;background:var(--page);border-radius:24px;padding:24px;box-shadow:var(--shadow-art)}
.room-workspace .room-conversation{grid-area:chat;margin-top:0!important;box-shadow:var(--shadow-art)}
.room-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.room-card-head h2{font-size:18px;margin:0}
.room-seat-count{font-size:13px;color:var(--muted);font-weight:600}
.room-seats{max-width:none!important;width:100%;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px!important;margin:0!important;padding:0!important;background:none!important;border:0!important}
.seat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 12px;border-radius:20px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font:inherit;text-align:center;box-shadow:var(--shadow-2);transition:transform .15s,box-shadow .15s,border-color .15s;min-width:0}
button.seat:hover{transform:translateY(-2px);box-shadow:var(--shadow-3);border-color:var(--cherry)}
button.seat:active{transform:translateY(0);box-shadow:var(--shadow-press)}
.seat-face{position:relative;display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:var(--soft);filter:var(--drop-portrait)}
.seat-face img{width:100%;height:100%;border-radius:22px;object-fit:cover;border:3px solid #fff}
.seat-check{position:absolute;right:-6px;bottom:-6px;width:26px;height:26px;border-radius:50%;background:#3f8a5a;color:#fff;font-size:14px;font-weight:800;line-height:26px;border:2px solid #fff}
.seat-name{max-width:100%;font-size:14px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seat-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;min-height:20px}
.seat-badge{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--muted)}
.seat-badge.host{background:var(--cherry);color:#fff}
.seat-badge.ai{background:#ffe8cf;color:#8a4d1f}
.seat.is-me{border-color:var(--cherry)}
.seat.is-ready{background:linear-gradient(180deg,#f2faf3,#fff)}
.seat.is-ai{background:linear-gradient(180deg,#fff6ec,#fff)}
.seat.offline .seat-face{filter:grayscale(.9) opacity(.6)}
.seat-invite{border-style:dashed;background:transparent;box-shadow:none;color:var(--cherry)}
.seat-invite .seat-face{background:var(--pink);filter:none;font-size:32px;font-weight:300;color:var(--cherry);border:2px dashed #e7a6b0}
.seat-divider{display:none}
.room-ai-note{display:flex;align-items:center;gap:12px;margin:16px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}
.room-ai-note b{display:block;font-size:12px;color:var(--cherry)}
.room-mc{flex-shrink:0;width:44px;height:44px;border-radius:14px;object-fit:cover;border:2px solid #fff;box-shadow:var(--shadow-2)}
.room-transfer-hint{margin:6px 0 0;font-size:12px;color:var(--muted)}
.room-launch-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:16px 16px 16px 20px;border-radius:20px;background:var(--pink);box-shadow:inset 0 1px 0 #fff9,var(--shadow-1)}
.room-status{display:flex;flex-direction:column;gap:2px;min-width:0}
.room-status strong{font-size:17px;line-height:1.4}
.room-status span{font-size:13px;color:var(--muted);line-height:1.5}
.room-launch-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;flex-shrink:0}
.room-launch-actions .arcade-button{min-height:52px;padding:0 26px;font-size:16px}
.room-ready-btn.is-on{background:var(--sage);border-color:#9cc6a5;color:#315f3c}
.room-rules-card{grid-area:rules;position:sticky;top:20px;background:var(--page);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-art)}
.room-rules-media .game-cover{aspect-ratio:16/10;height:auto;border-radius:0}
.room-rules-media .cover-mode{display:none}
.room-rules-body{padding:20px 22px 22px}
.room-rules-body h2{font-size:22px;margin:6px 0 10px;letter-spacing:-.02em}
.room-rules-goal{font-size:14px;line-height:1.7;color:var(--ink);margin:12px 0 0}
.room-rule-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.room-rule-steps li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start}
.room-rule-num{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--cherry);color:#fff;font-size:12px;font-weight:800;box-shadow:var(--shadow-1)}
.room-rule-steps strong{display:block;font-size:14px;line-height:1.45}
.room-rule-steps p{margin:2px 0 0;font-size:13px;line-height:1.6;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.room-rules-more{width:100%;margin-top:16px}
.room-rules-empty{padding:28px 24px}
.room-rules-empty p{font-size:14px;color:var(--muted);margin:6px 0 0}

.vote-game-btn{display:flex;flex-direction:column;align-items:stretch}
.vote-game-btn .vg-icon{margin:0}
.vote-game-btn .game-cover{aspect-ratio:4/3!important;height:auto!important}
.vote-game-btn .vg-name{padding:10px 12px 0}
.vote-game-btn .vg-tag{padding:2px 12px 0;font-size:11.5px;color:var(--muted)}
.vote-game-btn.selected .vg-tag{color:var(--cherry);font-weight:800}

@media(max-width:900px){
  .room-workspace .room-layout{grid-template-columns:1fr;grid-template-areas:"seats" "rules" "chat"}
  .room-rules-card{position:static}
  .gl-room-list{grid-template-columns:1fr}
}
@media(max-width:700px){
  .gamelobby-screen.active{gap:20px}
  .gamelobby-screen .stage-backdrop:before{background:linear-gradient(180deg,#140c0b33 0%,#140c0b66 40%,#140c0be6 100%)}
  .gl-hero{min-height:min(70svh,560px);padding:64px 0 0}
  .gl-back{left:0}
  .gl-copy h1{font-size:40px;margin:12px 0 8px}
  .gl-tagline{font-size:15px}
  .gl-actions{flex-direction:column}
  .gl-actions>*{width:100%}
  .gl-rooms{padding:20px 16px;border-radius:22px;margin:0 -4px}
  .room-card.has-game{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:10px 12px 10px 10px}
  .room-card-art{width:76px;border-radius:12px}
  .room-card-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}
  .room-card-body strong{font-size:15.5px}
  .lobby-rooms-head{flex-wrap:wrap}
  .lobby-rooms-head .lobby-create{width:100%}
  .avatar-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
  .avatar-choice{border-radius:12px}
  .avatar-none small{display:none}
  .join-context{margin:-4px -4px 16px}
  .join-context-art{width:68px}
  .room-heading{flex-direction:column;align-items:stretch;gap:12px}
  .room-heading h1{font-size:34px}
  .room-actions{justify-content:flex-start;gap:6px}
  .room-actions .play-return{padding:8px 12px;font-size:12.5px;min-height:40px}
  .room-seats-card{padding:18px 14px;border-radius:20px}
  .room-seats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px!important}
  .seat{padding:10px 4px 8px;border-radius:16px;gap:4px}
  .seat-face{width:52px;height:52px;border-radius:16px}
  .seat-face img{border-radius:16px;border-width:2px}
  .seat-check{width:20px;height:20px;line-height:20px;font-size:11px;right:-4px;bottom:-4px}
  .seat-name{font-size:12px}
  .seat-badge{font-size:9.5px;padding:1px 6px}
  .seat-invite .seat-face{font-size:24px}
  .room-launch-bar{flex-direction:column;align-items:stretch;padding:14px}
  .room-launch-actions{justify-content:stretch}
  .room-launch-actions>*{flex:1 1 auto}
  .room-rules-body{padding:18px}
}
@media(max-width:700px){
  body:has(.screen.active.has-backdrop:not(.backdrop-light)) .arcade-header nav>button{background:#ffffff26;color:#fff;box-shadow:inset 0 0 0 1px #ffffff40}
  .room-heading .room-actions{display:flex;flex-direction:row;flex-wrap:wrap}
  .room-heading .room-actions>*{flex:0 0 auto}
  .room-rules-media .game-cover{aspect-ratio:16/8}
}
.next-round-bar{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:10030;display:flex;align-items:center;gap:16px;width:min(760px,calc(100% - 24px));padding:14px 14px 14px 22px;border-radius:22px;background:linear-gradient(180deg,#2c1c1cf5,#1b1111f7);color:#fff;border:1px solid #ffffff1f;box-shadow:var(--shadow-4),inset 0 1px 0 #ffffff24;animation:nrbIn .35s cubic-bezier(.2,.8,.2,1) both}
.next-round-bar[hidden]{display:none}
@keyframes nrbIn{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
.nrb-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.nrb-copy strong{font-size:16px;line-height:1.35}
.nrb-copy span{font-size:13px;color:#ffe7cfd9;line-height:1.45}
.nrb-actions{display:flex;gap:8px;flex-shrink:0}
.nrb-actions .stage-ghost{background:#ffffff1a;border-color:#ffffff3d;color:#fff;box-shadow:none}
.nrb-actions .stage-ghost:hover{background:#ffffff2e;color:#fff;border-color:#ffffff66}
.nrb-actions .arcade-button{min-height:48px;padding:0 22px}
body.has-next-bar .screen.play-screen{padding-bottom:132px}
@media(max-width:700px){
  .next-round-bar{flex-direction:column;align-items:stretch;gap:10px;padding:14px;border-radius:18px}
  .nrb-actions>*{flex:1 1 0;min-height:46px;padding:0 10px;font-size:13.5px}
  body.has-next-bar .screen.play-screen{padding-bottom:200px}
}
body:has(#connection-banner:not([hidden])) .arcade-notice{bottom:88px}
body.has-next-bar .arcade-notice{bottom:128px}
@media(max-width:700px){body.has-next-bar .arcade-notice{bottom:196px}}
.intro-quick{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:10032;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"art copy ring" "art actions actions";column-gap:16px;row-gap:10px;align-items:center;width:min(640px,calc(100% - 24px));padding:14px 16px;border-radius:22px;background:linear-gradient(180deg,#2c1c1cf5,#1b1111f7);color:#fff;border:1px solid #ffffff1f;box-shadow:var(--shadow-4),inset 0 1px 0 #ffffff24;animation:nrbIn .35s cubic-bezier(.2,.8,.2,1) both}
.intro-quick[hidden]{display:none}
.intro-quick-art{grid-area:art;width:96px;height:96px;border-radius:16px;object-fit:cover;box-shadow:var(--shadow-art)}
.intro-quick-copy{grid-area:copy;display:flex;flex-direction:column;gap:2px;min-width:0}
.intro-quick-copy small{font-size:11px;font-weight:800;letter-spacing:.12em;color:#ffd9ae}
.intro-quick-copy strong{font-size:18px;line-height:1.35}
.intro-quick-copy span{font-size:13px;color:#ffe7cfd9}
.intro-quick-copy em{font-style:normal;font-size:12.5px;line-height:1.5;color:#ffe7cf;margin-top:4px}
.intro-quick-ring{grid-area:ring}
.intro-quick-ring:before{background:#241616}
.intro-quick-ring span{color:#fff}
.intro-quick-actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:8px}
.intro-quick-actions>*{min-height:44px}
.intro-quick-actions .stage-ghost{background:#ffffff1a;border-color:#ffffff3d;color:#fff;box-shadow:none}
.intro-quick-actions .stage-ghost.is-first{background:#ffd9ae;border-color:#ffd9ae;color:#3b2320}
.intro-quick-actions .arcade-button{min-height:44px;padding:0 20px}
body.intro-quick-open .arcade-guide{padding-bottom:200px}
body.intro-quick-open .arcade-guide-card{max-height:calc(100svh - 216px)}
@media(max-width:700px){
  .intro-quick{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"art copy ring" "actions actions actions";padding:12px;border-radius:18px;column-gap:12px}
  .intro-quick-art{width:56px;height:56px;border-radius:12px}
  .intro-quick-copy strong{font-size:16px}
  .intro-quick-actions>*{flex:1 1 0;padding:0 10px;font-size:13.5px}
  body.intro-quick-open .arcade-guide{padding-bottom:210px}
  body.intro-quick-open .arcade-guide-card{max-height:calc(100svh - 226px)}
}
