/* Celestia desktop table: game-local regions and authored art. */
#shell:has(#game:not([hidden])){max-width:1600px;padding:10px 16px 20px}
#shell:has(#game:not([hidden])) #room-controls:not([hidden]){margin:0 0 4px}
#game{min-width:0}
:root{--hold-accent:#f4ca7f;--hold-panel:#234652;
  --hold-ink:#fff7e6;--hold-border:#e5c38c;--hold-progress-ink:#fff7e6}
.hold-popover.is-holding .hold-track-label{text-shadow:0 1px 2px #092333,0 0 4px #092333}
/* At smaller desktop widths, keep the shared session strip legible instead
   of squeezing its phase into a one-character column. Game status remains
   visible in the table header below. This affects only Celestia. */
@media(min-width:851px) and (max-width:1450px){
  #session-topbar.games-session-bar{flex-wrap:wrap;gap:4px 10px;padding:5px 10px}
  #session-topbar .games-session-brand{order:0}
  #session-topbar .games-session-summary{order:1;flex:1 1 180px}
  #session-topbar .games-session-details{min-width:0}
  #session-topbar .games-session-actions{order:2;margin-left:auto}
  #session-topbar .games-session-seats{order:3;flex:1 0 100%}
  #session-topbar .solo-toolbar{flex-wrap:nowrap}
  #session-topbar .solo-seat-list{flex-wrap:nowrap}
}
#game .app-root{display:grid;grid-template-columns:minmax(445px,1fr) minmax(400px,1.07fr) minmax(275px,.65fr);
  grid-template-areas:"status status status" "route route route" "dice crew decision" "hand hand hand" "vault vault vault";
  grid-template-rows:auto minmax(170px,auto) minmax(165px,auto) auto auto;
  align-items:stretch;gap:9px}
#game .header{grid-area:status;display:flex;align-items:center;gap:8px;padding:0 2px 3px;
  min-height:32px;border:0;flex-wrap:wrap}
#game .header-meta{align-items:center;justify-content:flex-start}
#game .header .ui-badge{font-size:14px;background:transparent;border:0;padding:0}
#game .header .score.own{margin-left:auto;background:transparent;border:0;color:#ffecae}
#game .phase-badge{font-size:15px;background:transparent!important;color:#fff0d6}
#game .route-panel{grid-area:route;min-height:clamp(175px,14vw,215px);display:flex;flex-direction:column;justify-content:center}
#game .crew-panel{grid-area:crew}
#game .challenge-panel{grid-area:dice;display:flex;flex-direction:column}
#game .hand-panel{grid-area:hand}
#game .controls{grid-area:decision;display:flex;flex-direction:column;min-height:165px;gap:7px;align-self:stretch}
#game .treasures-panel{grid-area:vault}
#game .ui-section{min-width:0;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}
#game .ui-section-title{font-size:12px;letter-spacing:0;font-weight:650;margin:0 0 8px;color:#e4e8d8}
#game .ui-button:not(.playing-card){font-size:15px;padding:9px 12px;line-height:1.3}
#game .ui-button:not(.playing-card):hover,#game .secondary:hover{border-color:#fff0b7;filter:brightness(1.09)}
#game button:focus-visible,#game [tabindex]:focus-visible,.sky-utility-dialog button:focus-visible{outline:3px solid #ffcc70;outline-offset:3px}
#game .controls .ui-button:not(.playing-card){width:100%;justify-content:center;text-align:center;min-height:38px}
#game .controls .primary{color:#192c35;background:#f1c87d;border-color:#fff0ae}
#game .controls .phase-detail{color:#d7e7df;font-size:14px;line-height:1.5;max-width:46ch}
#game .controls .ui-button + .ui-button{margin-top:0}
#game .controls .ui-section-title{margin-bottom:1px}
#game .controls.sky-your-turn{border-top:2px solid #eab96f;padding-top:6px;background:transparent;box-shadow:none}
#game .sky-turn-status{display:grid;gap:3px;padding:2px 0 5px;
  border-bottom:1px solid #72999a38}
#game .sky-turn-kicker{font:850 12px/1.15 system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#b0d3cc}
#game .sky-your-turn .sky-turn-kicker{color:#ffdb8b}
#game .sky-turn-title{font:800 18px/1.15 system-ui,sans-serif;color:#f9f1dc;overflow-wrap:anywhere}
#game .sky-waiting .sky-turn-title{font-size:16px;color:#dbebdf}
#game .sky-turn-subtitle{font-size:12px;color:#c0d5d3;line-height:1.3}
#game .controls .phase-detail{margin:0}
#game .controls .ui-button.requires-hold{position:relative;padding-right:66px;
  text-align:left}
#game .controls .ui-button.requires-hold::after{
  content:"HOLD";position:absolute;right:9px;top:50%;transform:translateY(-50%);
  padding:3px 5px;border:1px solid currentColor;border-radius:4px;
  font:800 11px/1 system-ui,sans-serif;letter-spacing:.04em;opacity:.72;
  pointer-events:none}
#game .controls .ui-button.requires-hold:focus-visible,
#game .sky-playable-card .playing-card:focus-visible,
#game .sky-target-action:focus-visible{outline:3px solid #ffdc82;outline-offset:2px}
#game .controls .ui-button.requires-hold.holding-action{
  box-shadow:inset 0 0 0 2px #ffe4ac;background:#346878;color:#fff8dd}
#game .sky-target-action.requires-hold.holding-action{
  opacity:1;color:#192b30;outline:3px solid #ffdc82;outline-offset:-3px}
#game .sky-reroll-submit.requires-hold.holding-action{border-color:#ffda7c}

#game .controls.sky-waiting .phase-detail{color:#afc9c5}
#game .controls.sky-your-turn .primary{font-weight:850;box-shadow:0 2px 0 #8b6839}

#game .special-panel,#game .log-panel{display:none}
#game:not(.sky-enhanced) .special-panel,#game:not(.sky-enhanced) .log-panel{display:block;grid-column:1/-1}
#game .stages{position:relative;gap:10px;align-items:center;padding:12px 0 6px;overflow:visible}
#game .stages::before{content:"";position:absolute;left:5%;right:5%;top:40%;height:4px;border-radius:20px;
  background:repeating-linear-gradient(90deg,#c7a66d 0 18px,#6a8290 18px 27px);opacity:.75}
#game .stages .ui-badge.city{position:relative;min-width:0;flex:1 1 0}
#game .sky-city-face{max-width:none}
#game .sky-city-scene{border-width:2px;box-shadow:0 4px 8px #0006}
#game .sky-city-value{font-size:clamp(15px,1.5vw,22px)}
/* Approach dice trace a shallow arc just above the oval's top rim rather
   than obscuring the island's city art or the value at the left. */
#game .sky-route-dice{position:absolute;top:-5px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;gap:2px;z-index:6;
  pointer-events:none}
