@charset "UTF-8";
/* Pending data occupies its own section; navigation and page labels stay usable. */
.user-data-placeholder{display:grid;gap:14px;max-width:100%;padding:10px 0;min-width:0}
.user-data-shimmer{display:block;height:17px;width:100%;max-width:100%;border-radius:6px;background:linear-gradient(100deg,var(--raised,#242930) 15%,#353c45 45%,var(--raised,#242930) 75%);background-size:220% 100%;animation:user-data-shimmer 1.6s ease-in-out infinite}
.user-data-shimmer:nth-child(2n){width:76%}.user-data-shimmer:last-child{width:56%}
.wallet-total>.user-data-placeholder{max-width:290px;padding:18px 0}.wallet-total>.user-data-placeholder .user-data-shimmer:nth-child(2){height:44px}
.wallet-fund-split .user-data-placeholder{max-width:185px}.stat-card .user-data-placeholder{max-width:175px;padding:12px 0}
.profile-identity>.user-data-placeholder{width:min(420px,55vw)}
.user-data-error{display:grid;gap:12px;padding:12px 0;color:var(--muted);font-size:14px}.user-data-error>span{line-height:1.6}.user-data-error>.button{justify-self:start}.user-game-placeholder{min-height:245px}
.user-view-status:empty,#startup-status:empty{display:none}.user-view-status:not(:empty),#startup-status:not(:empty){margin-bottom:20px}
.top-actions>.user-data-placeholder{width:110px;padding:0}.top-actions .user-data-shimmer{height:35px;width:100%}
@keyframes user-data-shimmer{from{background-position:110% 0}to{background-position:-110% 0}}
@media(prefers-reduced-motion:reduce){.user-data-shimmer{animation:none;background:var(--raised,#242930)}}
/* Artwork keeps its final footprint while bytes load and decode. */
.lobby-hero .hero-art .art-loader{inset:0;width:auto;height:auto;border:0;border-radius:inherit;background:linear-gradient(100deg,var(--raised,#242930) 15%,#353c45 45%,var(--raised,#242930) 75%);background-size:220% 100%;animation:user-data-shimmer 1.6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.lobby-hero .hero-art .art-loader{animation:none;background:var(--raised,#242930)}}
.game-list-icon-frame{position:relative;display:block;flex:0 0 66px;width:66px;height:66px;border-radius:15px;overflow:hidden}
.game-list-icon-frame>.game-list-icon{display:block;width:100%;height:100%}
.game-icon-shimmer{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(100deg,var(--raised,#242930) 15%,#353c45 45%,var(--raised,#242930) 75%);background-size:220% 100%;animation:user-data-shimmer 1.6s ease-in-out infinite}
.game-list-icon-frame.art-loading>img,.game-list-icon-frame.art-unavailable>img{opacity:0}
.game-list-icon-frame.art-ready>.game-icon-shimmer{display:none}
.game-list-icon-frame.art-unavailable>.game-icon-shimmer{animation:none;background:var(--raised,#242930)}
.game-cancellation-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:#2d6ec7;color:#fff;font:600 11px/1 system-ui;vertical-align:middle;letter-spacing:0}
.game-cancellation-count[hidden]{display:none}.hero-copy h1 .game-cancellation-count{vertical-align:top;margin-top:5px}
[data-nav="home"].has-cancellation-requests:before{content:"";position:absolute;top:5px;right:2px;width:8px;height:8px;border-radius:50%;background:#63a7ff;box-shadow:0 0 0 2px var(--header)}
[data-nav="home"].has-cancellation-requests.has-play-requests:before{right:14px}
/* 2.68 large screens: this sheet loads after style.css and its 66 px frame rule above would otherwise win the cascade over the style.css step at equal specificity, so the ≥1,600 px size is repeated here. */
@media(min-width:1600px){.game-list-icon-frame{flex-basis:74px;width:74px;height:74px}}
@media(max-width:700px){.game-list-icon-frame{flex-basis:49px;width:49px;height:49px}[data-nav="home"].has-cancellation-requests:before{right:10px;top:1px}[data-nav="home"].has-cancellation-requests.has-play-requests:before{right:22px}}
@media(prefers-reduced-motion:reduce){.game-icon-shimmer{animation:none;background:var(--raised,#242930)}}
/* Progress bars travel with every player page, not only with a board-game module. */
.proof-loading{display:grid;justify-items:center;gap:16px;padding:25px 8px}.proof-loading p{margin:0;color:var(--muted)}.proof-loading-bar{height:4px;background:#ffffff0b;border-radius:3px;width:100%;overflow:hidden;position:relative}.proof-loading-bar:after{content:'';position:absolute;width:35%;height:100%;border-radius:3px;background:#fcd535;animation:proof-progress 1.4s ease-in-out infinite}@keyframes proof-progress{from{left:-35%}to{left:100%}}
@media(prefers-reduced-motion:reduce){.proof-loading-bar:after{animation:none;left:32%}}
/* A list that is being replaced keeps its rows in place, dimmed under an overlay whose bar sits at the visible top of the list. */
.is-loading:has(>.user-section-loader){position:relative;min-height:120px}
.is-loading:has(>.user-section-loader)>:not(.user-section-loader){opacity:.45}
.user-section-loader{position:absolute;inset:0;z-index:4;background:#181a2080;border-radius:8px;color:var(--muted);font-size:13px;text-align:center}
.user-section-progress{position:absolute;left:50%;top:var(--user-loader-top,28px);transform:translate(-50%,0);display:flex;flex-direction:column;align-items:center;gap:12px;width:min(300px,calc(100% - 48px))}
.user-section-progress>.proof-loading-bar{width:100%}.user-section-loader[hidden]{display:none}
.history-search+.section-update:not(:empty){margin:-12px 0 18px}
