/* Lobby only. Live poker controls keep games/style.css. */
body:not(.is-room-view) { background:radial-gradient(ellipse 75% 650px at 100% 0,#233a3d85,transparent),radial-gradient(ellipse 60% 500px at 0 42%,#3a292752,transparent),#0b1016; color:#f4f5f7; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans CJK SC","Microsoft YaHei",sans-serif; }
body:not(.is-room-view)::before { opacity:.15; }
body:not(.is-room-view) .page { position:relative; width:min(1140px,calc(100% - 64px)); padding-top:0; }
body:not(.is-room-view) .topbar { position:relative; top:auto; flex-direction:row; align-items:center; min-height:82px; margin:0; padding:16px 0; border:0; border-bottom:1px solid #ffffff12; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; color:#f4f5f7; }
body:not(.is-room-view) .brand { color:inherit; }
body:not(.is-room-view) .brand-mark { width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,#ff865c,#ef596c); color:#211011; box-shadow:0 0 22px #f5684233; }
body:not(.is-room-view) .brand small { color:#969dab; }
body:not(.is-room-view) .home-link { color:#bac1cd; }
body:not(.is-room-view) .home-link:hover { background:#1b1f27; color:#fff; }
.game-lobby { display:flex; flex-direction:column; gap:46px; }
.game-lobby>.hero-copy { position:relative; isolation:isolate; top:auto; width:100%; min-height:0; padding:38px 0 6px; overflow:visible; border-radius:0; background:transparent; box-shadow:none; animation:none; }
.hero-copy::before,.hero-copy::after { display:none; }
.game-lobby>.hero-copy .lobby-art-night { position:absolute; z-index:-1; pointer-events:none; right:-65px; top:-18px; width:850px; height:284px; overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 30%,#000 88%,transparent); }
.lobby-art-night img { width:100%; height:100%; object-fit:contain; object-position:center; mask-image:linear-gradient(0deg,transparent,#000 22%,#000 80%,transparent); }
.hero-copy .hero-line,.hero-copy h1,.hero-copy .round-label,.lobby-shortcuts { position:relative; z-index:1; }

.hero-copy .round-label { color:#929baa; font:600 10px/1.6 ui-monospace,monospace; letter-spacing:.12em; }
.game-lobby>.hero-copy h1 { max-width:none; margin:10px 0; color:#f4f5f7; font-family:inherit; font-size:clamp(32px,3.2vw,46px); line-height:1.35; letter-spacing:-.04em; }
.hero-copy .hero-line { max-width:none; margin:0; color:#a7adb8; font-size:14px; line-height:1.8; }
.lobby-shortcuts { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.lobby-shortcuts a { display:inline-flex; align-items:center; min-height:40px; padding:7px 17px; border:1px solid #343943; border-radius:8px; color:#bdc4cf; background:#14171d; font-size:12px; font-weight:600; text-decoration:none; transition:background .18s; }
.lobby-shortcuts a:first-child { border-color:#a8655070; color:#ffa080; background:#47282060; }
.lobby-shortcuts a:hover { background:#252a34; color:#fff; }
.game-zone { width:100%; min-width:0; scroll-margin-top:24px; }
.zone-heading { position:relative; padding-right:50px; margin:0 0 20px; }
.zone-heading::after { content:""; position:absolute; right:60px; left:250px; top:35px; height:1px; background:linear-gradient(90deg,#b8874860,transparent); }
.zone-heading p { margin:0 0 6px; color:#929baa; font:600 10px/1.5 ui-monospace,monospace; letter-spacing:.12em; }
.zone-heading h2 { margin:0 0 5px; color:#f0f2f6; font-size:24px; line-height:1.4; letter-spacing:-.025em; }
.zone-heading>span:not(.zone-symbol) { color:#a7adb8; font-size:13px; }
.zone-symbol { position:absolute; right:5px; top:9px; color:#eaa580; font:38px/1 Georgia,serif; }
#singleplayer .zone-symbol { color:#a3c9bf; }
.fiction-card { position:relative; isolation:isolate; display:flex; align-items:center; min-height:345px; overflow:hidden; border:1px solid #7b62434d; border-radius:16px 48px 16px 16px; background:#101a1e; color:#f4f5f7; text-decoration:none; box-shadow:0 10px 50px #0002; }
.fiction-card::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#101a1e 3%,#101a1ef5 32%,#101a1e66 64%,#101a1e05 90%); }
.fiction-card>.fiction-scene { position:absolute; z-index:-2; right:0; top:0; width:67%; height:100%; object-fit:cover; object-position:50% 58%; transition:transform .5s; }
.fiction-card:hover>.fiction-scene { transform:scale(1.025); }
.fiction-card::before { content:""; position:absolute; z-index:1; inset:13px; border:1px solid #d6aa6233; border-radius:7px 35px 7px 7px; pointer-events:none; }
.fiction-copy { position:relative; padding:32px 38px; max-width:62%; }
.fiction-badge::before { content:"✧"; margin-right:8px; color:#f0bd73; }
.fiction-badge { font-size:11px; letter-spacing:.07em; color:#ff9978; }
.fiction-copy h3 { margin:14px 0; color:#f4f5f7; font:750 clamp(30px,3vw,40px)/1.35 Inter,-apple-system,BlinkMacSystemFont,"Microsoft YaHei",sans-serif; letter-spacing:-.025em; }
.fiction-copy p { margin:0 0 18px; font-size:14px; line-height:1.85; color:#c5c8d0; }
.fiction-cta { display:inline-flex; align-items:center; gap:28px; padding:10px 19px; border:1px solid #ff9a7366; border-radius:9px; font-size:13px; font-weight:750; color:#211011; background:linear-gradient(115deg,#ff865c,#f36576); box-shadow:0 5px 25px #f3654425; }
.fiction-card:hover .fiction-cta { filter:brightness(1.1); }
.fiction-meta { display:block; font-size:10px; color:#a3aab6; margin-top:12px; }
/* The multiplayer entrance is a felt table beside an invitation form. */
#multiplayer .zone-heading::after { background:linear-gradient(90deg,#b8945b70,transparent); }
#multiplayer .zone-symbol { color:#d4b27a; }
.game-zone .play-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:24px 38px; padding:32px; border:1px solid #77634770; border-radius:18px; background:radial-gradient(ellipse at 0 0,#234a4460,transparent 65%),#101b20; box-shadow:0 22px 60px #0003; color:#e8e9e1; animation:none; backdrop-filter:none; }
.game-zone .play-card::after { display:none; }
.game-zone .play-card-head { grid-column:1/-1; align-items:center; padding:0 0 20px; border-bottom:1px solid #8f775632; }
.game-zone .play-card-head>span { color:#c9af81; font:600 10px/1.6 ui-monospace,monospace; letter-spacing:.14em; }
.game-zone .play-card-head strong { color:#ede6d6; font-size:20px; font-weight:600; line-height:1.4; }
.game-zone .game-switch { grid-column:1; grid-row:2; grid-template-columns:1fr; gap:16px; }
.game-zone .game-tile { position:relative; isolation:isolate; min-width:0; min-height:260px; padding:48px 24px 24px; gap:14px; align-content:center; border:1px solid #64736c; border-radius:12px; background:#1b302f; color:#f4eddb; box-shadow:none; transition:border-color .2s,background .2s; }
.game-zone .game-tile.is-selected { border:1px solid #c49d5e; background:radial-gradient(ellipse at 50% 42%,#355e50,#1b3934 70%,#172e2d); box-shadow:inset 0 0 40px #07191a80,0 8px 25px #0002; }
.game-zone .game-tile.is-selected::after { content:""; position:absolute; z-index:-1; inset:10px; height:auto; border:1px solid #c0a16d4d; border-radius:7px; background:none; pointer-events:none; }
.game-zone .game-tile::before { top:15px; right:16px; border:1px solid #ae98615c; padding:5px 9px; border-radius:5px; box-shadow:none; background:#152f29; color:#ead5a6; font-size:10px; font-weight:600; line-height:1.3; letter-spacing:.04em; }
.game-zone .game-tile.is-selected strong { color:#f4eddb; font-size:24px; font-weight:650; }
.game-zone .game-tile.is-selected small { color:#bed0c6; font-size:12px; letter-spacing:.07em; margin-top:6px; }
.game-zone .game-tile:hover:not(.is-disabled) { transform:none; border-color:#f0c785; box-shadow:inset 0 0 40px #07191a80,0 8px 25px #0002; }
.game-zone .card-stack { width:154px; height:120px; margin:0 auto; transform:rotate(-3deg); }
.game-zone .card-stack i { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; width:65px; height:91px; border:1px solid #c9bea0; border-radius:7px; background:linear-gradient(125deg,#fff8e6,#e4d7ba); color:#20342d; font-size:21px; font-weight:600; line-height:1; box-shadow:0 9px 13px #05151480,inset 0 0 0 4px #fff8; }
.game-zone .card-stack i::after { content:"♠"; font:31px/1 Georgia,serif; }
.game-zone .card-stack i:first-child { left:29px; top:12px; transform:rotate(-16deg); }
.game-zone .card-stack i:last-child,.game-zone .game-tile.is-selected .card-stack i:last-child { right:23px; top:2px; transform:rotate(13deg); background:linear-gradient(125deg,#fff8e6,#e4d7ba); color:#9b4937; }
.game-zone .card-stack i:last-child::after { content:"♥"; }
.game-zone .card-stack::before,.game-zone .card-stack::after { content:""; position:absolute; width:38px; height:38px; border:4px dashed #bf9a57; border-radius:50%; background:radial-gradient(circle,#293e34 0 54%,#b49253 57% 63%,#263c33 66%); box-shadow:0 4px 0 #6b5632,0 8px 10px #0006; }
.game-zone .card-stack::before { right:0; bottom:10px; transform:rotate(18deg); }
.game-zone .card-stack::after { right:15px; bottom:0; transform:rotate(-10deg); }
.game-zone .game-tile.is-selected:hover .card-stack { transform:translateY(-3px) rotate(-3deg); }
.game-zone .game-tile.is-disabled { display:flex; min-height:72px; padding:16px 130px 16px 20px; align-items:center; gap:14px; text-align:left; opacity:1; filter:none; background:#142126; color:#aebbb9; border:1px solid #3b4a4a; border-radius:10px; box-shadow:none; }
.game-zone .game-tile.is-disabled::before { content:"稍后开放"; top:calc(50% - 13px); right:16px; background:#1b2b2e; color:#acb9b7; border-color:#425353; }
.game-zone .game-tile.is-disabled .card-stack { display:none; }
.game-zone .game-tile.is-disabled strong { color:#bdc8c3; font-size:15px; }
.game-zone .game-tile.is-disabled small { color:#9aadaa; font-size:11px; }
.game-zone .room-form { grid-column:2; grid-row:2; display:grid; grid-template-columns:1fr; gap:20px; padding:2px 0 0; border:0; border-radius:0; background:transparent; }
.game-zone .form-heading { margin:0 0 2px; color:#e9e4d7; font-size:18px; font-weight:600; line-height:1.5; }
.game-zone .form-heading small { display:block; margin-top:6px; font-size:12px; font-weight:400; color:#aabbba; }
.game-zone .field { min-width:0; gap:9px; }
.game-zone .field span { color:#c7d2cd; font-size:13px; font-weight:500; letter-spacing:0; }
.game-zone .field input,.game-zone #room-link { min-width:0; width:100%; border:1px solid #60716c; border-radius:8px; min-height:49px; box-shadow:inset 0 2px 5px #0002; background:#0e191e; color:#f0f0e8; font-size:14px; }
.game-zone .field input:focus { border-color:#d6ad6b; box-shadow:0 0 0 3px #d6ad6b18; }
.game-zone input::placeholder { color:#9aaca8; opacity:1; }
.game-zone .actions { grid-column:1; grid-template-columns:1fr 1fr; gap:12px; margin-top:2px; }
.game-zone .button { min-height:48px; border:1px solid #b59a6c; border-radius:8px; box-shadow:none; font-size:14px; font-weight:650; }
.game-zone .button.primary { background:linear-gradient(110deg,#e1bd7a,#c89d5a); color:#1c2019; }
.game-zone .button.secondary { color:#e6d7b9; background:#20322f; border-color:#859081; }
.game-zone .button:hover:not(:disabled) { box-shadow:none; transform:none; filter:brightness(1.1); }
.game-zone .button:disabled { opacity:.5; cursor:wait; }
.game-zone .room-result { grid-column:1/-1; padding:20px 0 0; border:0; border-top:1px solid #8f775632; border-radius:0; background:transparent; }
.game-zone .result-top { flex-wrap:wrap; gap:12px; }
.game-zone .result-top span { color:#c4d7ca; background:#263d35; border:1px solid #516a57; border-radius:6px; font-size:11px; }
.game-zone .result-top strong { color:#d5ddd5; font-size:13px; font-weight:500; }
.game-zone .room-result p { color:#aabbba; font-size:12px; margin-bottom:0; }
.game-zone .link-box { gap:12px; }
.game-zone .copy-button { min-width:68px; min-height:44px; border:1px solid #859081; border-radius:8px; background:#20322f; color:#e6d7b9; box-shadow:none; }
.game-zone .afterglow-card { min-height:280px; border:1px solid #354652; border-radius:18px; background:#0c1521; box-shadow:none; }
.game-zone .afterglow-copy { padding:32px; }
.game-zone .afterglow-copy h3 { margin:16px 0; color:#e9f1ed; font:600 clamp(30px,3.5vw,42px)/1.2 Georgia,serif; }
.game-zone .afterglow-copy p { font-size:14px; line-height:1.9; }
.game-zone .afterglow-cta { padding:10px 18px; border:1px solid #7aada1; border-radius:9px; font-size:13px; }
.game-zone .afterglow-card:hover .afterglow-cta { background:#b9e3d5; color:#102f28; text-decoration:none; }
.game-zone .afterglow-art::after { content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(circle,#d6ffec 1px,transparent 1.5px); background-size:83px 71px; mask-image:linear-gradient(90deg,transparent 30%,#000); }
.game-zone .afterglow-art { background:linear-gradient(100deg,#0d1722 15%,transparent 85%),radial-gradient(ellipse at 85% 40%,#344c64,transparent 70%); }
.game-zone .afterglow-planet { width:240px; height:240px; right:10%; top:24px; background:linear-gradient(145deg,#93bbae,#316377 55%,#101e39); box-shadow:14px 0 50px #9fcad526,inset -20px -15px 50px #091b27; }
.game-zone .afterglow-ship { right:12%; bottom:25px; }
#singleplayer { margin-bottom:42px; }
.game-lobby a:focus-visible,.game-zone button:focus-visible,.game-zone input:focus-visible { outline:3px solid #ffad86; outline-offset:5px; }
@media(max-width:1000px) { .game-lobby>.hero-copy .lobby-art-night { width:680px; height:227px; right:-32px; opacity:.8; } }
@media(max-width:700px) {
  .game-lobby>.hero-copy .lobby-art-night { width:570px; height:190px; right:-108px; top:0; opacity:.26; mask-image:linear-gradient(90deg,transparent,#000 65%); }
  .zone-heading::after { display:none; }
  .hero-copy .hero-line,.hero-copy .round-label { color:#d0d8dd; }

  body:not(.is-room-view) .page { width:calc(100% - 36px); padding-top:0; }
  body:not(.is-room-view) .topbar { min-height:70px; padding:12px 0; }
  .game-lobby { gap:30px; }
  .game-lobby>.hero-copy { padding:24px 0 0; }
  .game-lobby>.hero-copy h1 { font-size:30px; }
  .hero-copy .hero-line { font-size:13px; }
  .lobby-shortcuts { gap:8px; margin-top:18px; }
  .lobby-shortcuts a { min-height:38px; padding:7px 13px; font-size:11px; }
  .zone-heading { margin-bottom:15px; }
  .zone-heading h2 { font-size:23px; }
  .zone-symbol { font-size:34px; }
  .fiction-card { min-height:365px; align-items:end; }
  .fiction-card>.fiction-scene { width:100%; object-position:50% 56%; }
  .fiction-card::after { background:linear-gradient(90deg,#0d111ade,#0d111a66),linear-gradient(0deg,#0d111af2,transparent 80%); }
  .fiction-copy { max-width:100%; padding:26px; }
  .fiction-copy h3 { font-size:32px; }
  .fiction-copy p { font-size:13px; }
  .fiction-badge::before { content:"✧"; margin-right:8px; color:#f0bd73; }
.fiction-badge { font-size:10px; }
  .game-zone .play-card { grid-template-columns:1fr; padding:20px; gap:22px; border-radius:16px; }
  .game-zone .play-card-head { padding-bottom:16px; gap:12px; }
  .game-zone .play-card-head strong { font-size:18px; }
  .game-zone .play-card-head>span { font-size:9px; letter-spacing:.08em; }
  .game-zone .game-switch { grid-column:1; grid-row:auto; gap:12px; }
  .game-zone .game-tile { min-height:240px; padding:44px 18px 20px; }
  .game-zone .game-tile.is-disabled { min-height:66px; padding:14px 108px 14px 16px; }
  .game-zone .game-tile.is-disabled::before { right:12px; font-size:9px; }
  .game-zone .room-form { grid-column:1; grid-row:auto; padding-top:20px; border-top:1px solid #8f775632; gap:18px; }
  .game-zone .room-result { padding-top:18px; }
  .game-zone .afterglow-copy { padding:28px 24px 110px; }
  .game-zone .afterglow-planet { width:180px; height:180px; right:-26px; top:auto; bottom:-66px; }
  .game-zone .afterglow-ship { right:28px; bottom:40px; }
}
/* Keep the decorative tabletop within narrower desktop/tablet gutters. */
@media(min-width:561px) and (max-width:1200px) { .game-lobby>.hero-copy .lobby-art-night { right:0; max-width:100%; } }
@media(max-width:380px) { .game-zone .play-card { padding:16px; } .game-zone .actions { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .fiction-card>.fiction-scene { transition:none; } .fiction-card:hover>.fiction-scene,.game-zone .game-tile:hover,.game-zone .game-tile.is-selected:hover .card-stack { transform:none; } }

/* Ace 21 occupies the former Blackjack entrance; Texas keeps its existing form. */
.game-zone .game-tile.ace21-tile { display:flex; align-items:center; min-height:118px; padding:20px; gap:16px; text-decoration:none; background:linear-gradient(90deg,#281822f2,#281822bb),url('./ace-21/assets/table.webp') center/cover; border-color:#a68654; text-align:left; }
.game-zone .game-tile.ace21-tile::before,.game-zone .game-tile.ace21-tile::after { display:none; }
.ace21-seal { display:flex; flex-direction:column; align-items:center; justify-content:center; flex:0 0 47px; height:66px; border:1px solid #bd9e63; color:#e8ca92; border-radius:5px; font:27px/1 Georgia,serif; transform:rotate(-7deg); }
.ace21-seal>span { font-size:20px; margin-top:5px; }
.game-zone .ace21-tile strong { font-size:20px; color:#f6e5c6; }
.game-zone .ace21-tile small { display:block; font-size:11px; color:#d3bfa3; margin-top:6px; }
.ace21-enter { margin-left:auto; color:#e2bc7d; font-size:12px; white-space:nowrap; }
@media (max-width:480px) { .game-zone .game-tile.ace21-tile { padding:16px 12px; gap:12px; } .game-zone .ace21-tile strong { font-size:18px; } .game-zone .ace21-tile small { font-size:10px; } .ace21-enter { font-size:10px; } }

/* Restored card-led entrances; identity lives above the game sections. */
.visitor-profile{display:flex;align-items:center;gap:18px;padding:18px 24px;border-block:1px solid #bfa37740;background:linear-gradient(90deg,#1b302d99,transparent);margin:8px 0 44px}
.visitor-mark{font:36px Georgia,serif;color:#d9bd84}.visitor-profile .nickname-field{display:grid;grid-template-columns:auto minmax(160px,280px) auto;align-items:center;gap:18px;width:100%;margin:0}.visitor-profile .nickname-field>span{font-size:13px;color:#eee2cb}.visitor-profile input{margin:0;background:#102421;color:#f6ead6;border:1px solid #7b8d7866}.nickname-field small{color:#acbcb2;font-size:12px}
.game-zone .restored-entries{grid-column:1/-1;grid-row:auto;grid-auto-rows:1fr;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.game-zone .restored-entries .game-tile{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:280px;height:100%;padding:28px 24px;gap:16px;text-align:center;text-decoration:none}
.game-zone .restored-entries .game-tile::before{display:none}.game-zone .restored-entries .game-tile strong{font-size:24px}.game-zone .restored-entries .game-tile small{font-size:12px;display:block;margin-top:8px}
.game-zone .restored-entries .ace21-tile{background:linear-gradient(0deg,#271922dc,#28182288),url('./ace-21/assets/table.webp') center/cover;box-shadow:inset 0 0 40px #190d1680}
.restored-entries .ace21-seal{flex:0 0 auto;width:66px;height:90px;font-size:36px;box-shadow:5px 7px 0 #160e17,6px 8px 0 #a8895955;margin:8px 0 10px}.restored-entries .ace21-seal>span{font-size:25px}.entrance-link{font-size:12px;color:#dfc38b;letter-spacing:1px}.table-entry:focus-visible{outline:3px solid #edce8b;outline-offset:4px}
@media(max-width:680px){.visitor-profile{padding:16px;gap:14px}.visitor-profile .nickname-field{grid-template-columns:1fr;gap:8px}.game-zone .restored-entries{grid-template-columns:1fr;gap:16px}.game-zone .restored-entries .game-tile{min-height:260px}}
