/* 7 Wonders Duel: antiquity at dusk. Dark umber stone, papyrus and gold, Roman capitals (Cinzel), and the card colours of
   the game: brown raw materials, grey goods, yellow trade, red military, blue civic, green science, purple guilds. The
   theme block swaps the shared tokens while the game is on screen (html.theme-sevenwonders); the rest is this game's own
   pieces, scoped under .sw-* so nothing leaks into the other games' pages. */
html.theme-sevenwonders {
    --bg: #1c1611;
    --panel: #2a2119;
    --panel-2: #352a1f;
    --panel-3: #43352a;
    --line: #5a4733;
    --text: #f5ead4;
    --muted: #c4b092;
    --accent: #d6a648;
    --accent-2: #f1cd72;
    --accent-dark: #9b7228;
    --accent-text: #241806;
    --parch: #f3e5c2;
    --parch-2: #dcc79b;
    --parch-ink: #2b2014;
    --danger: #e3664d;
    --ok: #93d17f;
    --display: "Cinzel", "Trajan Pro", Georgia, serif;
    /* the card colours */
    --sw-brown: #8b5a2f;
    --sw-grey: #868a92;
    --sw-yellow: #d6a22b;
    --sw-red: #b3352a;
    --sw-blue: #2d66ad;
    --sw-green: #378446;
    --sw-purple: #6d4495;
    /* the backs and the tokens */
    --sw-back-1: #a06c2a;
    --sw-back-2: #366896;
    --sw-back-3: #8c3a5f;
    --sw-back-guild: #573786;
    --sw-token: #2f7a45;
    /* the board and the track */
    --sw-felt: #2b2119;
    --sw-felt-2: #241b14;
    --sw-sand-0: #ecdcae;
    --sw-sand-1: #ddc288;
    --sw-sand-2: #caa766;
    --sw-sand-3: #b48b4e;
    --sw-loot: #7a2418;
    --sw-loot-edge: #f3c77a;
    --sw-pawn: #b8261a;
}
html.theme-sevenwonders body {
    background:
        radial-gradient(ellipse at 50% -10%, rgba(214, 166, 72, .12), transparent 60%),
        radial-gradient(ellipse at 50% 110%, rgba(140, 58, 95, .12), transparent 60%),
        var(--bg);
    background-attachment: fixed;
}
html.theme-sevenwonders .topbar .round { letter-spacing: .04em; }
html.theme-sevenwonders .btn.primary { font-family: var(--body); }
html.theme-sevenwonders .sheet > header h2 { letter-spacing: .02em; }

