/* One painted dock continues through the device inset. Content sits above it. */
:root{--main-nav-content:76px;--main-nav-height:calc(var(--main-nav-content) + var(--safe-bottom));--lobby-edge:20px}
.mobile-main-nav{position:absolute;z-index:35;inset:auto 0 0;height:var(--main-nav-height);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);isolation:isolate;background:#22201d url('assets/mobile-nav-v1/dock.png') center top/100% 100% no-repeat;box-shadow:0 -5px 18px #201a2033;overflow:visible}
.mobile-main-nav[hidden]{display:none!important}
.mobile-main-nav>.mobile-nav-tab{--control-kind:none;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;width:100%;height:var(--main-nav-content);padding:2px 0 6px;border:0;border-radius:0;background:none;color:#d8cbb1;box-shadow:none;text-shadow:0 1px 2px #000;transform:none!important;filter:none!important;transition:color 160ms ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mobile-nav-icon{display:grid;place-items:center;width:32px;height:34px;transition:translate 180ms cubic-bezier(.2,.8,.2,1),filter 180ms ease;pointer-events:none}
.mobile-nav-icon :is(img,svg){display:block;width:100%;height:100%;object-fit:contain;fill:currentColor}
.mobile-nav-label{font:400 clamp(10px,2.8vw,13px)/1.25 var(--font-ui);white-space:nowrap;pointer-events:none}
.mobile-nav-tab[data-main-tab=battle] .mobile-nav-icon{width:58px;height:58px;margin-top:-20px}
.mobile-nav-tab[aria-selected=true]{color:#fff3cd}
.mobile-nav-tab[aria-selected=true] .mobile-nav-icon{translate:0 -2px;filter:drop-shadow(0 1px 5px #eecb7966)}
/* A transition locks input without flashing every navigation illustration. */
.mobile-main-nav>.mobile-nav-tab:disabled{opacity:1}
.mobile-nav-focus{position:absolute;inset:3px auto var(--safe-bottom) var(--safe-left);width:calc((100% - var(--safe-left) - var(--safe-right))/5);transform:translateX(calc(var(--nav-index,2)*100%));transition:none;background:radial-gradient(ellipse at 50% 0,#e7be6938,transparent 75%);border-top:2px solid #e8c582;pointer-events:none;z-index:-1}
#library-dialog.has-main-navigation,#shop-dialog.has-main-navigation{padding-bottom:var(--main-nav-height)!important;box-sizing:border-box}
#library-dialog.has-main-navigation>.mobile-main-nav,#shop-dialog.has-main-navigation>.mobile-main-nav{position:fixed}
.game-shell[data-scene=booster] .pack-dock{bottom:calc(var(--main-nav-height) + var(--pack-dock-inset,20px) + var(--pack-footer-space,25px))}
/* Selected tabs do not acquire a pressed pose, flash, or pointer animation. */
button:is([role=tab][aria-selected=true],[data-ui-tab=true][aria-pressed=true]):is(:active,:hover){transform:none!important;filter:none!important;animation:none!important}
/* The battle action uses its own symmetric art. Glyph alignment accounts for
   Warhaven's ascent while the flex box itself remains exactly centered. */
.dock-actions #advance{--control-kind:battle-action-ivory;display:flex;align-items:center;justify-content:center;padding:0 22px 0;line-height:1.15;background:none;border:0;border-image:none!important;min-height:46px;color:#29251e;text-shadow:none;transform:none!important}
.dock-actions #advance>span:not(.control-art-layer){position:relative;top:1px;line-height:1.15;margin:0;align-self:center}
/* A contained hero shrinks to available height; no internal lobby scrolling. */
.game-shell[data-scene=lobby] .lobby-topbar{left:calc(var(--safe-left) + var(--lobby-edge));right:calc(var(--safe-right) + var(--lobby-edge));top:calc(var(--safe-top) + 12px);--lobby-profile-size:56px;grid-template-rows:56px 38px;gap:8px;height:auto}
.game-shell[data-scene=lobby] .lobby-topbar>.icon-button{justify-self:end}
.game-shell[data-scene=lobby] .lobby-topbar>.currency-chips{grid-column:1/-1;justify-self:end;justify-content:flex-end;margin:0;width:auto;gap:8px;padding:0}
.game-shell[data-scene=lobby] .lobby-topbar .currency-chip{height:38px;min-height:38px}
.game-shell[data-scene=lobby] .lobby-pass-links{position:absolute;right:0;top:110px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:85px;margin:0}
.game-shell[data-scene=lobby] .lobby-pass-link{--control-kind:none;display:grid;grid-template-columns:30px auto;gap:4px;width:85px;min-height:36px;height:36px;padding:0;background:none!important;border:0;color:#4b3b23;text-shadow:0 1px 2px #fffa;box-shadow:none}
.game-shell[data-scene=lobby] .lobby-pass-link .lobby-pass-icon{width:30px;height:30px;margin:0;object-fit:contain}
.game-shell[data-scene=lobby] .lobby-pass-link strong{font:400 11px/1.2 var(--font-ui);translate:none}
.game-shell[data-scene=lobby] .lobby-contents-shortcut{--control-kind:none;position:absolute;left:4px;top:110px;display:flex;align-items:center;gap:4px;min-height:40px;padding:0 5px;background:none;color:#4b3b23;font-size:12px;border:0}
.game-shell[data-scene=lobby] .pvp-home.hero-home.deck-home{padding:calc(var(--safe-top) + 146px) calc(var(--safe-right) + var(--lobby-edge)) calc(var(--main-nav-height) + 12px) calc(var(--safe-left) + var(--lobby-edge));gap:8px;min-height:0}
.game-shell[data-scene=lobby] .pvp-home-contained .pvp-home-scroll{overflow:hidden;flex:1 1 0;display:flex;min-height:0}
.game-shell[data-scene=lobby] .pvp-home-contained.deck-home .hero-showcase{flex:1 1 0;min-height:0;max-height:none;width:min(100%,370px);padding:10px 0 5px;align-items:center;translate:none}
.game-shell[data-scene=lobby] .pvp-home.deck-home .hero-showcase>.hero-portrait{width:min(65cqw,calc(100cqh / 1.65),260px)!important;max-height:100%;justify-self:center;align-self:center;margin:0;translate:none}
.game-shell[data-scene=lobby] .pvp-home.deck-home .home-equipment{left:4%;bottom:2%;max-height:45%;translate:none}
.game-shell[data-scene=lobby] .pvp-home.deck-home .home-equipment>.game-card{width:min(23cqw,calc(100cqh / 2.3),86px);max-height:100%;min-width:0}
.game-shell[data-scene=lobby] .pvp-home-scroll .pvp-lobby{flex:none;max-width:430px}
.game-shell[data-scene=lobby] .pvp-home-scroll .pvp-deck-change{translate:none;min-height:40px;padding:0}
.game-shell[data-scene=lobby] .pvp-deck-name{font-size:clamp(18px,5cqw,25px);max-width:calc(100cqw - 70px)}
.game-shell[data-scene=lobby] .pvp-home-footer{display:flex;flex-direction:column;gap:8px;max-width:430px;margin:auto}
.game-shell[data-scene=lobby] .pvp-home-footer :is(.pvp-mode-tabs,.pvp-lobby-actions){margin:0;gap:8px}
.game-shell[data-scene=lobby] .pvp-home-footer .pvp-find-match{height:50px;min-height:50px;margin:0}
.game-shell[data-scene=lobby] .pvp-rank{min-height:64px;padding:0;grid-template-columns:58px 1fr;gap:8px}
.game-shell[data-scene=lobby] :is(.pvp-rank-art,.pvp-rank-inspect){width:58px;height:58px}
.game-shell[data-scene=lobby] .pvp-rank-foot{min-height:22px;padding:0;font-size:10px}
.game-shell[data-scene=lobby] .pvp-rank-next{font-size:10px}
.game-shell[data-scene=lobby] .pvp-rank-top{min-height:30px}
.game-shell[data-scene=lobby] .pvp-rules-button{width:32px;height:32px;flex-basis:32px}
@media(max-height:650px) and (orientation:portrait){
 :root{--main-nav-content:66px}
 .game-shell[data-scene=lobby] .lobby-topbar{top:calc(var(--safe-top) + 6px);--lobby-profile-size:44px;grid-template-rows:44px 34px;gap:6px}
 .game-shell[data-scene=lobby] .lobby-topbar .currency-chip{height:34px;min-height:34px}
 .game-shell[data-scene=lobby] .lobby-pass-links{top:90px;gap:4px}
 .game-shell[data-scene=lobby] .lobby-contents-shortcut{top:90px}
 .game-shell[data-scene=lobby] .pvp-home.hero-home.deck-home{padding-top:calc(var(--safe-top) + 124px);gap:4px}
 .game-shell[data-scene=lobby] .pvp-home-footer .pvp-find-match{height:44px;min-height:44px}
 .game-shell[data-scene=lobby] .pvp-mode-tab{min-height:38px}
 .game-shell[data-scene=lobby] .pvp-rank{min-height:48px;grid-template-columns:46px 1fr}
 .game-shell[data-scene=lobby] :is(.pvp-rank-art,.pvp-rank-inspect){width:46px;height:46px}
 .game-shell[data-scene=lobby] .pvp-rank-foot{min-height:18px}
}
@media(orientation:landscape){
 :root{--main-nav-content:60px}
 .game-shell{width:100dvw;max-width:none;max-height:none;--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-height:calc(100dvh - var(--safe-top) - var(--safe-bottom))}
 .mobile-nav-icon{width:27px;height:28px}.mobile-nav-tab[data-main-tab=battle] .mobile-nav-icon{width:46px;height:46px;margin-top:-15px}.mobile-nav-label{font-size:11px}
 .game-shell[data-scene=lobby] .lobby-topbar{--lobby-profile-size:44px;grid-template-rows:44px;top:calc(var(--safe-top) + 6px)}
 .game-shell[data-scene=lobby] .lobby-topbar>.currency-chips{position:absolute;right:58px;top:3px}
 .game-shell[data-scene=lobby] .lobby-pass-links{top:52px;gap:4px;z-index:2}
 .game-shell[data-scene=lobby] .lobby-contents-shortcut{top:50px;z-index:2}
 .game-shell[data-scene=lobby] .pvp-home.hero-home.deck-home{padding-top:calc(var(--safe-top) + 62px);padding-bottom:calc(var(--main-nav-height) + 8px);display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,1fr);grid-template-rows:minmax(0,1fr) auto;gap:4px 18px}
 .game-shell[data-scene=lobby] .pvp-home-contained .pvp-home-scroll{display:contents}
 .game-shell[data-scene=lobby] .pvp-home-contained.deck-home .hero-showcase{grid-column:1;grid-row:1/3;height:100%;padding-top:20px;width:100%}
 .game-shell[data-scene=lobby] .pvp-home-scroll .pvp-lobby{grid-column:2;align-self:end;padding-right:80px}
 .game-shell[data-scene=lobby] .pvp-home-footer{grid-column:2;grid-row:2;width:100%;max-width:none}
 .game-shell[data-scene=lobby] .pvp-deck-name{font-size:18px;max-width:100%}
 .game-shell[data-scene=lobby] .pvp-home-footer .pvp-find-match{height:44px;min-height:44px}
 .game-shell[data-scene=lobby] .pvp-mode-tab{min-height:36px}
 .game-shell[data-scene=lobby] .pvp-rank-foot{display:none}
 .game-shell[data-scene=lobby] .pvp-rank{grid-template-columns:38px 1fr;min-height:44px}
 .game-shell[data-scene=lobby] :is(.pvp-rank-art,.pvp-rank-inspect){width:38px;height:38px}
 .game-shell[data-scene=lobby] .pvp-tier-name{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.mobile-nav-focus,.mobile-nav-icon,.mobile-nav-tab{transition:none}}

#library-dialog.has-main-navigation.collection-panel #library-grid:not([data-view=bulk]){padding-bottom:12px!important}
#library-dialog.has-main-navigation .collection-footer{padding-bottom:12px!important}
/* Explicit tracks prevent intrinsic pack aspect ratios from growing the icon row. */
.mobile-nav-icon{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);flex:none}
.mobile-nav-icon>img{min-height:0;min-width:0;max-height:100%;max-width:100%;height:100%!important;width:100%!important}
.game-shell[data-scene=lobby] .pvp-rank-top{display:flex;gap:5px;height:30px;min-height:30px}
.game-shell[data-scene=lobby] .pvp-rank-points{margin:0;font-size:12px;grid-column:auto;grid-row:auto}
.game-shell[data-scene=lobby] .pvp-rules-button{margin-left:auto;order:3}
.game-shell[data-scene=lobby] .pvp-rank-meter{margin-top:2px}
.game-shell[data-scene=lobby] .pvp-rank-next{margin-top:3px;line-height:1.3}
.game-shell[data-scene=lobby] .pvp-rank-foot{min-height:26px;height:26px;display:flex}
.game-shell[data-scene=lobby] .pvp-standings{min-height:26px;height:26px;padding:0;font-size:10px}
@media(max-height:650px) and (orientation:portrait){
 .game-shell[data-scene=lobby] .pvp-home-contained .pvp-home-scroll{display:grid;grid-template-columns:44% minmax(0,1fr);align-items:end;gap:4px}
 .game-shell[data-scene=lobby] .pvp-home-contained.deck-home .hero-showcase{height:100%;min-height:0;padding:12px 0 6px;align-self:stretch}
 .game-shell[data-scene=lobby] .pvp-home.deck-home .hero-showcase>.hero-portrait{width:min(90cqw,calc(100cqh / 1.6),170px)!important}
 .game-shell[data-scene=lobby] .pvp-home-scroll .pvp-lobby{align-self:end;padding-bottom:6px}
 .game-shell[data-scene=lobby] .pvp-deck-change{min-height:34px;grid-template-columns:minmax(0,1fr) 25px}
 .game-shell[data-scene=lobby] .pvp-deck-name{grid-column:1;font-size:17px;max-width:100%}
 .game-shell[data-scene=lobby] .pvp-deck-exchange{grid-column:2;width:24px;height:24px;margin-left:0}
 .game-shell[data-scene=lobby] .pvp-deck-exchange svg{width:16px;height:16px}
 .game-shell[data-scene=lobby] .pvp-rank{grid-template-columns:28px minmax(0,1fr);gap:3px}
 .game-shell[data-scene=lobby] :is(.pvp-rank-art,.pvp-rank-inspect){width:28px;height:36px;min-height:36px}
 .game-shell[data-scene=lobby] .pvp-rank-top{flex-wrap:wrap;height:auto;gap:0 5px;position:relative;padding-right:20px}
 .game-shell[data-scene=lobby] .pvp-tier-name{font-size:12px;line-height:18px}
 .game-shell[data-scene=lobby] .pvp-rank-points{font-size:11px;line-height:18px}
 .game-shell[data-scene=lobby] .pvp-rules-button{position:absolute;right:-3px;top:0;width:24px;height:28px;min-height:28px;flex-basis:24px}
 .game-shell[data-scene=lobby] .pvp-rank-foot{height:auto;min-height:26px;flex-wrap:wrap;gap:0}
 .game-shell[data-scene=lobby] .pvp-home.deck-home .home-equipment{left:1%;bottom:8%}
 .game-shell[data-scene=lobby] .pvp-home.deck-home .home-equipment>.game-card{width:min(35cqw,52px)}
}
@media(orientation:landscape){
 .game-shell[data-scene=lobby] .pvp-home-scroll .pvp-lobby{padding-right:0;min-height:0;align-self:end}
 .game-shell[data-scene=lobby] .lobby-pass-links{position:fixed;top:calc(var(--safe-top) + 60px);right:calc(var(--safe-right) + var(--lobby-edge));display:flex;flex-direction:row;gap:10px;width:auto}
 .game-shell[data-scene=lobby] .lobby-pass-link{width:auto;min-height:28px;height:28px;grid-template-columns:24px auto}
 .game-shell[data-scene=lobby] .lobby-pass-link .lobby-pass-icon{width:24px;height:24px}
 .game-shell[data-scene=lobby] .pvp-home.hero-home.deck-home{padding-top:calc(var(--safe-top) + 90px);gap:3px 14px}
 .game-shell[data-scene=lobby] .pvp-home-scroll .pvp-deck-change{min-height:28px;height:28px}
 .game-shell[data-scene=lobby] .pvp-home-footer{gap:5px}
 .game-shell[data-scene=lobby] .pvp-home-footer .pvp-find-match{min-height:38px;height:38px}
 .game-shell[data-scene=lobby] .pvp-mode-tab{min-height:32px;height:32px}
 .game-shell[data-scene=lobby] .pvp-rank-foot{height:22px;min-height:22px}
 .game-shell[data-scene=lobby] .pvp-standings{height:22px;min-height:22px}
 .game-shell[data-scene=lobby] .pvp-rank{min-height:40px}
 .game-shell[data-scene=lobby] .pvp-rank-next{font-size:9px}
 .game-shell[data-scene=lobby] .pvp-rank-top{height:22px;min-height:22px}
}
@media(orientation:landscape){
 .game-shell[data-scene=lobby] .lobby-topbar>.currency-chips{grid-row:auto;grid-column:auto;inset:3px 58px auto auto}
 .game-shell[data-scene=lobby] .pvp-home-scroll .pvp-lobby{grid-row:1;grid-column:2}
 .game-shell[data-scene=lobby] .pvp-deck-exchange{width:26px;height:26px}
 .game-shell[data-scene=lobby] .pvp-deck-exchange svg{width:18px;height:18px}
}
@media(orientation:landscape) and (max-height:360px){
 .game-shell[data-scene=lobby] .pvp-home.hero-home.deck-home{padding-top:calc(var(--safe-top) + 76px);padding-bottom:calc(var(--main-nav-height) + 4px);gap:2px 12px}
 .game-shell[data-scene=lobby] .pvp-home-scroll .pvp-deck-change{height:24px;min-height:24px}
 .game-shell[data-scene=lobby] .pvp-deck-name{font-size:16px}
 .game-shell[data-scene=lobby] .pvp-rank{min-height:34px;grid-template-columns:28px minmax(0,1fr);gap:4px}
 .game-shell[data-scene=lobby] :is(.pvp-rank-art,.pvp-rank-inspect){width:28px;height:34px;min-height:34px}
 .game-shell[data-scene=lobby] .pvp-rank-top{height:20px;min-height:20px;gap:4px}
 .game-shell[data-scene=lobby] .pvp-tier-name{font-size:12px}
 .game-shell[data-scene=lobby] .pvp-rules-button{width:24px;height:24px;min-height:24px;flex-basis:24px}
 .game-shell[data-scene=lobby] .pvp-rank-meter{height:6px;margin-top:0}
 .game-shell[data-scene=lobby] .pvp-rank-next{font-size:9px;line-height:11px;margin-top:1px}
 .game-shell[data-scene=lobby] .pvp-rank-foot,.game-shell[data-scene=lobby] .pvp-standings{height:18px;min-height:18px;font-size:9px}
 .game-shell[data-scene=lobby] .pvp-home-footer{gap:4px}
 .game-shell[data-scene=lobby] .pvp-home-footer .pvp-find-match{height:36px;min-height:36px;font-size:16px}
 .game-shell[data-scene=lobby] .pvp-mode-tab{height:30px;min-height:30px;font-size:13px}
}

#library-dialog.has-main-navigation .collection-scroll{margin-bottom:0}

#deck-dialog.has-main-navigation{padding-bottom:var(--main-nav-height)!important;box-sizing:border-box}
#deck-dialog.has-main-navigation>.mobile-main-nav{position:fixed}
#toast[popover]{inset:auto auto calc(var(--safe-bottom,0px) + 110px) 50%;margin:0;width:max-content;max-width:calc(100vw - 32px);pointer-events:none}
#toast[popover]::backdrop{background:none;pointer-events:none}

.match-history-list{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}
.match-history-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #aa854533}
.match-history-entry>div{display:flex;flex-direction:column;gap:4px}.match-history-entry small{font-size:11px;color:var(--kit-quiet-ink,#706b63)}
.match-history-entry>button{width:auto;min-width:70px;min-height:44px;margin:0}
.match-history-status{font-size:13px;text-align:center;padding:24px 12px}

@media(max-height:650px){.mobile-main-nav>.mobile-nav-tab{padding:0 0 12px}}

/* Keep the collection's fanned book emblem distinct from a squared play deck. */
.mobile-nav-icon.mobile-nav-deck-stack{position:relative;width:32px;height:34px}
.mobile-nav-icon.mobile-nav-deck-stack>img{position:absolute;left:calc(2px + var(--stack-index)*3px);top:calc(1px + var(--stack-index)*2px);width:20px!important;height:30px!important;max-width:none;max-height:none;object-fit:contain;border-radius:2px;box-shadow:-1px -1px 0 #cfbb8b,0 1px 2px #0008}

/* The tier owns the left column; progress and season details share the right.
   The existing 90/80px rank region and all outside lobby anchors stay fixed. */
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-mode-panel:has(.pvp-rank:not([hidden])){display:grid;grid-template-columns:86px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 24px;column-gap:10px;row-gap:2px;height:90px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank:not([hidden]){display:contents}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank:before,html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank:after{display:none}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-inspect{grid-column:1;grid-row:1/3;align-self:center;justify-self:center;width:86px;height:86px;min-height:44px;margin:0;padding:0}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-art{display:block;width:86px;height:86px;min-height:0}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-copy{grid-column:2;grid-row:1;align-self:end;min-width:0}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-top{position:relative;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;height:26px;min-height:26px;padding-right:32px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-tier-name{font-size:15px;line-height:20px;white-space:nowrap;letter-spacing:0}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-points{font-size:11px;line-height:20px;margin:0}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rules-button{position:absolute;inset:-8px -6px auto auto;width:44px;height:44px;min-height:44px;margin:0}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-meter{height:6px;margin-top:1px;padding:0;border-radius:4px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-next{font-size:10px;line-height:15px;min-height:15px;margin-top:3px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-foot{grid-column:2;grid-row:2;display:flex;flex-wrap:nowrap;align-items:center;height:24px;min-height:24px;padding:0;gap:6px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-standings{height:24px;min-height:24px;margin-left:auto;gap:4px;font-size:10px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-standing-title{font-size:10px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-standing-value{font-size:11px}
html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-season{font-size:10px;letter-spacing:0}
@media(max-height:650px){
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-mode-panel:has(.pvp-rank:not([hidden])){height:80px;grid-template-columns:72px minmax(0,1fr);column-gap:8px;grid-template-rows:minmax(0,1fr) 22px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer :is(.pvp-rank-inspect,.pvp-rank-art){width:72px;height:72px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-tier-name{font-size:12px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-points{font-size:10px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-top{gap:4px;padding-right:25px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rules-button{right:-9px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-next{font-size:9px}
 html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-rank-foot,html body .game-shell[data-scene=lobby] .pvp-home-footer .pvp-standings{height:22px;min-height:22px}
}

/* Small tier sprites carry generous native margins. Enlarge inside the existing
   pass icon slot without moving its label or the surrounding utility buttons. */
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem{--pass-rank-scale:1.12}
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem[data-tier=bronze]{--pass-rank-scale:1.85}
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem[data-tier=silver]{--pass-rank-scale:1.65}
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem[data-tier=gold]{--pass-rank-scale:1.5}
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem[data-tier=platinum]{--pass-rank-scale:1.35}
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem[data-tier=emerald]{--pass-rank-scale:1.2}
html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem-ornament,html body .game-shell[data-scene=lobby] .lobby-pass-links [data-open-pass=rank] .rank-emblem-image{scale:var(--pass-rank-scale);transform-origin:50% 50%}

/* R197: root tabs own navigation; child card details retain their own close. */
#library-dialog.collection-panel>.dialog-close{display:none!important}
.booster-room>.game-topbar{justify-content:flex-end}
.mobile-main-nav{view-transition-name:main-dock}
html[data-main-tab-transition=true]::view-transition-group(root){animation-duration:220ms}
html[data-main-tab-transition=true]::view-transition-old(root){animation:tab-cross-out 220ms ease-in-out both;mix-blend-mode:plus-lighter}
html[data-main-tab-transition=true]::view-transition-new(root){animation:tab-cross-in 220ms ease-in-out both;mix-blend-mode:plus-lighter}
html[data-main-tab-transition=true]::view-transition-group(main-dock){animation:none}
html[data-main-tab-transition=true]::view-transition-old(main-dock){animation:none;opacity:0}
html[data-main-tab-transition=true]::view-transition-new(main-dock){animation:none;opacity:1}
@keyframes tab-cross-in{from{opacity:0}to{opacity:1}}
@keyframes tab-cross-out{from{opacity:1}to{opacity:0}}
.tab-edge-rail{position:fixed;top:calc(var(--safe-top) + 12px);bottom:var(--main-nav-height);width:clamp(32px,10vw,48px);touch-action:pan-y;pointer-events:auto;z-index:2}
.tab-edge-rail[data-edge=left]{left:0}.tab-edge-rail[data-edge=right]{right:0}
.tab-edge-rail[hidden]{display:none!important}
.tab-edge-glow{position:fixed;top:calc(var(--edge-y,50vh) - 110px);width:calc(12px + 28px * var(--edge-progress,0));height:220px;pointer-events:none;opacity:0;filter:blur(3px);transition:opacity 140ms ease;background:radial-gradient(ellipse at 0 50%,#f4e2bcb3 0%,#c7a66870 30%,#24394120 65%,transparent 75%)}
[data-edge=left]>.tab-edge-glow{left:-7px}[data-edge=right]>.tab-edge-glow{right:-7px;transform:scaleX(-1)}
.is-dragging>.tab-edge-glow{opacity:calc(.25 + .55 * var(--edge-progress,0))}.is-ready>.tab-edge-glow{filter:blur(2px)}
@media(prefers-reduced-motion:reduce){.tab-edge-glow{transition:none}html[data-main-tab-transition=true]::view-transition-group(*){animation-duration:0s}}
/* Optical heights: painted 49/64 shop and 52/64 library glyphs match the
   full-height pack/stack, rather than matching their empty SVG canvases. */
.mobile-nav-tab[data-main-tab=shop] .mobile-nav-icon>svg{transform:scale(1.31)}
.mobile-nav-tab[data-main-tab=library] .mobile-nav-icon>svg{transform:scale(1.23)}

.edge-navigation-layer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;pointer-events:none;overflow:visible}
.edge-navigation-layer[hidden]{display:none!important}
