/* A casino at 3am: stained carpet, brass trim, and blue crystal for anything that pays. */
@font-face { font-family: 'Bebas'; src: url('/fonts/bebas.ttf') format('truetype'); font-display: swap; }
@font-face { font-family: 'Russo'; src: url('/fonts/russo.ttf') format('truetype'); font-display: swap; }

:root {
  --carpet: #240b1c;
  --velvet: #47122f;
  --seat: #63193f;
  --brass: #efbd4e;
  --brass-dark: #8c6420;
  --crystal: #86ecff;
  --bone: #f8eedb;
  --faded: #c9a9b4;
  --bust: #ff6a59;
}

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  background-color: var(--carpet);
  background-image:
    radial-gradient(circle at 12px 12px, #5c1a3e 2.5px, transparent 3px),
    radial-gradient(circle at 36px 36px, #3a102a 5px, transparent 5.5px),
    linear-gradient(45deg, transparent 47%, #33102a 47%, #33102a 53%, transparent 53%),
    linear-gradient(-45deg, transparent 47%, #33102a 47%, #33102a 53%, transparent 53%);
  background-size: 48px 48px;
  color: var(--bone);
  font: 15px/1.4 'Russo', system-ui, sans-serif;
  overflow: hidden;
}
#shards { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 5; }
#app { position: relative; height: 100%; display: flex; flex-direction: column; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible { outline: 3px solid var(--crystal); outline-offset: 2px; }
[hidden] { display: none !important; }

/* Waiting and errors */
.notice { margin: auto; padding: 24px; max-width: 34ch; text-align: center; }
.notice h1 { font: 44px/1 'Bebas', sans-serif; color: var(--brass); margin: 0 0 8px; }

/* The player bar */
.bar { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #1a0814; border-bottom: 3px solid var(--brass-dark); flex: none; }
.bar .back { background: none; border: 0; padding: 4px 10px 4px 0; color: var(--brass); font: 24px/1 'Bebas', sans-serif; }
.who { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
.who img, .who .blank { width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--brass); flex: none; background: var(--seat); }
.who-text { min-width: 0; }
.who-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.who-level { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--faded); white-space: nowrap; }
.meter { width: 56px; height: 5px; background: var(--velvet); border-radius: 3px; overflow: hidden; }
.meter i { display: block; height: 100%; background: var(--brass); }
.purse { font: 30px/1 'Bebas', sans-serif; color: var(--brass); letter-spacing: .5px; white-space: nowrap; }
.purse small { font: 12px 'Russo', sans-serif; color: var(--faded); margin-left: 3px; }
.mute { background: none; border: 2px solid var(--brass-dark); border-radius: 6px; padding: 3px 8px; font-size: 12px; color: var(--faded); }

/* The lobby: a sign out front, then the floor */
.lobby { flex: 1; overflow-y: auto; padding: 16px 12px 28px; }
.sign { position: relative; max-width: 620px; margin: 0 auto 22px; padding: 18px 20px 16px; text-align: center; background: var(--velvet); border: 4px solid var(--brass); border-radius: 18px 18px 6px 6px; }
.sign h1 { margin: 0; font: clamp(52px, 13vw, 92px)/.9 'Bebas', sans-serif; color: var(--bone); letter-spacing: 2px; text-shadow: 0 0 22px #ff5fa0aa, 3px 3px 0 var(--carpet); }
.sign p { margin: 6px 0 0; color: var(--crystal); }
.bulbs { display: flex; justify-content: space-between; position: absolute; left: 10px; right: 10px; height: 8px; }
.bulbs.top { top: 5px; } .bulbs.bottom { bottom: 5px; }
.bulbs i { width: 7px; height: 7px; border-radius: 50%; background: #ffe7a6; box-shadow: 0 0 7px #ffc94f; animation: chase 1.2s steps(1) 4; }
.bulbs i:nth-child(even) { animation-delay: .6s; }
@keyframes chase { 50% { background: var(--brass-dark); box-shadow: none; } }

.floor { max-width: 720px; margin: 0 auto; }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px; margin-bottom: 8px; }
.tile { display: flex; align-items: center; gap: 12px; padding: 12px 14px; text-align: left; background: linear-gradient(115deg, var(--tile), #2e0e22 85%); border: 2px solid var(--trim); border-radius: 4px 16px 4px 16px; transition: transform .12s; --tile: #47122f; --trim: var(--brass-dark); }
.tile:hover { transform: translateY(-2px) rotate(-.4deg); border-color: var(--bone); }
.tile i { font-style: normal; font-size: 34px; line-height: 1; }
.tile b { display: block; font: 32px/1 'Bebas', sans-serif; letter-spacing: 1px; }
.tile span { display: block; color: var(--faded); font-size: 12px; }
.tile-slots { --tile: #8a5a12; --trim: var(--brass); }
.tile-wheel { --tile: #7a1c4a; }
.tile-plinko { --tile: #135a70; --trim: var(--crystal); }
.tile-case { --tile: #4b2a78; }
.tile-limbo { --tile: #124a63; --trim: var(--crystal); }
.tile-scratch { --tile: #6d5a18; }
.tile-dice { --tile: #6b1c1c; }
.tile-coinflip { --tile: #5a4412; }
.tile-blackjack, .tile-uth { --tile: #14613f; }
.tile-baccarat, .tile-paigow { --tile: #7a1f2b; }
.tile-videopoker { --tile: #24407a; }
.tile-hilo { --tile: #1f5f6d; }
.tile-mines { --tile: #5c1d1d; }
.tile-chicken { --tile: #6d5a18; }
.tile-dragontower { --tile: #6b2a10; --trim: var(--bust); }
.tile-dealornodeal { --tile: #1b3d6e; --trim: var(--brass); }
.floor h2 { font: 26px/1 'Bebas', sans-serif; color: var(--brass); margin: 18px 0 8px; letter-spacing: 1px; }
.soon { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.soon li { padding: 5px 10px; background: #2e0e22; border: 1px solid var(--velvet); border-radius: 4px; color: var(--faded); font-size: 13px; }
.floor .later { color: var(--faded); margin: 22px 0 0; }

/* The screen every game shares */
.game { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 320px; }
.stage { display: flex; flex-direction: column; min-height: 0; min-width: 0; padding-bottom: 8px; text-align: center; }
.arena { flex: 1; min-height: 0; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 10px; overflow: hidden; }
.verdict { min-height: 1.5em; font-size: 18px; padding: 0 10px; }
.verdict.won { color: var(--crystal); } .verdict.lost { color: var(--bust); } .verdict.push { color: var(--brass); }
.history { display: flex; justify-content: center; flex-wrap: wrap; gap: 5px; min-height: 26px; margin-top: 6px; overflow: hidden; max-height: 26px; }
.history span { padding: 3px 7px; border-radius: 3px; font-size: 12px; background: #1a0814; color: var(--bust); }
.history span.hit { color: var(--crystal); }
.paytable { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 10px; font-size: 12px; color: var(--faded); }

.tray { padding: 14px; background: var(--velvet); border-left: 3px solid var(--brass-dark); overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
.fields { display: flex; flex-direction: column; gap: 10px; }
.stacked { display: flex; flex-direction: column; gap: 8px; }
.tray label, .field-label { display: block; color: var(--faded); font-size: 13px; margin-bottom: 4px; }
.tray input { width: 100%; padding: 8px 10px 6px; background: #1a0814; border: 2px solid var(--brass-dark); border-radius: 5px; font: 28px/1 'Bebas', sans-serif; letter-spacing: .5px; }
.quick { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 5px; margin-top: 5px; }
.quick button { padding: 5px 2px; background: var(--seat); border: 1px solid var(--brass-dark); border-radius: 4px; font-size: 13px; }
.quick button:hover { background: var(--brass-dark); }
.quick button[aria-pressed="true"] { background: var(--brass); color: var(--carpet); }
.odds { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--faded); }
.odds b { color: var(--bone); font-weight: 400; }
.go { margin-top: auto; flex: none; padding: 12px 0 8px; background: var(--brass); color: var(--carpet); border: 0; border-bottom: 5px solid var(--brass-dark); border-radius: 7px; font: 36px/1 'Bebas', sans-serif; letter-spacing: 1px; }
.go:active:not(:disabled) { transform: translateY(3px); border-bottom-width: 2px; }
.go:disabled { filter: saturate(.3) brightness(.75); cursor: default; }
.back:disabled { opacity: .4; cursor: default; }
.problem { color: var(--bust); font-size: 13px; min-height: 1.4em; margin: 0; }

/* Limbo */
.ladder { position: absolute; left: 22px; top: 18px; bottom: 18px; border-left: 4px solid var(--brass-dark); }
.ladder .rung { position: absolute; left: 0; width: 12px; height: 2px; background: var(--brass-dark); }
.ladder .rung span { position: absolute; left: 15px; top: -8px; font-size: 11px; color: var(--faded); }
.ladder .goal { position: absolute; left: -9px; width: 14px; height: 14px; margin-bottom: -7px; background: var(--brass); transform: rotate(45deg); transition: bottom .15s; }
.ladder .rise { position: absolute; left: -4px; bottom: 0; width: 4px; background: var(--crystal); box-shadow: 0 0 10px var(--crystal); }
.number { font: clamp(84px, 21vw, 210px)/.9 'Bebas', sans-serif; font-variant-numeric: tabular-nums; color: var(--bone); letter-spacing: 1px; padding-left: 40px; }
.number.won { color: var(--crystal); text-shadow: 0 0 34px #86ecffaa; }
.number.lost { color: var(--bust); animation: drop .35s ease-out; }
@keyframes drop { 30% { transform: translateY(14px) rotate(-2deg); } }

/* Coin flip */
.coin-pit { perspective: 700px; }
.coin { position: relative; width: clamp(110px, 34vmin, 240px); aspect-ratio: 1; transform-style: preserve-3d; }
.face { position: absolute; inset: 0; display: grid; place-items: center; border-radius: 50%; backface-visibility: hidden; font: clamp(70px, 22vmin, 160px)/1 'Bebas', sans-serif; color: var(--brass-dark); background: radial-gradient(circle at 35% 30%, #ffe7a6, var(--brass) 55%, var(--brass-dark)); border: 7px double var(--brass-dark); }
.face.tails { transform: rotateX(180deg); }

/* Dice */
.dice-board { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(16px, 6vw, 64px); }
.dice-side { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.dice-who { font: 28px/1 'Bebas', sans-serif; color: var(--brass); }
.dice-pair { display: flex; gap: 10px; }
.die { --size: clamp(52px, 17vmin, 110px); width: var(--size); height: var(--size); padding: 12%; display: grid; grid-template: repeat(3, 1fr) / repeat(3, 1fr); gap: 6%; background: var(--bone); border-radius: 16%; border-bottom: 5px solid var(--faded); }
.die i { border-radius: 50%; }
.die i.on { background: var(--seat); }
.dice-total { font: 44px/1 'Bebas', sans-serif; min-height: 44px; }

/* Slots */
.machine { --cell: clamp(46px, 15vmin, 112px); display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 10px 14px; background: var(--velvet); border: 4px solid var(--brass); border-radius: 18px 18px 6px 6px; max-width: 100%; }
.jackpot { color: var(--faded); font-size: 12px; display: flex; align-items: baseline; gap: 8px; }
.jackpot b { font: 30px/1 'Bebas', sans-serif; color: var(--crystal); font-weight: 400; }
.reels { position: relative; display: flex; gap: 6px; }
.reel { width: calc(var(--cell) * 1.15); height: calc(var(--cell) * 3); overflow: hidden; background: var(--bone); border-radius: 5px; box-shadow: inset 0 0 14px #0007; }
.cell { height: var(--cell); display: grid; place-items: center; font-size: calc(var(--cell) * .66); line-height: 1; }
.payline { position: absolute; left: -6px; right: -6px; top: 50%; height: 3px; margin-top: -1px; background: var(--bust); pointer-events: none; }

/* Wheel */
.wheel-box { flex: 1; min-height: 0; width: 100%; display: flex; justify-content: center; }
.wheel-box svg { height: 100%; max-width: 100%; aspect-ratio: 1; }
.wheel-box text { font: 8px 'Russo', sans-serif; fill: var(--bone); }
.wheel-box text.dark { fill: var(--carpet); }

/* Crates */
.loot-reel { position: relative; width: 100%; max-width: 760px; height: 112px; overflow: hidden; background: #1a0814; border-block: 3px solid var(--brass-dark); }
.loot-strip { display: flex; position: absolute; top: 8px; left: 0; }
.loot { flex: none; display: grid; place-items: center; width: 96px; margin-right: 8px; height: 92px; border: 3px solid; border-radius: 6px; background: #2e0e22; font: 34px/1 'Bebas', sans-serif; }
.loot.picked { background: var(--bone); box-shadow: 0 0 22px currentColor; }
.loot-line { position: absolute; top: 0; bottom: 0; left: 50%; width: 3px; margin-left: -1px; background: var(--bone); }
.loot-prizes { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; }
.loot-prizes .loot { width: auto; min-width: 44px; height: auto; margin: 0; padding: 5px 7px 2px; font-size: 20px; border-width: 2px; }

/* Plinko */
.plinko-board { flex: 1; min-height: 0; width: 100%; max-width: 760px; touch-action: manipulation; }

/* Scratch cards */
.ticket { position: relative; aspect-ratio: 1; flex: 0 1 auto; height: min(100%, 52vh); min-height: 150px; max-width: 100%; padding: 0; background: var(--bone); border: 5px solid var(--brass); border-radius: 8px; overflow: hidden; }
.squares { display: grid; grid-template: repeat(3, 1fr) / repeat(3, 1fr); width: 100%; height: 100%; }
.square { display: grid; place-items: center; font-size: clamp(26px, 9vmin, 60px); line-height: 1; border: 1px solid #d9c9a8; }
.square.winner { background: var(--crystal); }
.foil { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: grab; }
.scratch-all { padding: 6px 16px; background: var(--seat); border: 1px solid var(--brass); border-radius: 4px; }

/* Moves, once a hand is going */
.moves { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: auto; }
.move { padding: 12px 6px 9px; background: var(--seat); border: 2px solid var(--brass-dark); border-radius: 7px; font: 24px/1 'Bebas', sans-serif; letter-spacing: .5px; }
.move:hover:not(:disabled) { border-color: var(--bone); }
.move:disabled { opacity: .4; cursor: default; }
.move.main { background: var(--brass); color: var(--carpet); border-color: var(--brass); }
.move.cash { background: var(--crystal); color: var(--carpet); border-color: var(--crystal); grid-column: 1 / -1; }
.move.wide { grid-column: 1 / -1; }
.field-note { font-size: 11px; color: var(--faded); margin: 4px 0 0; }

/* Cards */
.felt { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(6px, 2vh, 18px); }
.seat { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.seat-name { color: var(--brass); font: 22px/1 'Bebas', sans-serif; letter-spacing: .5px; min-height: 22px; }
.hands-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.hand-box { padding: 4px 8px; border-radius: 8px; border: 2px solid transparent; }
.hand-box.active { border-color: var(--crystal); }
.cards { display: flex; justify-content: center; flex-wrap: nowrap; gap: 5px; min-height: var(--card-h); --card-h: clamp(62px, 17vmin, 118px); }
.card { position: relative; flex: none; display: flex; flex-direction: column; justify-content: space-between; height: var(--card-h); width: calc(var(--card-h) * .7); padding: 4%; background: var(--bone); color: #24121c; border-radius: 7px; border-bottom: 3px solid var(--faded); font: calc(var(--card-h) * .27)/1 'Bebas', sans-serif; text-align: left; user-select: none; }
.card.red { color: #c0232f; }
.card .pip { font: calc(var(--card-h) * .42)/1 system-ui, sans-serif; align-self: center; }
.card.back { background: repeating-linear-gradient(45deg, var(--seat), var(--seat) 5px, var(--velvet) 5px, var(--velvet) 10px); border: 3px solid var(--brass); }
.card.joker { color: #6b2fa0; }
button.card { border-top: 0; border-left: 0; border-right: 0; cursor: pointer; }
.card.held { outline: 3px solid var(--crystal); transform: translateY(-8px); }
.card.dim { opacity: .4; }
.held-tag { position: absolute; left: 0; right: 0; top: -2px; text-align: center; font: 12px/1.4 'Russo', sans-serif; background: var(--crystal); color: var(--carpet); border-radius: 7px 7px 0 0; }
.rows-tight { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 13px; color: var(--faded); }
.pays { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 1px 12px; max-width: 560px; width: 100%; font-size: 12px; color: var(--faded); }
.pays div { display: flex; justify-content: space-between; }
.pays div.on { color: var(--carpet); background: var(--brass); padding: 0 4px; border-radius: 3px; }
.big-mult { font: clamp(34px, 8vmin, 64px)/1 'Bebas', sans-serif; color: var(--crystal); }
.trail { display: flex; gap: 3px; flex-wrap: wrap; justify-content: center; max-height: calc(var(--card-h) * .5); overflow: hidden; --card-h: 44px; }

/* Mines */
.field { display: grid; grid-template: repeat(5, 1fr) / repeat(5, 1fr); gap: clamp(3px, 1vmin, 8px); height: min(100%, 86vw); aspect-ratio: 1; max-width: 100%; flex: 0 1 auto; min-height: 0; }
.plot { border: 0; border-radius: 6px; background: linear-gradient(145deg, var(--seat), var(--velvet)); border-bottom: 3px solid #2e0e22; font-size: clamp(20px, 7vmin, 42px); line-height: 1; padding: 0; }
.plot:hover:not(:disabled) { filter: brightness(1.3); }
.plot:disabled { cursor: default; }
.plot.safe { background: #17465a; border-bottom-color: var(--crystal); }
.plot.boom { background: var(--bust); }
.plot.spent { opacity: .45; }

/* Chicken */
.road { position: relative; width: 100%; max-width: 860px; height: clamp(110px, 32vh, 220px); overflow: hidden; background: #2a2730; border-block: 5px solid var(--brass-dark); }
.road-strip { position: absolute; inset: 0 auto 0 0; display: flex; transition: transform .28s ease-out; }
.lane { flex: none; width: 92px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; padding-bottom: 6px; border-right: 3px dashed #6e6a75; color: var(--faded); font-size: 13px; }
.lane.crossed { background: #124a6333; color: var(--crystal); }
.lane.kerb { width: 72px; background: #47412f; border-right: 5px solid #8c8775; }
.bird { position: absolute; top: 34%; left: 36px; margin-left: -22px; font-size: 44px; line-height: 1; transition: transform .28s ease-out; }
.car { position: absolute; font-size: 54px; line-height: 1; top: -70px; }

/* Dragon Tower */
.tower { display: flex; flex-direction: column-reverse; gap: 3px; height: 100%; width: min(100%, 460px); min-height: 0; }
.floor-row { flex: 1; min-height: 0; display: grid; grid-template-columns: 58px repeat(var(--tiles), 1fr); gap: 3px; align-items: stretch; }
.floor-mult { display: grid; place-items: center; font-size: 12px; color: var(--faded); }
.floor-row.now .floor-mult { color: var(--brass); }
.egg { border: 0; border-radius: 5px; padding: 0; line-height: 1; background: #2e0e22; font-size: clamp(12px, 3.6vh, 26px); }
.floor-row.now .egg:not(:disabled) { background: var(--brass-dark); cursor: pointer; }
.floor-row.now .egg:hover:not(:disabled) { background: var(--brass); }
.egg:disabled { cursor: default; }
.egg.good { background: #17465a; }
.egg.bad { background: var(--bust); }

/* Deal or No Deal */
.studio { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 0; }
.briefcases { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; width: min(100%, 400px); }
.brief { display: flex; flex-direction: column; align-items: center; padding: 6px 2px 4px; background: linear-gradient(#a78032, #6e5118); border: 0; border-bottom: 3px solid #453208; border-radius: 6px; color: #fff4d4; font: 22px/1 'Bebas', sans-serif; }
.brief:hover:not(:disabled) { filter: brightness(1.2); }
.brief:disabled { cursor: default; }
.brief.mine { background: linear-gradient(#2b7a8f, #124a63); outline: 2px solid var(--crystal); }
.brief.opened { background: #2e0e22; color: var(--faded); border-bottom-color: transparent; }
.brief small { font: 11px 'Russo', sans-serif; }
.money-board { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 6px; font-size: 13px; }
.money-board span { padding: 2px 8px; background: var(--brass); color: var(--carpet); border-radius: 3px; text-align: center; }
.money-board span.gone { background: #2e0e22; color: #6a4b58; text-decoration: line-through; }
.offer { font: clamp(26px, 6vmin, 44px)/1 'Bebas', sans-serif; color: var(--crystal); width: 100%; text-align: center; min-height: 1em; }

/* The hustles, markets and account pages */
.desk { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 12px 28px; }
.desk.waiting { cursor: progress; }
.desk.waiting .desk-button { opacity: .6; }
.desk-sheet, .desk-notes { max-width: 720px; margin: 0 auto; }
.desk-notes:not(:empty) { margin-bottom: 10px; padding: 8px 12px; background: #1a0814; border-left: 4px solid var(--crystal); border-radius: 3px; }
.desk-panel { --accent: var(--brass); display: flex; flex-direction: column; gap: 10px; padding: 14px 16px 16px; background: var(--velvet); border-top: 5px solid var(--accent); border-radius: 4px 4px 12px 12px; }
.desk-text h2, .desk-text h3, .desk-text h4 { margin: 0; font: 34px/1.05 'Bebas', sans-serif; letter-spacing: .5px; color: var(--bone); }
.desk-text h3 { font-size: 28px; } .desk-text h4 { font-size: 22px; color: var(--brass); }
.desk-text p { margin: 0; overflow-wrap: anywhere; }
.desk-text p.gap { height: .6em; }
.desk-text .small { font-size: 12px; color: var(--faded); }
.desk-text.bad { color: var(--bust); }
.desk-text b { color: var(--brass); font-weight: 400; }
.desk-text em { color: var(--crystal); font-style: normal; }
.desk-text code { padding: 0 4px; background: #1a0814; border-radius: 3px; font-family: inherit; }
.desk-text time { color: var(--crystal); }
.coin { display: inline-block; width: 1.05em; height: 1.05em; margin: 0 .15em 0 .2em; vertical-align: -.12em; border-radius: 50%; background: var(--brass); color: var(--carpet); font: 700 .75em/1.4em 'Bebas', sans-serif; text-align: center; font-style: normal; }
.desk-images img { display: block; max-width: 100%; max-height: 52vh; margin: 0 auto; border-radius: 6px; }
.desk-panel hr { width: 100%; margin: 0; border: 0; border-top: 1px solid var(--brass-dark); }
.desk-row { display: flex; flex-wrap: wrap; gap: 6px; }
.desk-button { flex: 1 1 auto; min-width: 74px; padding: 9px 12px 7px; background: var(--seat); border: 1px solid var(--brass-dark); border-radius: 6px; font: 20px/1 'Bebas', sans-serif; letter-spacing: .4px; }
.desk-button:hover:not(:disabled) { border-color: var(--bone); }
.desk-button:disabled { opacity: .4; cursor: default; }
.desk-button.main { background: #2c5f86; border-color: var(--crystal); }
.desk-button.good { background: var(--brass); color: var(--carpet); border-color: var(--brass); }
.desk-button.bad { background: #a12b24; border-color: var(--bust); }
.desk-select, .desk-field input, .player-pick input { width: 100%; padding: 9px 10px; background: #1a0814; border: 2px solid var(--brass-dark); border-radius: 5px; color: var(--bone); }
.desk-select option { background: #1a0814; }
.desk-checks { display: flex; flex-direction: column; gap: 5px; }
.desk-form h3 { margin: 0; font: 30px/1 'Bebas', sans-serif; text-transform: capitalize; }
.desk-field label { display: block; margin-bottom: 3px; }
.desk-field .small { margin: 0 0 4px; font-size: 12px; color: var(--faded); }
.player-list { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; }
.player-list .quiet { padding: 7px 10px; text-align: left; background: var(--seat); border: 0; border-radius: 4px; }

.tile-together { --tile: #1f6b4f; --trim: var(--crystal); }
.desk-start { display: block; width: 100%; max-width: 720px; margin: 0 auto 10px; font-size: 26px; padding: 11px 0 8px; }
.desk-hidden:not(:empty) { margin-bottom: 10px; }
.desk-hidden > .desk-text { padding: 8px 12px; background: #1a0814; border-left: 4px solid var(--brass); border-radius: 3px; }

/* Crash */
.crash-sky { position: absolute; inset: 0; width: 100%; height: 100%; }
.crash-number { position: relative; font: clamp(64px, 16vw, 150px)/.9 'Bebas', sans-serif; font-variant-numeric: tabular-nums; color: var(--bone); pointer-events: none; }
.crash-number.lost { color: var(--bust); }
.crash-sub { position: relative; min-height: 1.4em; color: var(--crystal); pointer-events: none; }
.crash-riders { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 10px; min-height: 22px; max-height: 66px; overflow: hidden; font-size: 12px; padding: 0 8px; }
.rider { display: flex; gap: 6px; padding: 2px 7px; background: #1a0814; border-radius: 3px; color: var(--faded); }
.rider.off { color: var(--crystal); }
.rider.lost { color: var(--bust); }
.go.cashing { background: var(--crystal); border-bottom-color: #2b7a8f; }

/* Phones and Discord's small panel */
@media (max-width: 720px) {
  .game { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
  .tray { border-left: 0; border-top: 3px solid var(--brass-dark); padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); gap: 6px; }
  .fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .fields > :only-child { grid-column: 1 / -1; }
  .tray input { font-size: 24px; }
  .go { font-size: 30px; padding: 9px 0 5px; }
  .history { display: none; }
  .who-level, .mute { display: none; }
  .verdict { font-size: 15px; }
  .move { font-size: 22px; padding: 10px 4px 7px; }
  .floor-row { grid-template-columns: 46px repeat(var(--tiles), 1fr); }
  .quick button { font-size: 12px; }
}
@media (max-height: 460px) {
  .sign { display: none; }
  .tray { gap: 4px; }
  .odds, .paytable, .loot-prizes { display: none; }
  .number { font-size: 76px; }
  .history { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .bulbs i, .number.lost { animation: none; }
  .tile, .ladder .goal { transition: none; }
}