/* ---- the game page: one phone screen, no scrolling. The board takes what the cities, the track and the bar leave. */
.sw-page.game-page { padding-top: .5rem; display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.page.sw-page.game-page.with-fabs { padding-bottom: calc(4.6rem + env(safe-area-inset-bottom, 0px)); }
.sw-page .topbar { margin-bottom: .35rem; }
.sw-page .topbar .round .of { font-family: var(--body); }
.sw-play { flex: 1; display: flex; flex-direction: column; gap: .35rem; min-height: 0; }
.sw-board-wrap { flex: 1 1 0; min-height: 12rem; display: flex; align-items: center; justify-content: center; position: relative; container-type: size; }
.sw-board-empty { padding: 2rem 1rem; }
/* The caption of the beat playing sits where the action bar is (the bar only says "Watching" then), so the cities stay in view. */
.sw-page .show-strip:not(.inline) { bottom: calc(.55rem + env(safe-area-inset-bottom, 0px)); z-index: 46; }
.sw-actions .fab-status { font-size: .95rem; }
.sw-actions .fab-status.mine { background: var(--accent); color: var(--accent-text); border-color: var(--accent); font-weight: 700; }
.sw-actions .fab-status .ico { width: 1.15rem; height: 1.15rem; }

/* ---- a city in two lines */
.sw-city { display: flex; flex-direction: column; gap: .2rem; width: 100%; background: var(--panel); border: 1px solid var(--line); border-left: 5px solid var(--cauldron);
    border-radius: 12px; padding: .3rem .5rem .3rem .45rem; color: var(--text); font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sw-city.turn { box-shadow: 0 0 0 2px var(--cauldron), 0 0 14px color-mix(in srgb, var(--cauldron) 45%, transparent); }
.sw-city:active { filter: brightness(1.08); }
.sw-city-row { display: flex; align-items: center; gap: .4rem; min-width: 0; line-height: 1.1; }
.sw-city .ico { width: 1rem; height: 1rem; }
.sw-city .who { display: inline-flex; align-items: center; gap: .25rem; font-size: .92rem; min-width: 0; max-width: 6.6rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-city .who b { overflow: hidden; text-overflow: ellipsis; }
.sw-city .who .ico.seat { color: var(--cauldron); width: 1.1rem; height: 1.1rem; }
.sw-coins, .sw-pts { display: inline-flex; align-items: center; gap: .15rem; }
.sw-coins b, .sw-pts b { font-family: var(--display); font-size: 1rem; font-variant-numeric: tabular-nums; }
.sw-coins.gain b { animation: sw-gain .9s ease-out; }
.sw-coins.loss b { animation: sw-loss .9s ease-out; }
.sw-pts b { color: var(--muted); font-size: .9rem; }
.sw-wpips { display: inline-flex; gap: .15rem; margin-left: auto; }
.sw-wpip { width: 1.3rem; height: 1.3rem; border-radius: 4px; border: 1px dashed var(--muted); display: inline-grid; place-items: center; color: var(--muted); }
.sw-wpip .ico { width: .95rem; height: .95rem; }
.sw-wpip.built { background: linear-gradient(160deg, #f6d985, #c99434); border: 1px solid #f3dc9c; color: #3a2508; }
.sw-wpip.gone { opacity: .35; border-style: solid; position: relative; }
.sw-wpip.gone::after { content: ""; position: absolute; left: -2px; right: -2px; top: 50%; border-top: 1.5px solid var(--danger); transform: rotate(-35deg); }
.sw-wpip.empty { opacity: .25; }
.sw-wpip.sw-shine { animation: sw-shine 1.1s ease-out; }
.sw-toks { display: inline-flex; gap: .1rem; }
.sw-toks:empty { display: none; }
.sw-tok svg { width: 1.15rem; height: 1.15rem; display: block; }
.sw-res { display: inline-flex; gap: .3rem; }
.sw-r { display: inline-flex; align-items: center; gap: .05rem; font-size: .8rem; }
.sw-r b { font-variant-numeric: tabular-nums; }
.sw-r.zero { opacity: .32; }
.sw-r.choice { color: var(--accent-2); font-size: .78rem; }
.sw-sci { display: inline-flex; gap: .05rem; color: var(--parch); }
.sw-sym .ico { width: .95rem; height: .95rem; }
.sw-sym.pair { color: var(--accent-2); filter: drop-shadow(0 0 3px var(--accent)); }
.sw-cols { display: inline-flex; gap: 2px; margin-left: auto; }
.sw-col { min-width: 1.02rem; height: 1.2rem; padding: 0 .1rem; border-radius: 3px; background: var(--c); color: #fff; font-size: .72rem; font-weight: 700;
    display: inline-grid; place-items: center; text-shadow: 0 1px 1px rgba(0,0,0,.65); box-shadow: inset 0 0 0 1px rgba(0,0,0,.35); }
.sw-col.zero { opacity: .28; }
@media (max-width: 360px) { .sw-pts { display: none; } .sw-res { gap: .15rem; } }

/* ---- the structure */
.sw-board { display: block; max-width: none; margin: 0; width: min(100cqw, calc(100cqh * var(--sw-ar, .9))); height: auto; touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.sw-board-bg { fill: var(--sw-felt); stroke: var(--line); stroke-width: 1; }
.sw-place { fill: none; }
.sw-slot.taken .sw-place { fill: rgba(255,255,255,.025); stroke: rgba(255,240,210,.12); stroke-width: 1; stroke-dasharray: 3 3; }
.sw-shadow { fill: rgba(0,0,0,.45); }
.sw-cardg { transform-box: fill-box; transform-origin: center; }
.sw-slot.covered:not(.facedown) .sw-cardg > svg { filter: brightness(.82) saturate(.9); }
.sw-slot.facedown .sw-cardg > svg { filter: brightness(.9); }
.sw-glow { fill: none; stroke: var(--accent-2); stroke-width: 2; animation: sw-pulse 1.8s ease-in-out infinite; pointer-events: none; }
.sw-slot.sel .sw-glow { stroke: #fff; stroke-width: 3; animation: none; }
.sw-hit { cursor: pointer; }
.sw-badge rect { fill: #1d1712; stroke: var(--accent); stroke-width: 1; }
.sw-badge text { fill: #f6ecd6; font-size: 9px; font-weight: 700; font-family: var(--body); }
.sw-badge.free rect, .sw-badge.chain rect { fill: #24572c; stroke: #9fdc8c; }
.sw-badge.chain use { color: #d7f5c9; }
.sw-badge.cant rect { fill: #6b1e14; stroke: #f08a6f; }
.sw-badge { pointer-events: none; }
.sw-board.sw-dealing .sw-cardg { animation: sw-deal .5s cubic-bezier(.2,.8,.2,1) backwards; animation-delay: calc(var(--i) * 45ms); }

/* ---- the conflict and the progress tokens */
.sw-track { display: block; width: 100%; height: auto; max-height: 5.4rem; }
.sw-track-bg { fill: var(--panel); stroke: var(--line); }
.sw-cell { fill: var(--sw-sand-1); stroke: rgba(60,35,10,.35); stroke-width: .6; }
.sw-cell.z0 { fill: var(--sw-sand-0); }
.sw-cell.z1 { fill: var(--sw-sand-1); }
.sw-cell.z2 { fill: var(--sw-sand-2); }
.sw-cell.z3 { fill: var(--sw-sand-3); }
.sw-cell.cap { fill: var(--cauldron); }
.sw-capital use { color: rgba(255,255,255,.88); }
.sw-zone-vp { fill: rgba(60,35,10,.55); font-size: 7.5px; font-weight: 700; font-family: var(--body); }
.sw-loot rect { fill: var(--sw-loot); stroke: var(--sw-loot-edge); stroke-width: .8; }
.sw-loot text { fill: #f8e6b8; font-size: 9px; font-weight: 700; font-family: var(--body); }
.sw-loot.mine rect { stroke: var(--cauldron); }
.sw-pawn { transition: transform .8s cubic-bezier(.35,1.35,.5,1); }
.sw-pawn use { color: var(--sw-pawn); filter: drop-shadow(0 1px 1px rgba(0,0,0,.6)); }
.sw-track-note { fill: var(--muted); font-size: 9.5px; font-family: var(--body); }
.sw-tokring { fill: rgba(0,0,0,.28); stroke: rgba(255,240,210,.14); stroke-width: 1; }
.sw-tokpos.gone .sw-tokring { stroke-dasharray: 2 2; fill: none; }
.sw-tokpos.lit .sw-tokring { stroke: var(--accent-2); stroke-width: 2; }
.sw-tokpos .sw-hit { cursor: pointer; }
.sw-pile { cursor: pointer; }
.sw-pile-bg { fill: var(--panel-2); stroke: var(--line); }
.sw-pile use { color: #cdb68c; }
.sw-pile-n { fill: var(--text); font-size: 12px; font-weight: 700; font-family: var(--display); }

/* ---- pieces drawn in HTML (sheets, the city, the score) */
.sw-card { display: block; width: 3.6rem; height: auto; border-radius: 5px; filter: drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.sw-card.big { width: 6.4rem; flex: none; }
.sw-card.mid { width: 100%; max-width: 5.4rem; }
.sw-card.small { width: 3.3rem; }
.sw-card.lobby { width: 3.6rem; }
.sw-card.age { width: 5.6rem; margin: 0 auto; animation: sw-age-in .7s cubic-bezier(.2,.8,.2,1); }
.sw-wonder { display: block; width: 100%; height: auto; border-radius: 6px; filter: drop-shadow(0 2px 3px rgba(0,0,0,.4)); }
.sw-wonder.opt { width: 4.6rem; flex: none; }
.sw-wonder.mini { width: 3.4rem; }
.sw-token { display: block; width: 1.8rem; height: 1.8rem; flex: none; }
.sw-token.big { width: 3rem; height: 3rem; }

/* the card sheet */
.sw-card-sheet { border-top: 4px solid var(--c, var(--accent)); }
.sw-card-sheet > .body { padding-top: .6rem; }
.sw-cs-top { display: flex; gap: .75rem; align-items: flex-start; }
.sw-cs-text p { margin: 0 0 .35rem; font-size: .95rem; }
.sw-cs-why { color: var(--accent-2); }
.sw-opts { display: flex; flex-direction: column; gap: .4rem; margin-top: .6rem; }
.sw-opt { display: flex; align-items: center; gap: .6rem; width: 100%; text-align: left; background: var(--panel-2); border: 1px solid var(--line); border-radius: 12px;
    padding: .5rem .6rem; color: var(--text); font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sw-opt.on { border-color: var(--accent-2); box-shadow: inset 0 0 0 1px var(--accent-2), 0 0 12px rgba(241, 205, 114, .25); background: color-mix(in srgb, var(--accent) 16%, var(--panel-2)); }
.sw-opt:disabled { opacity: .5; cursor: default; }
.sw-opt > .ico { width: 1.6rem; height: 1.6rem; color: var(--accent-2); flex: none; }
.sw-opt .what { flex: 1; min-width: 0; }
.sw-opt .what small { display: block; color: var(--muted); font-size: .8rem; line-height: 1.25; margin-top: .1rem; }
.sw-opt-price { flex: none; font-family: var(--display); font-weight: 700; color: var(--accent-2); white-space: nowrap; }
.sw-opt-price.cant { color: var(--danger); }
.sw-opt-price.gain { color: var(--ok); }
.sw-opts-head { margin: .35rem 0 0; font-size: .85rem; color: var(--muted); display: flex; align-items: center; gap: .3rem; font-family: var(--body); }
.sw-opts-head .ico { width: 1rem; height: 1rem; }

/* the draft */
.sw-draft-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.sw-draft-tile { position: relative; display: flex; flex-direction: column; gap: .3rem; padding: .35rem; border-radius: 12px; border: 2px solid var(--line);
    background: var(--panel-2); color: var(--text); text-align: left; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sw-draft-tile.on { border-color: var(--accent-2); box-shadow: 0 0 0 2px rgba(241, 205, 114, .35), 0 0 16px rgba(241, 205, 114, .3); transform: translateY(-2px); }
.sw-draft-tile.taken { opacity: .6; border-color: var(--cauldron); }
.sw-draft-tile:disabled { cursor: default; }
.sw-draft-text { font-size: .76rem; line-height: 1.22; color: var(--muted); }
.sw-draft-owner { position: absolute; top: .55rem; right: .55rem; display: inline-flex; align-items: center; gap: .2rem; background: var(--cauldron); color: #fff;
    font-size: .74rem; font-weight: 700; padding: .1rem .45rem; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.sw-draft-owner .ico { width: .9rem; height: .9rem; color: #fff; }
.sw-draft-held { margin-top: .75rem; display: flex; flex-direction: column; gap: .35rem; }
.sw-held-row { display: flex; align-items: center; gap: .3rem; }
.sw-held-row .who { width: 4.6rem; font-size: .82rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: inline-flex; align-items: center; gap: .2rem; }
.sw-held-row .who .ico { color: var(--cauldron); }
.sw-held { width: 3.6rem; }
.sw-held.empty { height: 2.1rem; border: 1px dashed var(--line); border-radius: 5px; }
.sw-draft-wait { margin: 0; flex: 1; }

/* choices */
.sw-tiles.tokens { display: flex; flex-direction: column; gap: .45rem; }
.sw-tile { font: inherit; color: var(--text); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sw-tile.token { display: flex; gap: .7rem; align-items: center; text-align: left; background: var(--panel-2); border: 2px solid var(--line); border-radius: 12px; padding: .5rem .6rem; }
.sw-tile.token small { display: block; color: var(--muted); font-size: .82rem; line-height: 1.25; }
.sw-tile.on { border-color: var(--accent-2); box-shadow: 0 0 14px rgba(241, 205, 114, .3); }
.sw-tiles.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: .5rem; }
.sw-tile.card { display: flex; flex-direction: column; align-items: center; gap: .25rem; background: none; border: 2px solid transparent; border-radius: 10px; padding: .3rem; }
.sw-tile.card small { font-size: .78rem; text-align: center; line-height: 1.15; }
.sw-starter { display: flex; flex-direction: column; gap: .6rem; }
.sw-starter .btn .ico { width: 1.3rem; height: 1.3rem; }
.sw-start-them { border-color: var(--cauldron); }

/* the city in full */
.sw-cs-coins { display: inline-flex; align-items: center; gap: .25rem; font-family: var(--display); font-size: 1.2rem; }
.sw-cs-coins .ico { width: 1.4rem; height: 1.4rem; }
.sw-cs-sec { padding: .55rem 0; border-bottom: 1px solid var(--line); }
.sw-cs-sec:last-child { border-bottom: 0; }
.sw-cs-sec h3 { display: flex; align-items: center; gap: .35rem; margin: 0 0 .4rem; color: var(--accent-2); font-family: var(--display); font-size: 1rem; }
.sw-cs-sec h3 .ico { width: 1.2rem; height: 1.2rem; }
.sw-cs-sec p { margin: .3rem 0 0; }
.sw-cs-score { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; }
.sw-cs-score span { display: flex; flex-direction: column; align-items: center; background: var(--panel-2); border-radius: 8px; padding: .25rem; }
.sw-cs-score small { color: var(--muted); font-size: .72rem; }
.sw-cs-score b { font-family: var(--display); font-size: 1.05rem; }
.sw-cs-res { display: flex; flex-wrap: wrap; gap: .35rem .7rem; }
.sw-cs-res .sw-r { font-size: .95rem; }
.sw-cs-res .sw-r .ico { width: 1.3rem; height: 1.3rem; }
.sw-cs-res .sw-r small { color: var(--muted); font-size: .72rem; margin-left: .2rem; }
.sw-cs-sci { display: flex; gap: .45rem; flex-wrap: wrap; }
.sw-cs-sci .sw-sym { display: inline-flex; align-items: center; gap: .1rem; color: var(--parch); }
.sw-cs-sci .ico { width: 1.6rem; height: 1.6rem; }
.sw-cs-wonders { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.sw-cs-wonder small { display: block; color: var(--muted); font-size: .74rem; line-height: 1.2; margin-top: .2rem; }
.sw-cs-wonder.gone { opacity: .45; }
.sw-cs-token { display: flex; gap: .5rem; align-items: center; margin-bottom: .35rem; }
.sw-cs-token small { color: var(--muted); }
.sw-cs-group { margin-bottom: .45rem; }
.sw-cs-group > small { display: inline-flex; align-items: center; gap: .3rem; color: var(--muted); text-transform: capitalize; }
.sw-cs-group > small i { display: inline-block; width: .7rem; height: .95rem; background: var(--c); border-radius: 2px; }
.sw-cs-cards { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .2rem; }

/* a token or the discard pile */
.sw-info-token { display: flex; gap: .75rem; align-items: center; }
.sw-info-cards { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .5rem; }

/* the score pad */
.sw-score-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.sw-score-table th, .sw-score-table td { padding: .35rem .4rem; text-align: center; }
.sw-score-table th { color: var(--seat-text); font-weight: 700; white-space: nowrap; }
.sw-score-table td.cat { text-align: left; white-space: nowrap; }
.sw-score-table td.cat .ico { width: 1.05rem; height: 1.05rem; color: var(--accent-2); }
.sw-score-table tbody tr { border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }
.sw-score-table tr.now { background: color-mix(in srgb, var(--accent) 22%, transparent); animation: sw-row-in .35s ease-out; }
.sw-score-table tr.now td b { font-size: 1.15rem; }
.sw-score-table tr.sum td { border-top: 2px solid var(--accent); font-family: var(--display); font-size: 1.15rem; }
.sw-score-table.small { font-size: .88rem; margin-top: .75rem; }
.sw-score-table.small tr.sum td { font-size: 1rem; }
.sw-score-note { margin-top: .6rem; }
.sw-verdict { font-family: var(--display); font-size: 1.12rem; text-align: center; margin: .9rem 0 0; color: var(--accent-2); }

/* the Age splash and the supremacy */
.sw-age-art { margin: .25rem 0 1rem; }
.sw-age-note { text-align: center; max-width: 30rem; margin: 0 auto .75rem; }
.sw-age-scores { list-style: none; padding: 0; margin: 0 auto; max-width: 22rem; }
.sw-age-scores li { display: flex; justify-content: space-between; gap: 1.5rem; padding: .35rem .2rem; border-bottom: 1px solid var(--line); }
.sw-age-scores li .ico { width: 1rem; height: 1rem; }
.sw-age-scores li .ico.seat { color: var(--cauldron); }
.sw-sup-art { text-align: center; margin-bottom: 1rem; }
.sw-sup-art .ico { width: 5.5rem; height: 5.5rem; color: var(--accent-2); filter: drop-shadow(0 0 18px rgba(241, 205, 114, .45)); animation: sw-age-in .8s cubic-bezier(.2,.8,.2,1); }
.sw-final { position: relative; }

/* the lobby */
.sw-lobby-art { display: flex; gap: .45rem; justify-content: center; margin: .25rem 0 .75rem; }

/* the flying pieces */
.sw-ghost { position: fixed; left: 0; top: 0; z-index: 70; pointer-events: none; transform-origin: 0 0; will-change: transform; filter: drop-shadow(0 8px 14px rgba(0,0,0,.5)); }
.sw-ghost svg { display: block; width: 100%; height: 100%; }

/* ---- the table */
.sw-tablepage .sw-table-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .sw-tablepage .sw-table-grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; } }
.sw-tablepage .sw-board { width: 100%; max-width: 820px; margin: 0 auto; }
.sw-tablepage .sw-board-wrap { min-height: 12rem; container-type: normal; flex: none; }
.sw-tablepage .sw-track { max-height: 7rem; }
.sw-tablepage .sw-city { cursor: default; }
.sw-seat-pill { background: var(--cauldron); color: #fff; border-color: var(--cauldron); }
.sw-table-wonders { margin-bottom: .5rem; }
.sw-table-wonders small { display: inline-flex; align-items: center; gap: .2rem; }
.sw-table-wonders small .ico { color: var(--cauldron); }
.sw-table-wonders > div { display: flex; gap: .3rem; flex-wrap: wrap; }
.sw-table-wonders .gone { opacity: .35; }
.sw-table-draft { width: 100%; }

@keyframes sw-pulse { 0%, 100% { stroke-opacity: .45; } 50% { stroke-opacity: 1; } }
@keyframes sw-deal { from { opacity: 0; transform: translateY(-34px) scale(.85) rotate(-4deg); } }
@keyframes sw-gain { 0% { color: var(--ok); } 100% { color: inherit; } }
@keyframes sw-loss { 0% { color: var(--danger); } 100% { color: inherit; } }
@keyframes sw-shine { 0% { box-shadow: 0 0 0 0 rgba(241, 205, 114, .9); } 100% { box-shadow: 0 0 0 10px rgba(241, 205, 114, 0); } }
@keyframes sw-row-in { from { opacity: 0; transform: translateY(-4px); } }
@keyframes sw-age-in { from { opacity: 0; transform: scale(.6) rotate(-8deg); } }

@media (prefers-reduced-motion: reduce) {
    .sw-glow, .sw-board.sw-dealing .sw-cardg, .sw-coins.gain b, .sw-coins.loss b, .sw-wpip.sw-shine, .sw-score-table tr.now, .sw-card.age, .sw-sup-art .ico { animation: none !important; }
    .sw-pawn { transition: none; }
}
.sheet.sw-choice.choosestarter > footer { display: none; }
