/* Game artwork loads without moving the lobby copy or its play action. */
.hero-art[data-banner] { isolation:isolate; }
.hero-art[data-banner] img { transition:opacity .28s ease; }
.hero-art.art-loading img,.hero-art.art-unavailable img { opacity:0; }
.hero-art .art-loader { position:absolute; right:24px; top:24px; width:24px; height:24px; z-index:4; border:2px solid #ffffff28; border-top-color:#f0b90b; border-radius:50%; animation:art-loading .8s linear infinite; }
.hero-art.art-ready .art-loader,.hero-art.art-unavailable .art-loader { display:none; }
.hero-art.art-unavailable { background:radial-gradient(ellipse at 70% 45%,#62502345,transparent 65%); }
.hero-game-meta .hero-challenge { font-size:14px; color:var(--muted); border:0; padding:0; }
.game-list-row h3 { display:flex; align-items:center; gap:10px; }
.game-hot { font-size:9px; font-weight:800; letter-spacing:.8px; line-height:1; padding:5px 6px; border-radius:4px; background:#ff435b1a; border:1px solid #ff596733; color:#ff6576; }
.chicken-ladder { display:flex; gap:7px; overflow-x:auto; padding:16px 20px; scrollbar-width:thin; scrollbar-color:#657d8e55 transparent; }
.chicken-ladder-step { flex:0 0 69px; display:grid; gap:5px; justify-items:center; background:#161d26; border:1px solid #61717e33; border-radius:8px; padding:10px 5px; }
.chicken-ladder-step>span { font-size:9px; color:var(--muted); }
.chicken-ladder-step>strong { font-size:12px; font-variant-numeric:tabular-nums; }
.chicken-ladder-step.crossed { background:#13493644; border-color:#2fce9d66; color:var(--green); }
.chicken-ladder-step.next { border-color:#f0b90b80; }
.chicken-ladder-step.crashed { background:#672d3a44; border-color:#ed607d88; color:#ff8398; }
.chicken-result { min-height:43px; }
.chicken-result.pending { color:var(--muted); border-color:var(--line); background:#1e2631; }
.chicken-surface .chicken-road-heading { margin-bottom:16px; }
.dice-surface .dice-motion + #dice-stage-wrap .dice-stage { min-height:100px; padding-top:0; }
@keyframes art-loading { to { transform:rotate(360deg); } }
@media(max-width:700px) {
  .hero-art .art-loader { top:18px; right:18px; width:21px; height:21px; }
  .game-list-row h3 { gap:7px; }
  .game-hot { font-size:8px; padding:4px 5px; }
  .chicken-ladder { padding:12px 16px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-art[data-banner] img { transition:none; }
  .hero-art .art-loader { animation:none; border-top-color:var(--gold); }
}

/* Featured game details remain readable on phones. */
.hero-details>span:last-child{display:inline-flex!important}
.hero-game-meta{flex-wrap:wrap;row-gap:10px}
.hero-game-meta .hero-playing{border:0;padding:0;font-size:12px}
.game-header-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media(max-width:700px){.chicken-hero .hero-art{inset:0 0 auto;height:245px;opacity:1}.chicken-hero .hero-art img{object-position:75% center}.chicken-hero .hero-copy{padding-top:195px}.chicken-hero .hero-details{max-width:none;flex-wrap:wrap}.chicken-hero .hero-game-meta{display:flex;align-items:center}.hero-game-meta .hero-playing{font-size:11px}}
/* Leave a phone-sized touch area for floating support beside the sticky actions. */
@media(max-width:700px){.chicken-actions{padding-right:72px}.chicken-actions>.button{font-size:11px}}

/* Quiet live updates stay local to the requested result group. */
.section-update{min-height:24px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.small-spinner{width:15px;height:15px;border-width:2px;margin:0}.game-library-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.game-library-tools .game-search{width:300px}.running-featured{display:flex;align-items:center;gap:12px;padding:24px 0;color:var(--muted);flex-wrap:wrap}.wallet-creating{display:grid;justify-items:center;text-align:center;gap:16px;padding:30px 10px}.wallet-creating p{color:var(--muted);line-height:1.7}.session-settings{margin-top:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.session-settings .field{margin-bottom:8px}.session-settings .field-hint{margin-bottom:16px}
@media(max-width:700px){.lobby-library .panel-heading{align-items:stretch;flex-direction:column}.game-library-tools{justify-content:flex-start;gap:10px}.game-library-tools .game-search{width:100%;order:-1}.game-library-tools .button{min-height:40px}.running-featured .button{margin-left:auto}}

/* Release prompts never interrupt an unsaved account phrase or require ending a saved round. */
.release-dialog{max-width:460px}.release-version{display:inline-flex;border:1px solid var(--line);border-radius:8px;background:var(--raised);padding:9px 13px;font-size:13px;margin:0 0 14px}.release-dialog .field-hint:empty{display:none}.release-dialog .field-hint{margin:0 0 18px;line-height:1.7}.profile-meta{display:flex;flex-direction:column;align-items:flex-end;gap:16px;flex-shrink:0}.profile-site-version{display:grid;grid-template-columns:auto auto;gap:0 8px;align-items:baseline}.profile-site-version strong{font-weight:600}.profile-updated{grid-column:1/-1;font-size:11px}
@media(max-width:980px){.profile-banner{flex-wrap:wrap}.profile-meta{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;flex-basis:100%;border-top:1px solid var(--line);padding-top:16px;text-align:left;font-size:11px}.profile-site-version{text-align:right}.profile-updated{font-size:10px}}

/* Shared dialogs hold the background still, including mobile browsers. */
html:has(dialog[open]){overflow:hidden;overscroll-behavior:none}
body.dialog-scroll-locked{position:fixed;width:100%;overflow:hidden;overscroll-behavior:none}
dialog{overscroll-behavior:contain;max-height:calc(100dvh - 32px)}
dialog .reading,.support-messages{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.network-notice{display:flex;align-items:flex-start;gap:14px}.network-notice>img{flex:0 0 24px;margin-top:2px}.network-notice>span{min-width:0}
.game-type{display:inline-flex;align-items:center;line-height:1;padding:4px 7px;font-size:9px;font-weight:750;letter-spacing:.07em;border:1px solid;border-radius:4px;white-space:nowrap;vertical-align:middle}
.game-type.fair{color:#e6c174;background:#d9a23b14;border-color:#d9a23b55}.game-type.skill{color:#83d2cb;background:#53bdb314;border-color:#53bdb355}
.game-list-row h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.hero-game-meta{flex-wrap:wrap}
.session-select{position:relative;width:100%}.session-select summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #3a414b;border-radius:8px;background:#1e2026;padding:15px 18px;color:#edf1f7}
.session-select summary::-webkit-details-marker{display:none}.session-select summary:focus-visible{outline:2px solid #f0b90b;outline-offset:2px}.session-select summary:after{content:'⌄';color:#a8b1bd}.session-select summary>.icon{display:none}
.session-options{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:20;padding:6px;background:#252930;border:1px solid #414852;border-radius:9px;box-shadow:0 12px 32px #0006;max-height:280px;overflow:auto;overscroll-behavior:contain}
.session-option{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:6px;cursor:pointer}.session-option:hover,.session-option:focus-within{background:#ffffff09}.session-option:has(:checked){color:#fcd535;background:#f0b90b0d}.session-option input{accent-color:#f0b90b;width:16px;height:16px;margin:0}
@media(max-width:700px){.game-list-row h3{gap:5px}.game-type{font-size:8px;padding:3px 5px}.hero-game-meta{gap:8px}.network-notice{gap:12px}}
/* Badges override the hero's generic separator spacing symmetrically. */
.hero-game-meta .game-type{justify-content:center;text-align:center;padding:4px 7px;line-height:1.2;font-size:10px}
[data-action="running-games"] .icon{width:14px;height:14px}
.section-update:empty{display:none}.section-update .proof-loading-bar{flex:1;min-width:60px}
.round-game-label{display:inline-flex;align-items:center;gap:8px}
.puzzle-completed-picture{margin:20px 0}.puzzle-completed-picture img{display:block;width:100%;height:auto;max-height:70dvh;object-fit:contain}

/* Requests stay discoverable without interrupting another game. */
[data-nav="home"]{position:relative}
[data-nav="home"].has-play-requests:after{content:"";position:absolute;top:5px;right:2px;width:8px;height:8px;border-radius:50%;background:#f85f73;box-shadow:0 0 0 2px var(--header)}
.game-request-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;margin-left:8px;border-radius:11px;background:#c62e49;color:#fff;font:600 11px/1 system-ui;vertical-align:middle;letter-spacing:0}
.game-request-count[hidden]{display:none}
.hero-copy h1 .game-request-count{vertical-align:top;margin-top:5px}
.lobby-hero .hero-details{margin-top:18px}
.lobby-hero .hero-details>span{padding:0;border:0;border-radius:0;background:none;color:#eef1f3;box-shadow:none;max-width:100%;flex-wrap:wrap;line-height:1.5;text-shadow:0 1px 5px #000;cursor:default}
.lobby-hero .hero-details .network-chip{font-size:9px;line-height:1.3;margin-left:0;padding:0;border:0;border-radius:0;color:var(--muted);background:none}
.winner-timer{animation-duration:4s!important}
@media(max-width:700px){
 .lobby-hero.ludo-hero{display:flex;flex-direction:column;min-height:0}
 .lobby-hero.ludo-hero .hero-copy{width:100%;padding:28px 25px 22px;background:#1b1d22}
 .lobby-hero.ludo-hero .hero-art{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1.45;opacity:1}
 .lobby-hero.ludo-hero .hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:right center}
 .lobby-hero.ludo-hero:after{display:none}
 .lobby-hero.ludo-hero .hero-details{max-width:none;margin-top:16px}
 .lobby-hero.ludo-hero .hero-copy h1{font-size:clamp(32px,8.5vw,45px);letter-spacing:-1px}
 .hero-game-meta{flex-wrap:wrap}
 .game-library-tools{flex-wrap:wrap}
 [data-nav="home"].has-play-requests:after{right:10px;top:1px}
}

/* Complete rows keep every name and username visible at all feed widths. */
.live-viewport,.live-viewport.animated{height:auto;overflow:visible}
.live-track{transform:none;transition:none}
.winner-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.45fr) minmax(115px,auto);gap:18px}
.winner-row .player-identity,.winner-row .player-copy{min-width:0}
.winner-row .identity-line{flex-wrap:wrap;gap:7px}
.winner-row .player-name{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.winner-row .player-copy>small{display:block;white-space:normal;overflow:visible;overflow-wrap:anywhere}
.winner-row .profile-badges{flex-shrink:0}
.winner-return{min-width:0}
.winner-game{min-width:0;overflow-wrap:anywhere}
.winner-game img{flex-shrink:0}
@media(max-width:600px){
 .winner-row{grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:20px 0}
 .winner-row .player-identity{grid-column:1/-1}
 .winner-row .player-copy{width:100%}
 .winner-row .player-name{font-size:14px}
 .winner-row .player-copy>small{font-size:11px;margin-top:6px}
 .winner-row .identity-line{justify-content:space-between;gap:8px 14px}
 .winner-game{font-size:11px;gap:7px}
 .winner-return>strong{font-size:14px}
}
