/* v1 release: shared art sizing and fixed public-information inspection. */
.pixel-icon{display:inline-block;width:1em;height:1em;flex-shrink:0;vertical-align:middle;overflow:visible;image-rendering:pixelated}
.modifier-entry summary>b>.pixel-icon{width:16px;height:16px;margin-right:4px}
.slot-icon>.pixel-icon{width:24px;height:24px}
.character-power strong>.pixel-icon{width:18px;height:18px}
.ability-mark>.pixel-icon{width:12px;height:12px}
.suit-key>.pixel-icon{width:16px;height:16px}
.ledger-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:12px 0}
.ledger-nav button{min-height:36px;padding:5px;font-size:10px;overflow:hidden;text-overflow:ellipsis}
.ledger-nav button[aria-pressed=true]{border-color:var(--p-accent);color:var(--p-accent);background:#152a39}
.public-ledger .river-gallery{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:8px 0;margin:0}
.public-ledger .river-gallery .tile.small{width:100%;height:auto;aspect-ratio:4 / 5;max-width:52px;min-width:0}
.public-ledger .river-gallery .tile.small .num{font-size:23px}.public-ledger .river-gallery .tile.small .symbol{font-size:12px}
.public-ledger .river-gallery .tile.small .dragon-logo{width:80%;height:80%}
.ledger-melds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ledger-melds>section{min-width:0;border:1px solid var(--p-border);padding:9px}
.ledger-melds h3{font-size:11px;margin:0 0 8px}.ledger-melds p{font-size:10px;line-height:1.4}
.ledger-melds .guide-tiles{display:flex;flex-wrap:nowrap;gap:3px;margin:4px 0}
.ledger-melds .tile{width:min(44px,22%);height:auto;aspect-ratio:4 / 5;min-width:0;min-height:0;padding:2px;overflow:hidden}.ledger-melds .tile .num{font-size:24px}.ledger-melds .tile .symbol{font-size:12px}
.discpool,.rival-meld,#ownMelds:not(:empty){cursor:zoom-in}.discpool:focus-visible,.rival-meld:focus-visible{outline:2px solid #ffd66b;outline-offset:3px}
.settlement-capital:has(>[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:720px){
 .public-ledger .river-gallery{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
 .public-ledger .river-gallery .tile.small .num{font-size:22px}
 .public-ledger .modal-header h2{font-size:22px}.public-ledger>p{font-size:10px!important;line-height:1.4!important}
 .ledger-melds{grid-template-columns:1fr;gap:6px}.ledger-melds>section{display:grid;grid-template-columns:60px minmax(0,1fr);gap:4px;align-items:center;padding:6px}.ledger-melds h3{margin:0;font-size:10px}.ledger-melds p{grid-column:1;margin:0;font-size:8px!important;line-height:1.2!important}.ledger-melds .guide-tiles{grid-column:2;grid-row:1 / span 2;justify-content:flex-start;margin:0}.ledger-melds .tile{width:44px;flex:0 0 44px}.ledger-melds .tile .num{font-size:26px;line-height:1}.ledger-melds .tile .symbol{font-size:12px;margin-top:2px;line-height:1}
 .character-roster:has([data-character=zenith]){grid-template-columns:repeat(4,minmax(0,1fr))}
 .character-roster:has([data-character=zenith]) button{min-height:36px;padding:4px 2px}.character-roster:has([data-character=zenith]) strong{font-size:10px}
}
@media(max-height:520px) and (min-width:600px){.public-ledger .modal-header{padding-bottom:4px}.public-ledger .river-gallery{grid-template-columns:repeat(12,minmax(0,1fr));gap:3px}.public-ledger .river-gallery .tile.small{max-width:35px}.public-ledger .river-gallery .tile.small .num{font-size:18px}.public-ledger .ledger-nav{margin:5px 0}}

html[data-claiming=true] .claim-embargo{visibility:hidden}
@media(max-height:520px) and (min-width:600px){
 #modal:has(.public-ledger) .modal-inner{padding:12px}
 .public-ledger .modal-header h2{font-size:22px;line-height:1.1;margin:3px 0}
 .public-ledger .modal-header .eyebrow{font-size:9px}
 .public-ledger .river-gallery{padding:4px 0}
 .public-ledger>p{font-size:9px!important;line-height:1.3!important;margin:6px 0!important}
 .ledger-melds p{margin:4px 0}.ledger-melds>section{padding:6px}
}
/* Character dossier: one roster row leaves a real, content-sized biography. */
@media(min-width:721px) and (min-height:551px){
 .character-select .character-roster{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
 .character-select .character-roster>button{padding:8px 3px;gap:4px}
 .character-select .character-roster canvas{width:48px;height:56px}
 .character-select .character-roster strong{font-size:12px}
 .character-select .character-profile{flex:1 0 auto;min-height:195px;box-sizing:border-box;padding:16px;gap:20px}
 .character-select .character-profile>canvas{width:144px;height:168px}
}
.character-select .character-profile>div{min-width:0;overflow-wrap:anywhere}
.character-select .character-profile p,.character-select .character-profile blockquote{line-height:1.4}
.character-select .character-profile h2{line-height:1.1}
.character-select .character-power details[open]{max-height:none;overflow:visible}
@media(max-width:720px) and (min-height:551px){
 .character-select .character-profile{flex:1 0 auto;min-height:151px;box-sizing:border-box;align-items:center}
 .character-select .character-profile>canvas{width:72px;height:84px}
 .character-select .character-profile p{font-size:10px!important;line-height:1.35!important;margin:4px 0!important}
 .character-select .character-profile h2{font-size:24px;margin:4px 0}
 .character-select .character-profile span{font-size:7px;letter-spacing:.06em}
 .character-select .character-power p{font-size:10px!important}
 .character-select .character-power{padding:6px 8px}
}
@media(max-height:550px){
 .character-select .character-profile{min-height:min-content;align-items:center}
 .character-select .character-profile>canvas{width:60px;height:70px}
 .character-select .character-profile .character-build{display:none}
 .character-select .character-roster:has([data-character=zenith]){grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* Expanded rules borrow space from flavour copy instead of introducing a scrollbar. */
.character-select:has(.character-power details[open]) .character-profile p,
.character-select:has(.character-power details[open]) .character-profile blockquote{display:none}
.character-select:has(.character-power details[open]) .character-profile{min-height:0;flex:1 1 auto}
@media(max-width:720px){.character-select:has(.character-power details[open]) .character-profile{padding:6px}.character-select:has(.character-power details[open]) .character-profile>canvas{width:48px;height:56px}}
/* CEO drone: clip only the holographic screen, never the timer or exposed sets. */
.ceo-drone{position:relative;width:44px;height:34px;flex-shrink:0;--drone-colour:#22e8ef;pointer-events:none;isolation:isolate}
.drone-shell{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;shape-rendering:crispEdges}
.drone-armour{fill:#171e35;stroke:#526078;stroke-width:1}.drone-trim{fill:#090f22;stroke:var(--drone-colour);stroke-width:1}.drone-antenna{fill:none;stroke:var(--drone-colour);stroke-width:2}.drone-vent{fill:#657489}.drone-light,.drone-thrust{fill:var(--drone-colour)}
.drone-screen{position:absolute;left:17%;top:27%;width:66%;height:40%;overflow:hidden;contain:paint;background:#080e21;box-shadow:inset 0 0 5px var(--drone-colour)}
#runners .runner .ceo-drone .portrait{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%;transform:none;object-fit:contain;object-position:center;image-rendering:pixelated;filter:none;z-index:auto}
.drone-scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0 3px,#6eeaff19 3px 4px);box-shadow:inset 0 0 3px var(--drone-colour)}
.runner.ceo-ready .ceo-drone{--drone-colour:#ff476b!important}.runner.ceo-calling .drone-screen{animation:drone-signal .6s ease-out 1}.drone-thrust{animation:drone-engine 3s ease-in-out infinite}
@keyframes drone-engine{0%,100%{opacity:.45}50%{opacity:.9}}@keyframes drone-signal{0%,35%{filter:brightness(1.8)}100%{filter:brightness(1)}}
@media(min-width:721px){
 :root{--ceo-card-w:190px;--ceo-card-h:92px}
 #runners .runner{display:grid;width:var(--ceo-card-w);height:var(--ceo-card-h);grid-template-columns:80px minmax(0,1fr);gap:6px}
 #runners .runner>.ceo-drone{width:80px;height:60px}
 #runners .runner .drone-screen{left:17%;top:22%;width:66%;height:52%}
}
@media(min-width:721px) and (max-height:820px){
 :root{--ceo-card-h:84px}
 #runners .runner>.ceo-drone{height:54px}
}
@media(min-width:721px) and (max-height:600px){
 #runners .runner{grid-template-columns:60px minmax(0,1fr)}
 #runners .runner>.ceo-drone{width:60px;height:42px}
}
@media(max-width:720px){
 #runners .runner,#runners .runner:nth-child(2),#runners .runner:nth-child(4){display:block;width:72px;height:68px;padding:0;isolation:isolate;background:#0a1020;border-radius:3px}
 #runners .runner>.ceo-drone{position:absolute;left:0;top:8px;width:70px;height:48px;z-index:0}
 #runners .runner .drone-screen{left:17%;top:22%;width:66%;height:49%}
 #runners .runner>div:not(.ceo-drone):not(.rival-melds):not(.ceo-turn):not(.ceo-call-anchor):not(.ceo-hand):not(.ceo-winning-hand){position:static;width:100%;height:100%;min-width:0}
 #runners .runner .runner-name{position:absolute;left:0;right:0;top:0;margin:0;padding:0 1px;height:9px;font-size:7px;line-height:9px;text-align:center;display:block;white-space:nowrap;letter-spacing:0;background:#080e21;z-index:2}
 #runners .runner .runner-sub{position:absolute;left:0;right:0;bottom:12px;font-size:5px;line-height:6px;text-align:center;white-space:nowrap;background:#080e21;z-index:2}
 #runners .runner .runner-score{position:absolute;left:0;right:0;bottom:0;margin:0;padding:1px 0 2px;font-size:10px;line-height:9px;text-align:center;background:#080e21;color:#f2f0ff;letter-spacing:0;z-index:2}
 #runners .runner.ceo-ready .ready-tag{top:42px!important;bottom:auto!important;left:0!important;right:0!important;width:100%!important;max-width:100%!important;height:7px!important;min-height:0!important;transform:none!important;line-height:7px!important;font-size:6px!important;border:0!important;padding:0!important;box-sizing:border-box;background:#80172e;z-index:3;letter-spacing:.04em}
}
@media(prefers-reduced-motion:reduce){.drone-thrust,.runner.ceo-calling .drone-screen{animation:none}}

@media(max-width:720px) and (orientation:portrait){main{--river-reserve:200px}main:has(.discpool .tile:nth-child(25)){--river-reserve:212px}.own-melds{right:calc(50% + 43px)}}

#runners .runner .ceo-drone .portrait{animation:none!important;transform:none!important}
.ceo-drone{animation:drone-hover 4.5s ease-in-out infinite}
@keyframes drone-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){.ceo-drone{animation:none}}

/* Office scenes belong to selection only; table drones retain compact avatars. */
.character-select .character-profile{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;min-height:0;flex:1 1 0}
.character-select .character-profile>#characterHero{width:100%;height:100%;max-height:260px;min-height:0;object-fit:contain;aspect-ratio:3 / 2;filter:none;image-rendering:pixelated}
@media(max-width:720px) and (min-height:551px){
 .character-select .character-profile{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:6px;padding:8px;min-height:0;flex:1 1 0;align-items:center}
 .character-select .character-profile>#characterHero{width:100%;height:100%;max-height:none;min-height:0;justify-self:center}
 .character-select .character-profile h2{font-size:22px;margin:2px 0}.character-select .character-profile b{font-size:10px}.character-select .character-profile p{font-size:9px!important;margin:3px 0!important}
 .character-select .character-profile .character-build{display:none}
 .character-select:has(.character-power details[open]) .character-profile{grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:6px}
 .character-select:has(.character-power details[open]) .character-profile>#characterHero{width:100%;height:100%}
}
@media(max-height:550px){.character-select .character-profile{grid-template-columns:1fr;grid-template-rows:minmax(50px,1fr) auto;gap:4px}.character-select .character-profile>#characterHero{width:100%;height:100%;max-height:130px}.character-select .character-profile p{display:none}}
@media(max-height:550px){.character-select .character-power:has(details[open])>div>p{display:none}.character-select:has(.character-power details[open]) .character-profile{grid-template-rows:minmax(0,1fr) auto}.character-select:has(.character-power details[open]) .character-profile>#characterHero{max-height:70px}}

/* Reserve real space for the hand toolbar and raised holograms in windowed play. */
#credits[hidden]{display:none!important}
@media(min-width:721px){
 .game-column{grid-template-rows:minmax(0,1fr) calc(var(--tile-h) + 108px)}
 html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) var(--coach-height,48px) calc(var(--tile-h) + 108px)}
 .hand-panel{height:auto;grid-template-rows:32px minmax(0,1fr) 42px;padding:6px 18px 7px}
 .hand-panel .hand-top{min-height:32px;align-items:center}
 .hand-panel .hand-tools{align-self:center}
 .hand-panel .hand{min-height:0;align-self:stretch;padding-top:12px;padding-bottom:3px}
}

/* Suit glyphs keep a clean silhouette at fractional browser scaling. */
.symbol>.suit-icon{shape-rendering:geometricPrecision;filter:none;overflow:visible;flex-shrink:0}

/* Keep the portrait rail aligned with the actual hand-panel height. */
@media(min-width:721px){
 :root{--coach-hand-height:calc(var(--tile-h) + 108px)}
 .left-panel{bottom:calc(var(--coach-hand-height) + var(--competition-height) + 20px)}
 html[data-instructions=true] .left-panel{bottom:calc(var(--coach-hand-height) + var(--coach-height) + var(--competition-height) + 20px)}
 .table{--river-units:13.92;--river-tile:min(24px,2cqw,max(5px,calc((100cqh - 284px)/var(--river-units))))}
 .table:has(.discpool .tile:nth-child(19)){--river-units:16.56}
 .table:has(.discpool .tile:nth-child(25)){--river-units:19.2}
 .table:has(.discpool .tile:nth-child(31)){--river-units:21.84}
 .table:has(.discpool .tile:nth-child(37)){--river-units:24.48}
}
/* River numbers and suit marks scale together inside their physical tile. */
.table .discpool .tile.small{padding:0!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:0;overflow:hidden;min-height:0}
.table .discpool .tile.small .num{font-size:calc(var(--river-tile)*.70)!important;line-height:1!important;letter-spacing:0;margin:0;flex:0 0 auto;max-width:100%}
.table .discpool .tile.small .symbol{font-size:calc(var(--river-tile)*.32)!important;line-height:1!important;margin:0;flex:0 0 auto}
@media(min-width:721px) and (max-height:600px){
 :root{--ceo-card-h:60px}
 #runners .runner{height:60px;padding:3px;gap:4px}
 #runners .runner>.ceo-drone{height:36px}
 #runners .runner .runner-name{font-size:9px;margin:0}
 #runners .runner .runner-sub{font-size:7px;line-height:1}
 #runners .runner .runner-score{font-size:11px;margin-top:2px}
 .table{--river-tile:min(18px,2cqw,max(4px,calc((100cqh - 224px)/var(--river-units))))}
}
@media(max-width:720px){#runners .runner.you{bottom:13px}}

.table{--river-cy:calc(50% + (var(--river-height) + 2px)*var(--river-row-offset,0))}
@media(min-width:721px) and (max-height:600px){
 :root{--coach-hand-height:calc(var(--tile-h) + 84px);--coach-height:24px}
 .game-column{grid-template-rows:minmax(0,1fr) var(--coach-hand-height)}
 html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) var(--coach-height) var(--coach-hand-height)}
 .hand-panel{grid-template-rows:26px minmax(0,1fr) 30px;padding:3px 12px}
 .hand-panel .hand-top{min-height:26px}
 .actions button{min-height:28px;padding:4px 8px;font-size:10px}
 .coach-bar{padding:2px 8px;min-height:0;gap:8px}
 .coach-bar strong{display:none}.coach-bar p{margin:0;font-size:9px;line-height:1.2}
 .coach-bar button{min-height:20px;padding:2px 5px;font-size:9px}
}

/* Actions share the hand header; the former bottom action strip becomes table space. */
.hand-panel{grid-template-areas:"label tools actions" "hand hand hand";grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:calc(32px + var(--hand-extra-controls,0px)) minmax(0,1fr);column-gap:10px}
.hand-top,.hand-panel>.actions{display:contents}
.hand-top>div:first-child{grid-area:label;align-self:center;min-width:0}
.hand-tools{grid-area:tools;align-self:center}
#hand{grid-area:hand;min-width:0}
#actions{grid-area:actions;align-self:center;justify-self:end;display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;max-width:45vw}
#actions button{min-height:30px;padding:5px 10px;white-space:nowrap}
.hand-panel>.actions>p{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:721px){
 :root{--coach-hand-height:calc(var(--tile-h) + 64px + var(--hand-extra-controls,0px))}
 .game-column{grid-template-rows:minmax(0,1fr) var(--coach-hand-height)}
 html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) var(--coach-height) var(--coach-hand-height)}
 .hand-panel{height:auto;grid-template-rows:calc(32px + var(--hand-extra-controls,0px)) minmax(0,1fr);padding:5px 18px 7px}
}
.table{--river-cy:calc(50% + var(--river-seat-shift,0px) + (var(--river-height) + 2px)*var(--river-row-offset,0))}
@media(min-width:721px) and (max-height:600px){
 .hand-panel{grid-template-rows:calc(26px + var(--hand-extra-controls,0px)) minmax(0,1fr);padding:3px 12px 6px}
}
@media(max-width:720px) and (orientation:portrait){
 :root{--mobile-hand-h:calc(var(--mobile-row-h)*2 + 62px + var(--hand-extra-controls,0px))}
 .hand-panel{height:var(--mobile-hand-h);grid-template-areas:"label label actions" "tools tools actions" "hand hand hand";grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:16px calc(28px + var(--hand-extra-controls,0px)) minmax(0,1fr);column-gap:4px;padding:3px 6px}
 .hand-panel .hand-top{min-height:0}
 .hand-panel .hand-tools{justify-self:start;align-self:center}
 #actions{grid-row:1 / span 2;max-width:43vw}
 #actions button{min-height:30px;font-size:9px;padding:4px 7px}
}

@media(max-width:720px) and (orientation:portrait){
 html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) 28px var(--mobile-hand-h)}
 html[data-instructions=true] .left-panel{bottom:calc(var(--mobile-hand-h) + 50px)}
 html[data-instructions=true] .coach-bar{position:static;inset:auto;width:auto;height:28px;min-height:0;padding:2px 5px;gap:4px;overflow:hidden}
 html[data-instructions=true] .coach-bar p{font-size:8px;line-height:1.15;margin:0}
 html[data-instructions=true] .coach-bar button{min-height:22px;height:22px;font-size:8px;padding:2px 4px}
}

:root{--hand-extra-controls:0px}
@media(min-width:721px){:root:has(#actions button:nth-child(3)){--hand-extra-controls:28px}}
@media(max-width:720px){:root:has(#actions button:nth-child(2)){--hand-extra-controls:28px}}

/* Concealed hands belong to every rival panel, never floating over the rivers. */
.seat:empty,.seat:has(.back){display:none!important}
.seat:has(.seat-flip){display:flex!important}
.ceo-hand{position:absolute;left:5px;right:5px;bottom:3px;height:10px;display:flex;justify-content:center;align-items:center;gap:2px;pointer-events:none;z-index:2;overflow:hidden}
#runners .ceo-hand .back{display:block;width:8px;max-width:8px;min-width:0;height:10px;flex:0 1 8px;border:1px solid var(--p-secondary);border-bottom-width:2px;box-shadow:none;background:var(--p-core)}
#runners .ceo-hand .back:after{content:none}
@media(min-width:721px){
 #runners .runner:has(.ceo-hand){padding-top:3px;padding-bottom:17px}
}
@media(min-width:721px) and (max-height:600px){
 #runners .runner:has(.ceo-hand){padding-top:2px;padding-bottom:12px}
 .ceo-hand{bottom:2px;height:7px;gap:2px}
 #runners .ceo-hand .back{height:7px;width:7px;max-width:7px}
}
@media(max-width:720px){
 #runners .runner,#runners .runner:nth-child(2),#runners .runner:nth-child(4){height:78px}
 #runners .runner:has(.ceo-hand) .runner-sub{bottom:20px}
 #runners .runner:has(.ceo-hand) .runner-score{bottom:8px}
 .ceo-hand{left:3px;right:3px;bottom:1px;height:6px;gap:1px}
 #runners .ceo-hand .back{width:4px;max-width:4px;height:6px;flex:0 1 4px;border-bottom-width:1px}
}
@media(max-width:720px) and (orientation:portrait){
 .table,.left-panel{--river-tile:min(24px,calc((100cqw - var(--river-reserve))/var(--river-units)),calc((100cqh - 174px)/var(--river-units)))}
}
.runner.table-winner .ceo-hand{visibility:hidden}

@media(max-width:720px) and (orientation:portrait){main{--river-reserve:220px}main:has(.discpool .tile:nth-child(25)){--river-reserve:232px}}
@media(min-width:721px){
 #runners .runner:has(.ceo-hand) .ready-tag{bottom:16px!important}
}
@media(min-width:721px) and (max-height:600px){
 #runners .runner:has(.ceo-hand) .ready-tag{bottom:11px!important}
}
/* Emotes are contained speech bubbles on the drone screen, not obsolete portrait overlays. */
#runners .runner:has(.ceo-expression) .ceo-drone{visibility:hidden}
#runners .runner:has(.ceo-expression) .ceo-call-anchor{display:block;visibility:visible;left:6px!important;right:auto!important;top:4px!important;bottom:auto!important;transform:none;width:78px;max-width:78px;height:54px;z-index:6}
#runners .runner .ceo-expression{box-sizing:border-box;width:100%;height:100%;padding:3px;display:flex;flex-direction:column;gap:2px;background:#10172cf5;border:1px solid var(--p-accent);border-radius:5px;color:var(--p-accent);box-shadow:0 0 8px #0009}
#runners .runner .ceo-expression svg{display:block;width:28px;height:28px;flex:0 0 28px}
#runners .runner .ceo-expression strong{display:block;font-size:8px;line-height:1.1;letter-spacing:0;text-align:center}
@media(min-width:721px) and (max-height:600px){
 #runners .runner:has(.ceo-expression) .ceo-call-anchor{left:3px!important;top:2px!important;width:58px;max-width:58px;height:36px}
 #runners .runner .ceo-expression{gap:0;padding:1px}
 #runners .runner .ceo-expression svg{width:21px;height:21px;flex-basis:21px}
 #runners .runner .ceo-expression strong{font-size:7px}
}
@media(max-width:720px){
 #runners .runner:has(.ceo-expression) .ceo-call-anchor{left:3px!important;top:10px!important;width:64px;max-width:64px;height:32px}
 #runners .runner .ceo-expression{flex-direction:row;padding:2px;gap:3px}
 #runners .runner .ceo-expression svg{width:23px;height:23px;flex:0 0 23px}
 #runners .runner .ceo-expression strong{font-size:7px;overflow-wrap:normal}
}
/* Reveal the north winner above a lower settlement preview. */
.table-reveal{top:62%;max-height:calc(100% - 100px);box-sizing:border-box}
.table:has(.table-reveal:not([hidden])[data-winner="2"]) #seat2{visibility:visible!important;display:flex!important;position:absolute;left:50%;top:105px;bottom:auto;transform:translateX(-50%);gap:2px;z-index:13;flex-wrap:nowrap;width:max-content;max-width:94%}
.table #seat2 .seat-flip>.tile.small{width:22px;height:30px}
.table #seat2 .seat-flip .num{font-size:16px}.table #seat2 .seat-flip .symbol{font-size:8px}
@media(max-height:600px) and (min-width:721px){.table:has(.table-reveal:not([hidden])[data-winner="2"]) #seat2{top:72px}.table-reveal{top:66%;padding:6px}.table-reveal .winner-dialogue{display:none}.table-reveal .table-winner-title{margin:0}.table-reveal .reveal-portfolio{padding-bottom:6px}}
@media(max-width:720px){.table:has(.table-reveal:not([hidden])[data-winner="2"]) #seat2{top:95px}.table #seat2 .seat-flip>.tile.small{width:18px;height:25px}.table #seat2 .seat-flip .num{font-size:14px}.table-reveal{top:62%}}
/* Balance long, asymmetric exhaustive-draw rivers around both axes. */
.table{--river-cx:calc(50% + (var(--river-height) + 2px)*var(--river-column-offset,0))}
.table .discpool.p0{left:calc(var(--river-cx) - var(--river-span)/2)!important}
.table .discpool.p1{left:calc(var(--river-cx) - var(--river-edge))!important}
.table .discpool.p2{left:calc(var(--river-cx) + var(--river-span)/2)!important}
.table .discpool.p3{left:calc(var(--river-cx) + var(--river-edge))!important}
.table .hub{left:var(--river-cx)}
.table-reveal[data-winner="2"]{top:145px;bottom:8px;transform:translateX(-50%);max-height:none;padding:8px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.table-reveal[data-winner="2"] .table-winner-title{margin:0;gap:6px}
.table-reveal[data-winner="2"] .table-winner-title canvas{width:32px;height:38px}
.table-reveal[data-winner="2"] .winner-dialogue{font-size:10px;margin:0}
.table-reveal[data-winner="2"] .signature-spotlight{font-size:9px;margin:3px 0}
.table-reveal[data-winner="2"] .reveal-portfolio{margin:0;padding:4px 0;gap:6px;flex-wrap:wrap}
.table-reveal[data-winner="2"] .reveal-position>.tile{width:30px;height:42px}
.table-reveal[data-winner="2"] .reveal-position .num{font-size:21px}
@media(min-width:721px) and (max-height:600px){
 .table-reveal[data-winner="2"]{top:112px;gap:1px;padding:3px}
 .table-reveal[data-winner="2"] .table-winner-title canvas,.table-reveal[data-winner="2"] .signature-spotlight{display:none}
 .table-reveal[data-winner="2"] .table-winner-title strong{font-size:16px}
 .table-reveal[data-winner="2"] .table-winner-title span{font-size:7px}
 .table-reveal[data-winner="2"] .reveal-position>.tile{width:22px;height:30px}
 .table-reveal[data-winner="2"] .reveal-position .num{font-size:16px}
 .table-reveal[data-winner="2"] button{min-height:24px;padding:3px;font-size:8px}
}
@media(max-width:720px){.table-reveal[data-winner="2"]{top:133px}.table-reveal[data-winner="2"] .reveal-position>.tile{width:22px;height:31px}.table-reveal[data-winner="2"] .reveal-position .num{font-size:16px}.table-reveal[data-winner="2"] .table-winner-title strong{font-size:19px}.table-reveal[data-winner="2"] .winner-dialogue{display:none}}
.table-reveal[hidden]{display:none!important}
#runners .runner:has(.ceo-expression) .ceo-call-anchor{width:78px!important;max-width:78px!important;height:54px!important;min-height:0!important;box-sizing:border-box}
@media(min-width:721px) and (max-height:600px){#runners .runner:has(.ceo-expression) .ceo-call-anchor{width:58px!important;max-width:58px!important;height:36px!important}}
@media(max-width:720px){#runners .runner:has(.ceo-expression) .ceo-call-anchor{width:64px!important;max-width:64px!important;height:32px!important}}
/* Side winners reveal between their own panel and the existing exposed-set dock. */
.ceo-winning-hand[hidden]{display:none!important}
.ceo-winning-hand{position:absolute;display:grid;grid-template-columns:repeat(2,15px);gap:2px;top:50%;transform:translateY(-50%);width:max-content;z-index:14;pointer-events:none}
.runner[data-ceo="1"] .ceo-winning-hand{left:calc(100% + 4px)}
.runner[data-ceo="3"] .ceo-winning-hand{right:calc(100% + 4px)}
#runners .ceo-winning-hand .tile.small{width:15px;height:21px;padding:0;overflow:hidden;min-height:0}
#runners .ceo-winning-hand .num{font-size:11px;line-height:1}
#runners .ceo-winning-hand .symbol{font-size:6px;line-height:1;margin:0}
#runners .ceo-winning-hand .dragon-logo{width:13px;height:18px}
html[data-revealing=true]:has(.table-reveal[data-winner="1"]:not([hidden]),.table-reveal[data-winner="3"]:not([hidden])) #runners{z-index:14}
@media(min-width:721px){
 .table-reveal:is([data-winner="1"],[data-winner="3"]){width:min(780px,calc(100% - 2*(var(--ceo-inset) + var(--ceo-card-w) + 44px)))}
}
@media(max-width:720px){
 .ceo-winning-hand{grid-template-columns:repeat(7,8px);gap:1px;top:calc(100% + 2px);transform:none;left:3px!important;right:auto!important}
 #runners .ceo-winning-hand .tile.small{width:8px;height:11px}
 #runners .ceo-winning-hand .num{font-size:7px}
 #runners .ceo-winning-hand .symbol{font-size:3px}
 #runners .ceo-winning-hand .dragon-logo{width:7px;height:10px}
 #runners .runner:has(.ceo-winning-hand:not([hidden])) .rival-melds{--meld-offset:max(29px,calc(var(--river-span)/2 + 3cqh - 20px));top:calc(100% + var(--meld-offset))}
 .table-reveal:is([data-winner="1"],[data-winner="3"]){top:100px;transform:translateX(-50%);width:calc(100% - 164px);max-height:none;padding:6px}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .winning-reveal,
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .winner-dialogue,
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .signature-spotlight,
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .table-winner-title canvas{display:none}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .table-winner-title{margin:0 0 5px}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .table-winner-title strong{font-size:17px}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .table-winner-title span{font-size:7px}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) button{padding:4px;min-height:26px;font-size:8px}
}
html[data-revealing=true] #seat1,html[data-revealing=true] #seat3{display:none!important}
.table-reveal:is([data-winner="1"],[data-winner="3"]) .winning-reveal{display:none}
@media(min-width:721px){
 .table-reveal:is([data-winner="1"],[data-winner="3"]){width:min(520px,calc(100% - 2*(var(--ceo-inset) + var(--ceo-card-w) + 110px)))}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .table-winner-title{margin:0 0 8px}
 .table-reveal:is([data-winner="1"],[data-winner="3"]) .table-winner-title strong{font-size:22px}
}
#runners .ceo-winning-hand .seat-flip{display:block;line-height:0;font-size:0;width:15px;height:21px;min-width:0}
@media(max-width:720px){#runners .ceo-winning-hand .seat-flip{width:8px;height:11px}}
/* Complete, paged contract catalogue: one natural-tile example per screen. */
#signatureGuide,#shopContracts{color:#ffd66b!important}
#signatureGuide:hover,#signatureGuide:focus-visible,#shopContracts:hover,#shopContracts:focus-visible{background:#ffd66b18;border-color:#ffd66b}
#modal:has(.buyout-catalogue){width:min(820px,96vw);max-height:calc(100dvh - 20px);overflow:hidden}
#modal:has(.buyout-catalogue) .modal-inner{padding:18px;overflow:hidden}
.buyout-catalogue{display:flex;flex-direction:column;gap:10px;max-height:calc(100dvh - 60px);min-height:0}
.buyout-catalogue .modal-header{padding:0;margin:0;flex:none}
.buyout-catalogue .modal-header h2,.buyout-catalogue .eyebrow{color:#ffd66b}
.catalogue-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:none}
.catalogue-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px;padding:7px;font-size:11px;line-height:1.2;color:#cad2e9;background:#111528;border:1px solid var(--p-border)}
.catalogue-tabs button[aria-pressed=true]{color:#ffd66b;border-color:#ffd66b;background:#ffd66b10}
.catalogue-tabs button span{font-size:8px;letter-spacing:.1em;color:#c7b5df}
.catalogue-picker{display:flex;align-items:center;gap:12px;font-size:9px;color:#aaa7c5;flex:none}
.catalogue-picker select{flex:1;min-width:0;padding:8px;background:#101326;color:#eef0ff;border:1px solid var(--p-border);font:inherit;font-size:12px}
.catalogue-entry{border:1px solid var(--p-border);background:#0a1020;padding:12px;min-height:0;display:flex;flex-direction:column;gap:7px}
.catalogue-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.catalogue-title h2{font-size:23px;line-height:1.15;margin:0;color:var(--p-accent);letter-spacing:0;overflow-wrap:anywhere}
.catalogue-title>span{font-size:9px;color:#ffd66b;text-align:right;white-space:nowrap}
.catalogue-traditional{font-size:10px;color:#a8a8c5}
.buyout-catalogue p{margin:0!important;font-size:11px!important;line-height:1.4!important}
.catalogue-rule{color:#e6e4f1;min-height:30px}
.catalogue-hand{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:12px 0 3px;min-height:88px}
.catalogue-group{display:flex;align-items:center;gap:3px;padding-bottom:3px;border-bottom:1px solid #aa78c066}
.catalogue-group.orphans,.catalogue-group.nine-gates{flex-wrap:wrap;justify-content:center;max-width:100%}
.catalogue-hand .tile.small{width:35px;height:49px;padding:1px;min-width:0;flex:0 0 35px;box-sizing:border-box;transform:none!important;animation:none!important}
.catalogue-hand .tile .num{font-size:24px;line-height:1}.catalogue-hand .tile .symbol{font-size:11px;line-height:1;margin:2px 0 0}.catalogue-hand .tile .dragon-logo{width:29px;height:40px}
.buyout-catalogue .catalogue-example-note{font-size:8px!important;color:#9c9cb7;text-align:center;letter-spacing:.03em}
.catalogue-timing{color:#ddd3e5;border-left:2px solid var(--p-secondary);padding-left:8px}
.buyout-catalogue .catalogue-reward{color:#ffd66b;font-size:9px!important}
.buyout-catalogue .contract-nav{margin:0;flex:none;display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.buyout-catalogue .contract-nav button{min-height:34px;padding:6px;font-size:10px}
.buyout-catalogue .contract-nav span{font-size:10px;color:#bbb7cc}
.buyout-catalogue .catalogue-footnote{font-size:9px!important;color:#a6a5bb}
.buyout-catalogue>button{min-height:34px;padding:6px;font-size:11px;flex:none}
@media(max-width:720px){
 #modal:has(.buyout-catalogue) .modal-inner{padding:11px}
 .buyout-catalogue{gap:7px;max-height:calc(100dvh - 44px)}
 .buyout-catalogue .modal-header h2{font-size:22px;margin:3px 0}
 .buyout-catalogue .modal-header .eyebrow{font-size:8px}
 .catalogue-tabs{gap:5px}.catalogue-tabs button{font-size:9px;min-height:39px;padding:5px}.catalogue-tabs button span{font-size:7px}
 .catalogue-picker{gap:7px;font-size:7px}.catalogue-picker select{font-size:10px;padding:7px}
 .catalogue-entry{gap:6px;padding:9px}.catalogue-title{gap:6px}.catalogue-title h2{font-size:19px}.catalogue-title>span{font-size:7px;max-width:70px;white-space:normal;line-height:1.3}
 .catalogue-traditional{font-size:9px}.buyout-catalogue p{font-size:10px!important;line-height:1.35!important}
 .catalogue-hand{gap:8px;min-height:88px;padding-top:8px}.catalogue-group{gap:2px}
 .catalogue-hand .tile.small{width:23px;height:33px;flex-basis:23px}.catalogue-hand .tile .num{font-size:18px}.catalogue-hand .tile .symbol{font-size:8px;margin-top:1px}.catalogue-hand .tile .dragon-logo{width:20px;height:28px}
 .buyout-catalogue .catalogue-reward{font-size:8px!important}.buyout-catalogue .catalogue-footnote{font-size:8px!important}
}
@media(max-height:580px) and (min-width:721px){
 #modal:has(.buyout-catalogue) .modal-inner{padding:10px}.buyout-catalogue{gap:5px;max-height:calc(100dvh - 40px)}
 .buyout-catalogue .modal-header h2{font-size:22px;margin:2px 0}.catalogue-tabs button{min-height:32px;padding:3px}
 .catalogue-entry{padding:8px;gap:4px}.catalogue-title h2{font-size:20px}.catalogue-rule{min-height:0}
 .catalogue-hand{min-height:48px;padding:3px 0;gap:8px}.catalogue-hand .tile.small{width:24px;height:34px;flex-basis:24px}.catalogue-hand .tile .num{font-size:18px}.catalogue-hand .tile .symbol{font-size:8px}.catalogue-hand .tile .dragon-logo{width:21px;height:28px}
 .buyout-catalogue .contract-nav button,.buyout-catalogue>button{min-height:28px;padding:4px}
}
.buyout-catalogue{height:auto!important;min-height:0!important}
.buyout-catalogue .catalogue-tabs{height:auto!important;min-height:0!important;max-height:none!important;position:static;inset:auto;align-self:stretch}
.buyout-catalogue .catalogue-tabs button{height:auto!important;max-height:none;min-width:0}
.buyout-catalogue .catalogue-entry{flex:0 0 auto}
.buyout-catalogue .modal-header{min-height:0!important;height:auto!important}