#game .sky-route-dice[data-count="2"] .sky-route-die{transform:translateY(4px)}
#game .sky-route-dice[data-count="3"] .sky-route-die:is(:first-child,:last-child){transform:translateY(6px)}
#game .sky-route-dice[data-count="4"] .sky-route-die:is(:first-child,:last-child){transform:translateY(8px)}
#game .sky-route-dice[data-count="4"] .sky-route-die:is(:nth-child(2),:nth-child(3)){transform:translateY(2px)}
@media (min-width:851px) and (max-width:1180px){
  /* The longer 12+ value needs a little more room below its three dice. */
  #game .sky-city-face[data-city-value="12"] .sky-city-value{top:24%}
}
#game .sky-route-die{width:clamp(12px,1.05vw,15px);height:clamp(12px,1.05vw,15px);
  flex:none;box-sizing:border-box;display:block;border:1.5px solid #20374a;
  border-radius:3px;background:#f8f5e8;box-shadow:0 1px 2px #08182688}
#game .sky-route-die::after{content:"";display:block;margin:2px;
  height:2px;border-radius:2px;background:#ffffffd9}
#game .sky-city-count{font-size:12px;color:#e2ece1;font-weight:700}
#game .sky-airship-marker{right:-14%;bottom:-27%;width:97%;height:111%;
  filter:drop-shadow(0 3px 2px #112635a8);z-index:4}
#game .sky-ship-crew{position:absolute;right:-9%;bottom:3%;width:78%;height:50px;
  display:flex;justify-content:center;align-items:center;flex-wrap:wrap;
  gap:0 1px;z-index:5;pointer-events:none}
#game .sky-island-meeples{min-height:25px;width:100%;display:flex;justify-content:center;
  align-items:center;align-content:center;flex-wrap:wrap;gap:1px 2px}
.sky-player-meeple{display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 24px;width:24px;height:24px;color:var(--sky-player-color);
  filter:drop-shadow(1px 1px 1px #000) drop-shadow(1px 1px 1px #000);
  pointer-events:none}
.sky-player-meeple svg{display:block;width:100%;height:100%}
#game .sky-player-disc{display:inline-grid;place-items:center;flex:none;
  width:24px;height:24px;border-radius:50%;border:2px solid #ebf4e9;
  background:var(--sky-player-color);color:#132638;
  box-shadow:0 1px 3px #0008;font:900 12px/1 system-ui,sans-serif}
#game .sky-captain-seat .sky-player-disc{outline:2px solid #f2ca76;outline-offset:1px}

#game .city.current-city .sky-city-scene{outline:3px solid #ffe4a0;outline-offset:2px;filter:none;opacity:1}
#game .city.empty:not(.current-city) .sky-city-scene{opacity:.54}
/* Physical-feeling event dice: the pictogram does the reading, with an
   understated suit name under it. All faces share an exact square footprint. */
#game .hazards{flex:1;align-items:center;align-content:center;justify-content:center;flex-wrap:wrap;gap:8px;min-height:118px}
#game .hazards .sky-event-die{
  --sky-die-size:clamp(100px,7.6vw,112px);
  box-sizing:border-box;display:flex;flex:0 0 var(--sky-die-size);
  flex-direction:column;align-items:center;justify-content:space-between;
  width:var(--sky-die-size);height:var(--sky-die-size);
  min-width:0;min-height:0;gap:2px;padding:8px 4px 7px;
  border:3px solid #273d60;border-bottom-width:5px;border-radius:13px;
  background:color-mix(in srgb,var(--sky-color) 78%,#fff4d9);
  color:#152d43;
  box-shadow:inset 0 2px 0 #ffffffb8,inset 0 -2px 0 #10243c25,
    0 4px 0 #102539,0 8px 14px #071b2970;
}
#game .hazards .sky-event-die.sky-clear-die{
  background:#fff;border-color:#66788b;color:#243447;
  box-shadow:inset 0 2px 0 #fff,inset 0 -2px 0 #aab9c850,
    0 4px 0 #314355,0 8px 14px #071b2970;
}
#game .hazards .sky-event-die .sky-icon{
  width:clamp(58px,4.8vw,64px);height:clamp(58px,4.8vw,64px);
  max-width:100%;margin:auto auto 0;object-fit:contain;
  filter:drop-shadow(0 2px 1px #132b402a);
}
#game .hazards .sky-die-name{
  display:block;flex:none;max-width:100%;padding:3px 5px 2px;
  border-radius:5px;background:#243b57;color:#fffaeb;
  font:850 12px/1.15 system-ui,sans-serif;
  text-align:center;text-transform:uppercase;letter-spacing:.025em;
  white-space:nowrap;
}
#game .hazards .sky-clear-die .sky-die-name{background:#e6edf3;color:#243b57}
#game .seats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;align-content:start}
#game .player-seat{position:relative;gap:1px;padding:5px 6px;min-width:0;min-height:58px;border:0;border-bottom:1px solid #527888;
  background:transparent;border-radius:0;overflow:hidden}
#game .player-seat .seat{border:0;padding:0;background:transparent;color:#f5ecdd;min-width:0;flex-wrap:nowrap;
  font-size:14px;font-weight:800;max-width:100%;line-height:1.3}
#game .sky-seat-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow-wrap:anywhere}
#game .player-seat .seat .sky-icon{width:18px;height:18px}
#game .sky-seat-role{flex:none;font-size:12px;font-weight:850;letter-spacing:.025em;text-transform:uppercase;
  color:#372a1a;background:#f4d899;border:1px solid #f9e5b4;border-radius:4px;padding:2px 4px}
#game .sky-seat-commitment{color:#bbd4d3;font-size:12px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#game .sky-captain-seat .sky-seat-commitment{color:#f5d89c;font-weight:750}
#game .sky-seat-counts{font-size:13px;gap:2px 4px;min-height:17px;line-height:1.2;white-space:nowrap}
#game .sky-seat-counts .sky-icon{width:15px;height:15px}
#game .player-seat:has(.seat.own){border-color:#d2ae71;background:#294c52}
#game .player-seat.sky-acting-seat{border:2px solid #f8d48b;padding:4px 5px;
  background:#345361;box-shadow:0 0 0 2px #f5ce6a24;z-index:1}
