#gcg-game-root {
  --bw-card-w: 86px;
  --bw-card-h: 122px;
  min-height: 760px;
  overflow: hidden;
  color: #f8f6f3;
  background: #09090c;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#gcg-game-root *,
#gcg-game-root *::before,
#gcg-game-root *::after { box-sizing: border-box; }

#gcg-game-root button,
#gcg-game-root input,
#gcg-game-root select { font: inherit; }

.bw-game {
  --table-a: #2a0c12;
  --table-b: #12070a;
  --table-c: #3b1118;
  --accent: #df3c55;
  --accent-bright: #ff647c;
  --accent-soft: rgba(223, 60, 85, .22);
  --gold: #e9bd6b;
  --gold-soft: rgba(233, 189, 107, .2);
  --panel: rgba(11, 11, 15, .84);
  --panel-strong: rgba(8, 8, 11, .95);
  --line: rgba(255, 255, 255, .11);
  --muted: rgba(246, 242, 238, .64);
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 760px;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% -10%, rgba(255,255,255,.08), transparent 34%),
    radial-gradient(circle at 10% 38%, var(--accent-soft), transparent 28%),
    radial-gradient(circle at 92% 66%, rgba(233, 189, 107, .1), transparent 26%),
    linear-gradient(145deg, var(--table-a), var(--table-b) 58%, var(--table-c));
}

.bw-game::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  opacity: .48;
  background-image:
    linear-gradient(120deg, transparent 0 48%, rgba(255,255,255,.025) 49% 50%, transparent 51% 100%),
    linear-gradient(30deg, transparent 0 48%, rgba(255,255,255,.022) 49% 50%, transparent 51% 100%);
  background-size: 48px 48px;
  mask-image: radial-gradient(circle at center, #000 10%, transparent 92%);
}

.bw-game::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    repeating-radial-gradient(circle at 50% 44%, transparent 0 70px, rgba(255,255,255,.018) 71px 72px, transparent 73px 108px),
    linear-gradient(90deg, rgba(0,0,0,.3), transparent 18% 82%, rgba(0,0,0,.3));
  box-shadow: inset 0 0 170px rgba(0,0,0,.68);
}

.bw-theme-emerald {
  --table-a: #0b3a31;
  --table-b: #061d1b;
  --table-c: #145247;
  --accent: #2ebf91;
  --accent-bright: #70e3bd;
  --accent-soft: rgba(46, 191, 145, .2);
}

.bw-theme-royal {
  --table-a: #14264d;
  --table-b: #081329;
  --table-c: #243865;
  --accent: #517bd6;
  --accent-bright: #83a7f5;
  --accent-soft: rgba(81, 123, 214, .23);
}

.bw-large-cards { --bw-card-w: 92px; --bw-card-h: 132px; }

.bw-topbar {
  position: relative;
  z-index: 50;
  display: grid;
  grid-template-columns: minmax(200px, 1fr) auto auto auto;
  align-items: center;
  gap: 17px;
  min-height: 88px;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: linear-gradient(180deg, rgba(5,5,8,.96), rgba(10,10,14,.86));
  box-shadow: 0 15px 40px rgba(0,0,0,.34);
  backdrop-filter: blur(18px);
}

.bw-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }

.bw-brand__mark {
  position: relative;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,108,130,.56);
  border-radius: 18px;
  color: #fff;
  background:
    radial-gradient(circle at 50% 52%, rgba(255,255,255,.18), transparent 32%),
    linear-gradient(145deg, #5d1723, #1a080d 72%);
  box-shadow: 0 10px 28px rgba(189,31,57,.28), inset 0 1px 0 rgba(255,255,255,.18);
}

.bw-brand__mark span { position: relative; z-index: 2; font-size: 28px; filter: drop-shadow(0 3px 7px rgba(0,0,0,.45)); }
.bw-brand__mark i,
.bw-brand__mark i::before,
.bw-brand__mark i::after {
  position: absolute;
  width: 1px;
  height: 80px;
  background: rgba(255,255,255,.14);
  content: "";
}
.bw-brand__mark i { transform: rotate(0deg); }
.bw-brand__mark i::before { transform: rotate(60deg); transform-origin: center; }
.bw-brand__mark i::after { transform: rotate(-60deg); transform-origin: center; }

.bw-brand__copy { min-width: 0; }
.bw-brand small { display: block; margin-bottom: 3px; color: var(--accent-bright); font-size: 9px; font-weight: 900; letter-spacing: .17em; }
.bw-brand h2 { margin: 0; overflow: hidden; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(20px, 2vw, 28px); line-height: 1; letter-spacing: -.035em; text-overflow: ellipsis; white-space: nowrap; }