#game .player-seat.sky-acting-seat .sky-seat-label{color:#ffe5a4}
#game .player-seat.sky-acting-seat .sky-seat-role{background:#ffe7a9;border-color:#fff1cc}
#game .player-seat:has(.seat){transition:border-color .15s}
#game .player-seat:has(.seat):has(.sky-target-action:not([hidden])){outline:2px dashed #fbd693;outline-offset:-3px}
#game .player-seat .sky-target-action{position:absolute;inset:0;width:100%;height:100%;opacity:.08;
  border:2px solid #ffe2a0;background:#e9ac53;cursor:crosshair;color:transparent}
#game .player-seat .sky-target-action:hover,#game .player-seat .sky-target-action:focus-visible{
  opacity:.85;color:#192b30;outline:2px solid #fbd693;outline-offset:-3px}
#game .hand-panel{background:transparent;border-top:1px solid #72999a;padding-top:12px}
#game .hand{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;align-items:stretch;
  gap:8px;min-height:195px;padding:5px 4px 13px;scrollbar-width:thin;scrollbar-color:#b8a276 #203a47}
#game .ui-card-wrap{position:relative;flex:0 0 122px;width:122px;gap:0}
#game .ui-card-wrap .ui-button.playing-card{position:relative;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;gap:5px;width:122px;height:168px;
  padding:8px 6px 10px;background:#fff1d4;border:2px solid var(--sky-color,#d8b271);
  color:#243443;opacity:1;border-radius:8px;box-shadow:0 3px 6px #101c2455;overflow:hidden;cursor:pointer}
#game .ui-card-wrap .playing-card .sky-card-art{width:63px;height:63px;margin:0 auto;object-fit:contain}
#game .ui-card-wrap:not(.sky-basic-equipment) .playing-card{
  gap:3px;padding-top:5px;padding-bottom:6px}
#game .ui-card-wrap:not(.sky-basic-equipment) .sky-card-art{width:59px;height:59px}
#game .ui-card-wrap:not(.sky-basic-equipment) .sky-card-name{min-height:25px}
#game .ui-card-wrap .playing-card .sky-card-name{font:800 14px/1.15 system-ui,sans-serif;min-height:30px;display:grid;place-items:center}
/* Everyday matching equipment is identifiable by its large tool silhouette and
   matching hazard color. Its full label/effect appears on hover or focus;
   specialist and Turbo cards retain their cream informational faces. */
#game .sky-basic-equipment .ui-button.playing-card{
  background:color-mix(in srgb,var(--sky-color) 62%,#ecf1e8);
  border-color:color-mix(in srgb,var(--sky-color) 52%,#26344a);
  justify-content:center;padding:8px;
}
#game .sky-basic-equipment .playing-card::before{height:0}
#game .sky-basic-equipment .playing-card .sky-card-art{
  width:100px;height:117px;filter:drop-shadow(0 3px 2px #172a3426);
  transition:transform .16s ease;
}
#game .sky-basic-equipment .playing-card::after{
  content:"";position:absolute;inset:auto 0 0;height:96px;
  background:#1c3242;opacity:0;pointer-events:none;transition:opacity .14s ease;
}
#game .sky-basic-equipment .sky-card-name,
#game .sky-basic-equipment .sky-card-effect{
  position:absolute;left:0;right:0;color:#fff9e8;z-index:1;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .14s ease;overflow:hidden;text-align:center;
}
#game .sky-basic-equipment .sky-card-name{
  bottom:52px;min-height:0;padding:0 5px;
  font:800 14px/1.15 system-ui,sans-serif;display:block;
}
#game .sky-basic-equipment .sky-card-effect{
  bottom:6px;max-height:44px;padding:0 6px;
  font:600 12px/1.18 system-ui,sans-serif;display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
#game .sky-basic-equipment .playing-card:is(:hover,:focus)::after,
#game .sky-basic-equipment .playing-card:is(:hover,:focus) .sky-card-name,
#game .sky-basic-equipment .playing-card:is(:hover,:focus) .sky-card-effect{
  opacity:1;visibility:visible;
}
#game .sky-basic-equipment .playing-card:is(:hover,:focus) .sky-card-art{
  transform:translateY(-17px) scale(.82);
}
#game .sky-card-effect{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  font:600 12px/1.2 system-ui,sans-serif;color:#415264;overflow:hidden;max-height:45px;text-align:center;
  pointer-events:none;padding:2px 2px 0}
.sky-special-card-tooltip{position:fixed;z-index:250;pointer-events:none;
  width:max-content;max-width:min(300px,calc(100vw - 20px));padding:11px 13px;
  border:2px solid #d7b878;border-radius:9px;background:#173342;
  color:#f3f4e5;box-shadow:0 7px 24px #051723bb;
  font:500 14px/1.4 system-ui,sans-serif}
.sky-special-card-tooltip[hidden]{display:none}
.sky-special-card-tooltip strong{display:block;font-size:16px;line-height:1.2;color:#fff1c2}
.sky-special-card-tooltip small{display:block;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:#bfd5d2;margin:3px 0 7px}
.sky-special-card-tooltip p{margin:0;font-size:14px;white-space:normal}
#game .sky-playable-card .playing-card{box-shadow:0 0 0 2px #ffe59c,0 6px 16px #0008!important}
#game .sky-playable-card .playing-card:hover{transform:translateY(-4px)}
#game .sky-playable-card .playing-card::after{content:"HOLD";position:absolute;top:3px;right:4px;
  font:800 12px/1 system-ui;color:#294539;background:#ffe6a5;border-radius:3px;padding:3px}
#game .sky-selected-card .playing-card{outline:3px solid #faca6d;outline-offset:2px}
#game .sky-static-card{cursor:default!important}
#game.sky-enhanced .treasures-panel .treasures{display:none}
#game .sky-vault-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#game .sky-vault-open{background:#36574f;border:1px solid #dfc18c;border-radius:7px;color:#fff2c9;
  cursor:pointer;font-weight:800;font-size:14px;padding:9px 13px}
#game .sky-vault-open:hover{background:#47695b}
.sky-vault-origin{display:block;font-size:12px;color:#d3e8e0}
.sky-vault-item img[data-sky-asset^="city-"]{width:92px;height:52px;object-fit:cover;border-radius:3px}
.sky-vault-prizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px}
.sky-vault-item{background:#274451;border:1px solid #7896a0;border-radius:8px;padding:10px;
  display:grid;justify-items:center;gap:4px;text-align:center;font-size:14px}
.sky-vault-item img{width:60px;height:60px;object-fit:contain}
#game .treasures-panel{background:transparent;border-top:1px solid #527888;padding-top:8px;padding-bottom:8px;min-height:60px}
#game .treasures{display:flex;align-items:center;gap:6px;max-height:100px;overflow:auto}
#game .treasure{position:relative;border-radius:7px;padding:4px 8px;font-size:14px;min-height:32px}
#game .treasure .sky-icon{width:23px;height:23px}
#game .sky-usable-spyglass{border-color:#ffdfa5;background:#3c4c65;display:inline-flex;flex-wrap:wrap}
#game .sky-vault-use{font-size:14px;margin-left:4px}
#game .sky-reroll-hidden{display:none!important}
#game .hazards .sky-selectable-die{
  cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;
}
#game .hazards .sky-selectable-die:hover{transform:translateY(-2px)}
#game .hazards .sky-selectable-die.sky-die-selected{
  border-color:#ffdb76;outline:3px solid #ffdb76;outline-offset:2px;
  box-shadow:inset 0 2px 0 #ffffffb8,0 4px 0 #624920,0 10px 20px #071b29a8;
  transform:translateY(-4px);
}
#game .hazards .sky-selectable-die.sky-die-selected.sky-clear-die{background:#fff}
#game .hazards .sky-selectable-die.sky-die-selected .sky-die-name{
  background:#1c354f;color:#fff4bf;
}
#game .sky-reroll-draft{margin-top:0;padding-top:6px;border-top:1px solid #66868b;display:grid;gap:10px}
#game .sky-reroll-footer{display:flex;gap:8px;flex-wrap:wrap}
#game .sky-reroll-commit{flex:1 1 150px}
#game .sky-reroll-commit .ui-button{width:100%}
#game .sky-small-action{font-size:12px!important;padding:7px 10px!important;width:auto!important}
#game .sky-decision-hint{font-size:14px;line-height:1.45;color:#dbe7dc;margin:0}
#game .sky-ejection-note{border:1px solid #deb776;background:#544c3a;color:#fff0cc;
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
  border-radius:8px;padding:8px;margin-top:9px;font-size:14px}