.bw-actions { display: flex; align-items: center; gap: 7px; }
.bw-button,
.bw-icon-button,
.bw-mini-button {
  appearance: none;
  border: 1px solid rgba(255,255,255,.12);
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.bw-button {
  min-height: 42px;
  padding: 0 13px;
  border-radius: 12px;
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.06);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .005em;
}
.bw-button span { margin-right: 5px; color: var(--gold); font-size: 16px; vertical-align: -1px; }
.bw-button--red {
  border-color: rgba(255,112,133,.72);
  color: #fff;
  background: linear-gradient(145deg, #e64a63, #a71e36);
  box-shadow: 0 8px 24px rgba(190,32,59,.26), inset 0 1px 0 rgba(255,255,255,.3);
}
.bw-button--red span { color: #fff; }
.bw-button:hover:not(:disabled),
.bw-icon-button:hover:not(:disabled),
.bw-mini-button:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(233,189,107,.5);
  background-color: rgba(255,255,255,.11);
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.bw-button--red:hover:not(:disabled) { background: linear-gradient(145deg, #f05b72, #b8253e); }
.bw-button:active,
.bw-icon-button:active,
.bw-mini-button:active { transform: translateY(0) scale(.97); }
.bw-button:disabled,
.bw-icon-button:disabled,
.bw-mini-button:disabled { opacity: .3; cursor: not-allowed; transform: none; box-shadow: none; }
.bw-button:focus-visible,
.bw-icon-button:focus-visible,
.bw-mini-button:focus-visible,
.bw-card:focus-visible,
.bw-stock:focus-visible,
.bw-mode-option:focus-visible,
.bw-theme-option:focus-visible,
.bw-back-option:focus-visible,
.bw-toggle-row:focus-visible { outline: 3px solid rgba(233,189,107,.48); outline-offset: 2px; }

.bw-metrics { display: grid; grid-template-columns: repeat(3, minmax(55px, 1fr)); gap: 6px; }
.bw-metrics > div { min-width: 58px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.08); border-radius: 11px; text-align: center; background: rgba(255,255,255,.045); }
.bw-metrics span { display: block; color: rgba(255,255,255,.5); font-size: 8px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.bw-metrics strong { display: block; margin-top: 2px; color: #fff; font-size: 14px; font-variant-numeric: tabular-nums; }
.bw-icon-button { width: 41px; height: 41px; display: grid; place-items: center; border-radius: 12px; color: #f4efe9; background: rgba(255,255,255,.055); font-size: 17px; }

.bw-subbar {
  position: relative;
  z-index: 40;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(250px, 1.1fr) minmax(250px, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 7px 18px;
  border-bottom: 1px solid rgba(255,255,255,.075);
  background: rgba(8,8,12,.66);
  backdrop-filter: blur(12px);
}
.bw-subbar__left,
.bw-subbar__right { display: flex; align-items: center; gap: 8px; }
.bw-subbar__right { justify-content: flex-end; }
.bw-subbar__center { overflow: hidden; color: rgba(255,255,255,.72); font-size: 11px; font-weight: 650; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.bw-mode-chip,
.bw-deal-label,
.bw-difficulty { padding: 5px 9px; border-radius: 999px; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.bw-mode-chip { color: #fff; background: linear-gradient(145deg, var(--accent), color-mix(in srgb, var(--accent), #000 34%)); box-shadow: 0 5px 15px var(--accent-soft); }
.bw-deal-label { max-width: 170px; overflow: hidden; color: rgba(255,255,255,.68); background: rgba(255,255,255,.06); text-overflow: ellipsis; white-space: nowrap; }
.bw-difficulty { color: var(--gold); border: 1px solid rgba(233,189,107,.22); background: rgba(233,189,107,.07); }
.bw-legal { display: inline-flex; align-items: center; gap: 5px; color: rgba(255,255,255,.64); font-size: 10px; font-weight: 750; }
.bw-legal i { width: 7px; height: 7px; border-radius: 50%; background: #6ddb9f; box-shadow: 0 0 9px rgba(109,219,159,.55); }
.bw-legal b { color: #fff; font-size: 11px; }
.bw-mini-button { min-height: 29px; padding: 0 10px; border-radius: 9px; color: rgba(255,255,255,.72); background: rgba(255,255,255,.045); font-size: 9px; font-weight: 850; }

.bw-board-shell {
  position: relative;
  flex: 1 1 auto;
  min-height: 610px;
  overflow: auto hidden;
  scrollbar-color: rgba(233,189,107,.36) rgba(0,0,0,.2);
  scrollbar-width: thin;
}
.bw-board-shell::-webkit-scrollbar { height: 10px; }
.bw-board-shell::-webkit-scrollbar-track { background: rgba(0,0,0,.2); }
.bw-board-shell::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: rgba(233,189,107,.36); background-clip: padding-box; }

.bw-board { position: relative; min-width: 1020px; min-height: 610px; padding: 14px 18px 26px; }
.bw-upper-row { display: grid; grid-template-columns: minmax(270px, 1fr) 160px minmax(420px, 1.4fr); align-items: center; gap: 20px; min-height: 100px; }

.bw-stock-zone { display: flex; align-items: center; gap: 15px; }
.bw-stock { position: relative; width: 72px; height: 88px; padding: 0; border: 0; border-radius: 12px; background: transparent; cursor: pointer; }
.bw-stock__stack { position: absolute; inset: 7px 9px 5px 5px; display: block; }
.bw-stock__stack i {
  position: absolute;
  inset: 0;
  transform: translate(calc(var(--stack) * 2px), calc(var(--stack) * -2px));
  border: 3px solid #ece8df;
  border-radius: 9px;
  background:
    radial-gradient(circle at center, rgba(255,255,255,.12) 0 4px, transparent 5px),
    repeating-radial-gradient(circle at center, transparent 0 8px, rgba(255,255,255,.1) 9px 10px),
    linear-gradient(145deg, color-mix(in srgb, var(--accent), #fff 7%), color-mix(in srgb, var(--accent), #000 48%));
  box-shadow: 0 7px 18px rgba(0,0,0,.35);
}
.bw-stock__stack b { position: absolute; z-index: 9; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.84); font-family: Georgia, serif; font-size: 24px; text-shadow: 0 2px 7px rgba(0,0,0,.5); }
.bw-stock__empty { position: absolute; inset: 8px; display: grid; place-items: center; border: 1px dashed rgba(255,255,255,.25); border-radius: 10px; color: rgba(255,255,255,.42); font-size: 22px; }
.bw-stock:hover:not(:disabled) .bw-stock__stack { transform: translateY(-2px); }
.bw-stock-copy span,
.bw-foundation-copy span { display: block; color: rgba(255,255,255,.48); font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.bw-stock-copy strong,
.bw-foundation-copy strong { display: block; margin-top: 4px; color: #fff; font-size: 13px; }
.bw-deal-dots { display: flex; gap: 5px; margin-top: 8px; }
.bw-deal-dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.12); }
.bw-deal-dots i.is-active { background: var(--gold); box-shadow: 0 0 9px rgba(233,189,107,.5); }

.bw-center-emblem { position: relative; height: 96px; display: grid; place-items: center; color: rgba(255,255,255,.15); }
.bw-center-emblem strong { position: relative; z-index: 2; color: rgba(255,255,255,.22); font-family: Georgia, serif; font-size: 40px; }
.bw-center-emblem small { position: absolute; bottom: 1px; color: rgba(255,255,255,.26); font-size: 7px; font-weight: 900; letter-spacing: .17em; }
.bw-web,
.bw-web::before,
.bw-web::after { position: absolute; width: 88px; height: 88px; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; content: ""; }
.bw-web::before { inset: 12px; width: auto; height: auto; }
.bw-web::after { inset: 26px; width: auto; height: auto; }

.bw-foundation-zone { display: flex; align-items: center; justify-content: flex-end; gap: 15px; }
.bw-foundation-copy { text-align: right; }
.bw-foundation-copy b { color: var(--gold); }
.bw-foundations { display: grid; grid-template-columns: repeat(8, 40px); gap: 5px; }
.bw-foundation-slot,
.bw-foundation-card { position: relative; width: 40px; height: 58px; border-radius: 7px; }
.bw-foundation-slot { display: grid; place-items: center; border: 1px dashed rgba(255,255,255,.2); color: rgba(255,255,255,.18); background: rgba(0,0,0,.11); font-size: 8px; font-weight: 900; }
.bw-foundation-card { color: #17171c; background: linear-gradient(145deg, #fffefa, #e7e2d9); box-shadow: 0 5px 15px rgba(0,0,0,.28); animation: bw-foundation-in .45s cubic-bezier(.2,.8,.2,1) both; }
.bw-foundation-card--red { color: #c42b42; }
.bw-foundation-card span,
.bw-foundation-card small { position: absolute; font-size: 8px; font-weight: 900; }
.bw-foundation-card span { top: 4px; left: 5px; }
.bw-foundation-card small { right: 5px; bottom: 4px; }
.bw-foundation-card strong { position: absolute; inset: 0; display: grid; place-items: center; font-size: 20px; }

.bw-progress { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; margin: 2px 3px 12px; }
.bw-progress > span { color: rgba(255,255,255,.34); font-size: 8px; font-weight: 900; letter-spacing: .15em; }
.bw-progress > div { height: 4px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.08); }
.bw-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), var(--gold)); box-shadow: 0 0 12px var(--accent-soft); transition: width .4s ease; }
.bw-progress strong { width: 32px; color: rgba(255,255,255,.62); font-size: 9px; text-align: right; }

.bw-tableau { display: grid; grid-template-columns: repeat(10, minmax(var(--bw-card-w), 1fr)); gap: clamp(8px, .75vw, 13px); min-height: 465px; padding: 0 3px 10px; }
.bw-column { position: relative; min-width: var(--bw-card-w); border: 1px solid transparent; border-radius: 12px; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.bw-column__number { position: absolute; z-index: 0; top: 4px; right: 5px; color: rgba(255,255,255,.12); font-size: 9px; font-weight: 900; }
.bw-column--empty::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: var(--bw-card-h); border: 1px dashed rgba(255,255,255,.2); border-radius: 11px; background: rgba(0,0,0,.08); }
.bw-column--empty::after { content: "ANY CARD"; position: absolute; top: 50px; width: 100%; color: rgba(255,255,255,.14); font-size: 7px; font-weight: 900; letter-spacing: .1em; text-align: center; }
.bw-column--drop,
.bw-hint-target { border-color: rgba(233,189,107,.72); background: rgba(233,189,107,.08); box-shadow: inset 0 0 0 2px rgba(233,189,107,.12), 0 0 22px rgba(233,189,107,.14); }
.bw-column--blocked { animation: bw-shake .28s linear 2; border-color: rgba(255,86,110,.8); background: rgba(255,70,94,.09); }
.bw-card-wrap { position: absolute; left: 0; width: 100%; }

.bw-card {
  position: relative;
  width: 100%;
  height: var(--bw-card-h);
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(16,17,21,.22);
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,.24), 0 1px 0 rgba(255,255,255,.55) inset;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  transform: translateZ(0);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease, outline-color .15s ease;
}
.bw-card--face { color: #15161b; background: linear-gradient(145deg, #fffefa 0%, #f4f0e8 58%, #e8e2d8 100%); cursor: pointer; }
.bw-card--face::before { content: ""; position: absolute; inset: 3px; border: 1px solid rgba(28,27,25,.05); border-radius: 7px; pointer-events: none; }
.bw-card--red { color: #c62843; }
.bw-card--movable:hover { transform: translateY(-3px); box-shadow: 0 9px 18px rgba(0,0,0,.32), 0 1px 0 rgba(255,255,255,.7) inset; }
.bw-card--selected { transform: translateY(-5px); outline: 3px solid rgba(233,189,107,.9); outline-offset: -1px; box-shadow: 0 12px 24px rgba(0,0,0,.38), 0 0 22px rgba(233,189,107,.28); }
.bw-card--drag-source { opacity: .38; filter: saturate(.6); }
.bw-hint-source { animation: bw-hint 1s ease-in-out infinite; outline: 3px solid rgba(233,189,107,.88); outline-offset: -1px; }
.bw-card__corner { position: absolute; z-index: 3; display: flex; flex-direction: column; align-items: center; line-height: .9; }
.bw-card__corner--top { top: 7px; left: 7px; }
.bw-card__corner--bottom { right: 7px; bottom: 7px; transform: rotate(180deg); }
.bw-card__corner strong { font-family: Georgia, "Times New Roman", serif; font-size: 17px; font-weight: 900; }
.bw-card__corner small { margin-top: 3px; font-size: 13px; }
.bw-card__center { position: absolute; inset: 0; display: grid; place-items: center; font-size: 38px; filter: drop-shadow(0 2px 0 rgba(255,255,255,.65)); }
.bw-card__watermark { position: absolute; right: -7px; bottom: -15px; opacity: .035; font-size: 74px; }

.bw-card--back {
  border: 4px solid #efebe3;
  color: #fff;
  background:
    repeating-radial-gradient(circle at 50% 50%, transparent 0 8px, rgba(255,255,255,.11) 9px 10px),
    linear-gradient(145deg, color-mix(in srgb, var(--accent), #fff 4%), color-mix(in srgb, var(--accent), #000 50%));
  box-shadow: 0 4px 10px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.15);
  cursor: default;
}
.bw-card__back-web,
.bw-card__back-web::before,
.bw-card__back-web::after { position: absolute; top: 50%; left: 50%; width: 57px; height: 57px; transform: translate(-50%,-50%); border: 1px solid rgba(255,255,255,.15); border-radius: 50%; content: ""; }
.bw-card__back-web::before { width: 39px; height: 39px; }
.bw-card__back-web::after { width: 21px; height: 21px; }
.bw-card__back-mark { position: absolute; inset: 0; display: grid; place-items: center; font-family: Georgia, serif; font-size: 28px; font-weight: 900; text-shadow: 0 3px 9px rgba(0,0,0,.5); }
.bw-back-diamond .bw-card--back,
.bw-back-diamond .bw-stock__stack i { background: repeating-linear-gradient(45deg, rgba(255,255,255,.09) 0 6px, transparent 6px 12px), linear-gradient(145deg, #3e275f, #140d25); }
.bw-back-diamond .bw-card__back-mark::before { content: "◆"; font-size: 24px; }
.bw-back-diamond .bw-card__back-mark { font-size: 0; }
.bw-back-classic .bw-card--back,
.bw-back-classic .bw-stock__stack i { background: repeating-linear-gradient(45deg, rgba(255,255,255,.08) 0 3px, transparent 3px 7px), linear-gradient(145deg, #173f78, #071b3d); }
.bw-back-classic .bw-card__back-mark::before { content: "♠"; font-size: 26px; }
.bw-back-classic .bw-card__back-mark { font-size: 0; }

.bw-card--recent { animation: bw-deal-card .5s cubic-bezier(.18,.8,.2,1) both; animation-delay: calc(var(--deal-index) * 34ms); }
.bw-is-paused .bw-board { filter: blur(12px) saturate(.5) brightness(.55); pointer-events: none; }

.bw-footer { position: relative; z-index: 35; display: flex; align-items: center; justify-content: center; gap: 18px; min-height: 35px; padding: 6px 14px; border-top: 1px solid rgba(255,255,255,.07); color: rgba(255,255,255,.45); background: rgba(5,5,8,.72); font-size: 9px; font-weight: 760; }
.bw-footer div { display: flex; align-items: center; gap: 5px; }
.bw-footer kbd { min-width: 19px; padding: 3px 5px; border: 1px solid rgba(255,255,255,.13); border-radius: 5px; color: rgba(255,255,255,.72); background: rgba(255,255,255,.06); font-family: inherit; font-size: 8px; text-align: center; }
.bw-footer span { margin-left: auto; color: rgba(233,189,107,.48); }

.bw-toast { position: absolute; z-index: 100; left: 50%; bottom: 48px; max-width: min(420px, 86vw); padding: 10px 15px; transform: translate(-50%, 18px); border: 1px solid rgba(233,189,107,.4); border-radius: 12px; opacity: 0; pointer-events: none; color: #fff; background: rgba(9,9,13,.94); box-shadow: 0 18px 42px rgba(0,0,0,.42); font-size: 11px; font-weight: 750; transition: opacity .2s ease, transform .2s ease; }
.bw-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

.bw-drag-layer { position: fixed; z-index: 999999; top: -58px; left: -43px; width: var(--bw-card-w); height: var(--bw-card-h); opacity: 0; pointer-events: none; filter: drop-shadow(0 16px 24px rgba(0,0,0,.45)); }
.bw-drag-layer.is-active { opacity: .96; }
.bw-drag-stack { position: relative; width: var(--bw-card-w); }
.bw-drag-stack > div { position: absolute; left: 0; width: 100%; }
.bw-mini-card { position: relative; display: block; width: 100%; height: var(--bw-card-h); border: 1px solid rgba(0,0,0,.25); border-radius: 10px; color: #15161b; background: #fffdfa; box-shadow: 0 5px 13px rgba(0,0,0,.25); }
.bw-mini-card--red { color: #c62843; }
.bw-mini-card b { position: absolute; top: 7px; left: 8px; font-family: Georgia, serif; font-size: 17px; }
.bw-mini-card i { position: absolute; top: 27px; left: 8px; font-style: normal; font-size: 14px; }

.bw-celebration { position: absolute; z-index: 90; inset: 0; overflow: hidden; pointer-events: none; }
.bw-run-burst { position: absolute; top: 26%; left: 50%; display: flex; flex-direction: column; align-items: center; transform: translate(-50%,-50%); animation: bw-run-burst 1.35s ease both; filter: drop-shadow(0 12px 24px rgba(0,0,0,.4)); }
.bw-run-burst span { font-size: 58px; }
.bw-run-burst strong { margin-top: 5px; padding: 6px 12px; border: 1px solid rgba(233,189,107,.5); border-radius: 999px; color: var(--gold); background: rgba(9,9,13,.86); font-size: 9px; letter-spacing: .17em; }
.bw-run-burst--red span { color: #e13f58; }
.bw-run-burst--black span { color: #f4f0e9; }
.bw-confetti { position: absolute; top: -20px; left: var(--x); width: 7px; height: 16px; border-radius: 2px; background: linear-gradient(180deg, var(--gold), var(--accent)); animation: bw-confetti var(--duration) linear var(--delay) both; }

.bw-modal-backdrop { position: absolute; z-index: 120; inset: 0; display: grid; place-items: center; padding: 18px; opacity: 0; background: rgba(3,3,5,.72); backdrop-filter: blur(10px); transition: opacity .16s ease; }
.bw-modal-backdrop[hidden] { display: none; }
.bw-modal-backdrop.is-open { opacity: 1; }
.bw-modal { position: relative; width: min(520px, 94vw); max-height: min(720px, 90vh); overflow: auto; padding: 28px; border: 1px solid rgba(255,255,255,.13); border-radius: 22px; color: #f7f3ef; background: linear-gradient(155deg, rgba(25,24,29,.98), rgba(8,8,11,.99)); box-shadow: 0 34px 90px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.07); transform: translateY(12px) scale(.98); transition: transform .18s ease; }
.bw-modal-backdrop.is-open .bw-modal { transform: translateY(0) scale(1); }
.bw-modal--wide { width: min(760px, 95vw); }
.bw-modal--pause,
.bw-modal--win { text-align: center; }
.bw-modal__close { position: absolute; top: 13px; right: 13px; width: 35px; height: 35px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; color: rgba(255,255,255,.72); background: rgba(255,255,255,.05); cursor: pointer; font-size: 22px; }
.bw-modal__eyebrow { margin: 0 0 6px; color: var(--accent-bright); font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.bw-modal h3 { margin: 0; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(25px, 4vw, 37px); letter-spacing: -.035em; }
.bw-modal__lead { margin: 11px auto 22px; max-width: 560px; color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.6; }
.bw-modal__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.bw-modal--pause .bw-modal__actions,
.bw-modal--win .bw-modal__actions { justify-content: center; }

.bw-mode-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 23px; }
.bw-mode-option { min-height: 132px; display: flex; flex-direction: column; align-items: flex-start; padding: 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; color: #fff; background: rgba(255,255,255,.035); cursor: pointer; text-align: left; }
.bw-mode-option strong { font-size: 14px; }
.bw-mode-option span { margin: 17px 0 12px; color: var(--accent-bright); font-size: 24px; letter-spacing: .12em; }
.bw-mode-option small { color: rgba(255,255,255,.48); font-size: 9px; line-height: 1.4; }
.bw-mode-option.is-selected { border-color: rgba(255,103,125,.68); background: linear-gradient(145deg, rgba(223,60,85,.19), rgba(255,255,255,.045)); box-shadow: 0 0 0 2px rgba(223,60,85,.1) inset; }
.bw-deal-type-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.bw-deal-type { display: flex; flex-direction: column; align-items: flex-start; padding: 13px 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 13px; color: #fff; background: rgba(255,255,255,.03); cursor: pointer; text-align: left; }
.bw-deal-type strong { font-size: 11px; }
.bw-deal-type small { margin-top: 3px; color: rgba(255,255,255,.43); font-size: 9px; }
.bw-deal-type.is-selected { border-color: rgba(233,189,107,.45); background: rgba(233,189,107,.08); }

.bw-setting-section { margin-top: 22px; }
.bw-setting-section > label { display: block; margin-bottom: 8px; color: rgba(255,255,255,.48); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.bw-theme-grid,
.bw-back-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.bw-theme-option,
.bw-back-option { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 9px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; color: rgba(255,255,255,.76); background: rgba(255,255,255,.03); cursor: pointer; font-size: 10px; font-weight: 760; }
.bw-theme-option i,
.bw-back-option i { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; font-style: normal; }
.bw-theme-option i.is-widow { background: linear-gradient(145deg,#641827,#16090d); }
.bw-theme-option i.is-emerald { background: linear-gradient(145deg,#14634f,#071f1a); }
.bw-theme-option i.is-royal { background: linear-gradient(145deg,#2f4f91,#0b1731); }
.bw-back-option i { border: 2px solid #e9e5dd; color: #fff; }
.bw-back-option i.is-web { background: linear-gradient(145deg,#a42c43,#280b11); }
.bw-back-option i.is-diamond { background: linear-gradient(145deg,#603c86,#1a102c); }
.bw-back-option i.is-classic { background: linear-gradient(145deg,#2c5fa4,#0a1b38); }
.bw-theme-option.is-selected,
.bw-back-option.is-selected { border-color: rgba(233,189,107,.5); background: rgba(233,189,107,.07); }
.bw-toggle-list { display: grid; gap: 7px; margin-top: 20px; }
.bw-toggle-row { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 11px 13px; border: 1px solid rgba(255,255,255,.075); border-radius: 12px; color: #fff; background: rgba(255,255,255,.025); cursor: pointer; text-align: left; }
.bw-toggle-row span { display: flex; flex-direction: column; }
.bw-toggle-row strong { font-size: 11px; }
.bw-toggle-row small { margin-top: 3px; color: rgba(255,255,255,.42); font-size: 9px; }
.bw-toggle-row > i { position: relative; width: 38px; height: 22px; border-radius: 999px; background: rgba(255,255,255,.13); }
.bw-toggle-row > i b { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .16s ease; }
.bw-toggle-row.is-on > i { background: var(--accent); }
.bw-toggle-row.is-on > i b { transform: translateX(16px); }

.bw-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 23px; }
.bw-stat-tile { padding: 13px 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; background: rgba(255,255,255,.035); text-align: center; }
.bw-stat-tile span { display: block; color: rgba(255,255,255,.43); font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.bw-stat-tile strong { display: block; margin-top: 5px; color: #fff; font-size: 19px; }
.bw-career-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 9px; }
.bw-career-row div { padding: 11px; border-radius: 11px; background: linear-gradient(145deg, rgba(223,60,85,.12), rgba(255,255,255,.025)); text-align: center; }
.bw-career-row span { display: block; color: rgba(255,255,255,.44); font-size: 7px; font-weight: 900; letter-spacing: .1em; }
.bw-career-row strong { display: block; margin-top: 4px; color: var(--accent-bright); font-size: 17px; }
.bw-achievement-title { margin: 21px 0 8px; color: rgba(255,255,255,.58); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.bw-achievement-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.bw-achievement { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.065); border-radius: 11px; opacity: .42; background: rgba(255,255,255,.02); }
.bw-achievement.is-unlocked { opacity: 1; border-color: rgba(233,189,107,.25); background: rgba(233,189,107,.055); }
.bw-achievement > i { color: var(--gold); font-style: normal; font-size: 17px; }
.bw-achievement span { display: flex; flex-direction: column; }
.bw-achievement strong { font-size: 10px; }
.bw-achievement small { margin-top: 2px; color: rgba(255,255,255,.42); font-size: 8px; }

.bw-help-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 22px; }
.bw-help-grid > div { display: flex; align-items: center; gap: 11px; padding: 12px; border: 1px solid rgba(255,255,255,.07); border-radius: 12px; background: rgba(255,255,255,.025); }
.bw-help-grid > div > b { flex: 0 0 28px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: #fff; background: linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent),#000 35%)); font-size: 11px; }
.bw-help-grid span { display: flex; flex-direction: column; }
.bw-help-grid strong { font-size: 10px; }
.bw-help-grid small { margin-top: 3px; color: rgba(255,255,255,.43); font-size: 8px; line-height: 1.4; }

.bw-pause-icon { width: 78px; height: 78px; display: grid; place-items: center; margin: 0 auto 17px; border: 1px solid rgba(255,107,129,.35); border-radius: 25px; color: var(--accent-bright); background: rgba(223,60,85,.1); font-family: Georgia,serif; font-size: 31px; }
.bw-win-crown { color: var(--gold); font-size: 58px; filter: drop-shadow(0 10px 22px rgba(233,189,107,.24)); }
.bw-win-rank { width: 100px; height: 100px; display: grid; place-items: center; margin: 18px auto; border: 2px solid rgba(233,189,107,.62); border-radius: 50%; background: radial-gradient(circle,rgba(233,189,107,.16),transparent 68%); box-shadow: 0 0 35px rgba(233,189,107,.12); }
.bw-win-rank span { position: absolute; transform: translateY(-25px); color: rgba(255,255,255,.45); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.bw-win-rank strong { color: var(--gold); font-family: Georgia,serif; font-size: 46px; }
.bw-win-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.bw-win-summary div { padding: 11px; border-radius: 11px; background: rgba(255,255,255,.035); }
.bw-win-summary span { display: block; color: rgba(255,255,255,.43); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.bw-win-summary strong { display: block; margin-top: 4px; font-size: 18px; }

@keyframes bw-deal-card { from { opacity: 0; transform: translate(-160px,-90px) rotate(-8deg) scale(.82); } to { opacity: 1; transform: translate(0,0) rotate(0) scale(1); } }
@keyframes bw-foundation-in { from { opacity: 0; transform: translateY(14px) scale(.7) rotate(-9deg); } to { opacity: 1; transform: none; } }
@keyframes bw-hint { 0%,100% { box-shadow: 0 4px 10px rgba(0,0,0,.24),0 0 0 rgba(233,189,107,0); } 50% { box-shadow: 0 8px 18px rgba(0,0,0,.3),0 0 24px rgba(233,189,107,.5); } }
@keyframes bw-shake { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
@keyframes bw-run-burst { 0% { opacity: 0; transform: translate(-50%,-35%) scale(.55); } 20% { opacity: 1; transform: translate(-50%,-50%) scale(1.08); } 72% { opacity: 1; transform: translate(-50%,-50%) scale(1); } 100% { opacity: 0; transform: translate(-50%,-72%) scale(.88); } }
@keyframes bw-confetti { 0% { transform: translateY(-20px) rotate(0); opacity: 0; } 10% { opacity: 1; } 100% { transform: translateY(850px) rotate(var(--rotation)); opacity: 0; } }

@media (max-width: 1240px) {
  .bw-topbar { grid-template-columns: minmax(180px,1fr) auto auto; }
  .bw-actions--utility { display: none; }
  .bw-button { padding: 0 10px; }
  .bw-button--compact { display: none; }
  .bw-subbar { grid-template-columns: 1fr 1fr; }
  .bw-subbar__center { display: none; }
}

@media (max-width: 960px) {
  #gcg-game-root { min-height: 700px; }
  .bw-game { min-height: 700px; }
  .bw-topbar { grid-template-columns: 1fr auto; gap: 10px; min-height: 76px; padding: 10px 12px; }
  .bw-actions--main { grid-column: 1 / -1; width: 100%; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .bw-actions--main::-webkit-scrollbar { display: none; }
  .bw-actions--main .bw-button { flex: 0 0 auto; min-height: 38px; }
  .bw-metrics { grid-column: 2; grid-row: 1; }
  .bw-subbar { min-height: 42px; padding: 6px 12px; }
  .bw-subbar__right .bw-mini-button { display: none; }
  .bw-board { padding-left: 12px; padding-right: 12px; }
  .bw-footer span { display: none; }
}

@media (max-width: 680px) {
  #gcg-game-root { --bw-card-w: 78px; --bw-card-h: 112px; min-height: 660px; }
  .bw-large-cards { --bw-card-w: 82px; --bw-card-h: 118px; }
  .bw-brand__mark { flex-basis: 46px; width: 46px; height: 46px; border-radius: 14px; }
  .bw-brand__mark span { font-size: 23px; }
  .bw-brand h2 { font-size: 19px; }
  .bw-brand small { font-size: 7px; }
  .bw-metrics > div { min-width: 47px; padding: 6px; }
  .bw-metrics span { font-size: 7px; }
  .bw-metrics strong { font-size: 12px; }
  .bw-topbar { min-height: 70px; }
  .bw-actions--main .bw-button { min-height: 35px; padding: 0 9px; font-size: 10px; }
  .bw-subbar { grid-template-columns: 1fr auto; }
  .bw-subbar__left { max-width: 72vw; overflow-x: auto; scrollbar-width: none; }
  .bw-deal-label { max-width: 120px; }
  .bw-difficulty { display: none; }
  .bw-board-shell { min-height: 540px; }
  .bw-board { min-width: 920px; min-height: 540px; padding-top: 10px; }
  .bw-upper-row { grid-template-columns: 250px 120px 430px; min-height: 86px; }
  .bw-tableau { min-height: 405px; gap: 9px; }
  .bw-foundations { grid-template-columns: repeat(8,37px); }
  .bw-foundation-slot,
  .bw-foundation-card { width: 37px; height: 54px; }
  .bw-card__corner strong { font-size: 15px; }
  .bw-card__corner small { font-size: 12px; }
  .bw-card__center { font-size: 34px; }
  .bw-footer { justify-content: flex-start; overflow-x: auto; gap: 12px; }
  .bw-mode-grid,
  .bw-theme-grid,
  .bw-back-grid { grid-template-columns: 1fr; }
  .bw-mode-option { min-height: 92px; }
  .bw-mode-option span { margin: 9px 0; }
  .bw-stat-grid { grid-template-columns: repeat(2,1fr); }
  .bw-help-grid { grid-template-columns: 1fr; }
  .bw-achievement-grid { grid-template-columns: 1fr; }
  .bw-modal { padding: 24px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .bw-game *,
  .bw-game *::before,
  .bw-game *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
}

.bw-no-motion *,
.bw-no-motion *::before,
.bw-no-motion *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .001ms !important;
}