#game .sky-ejection-note[hidden]{display:none}
#game .sky-outcome{display:grid;gap:7px;align-content:start;justify-items:center;text-align:center}
#game .sky-outcome h3{margin:0;font-size:18px;font-family:Georgia,serif;color:#ffe2a3}
#game .sky-outcome p{margin:0;font-size:14px}
#game .sky-outcome-art{width:76px;height:76px;object-fit:contain}
#game .sky-standings{margin:0;padding:0;list-style-position:inside;text-align:left;font-size:14px}
#game .sky-standings li{padding:3px}
#game .sky-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#notice:not([hidden]){position:fixed;top:68px;left:50%;transform:translateX(-50%);
  width:min(580px,90vw);z-index:90;box-shadow:0 8px 30px #000b}
.sky-utility-dialog{box-sizing:border-box;width:min(650px,90vw);max-width:650px;max-height:82vh;
  overflow:auto;padding:20px 25px;color:#e7f3eb;font-size:14px;line-height:1.6}
.sky-utility-dialog h2{font:700 24px/1.15 Georgia,serif;color:#ffe4a5;margin:0}
.sky-utility-dialog h3{margin:15px 0 4px;font-size:16px;color:#ffe4a5}
.sky-utility-dialog p{margin:9px 0}
.sky-utility-dialog ul{padding-left:23px}
.sky-dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;
  margin-bottom:12px;border-bottom:1px solid #66818a;padding-bottom:10px}
.sky-utility-dialog button{padding:7px 12px;border-radius:6px;color:#f5f4e9}
.sky-utility-dialog li{margin:5px 0}
.confirm-eyebrow{font-size:12px}
.confirm-message{font-size:14px}
.lobby-panel .eyebrow{font-size:12px}
@media(min-width:1500px){#game .app-root{grid-template-columns:minmax(500px,1.05fr) minmax(480px,1fr) minmax(330px,.7fr)}}
@media(max-width:1100px){#shell:has(#game:not([hidden])){padding:8px 10px}
  #game .app-root{grid-template-columns:minmax(430px,1.45fr) minmax(290px,1fr) minmax(245px,.8fr);gap:7px}
  #game .ui-section{padding-inline:0}
  #game .stages{gap:5px}
  #game .hazards{gap:6px}
  #game .player-seat{padding:4px 5px}
  #game .seats{grid-template-columns:repeat(2,minmax(0,1fr))}
  #game .player-seat .seat{flex-direction:row;align-items:center;gap:5px}
  #game .sky-seat-label{display:block;width:100%;white-space:nowrap;
    text-overflow:ellipsis;overflow:hidden;overflow-wrap:normal}
  #game .player-seat.sky-acting-seat{padding:3px 4px}
  #game .sky-city-value{font-size:16px}
  #game .player-seat{padding:7px}
  #game .hazards .sky-die-name{font-size:12px}}
@keyframes sky-die-settle{from{transform:rotate(-10deg) scale(.88)}
  to{transform:rotate(0) scale(1)}}
@keyframes sky-prize-received{0%{box-shadow:0 0 0 0 #f9d38b}
  65%{box-shadow:0 0 0 7px #f9d38b55}100%{box-shadow:0 0 0 0 transparent}}
#game .sky-new-die{animation:sky-die-settle .35s ease-out both}
#game .sky-treasure-gained{animation:sky-prize-received .7s ease-out}
@media(prefers-reduced-motion:reduce){
  #game .sky-new-die,#game .sky-treasure-gained{animation:none}
  #game .sky-playable-card .playing-card:hover{transform:none}
  #game .hazards .sky-selectable-die{transition:none}
  #game .hazards .sky-selectable-die:hover{transform:none}
  #game .hazards .sky-selectable-die.sky-die-selected{transform:none}
  #game .player-seat{transition:none}
  #game .sky-basic-equipment .playing-card .sky-card-art,
  #game .sky-basic-equipment .sky-card-name,
  #game .sky-basic-equipment .sky-card-effect,
  #game .sky-basic-equipment .playing-card::after{transition:none}
}

/* Expansion status stays with its public pieces. */
#game .sky-vessel-status{font-size:13px;color:#ffdda1}
#game .sky-help-draft{display:grid;gap:7px;min-width:0}
#game .sky-help-selection{font-size:13px;line-height:1.4;margin:0}
#game .sky-help-choice{cursor:pointer!important}
#game .sky-help-selected{outline:4px solid #ffe098;outline-offset:-3px;box-shadow:0 0 0 2px #163844}
#game .sky-help-selected::after{content:'✓ Selected';position:absolute;bottom:3px;left:3px;right:3px;background:#153c44;color:#fff5ce;font:700 12px system-ui;padding:4px}
#game .sky-help-reveal{font-size:13px;line-height:1.4;color:#ffdfa0;animation:sky-help-reveal .2s ease-out}
@keyframes sky-help-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
#game .sky-card-variant{position:absolute;right:5px;top:7px;background:#123a47;color:#fff1b8;padding:3px 6px;border:1px solid #ffdb8c;font:800 14px system-ui;border-radius:4px}
#game .sky-card-timing{display:block;flex:none;color:#30495d;font:800 10px/1.1 system-ui;text-align:center;max-width:100%}
#game .ui-card-wrap .playing-card:has(.sky-card-timing) .sky-card-effect{-webkit-line-clamp:2;max-height:30px;font-size:11px}
#game .ui-card-wrap .playing-card:has(.sky-card-timing) .sky-card-name{font-size:13px;min-height:28px}
#game .ui-card-wrap .playing-card:has(.sky-card-timing) .sky-card-art{width:62px;height:62px}
#game .sky-card-variant{z-index:2;top:5px;right:4px;font-size:18px;line-height:1.1}
#game .playing-card[data-variant="help"] .sky-card-variant{font-size:12px}
#game .playing-card[data-variant="help"]{border-style:double;border-width:4px}
#game .sky-card-immunity{position:absolute;right:5px;top:39px;display:grid;place-items:center;width:33px;height:36px;background:#f2f4e8;border:2px solid #273d60;border-radius:5px 5px 50% 50%}
#game .sky-card-immunity img{width:26px;height:26px;object-fit:contain}
#game .sky-card-immunity::after{content:"";position:absolute;width:33px;height:3px;background:#273d60;transform:rotate(-45deg)}
#game .sky-card-immunity-label{font:800 11px/1.1 system-ui;color:#203d52;max-width:100%;text-align:center}
#game .ui-card-wrap .playing-card[data-variant="rowboat"] .sky-card-effect{display:none}
#game .sky-help-penalty{font-size:13px;color:#e4d3ad}
#game .character-action{border-color:#e9c688;color:#ffe5aa}
@media(prefers-reduced-motion:reduce){#game .sky-help-reveal{animation:none}}
/* A reserved second route lane keeps the single-seat vessel clear of city
   values, approach dice, treasure counts and landed players. */
#game .sky-rowboat-lane{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));
  gap:10px;height:90px;flex:none;position:relative;align-items:start}
#game .sky-rowboat-lane::before{content:"";position:absolute;left:5%;right:5%;top:37px;
  border-top:1px dashed #90c5bf65;pointer-events:none}
.sky-rowboat-marker{position:relative;display:block;width:100%;height:76px;
  max-width:150px;justify-self:center;isolation:isolate;pointer-events:none;
  color:#dbece2;--sky-vessel-opacity:.82}
.sky-rowboat-art{position:absolute;inset:0;width:100%;height:68px;object-fit:contain;
  filter:drop-shadow(0 3px 2px #112635a8);opacity:var(--sky-vessel-opacity)}
.sky-rowboat-marker[data-active=true]{--sky-vessel-opacity:1}
.sky-rowboat-marker[data-active=true]::before{content:"";position:absolute;inset:12px 3px 6px;
  border:2px solid #ffdf91;border-radius:50%;background:#ffdc8020;z-index:-1}
.sky-rowboat-marker[data-outcome=landed]{transform:translateY(4px)}
.sky-rowboat-marker[data-outcome=crashed]{transform:translateY(8px)}
.sky-rowboat-marker .sky-player-meeple{position:absolute!important;top:5px;left:36%;
  width:24px!important;height:28px!important;z-index:2}
.sky-boat-immunity{position:absolute;right:0;top:0;display:grid;place-items:center;
  width:28px;height:30px;border:2px solid #ffe4a8;border-radius:6px 6px 45% 45%;
  background:#1b344c;z-index:3;box-shadow:0 1px 2px #061a2c}
.sky-boat-immunity::after{content:"";position:absolute;width:29px;height:3px;
  background:#fff5d6;transform:rotate(-45deg);box-shadow:0 0 0 1px #15283c}
.sky-boat-immunity .sky-icon{width:24px;height:24px}
.sky-vessel-label{position:absolute;top:67px;left:50%;transform:translateX(-50%);
  font:750 12px/1.2 system-ui,sans-serif;white-space:nowrap;color:#d3e5dd}
.sky-rowboat-marker[data-active=true] .sky-vessel-label{color:#ffe4a0}
.sky-rowboat-marker[data-edge=start] .sky-vessel-label{left:0;transform:none}
.sky-rowboat-marker[data-edge=end] .sky-vessel-label{left:auto;right:0;transform:none}
#game.sky-has-initiative .city:last-child .sky-airship-marker{right:0}
#game.sky-has-initiative .city:last-child .sky-ship-crew{right:0}
#game.sky-has-initiative .sky-airship-marker[data-active=false]{opacity:.82}
#game.sky-has-initiative .sky-airship-marker[data-active=true]{filter:drop-shadow(0 0 3px #ffe3a0) drop-shadow(0 3px 2px #112635a8)}
#game.sky-has-initiative .sky-airship-marker[data-outcome=landed]{transform:translateY(4px)}
#game.sky-has-initiative .sky-airship-marker[data-outcome=crashed]{transform:translateY(8px)}
#game .sky-vessel-strip{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
  gap:12px;min-height:34px;border-top:1px solid #789a9a66;padding-top:5px;margin-top:3px}
#game .sky-vessel-summary{display:flex;align-items:center;gap:8px;min-width:0;
  height:28px;font-size:12px;white-space:nowrap;color:#c5dcd7}
#game .sky-vessel-summary strong{font-size:13px;color:#dbece2;flex:none}
#game .sky-vessel-summary[data-active=true] strong{color:#ffe09a}
#game .sky-vessel-summary[data-active=true] strong::before{content:"▶ ";font-size:11px}
#game .sky-vessel-rider{min-width:0;overflow:hidden;text-overflow:ellipsis}
#game .sky-vessel-protection,#game .sky-vessel-position{flex:none;font-variant-numeric:tabular-nums}
#game .sky-vessel-position{margin-left:auto}
#game.sky-has-initiative .route-panel{justify-content:flex-start}
#game.sky-has-initiative .sky-island-meeples{height:50px;min-height:50px;align-content:center}
@media(max-width:1100px){#game .sky-rowboat-lane{gap:5px}}
#game .sky-help-readiness{display:block;font-size:12px;font-weight:700;color:#a8e6cc;margin-top:3px}
/* Help commits remain private in the hand; public seals carry one bit only. */
#game.sky-has-help .player-seat{padding-top:4px;padding-bottom:4px}
#game.sky-has-help .player-seat .seat{padding-right:22px}
#game .sky-help-seat-slot{display:block;position:absolute;right:5px;top:5px;width:20px;height:25px;pointer-events:none}
#game .sky-help-readiness{position:relative;display:block;width:16px;height:21px;
  margin:0;font:700 12px/1 system-ui,sans-serif;color:#c9dad5;white-space:nowrap}
#game .sky-help-readiness[data-status=ready]{color:#a8e6cc}
.sky-help-sealed-card{display:grid;place-items:center;box-sizing:border-box;width:18px;height:24px;
  border:1px solid #e8ce93;border-radius:3px;background:#164858}
.sky-help-seal{display:block;width:14px;height:18px;object-fit:contain}
#game .sky-help-ready-symbol{position:absolute;right:-4px;bottom:-4px;
  display:inline-grid;place-items:center;width:15px;height:15px;
  color:#e6f1de;font-weight:900;background:#17384b;border-radius:50%}
#game .sky-help-readiness[data-status=ready] .sky-help-ready-symbol{border:1px solid #a8e6cc;border-radius:50%}
#game .sky-help-legend{margin-left:8px;font-weight:500;color:#bbd0c8}
#game .sky-jetpack-readiness{font-size:12px;font-weight:700;color:#a8e6cc}
#game .sky-help-table{height:111px;min-height:111px;margin-top:7px;min-width:0}
#game .sky-help-heading{display:flex;align-items:center;justify-content:space-between;
  gap:8px;height:22px;font:650 12px/1.2 system-ui,sans-serif}
#game .sky-help-heading[aria-hidden=true]{visibility:hidden}
#game .sky-help-result{color:#bfd4cf;font-variant-numeric:tabular-nums}
#game .sky-help-result[data-outcome=saved]{color:#bbf2c4;font-weight:800}
#game .sky-help-result[data-outcome=doomed]{color:#ffd3ad;font-weight:800}
#game .sky-help-public-cards{display:flex;gap:12px;height:88px;min-width:0;
  overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;align-items:flex-start;padding:1px 2px 6px}
#game .sky-help-contribution{display:flex;flex-direction:column;gap:3px;flex:none;min-width:0}
#game .sky-help-contributor{max-width:120px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font:650 12px/1.2 system-ui,sans-serif;color:#d9e9e0}
#game .sky-help-contribution-cards{display:flex;gap:4px}
.sky-help-face{display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;box-sizing:border-box;width:54px;height:62px;border:2px solid var(--sky-help-color,#f3cf88);
  border-radius:5px;background:#fff0d4;color:#173544;padding:3px;overflow:hidden}
.sky-help-card-art{display:block;width:34px;height:34px;object-fit:contain;flex:none}
.sky-help-card-name{font:750 11px/1.1 system-ui,sans-serif;color:#173544;white-space:nowrap}
#game .sky-help-no-cards{font-size:13px;color:#c6d8cf;padding:14px 0}
#game .sky-event-die[data-help]{position:relative}
#game .sky-event-die .sky-help-die-tag{position:absolute;top:-11px;left:50%;
  transform:translateX(-50%);padding:3px 5px;border:1px solid #93adab;border-radius:4px;
  background:#203c4a;color:#d5e3d9;font:750 11px/1 system-ui,sans-serif;white-space:nowrap}
#game .sky-event-die[data-help=covered] .sky-help-die-tag{background:#c7edb9;border-color:#e5f4ce;color:#1c3d36}
#game .sky-help-draft{margin-top:auto;grid-template-rows:30px 40px 30px;gap:6px}
#game .sky-help-selection{display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;
  white-space:nowrap;height:30px;min-width:0;font:600 12px/1.2 system-ui,sans-serif;scrollbar-width:thin}
#game .sky-help-selected-suit{display:inline-flex;align-items:center;gap:3px;flex:none}
#game .sky-help-selected-suit .sky-icon{width:20px;height:20px}
#game .sky-help-submitted{color:#b4e7bf;margin-left:auto}
#game .sky-help-submit{width:100%;min-height:40px;font-size:15px!important}
#game .sky-help-submit[aria-disabled=true]{opacity:.65;cursor:default}
#game .sky-help-clear{justify-self:start}
#game .sky-help-choice.sky-help-selected::after{content:'✓';top:4px;left:4px;right:auto;bottom:auto;
  display:grid;place-items:center;width:20px;height:20px;padding:0;border-radius:50%;
  font-size:14px;background:#183f43;color:#fff2bd}
#game.sky-crowded-dice .challenge-panel{min-height:0}
#game.sky-crowded-dice .hazards{min-height:142px;height:142px;max-height:142px;overflow-y:auto;align-content:flex-start;overscroll-behavior:contain}
#game.sky-crowded-dice .sky-event-die{--sky-die-size:72px}

/* Draft controls occupy the same hand-heading row before and during selection. */
#game .sky-context-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;margin-bottom:4px}
#game .sky-context-toolbar .ui-section-title{margin:0;flex:none}
#game .sky-action-draft{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;min-height:42px}
#game .sky-draft-label{font:700 13px/1.2 system-ui;color:#ffe1a0}
#game .sky-context-choice{min-height:40px;padding:7px 10px;font-size:13px;white-space:nowrap}
#game .sky-context-choice[aria-pressed=true]{background:#f1c87d;color:#192c35;outline:2px solid #fff0ae;outline-offset:-2px}
#game .sky-context-source{cursor:pointer!important}
#game .sky-context-source.playing-card::after{content:"CHOOSE";position:absolute;right:4px;top:4px;background:#ffe5a0;color:#203f43;padding:4px;font:800 11px/1 system-ui}
#game .sky-context-source[aria-expanded=true]{outline:3px solid #ffe098;outline-offset:-3px}
#game .sky-context-popover{position:fixed;z-index:180;width:max-content;max-width:min(460px,calc(100vw - 20px));padding:12px;border:2px solid #d6b777;border-radius:8px;background:#173b48;color:#fff0cc;box-shadow:0 6px 24px #061b2dbb}
#game .sky-context-popover[hidden]{display:none}
#game .sky-context-source.sky-selected-card{outline:3px solid #faca6d;outline-offset:2px}
#game .sky-context-popover [data-target-selected="true"]{outline:3px solid #ffdc82;outline-offset:2px}
#game .player-seat .sky-target-action[data-target-selected="true"]{opacity:.22;outline:3px solid #ffdc82;outline-offset:-3px}
#game .sky-context-popover-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}
#game .sky-context-options{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));gap:7px}
#game .sky-context-options .ui-button{min-height:42px;font-size:14px}
#game.sky-enhanced .controls .phase-detail{display:none}
#game .sky-turn-status{padding-bottom:3px;gap:2px}
#game .sky-turn-subtitle{display:none}
#game .controls .ui-button:not(.playing-card){min-height:40px}

#game .ui-section:not(.controls){gap:0}
#game .route-panel>.ui-section-title{display:flex;align-items:center;gap:16px;margin-bottom:4px}
#game .route-panel .sky-vessel-strip{flex:1;min-width:0;min-height:28px;height:28px;border:0;padding:0;margin:0}
#game .route-panel .stages{padding-top:8px;padding-bottom:0}
#game .sky-seat-label{display:block;white-space:nowrap;text-overflow:ellipsis;overflow-wrap:normal}
#game.sky-has-expansions .seats{grid-template-columns:repeat(2,minmax(0,1fr))}
#game .sky-seat-commitment{min-height:14px}
#game .player-seat:not(:has(.sky-seat-commitment)) .sky-seat-counts::after{content:"";display:block;flex:0 0 100%;height:14px}

/* Expanded play keeps the hand beside the decision, with the public Help tray
   beside the dice. Crew and vault remain visible without an action scrollbar. */
#game.sky-has-expansions .app-root{grid-template-columns:minmax(260px,.85fr) minmax(420px,1.7fr) minmax(280px,.9fr);grid-template-areas:"status status status" "route route route" "dice dice crew" "decision hand crew" "vault hand crew";grid-template-rows:auto auto auto minmax(165px,auto) auto}
#game.sky-has-expansions .route-panel{min-height:0}
#game.sky-has-initiative .sky-island-meeples{height:26px;min-height:26px;flex-wrap:nowrap;gap:0}
#game.sky-has-initiative .sky-island-meeples .sky-player-meeple{margin-inline:-4px}
#game.sky-has-expansions .stages .city{gap:0}
#game.sky-has-expansions .hand-panel{padding-top:0;border-top:0}
#game.sky-has-expansions .sky-rowboat-lane{height:90px}
#game.sky-has-help .challenge-panel{display:grid;grid-template-columns:minmax(424px,1fr) minmax(180px,.6fr);grid-template-rows:auto minmax(118px,auto);column-gap:12px;align-items:center}
#game.sky-has-help .challenge-panel>.ui-section-title{grid-column:1/-1}
#game.sky-has-help .sky-help-table{margin-top:0}
#game.sky-has-expansions .sky-context-toolbar{align-items:center;gap:7px}
#game.sky-has-expansions .sky-context-toolbar:has(.sky-action-draft:not(:empty))>.ui-section-title{display:none}
#game.sky-has-expansions .sky-action-draft{justify-content:flex-start;gap:5px;width:100%}
#game.sky-has-expansions .sky-action-draft .sky-context-choice{padding-inline:7px;font-size:12px}
#game.sky-has-expansions .sky-draft-label{font-size:12px;min-width:0}
#game.sky-has-expansions .sky-vault-toolbar{gap:5px}
#game.sky-has-expansions .sky-vault-open{font-size:12px;padding:8px;min-height:40px}
#game.sky-has-expansions .treasures-panel{padding-bottom:0;min-height:0}

/* A fixed ability row keeps public identity separate from private legality. */
#game .player-seat .sky-character{display:flex;align-items:center;gap:6px;box-sizing:border-box;width:100%;height:40px;min-height:40px;margin-top:3px;padding:1px 2px;border:1px solid transparent;color:#ffe3ad;line-height:1.15;min-width:0;cursor:default}
#game .sky-character-art{display:block;width:36px;height:36px;object-fit:contain;flex:none}
#game .sky-character-copy{display:grid;gap:2px;min-width:0;text-align:left}
#game .sky-character-name{font:700 12px/1.15 system-ui;white-space:normal;overflow-wrap:normal}
#game .sky-character-state{font:600 12px/1.1 system-ui;color:#bfd5ce}
#game .sky-character[data-used=true] .sky-character-art{filter:grayscale(.8);opacity:.6}
#game .sky-character[data-used=true] .sky-character-state::before{content:'✓ ';font-weight:850}
#game .sky-character[data-available=true]{cursor:pointer;border-color:#e8c789;background:#244d58}
#game .sky-character[data-available=true] .sky-character-state{color:#ffe69d;font-weight:850}
#game .sky-character[data-available=true] .sky-character-state::before{content:'▶ ';font-size:11px}
#game .sky-character:focus-visible{outline:3px solid #ffdc82;outline-offset:1px}
.sky-character-tooltip{position:fixed;z-index:250;max-width:min(350px,calc(100vw - 20px));width:max-content;padding:12px 14px;border:2px solid #d6b777;border-radius:8px;background:#173b48;color:#f3f4e5;box-shadow:0 6px 24px #061b2dbb;pointer-events:none;font:500 14px/1.45 system-ui}
.sky-character-tooltip[hidden]{display:none}
.sky-character-tooltip strong{display:block;color:#ffe3ad;font-size:16px;line-height:1.2}
.sky-character-tooltip .sky-character-timing{display:block;margin-top:5px;color:#bfd5ce;font-size:12px}
.sky-character-tooltip p{margin:8px 0 0}

/* The private inspector is a top-layer overlay; the board and hand keep their slots. */
#game .crew-panel .ui-section-title{position:relative}
#game .sky-spy-open{margin-left:auto;flex:none;padding:3px 7px;font:750 11px/1.2 system-ui;border:1px solid #c9b58b;background:#243e50;color:#fff0c5;border-radius:4px}
#game dialog.sky-spy{position:fixed;margin:0;box-sizing:border-box;width:min(650px,calc(100vw - 24px));max-width:none;max-height:calc(100vh - 24px);padding:12px 14px;background:#173442;color:#f7eed8;border:2px solid #cbb17c;border-radius:10px;box-shadow:0 8px 30px #061b29bb}
#game dialog.sky-spy::backdrop{background:#081d2938}
#game .sky-spy-heading{display:flex;align-items:center;gap:12px;min-width:0}
#game .sky-spy-heading strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}
#game .sky-spy-heading button{flex:none}
#game .sky-spy-caption{margin:4px 0 7px;font:600 12px/1.2 system-ui;color:#c2d6d4}
#game .sky-spy-cards{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;min-height:183px;padding:4px 3px 10px;scrollbar-width:thin;scrollbar-color:#b8a276 #203a47}
#game .sky-spy .playing-card{position:relative}
#game .sky-spy .sky-special-card-tooltip{z-index:1}

/* Reserve marker space for every viewer so private coverage never moves pieces. */
#game .hazards{box-sizing:border-box;min-height:142px;height:142px;max-height:142px;padding:12px 0 22px;row-gap:30px}
#game .hazards .sky-event-die{position:relative}
#game .challenge-panel>.ui-section-title{display:flex;align-items:center;gap:12px;min-height:18px}
#game .sky-coverage-summary{font:600 11px/1.2 system-ui;color:#d6dfca;white-space:nowrap;margin-left:auto}
#game .sky-captain-marker{position:absolute;display:flex;align-items:center;justify-content:center;gap:3px;bottom:-21px;left:50%;transform:translateX(-50%);height:20px;box-sizing:border-box;max-width:calc(var(--sky-die-size) + 4px);padding:1px 4px;background:#e5ecd4;color:#173b3b;border:1px solid #c6d4a5;border-radius:4px;font:850 10px/1 system-ui;white-space:nowrap;cursor:help}
#game .sky-coverage-tool{width:17px;height:17px;object-fit:contain;flex:none}
#game .sky-event-die[data-captain-coverage=turbo]{outline:2px dashed #ffe29b;outline-offset:2px}
#game .sky-event-die[data-captain-coverage=uncovered]{outline:3px double #f5a08e;outline-offset:2px}
#game .sky-event-die[data-captain-coverage=temporary]{outline:2px dotted #e9ddb0;outline-offset:2px}
#game .sky-event-die[data-captain-coverage=immunity]{outline:3px double #a3dad7;outline-offset:2px}
#game .sky-event-die[data-captain-coverage=turbo] .sky-captain-marker{background:#ffe0a0;border-style:dashed}
#game .sky-event-die[data-captain-coverage=uncovered] .sky-captain-marker{background:#ffd3c4;border-style:double}
#game .sky-coverage-detail{position:fixed;z-index:230;white-space:normal;max-width:min(280px,calc(100vw - 16px));width:max-content;padding:8px 10px;border:1px solid #cfbb8e;border-radius:6px;background:#173442;color:#fff2d0;font:600 13px/1.35 system-ui;box-shadow:0 4px 14px #061a2b99;pointer-events:none}
#game .sky-coverage-detail[hidden]{display:none}
#game .sky-card-plan-label{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);padding:3px 6px;background:#173f4a;color:#fff0b8;border:1px solid #ecd3a0;border-radius:4px;font:800 11px/1 system-ui;white-space:nowrap;z-index:3;pointer-events:none}
#game .sky-planned-equipment{outline:2px solid #e0d39d;outline-offset:-3px}
#game .sky-planned-equipment .sky-card-effect{padding-bottom:12px}

#game.sky-crowded-dice .sky-die-name{box-sizing:border-box;font-size:11px;letter-spacing:0;text-transform:none;padding:2px 3px;max-width:100%}

/* Card Kit opt-in: keep the 122x168 table hand, original asset silhouettes,
   variant badges, popovers and scene geometry. Shared Effect owns only the
   inner composition of special/power/expansion faces. */
#game .hand .playing-card.xg-card {
  --xg-card-width:122px;
  --xg-card-aspect:61 / 84;
  --xg-card-radius:8px;
  --xg-card-border:var(--sky-color,#d8b271);
  --xg-card-surface:#fff1d4;
  --xg-card-ink:#243443;
  --xg-card-muted:#415264;
  --xg-card-shadow:0 3px 6px #101c2455;
  box-sizing:border-box;
}
#game .hand .playing-card.xg-card--effect {
  padding:0;
  display:block;
  --xg-effect-padding:6px;
  --xg-effect-gap:3px;
}
#game .hand .playing-card.xg-card--effect .xg-card__face {
  position:absolute;inset:0;
  border-radius:inherit;
  background:#fff1d4;
}
#game .hand .playing-card.xg-card--effect .xg-preset--effect {
  position:absolute;inset:0;
  box-sizing:border-box;
  background:#fff1d4;
  color:#243443;
  font:12px/1.2 system-ui,sans-serif;
  padding:6px 5px 5px;
  gap:3px;
}
#game .hand .playing-card.xg-card--effect .xg-effect__header {
  min-height:28px;
  justify-content:center;
  align-items:center;
}
#game .hand .playing-card.xg-card--effect .xg-effect__title {
  text-align:center;
}
#game .hand .playing-card.xg-card--effect .sky-card-name {
  font:800 13px/1.15 system-ui,sans-serif;
  min-height:0;
  display:block;
  overflow-wrap:anywhere;
}
#game .hand .playing-card.xg-card--effect .xg-effect__type {
  text-align:center;
  color:#415264;
}
#game .hand .playing-card.xg-card--effect .sky-card-timing {
  font:800 12px/1.1 system-ui,sans-serif;
  max-width:100%;
  min-height:0;
}
#game .hand .playing-card.xg-card--effect .xg-effect__art {
  display:grid;place-items:center;
  order:1;
  min-height:0;
  max-height:46%;
  flex:1 2 44%;
  border:0;
  background:transparent;
}
#game .hand .playing-card.xg-card--effect .sky-card-art {
  display:block;
  inline-size:min(100%,70px);
  block-size:100%;
  min-height:0;
  object-fit:contain;
  margin:0;
}
#game .hand .playing-card.xg-card--effect .xg-effect__rules {
  order:2;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  flex:0 1 auto;
  font:600 12px/1.2 system-ui,sans-serif;
  text-align:center;
  color:#415264;
  max-height:34px;
}
/* Do not let the global hand selectors override the shared effect slots. */
#game .hand .playing-card.xg-card--effect:has(.sky-card-timing) .sky-card-art {
  inline-size:min(100%,70px);
  block-size:100%;
}
#game .hand .playing-card.xg-card--effect[data-variant="rowboat"] .xg-effect__rules{
  display:none;
}
#game .sky-basic-equipment .playing-card .sky-basic-face {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:4px;
  pointer-events:none;
}
#game .sky-basic-equipment .playing-card .sky-basic-face .sky-card-art{
  width:100px;
  height:117px;
}
#game .sky-basic-equipment .playing-card:is(:hover,:focus) .sky-basic-face .sky-card-art {
  transform:translateY(-17px) scale(.82);
}
#game .sky-playable-card .playing-card.xg-card { --xg-card-focus:#ffe59c; }
#game .sky-planned-equipment.xg-card,
#game .sky-help-selected.xg-card { --xg-card-accent:#ffe098; }
@media(prefers-reduced-motion:reduce){
  #game .hand .playing-card.xg-card--effect .xg-effect__art,
  #game .hand .playing-card.xg-card--effect .sky-card-art {transition:none}
}

