/* Pixel font for canvas-printed ticket numbers; the scaled HUD keeps its book fonts. */
@font-face {
  font-family: "Fusion Pixel";
  src: url("assets/fonts/fusion-pixel-12px-proportional-zh_hans.otf.woff2") format("woff2");
  font-display: block;
}

:root {
  color-scheme: dark;
  --ink: #294537;
  --paper: #efdfb7;
  --gold: #e5c38a;
  --ticket-accent: #a58040;
  --game-scale: 1;
  font-family: "Songti SC","STSong","Noto Serif CJK SC","SimSun",serif;
  font-synthesis: none;
}

* {
  box-sizing: border-box;
}

html,body {
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

body {
  display: grid;
  place-items: center;
  background: #12241f;
  color: var(--paper);
  overscroll-behavior: none;
}

button {
  font: inherit;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
}

button:disabled {
  cursor: default;
}

button:focus-visible,canvas:focus-visible {
  outline: 3px solid #ffe6ac;
  outline-offset: 3px;
}

button:focus:not(:focus-visible),canvas:focus:not(:focus-visible) {
  outline: none;
}

kbd {
  font: 15px/1 Georgia,serif;
  opacity: .72;
}

[hidden] {
  display: none!important;
}

.shop {
  position: relative;
  width: min(100vw,calc(100svh * 4 / 3));
  aspect-ratio: 4/3;
  overflow: hidden;
  container-type: inline-size;
}

.scene-stage {
  position: absolute;
  inset: 0;
  background: #293b30;
}

#scene {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  touch-action: none;
}

.ui-plane {
  position: absolute;
  left: 0;
  top: 0;
  width: 1024px;
  height: 768px;
  transform: scale(var(--game-scale));
  transform-origin: 0 0;
  pointer-events: none;
}

.play-hud {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.play-hud button {
  pointer-events: auto;
}

.play-hud[inert] {
  pointer-events: none;
}

.play-hud[inert] button {
  pointer-events: none;
}

[data-ui-art] {
  position: relative;
  isolation: isolate;
}

.raster-surface {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.raster-surface.is-sliced {
  display: grid;
}

.bitmap-crop {
  position: relative;
  display: block;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
}

.bitmap-crop img {
  position: absolute;
  display: block;
  max-width: none;
  image-rendering: pixelated;
  user-select: none;
  pointer-events: none;
}

.raster-surface>.bitmap-crop:only-child {
  width: 100%;
  height: 100%;
}

.day-takings {
  position: absolute;
  left: 655px;
  top: 15px;
  width: 238px;
  height: 55px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 8px;
  padding: 9px 20px 9px 33px;
  color: var(--ink);
  background: none;
}

.ledger-heading {
  font-size: 17px;
  letter-spacing: 1px;
}

.day-takings output {
  font: 27px/1 Georgia,serif;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ledger-entry {
  position: absolute;
  top: 55px;
  right: 10px;
  white-space: nowrap;
  color: #ffe2aa;
  font-size: 13px;
  text-shadow: 1px 1px #39271d;
}

.ledger-entry:not(.has-receipt) {
  opacity: .9;
}

.day-takings.has-receipt .ledger-entry {
  color: #fff0bb;
}

.menu-button {
  position: absolute;
  left: 911px;
  top: 15px;
  width: 92px;
  height: 51px;
  color: #f4dfb5;
  background: none;
  font-size: 19px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.menu-button kbd {
  font-size: 12px;
}

.world-hotspot {
  position: absolute;
  background: transparent;
  padding: 0;
  color: #f5dfb7;
  pointer-events: auto;
}

.world-hotspot:focus-visible {
  outline: 3px solid #ffe8b1;
  outline-offset: 3px;
}

.world-hotspot:hover:not(:disabled),.world-hotspot.is-selected {
  outline: 1px solid #e2c18a;
  outline-offset: 2px;
}

.world-hotspot:disabled {
  outline: none;
}

.hotspot-label {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 112px;
  height: 30px;
  padding: 5px 12px;
  text-align: center;
  font-size: 17px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
}

.tool .hotspot-label {
  min-width: 98px;
}

.world-hotspot:hover:not(:disabled) .hotspot-label,.world-hotspot:focus-visible .hotspot-label,.world-hotspot.is-handing .hotspot-label {
  opacity: 1;
}

.cabinet-ticket.is-picked .hotspot-label {
  opacity: 1;
}

.world-hotspot:active:not(:disabled) {
  outline-color: #fff5d7;
}

.ticket-readout {
  position: absolute;
  left: 60px;
  top: 707px;
  width: 416px;
  height: 49px;
  color: #f3d9aa;
  pointer-events: none;
}

.ticket-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.ticket-heading h2 {
  margin: 0;
  font-size: clamp(20px,calc(11px / var(--game-scale)),32px);
  font-weight: 500;
  letter-spacing: 2px;
  line-height: 1.15;
  white-space: nowrap;
}

.queue-label {
  font-size: 17px;
  white-space: nowrap;
  color: #d3b784;
  padding: 4px 9px;
  background: #35291dcc;
  border: 1px solid #9e7a47;
}

.progress-row {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 8px;
}

.scratch-progress {
  flex: 1;
  height: 3px;
  background: #705338;
}

.scratch-progress span {
  display: block;
  height: 100%;
  background: #e3c182;
  transform-origin: left;
  transform: scaleX(0);
}

.progress-row output {
  font: 16px/1 Georgia,"Songti SC",serif;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  color: #e6cf9e;
}

.actions {
  position: absolute;
  left: 600px;
  top: 705px;
  width: 396px;
  height: 51px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  pointer-events: none;
}

.actions button {
  pointer-events: auto;
}

.actions p {
  margin: 0;
  flex: 1;
  min-width: 0;
  text-align: center;
  font-size: 22px;
  letter-spacing: 1px;
  color: #e1c391;
}

.primary-action {
  position: relative;
  min-width: 229px;
  height: 51px;
  padding: 8px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #ffebbd;
  background: none;
  font-size: 22px;
  white-space: nowrap;
}

#primary-label-compact {
  display: none;
}

.discard-action {
  min-width: 102px;
  height: 48px;
  padding: 6px;
  background: none;
  color: #e8c999;
  font-size: 19px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.discard-action:hover:not(:disabled) {
  color: #fff0c4;
}

.discard-action:disabled {
  opacity: .36;
}

.primary-action:disabled {
  color: #c4b08b;
}

.primary-action:disabled>.raster-surface {
  filter: saturate(.25) brightness(.53);
}

.primary-action:hover:not(:disabled)>.raster-surface,.menu-primary:hover:not(:disabled)>.raster-surface,.menu-option:hover:not(:disabled)>.raster-surface,.menu-button:hover>.raster-surface {
  filter: brightness(1.12);
}

.primary-action:active:not(:disabled),.menu-primary:active:not(:disabled),.menu-option:active:not(:disabled),.menu-button:active {
  transform: translateY(2px);
}

.boss-dialogue {
  position: absolute;
  left: 804px;
  top: 150px;
  width: 206px;
  min-height: 61px;
  padding: 13px 17px;
  color: var(--ink);
  pointer-events: none;
}

.boss-dialogue p {
  margin: 0;
  font-size: 19px;
  line-height: 1.35;
  letter-spacing: .5px;
}

.menu-overlay {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  background: #12251d55;
  pointer-events: auto;
}

.menu-panel {
  position: relative;
  width: 468px;
  height: 555px;
  padding: 62px 53px 44px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  color: var(--ink);
  pointer-events: auto;
}

.menu-panel #menu-eyebrow {
  margin: 0 0 8px;
  text-align: center;
  color: #7e6a49;
  letter-spacing: 6px;
  font-size: 14px;
}

.menu-panel h1 {
  margin: 0;
  text-align: center;
  font-size: 38px;
  font-weight: 500;
  letter-spacing: 5px;
  line-height: 1.2;
}

.menu-panel #menu-description {
  margin: 13px 0 25px;
  text-align: center;
  color: #72664d;
  font-size: 16px;
  line-height: 1.4;
}

.menu-page {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #987247 transparent;
}

.menu-primary,.menu-option {
  flex-shrink: 0;
  position: relative;
  min-height: 50px;
  padding: 10px 19px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #f6dfb2;
  background: none;
  font-size: 22px;
  letter-spacing: 1px;
}

.menu-primary {
  font-size: 24px;
}

.menu-option:disabled,.menu-primary:disabled {
  opacity: .45;
}

.menu-back,.menu-close {
  align-self: center;
  flex-shrink: 0;
  min-height: 32px;
  margin-top: 13px;
  padding: 5px 12px;
  background: none;
  color: #775f41;
  font-size: 17px;
  letter-spacing: 1px;
}

.menu-back:hover,.menu-close:hover {
  text-decoration: underline;
}

.menu-close {
  display: none;
}

.setting-row p {
  margin: 8px 0 6px;
  font-size: 14px;
  text-align: center;
  line-height: 1.4;
  color: #756b52;
}

.setting-row .menu-option {
  width: 100%;
}

.help-page {
  gap: 11px;
}

.help-page ol {
  margin: 0;
  padding-left: 21px;
  font-size: 16px;
  line-height: 1.6;
}

.help-page li+li {
  margin-top: 6px;
}

.key-guide {
  margin: 0;
  color: #796b50;
  font-size: 13px;
  line-height: 1.7;
}

.help-page #demo-note {
  margin: 0;
  font-size: 12px;
  color: #817253;
  text-align: center;
}

.restart-copy {
  margin: 0 0 15px;
  text-align: center;
  font-size: 20px;
  line-height: 1.7;
}

.menu-panel[data-page="help"] #menu-description,.menu-panel[data-page="pause"] #menu-description {
  margin-bottom: 15px;
}

.scene-notice {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  background: #1528204d;
  pointer-events: auto;
}

.loading-paper {
  width: 400px;
  padding: 28px;
  color: var(--ink);
  text-align: center;
}

.loading-paper p {
  margin: 0;
  font-size: 22px;
  line-height: 1.5;
}

#notice-details {
  margin-top: 10px;
  font-size: 14px;
  max-height: 130px;
  overflow: auto;
  overflow-wrap: anywhere;
}

.retry-button {
  margin-top: 16px;
  padding: 8px 16px;
  background: transparent;
  color: #923d2d;
  border: 1px solid #ae714b;
  font-size: 19px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.reward-arrived {
  animation: ledger-count 400ms steps(5,end) 1;
}

.receipt-landed .ledger-entry {
  animation: receipt-land 300ms steps(5,end) 1;
}

.paper-changed .ticket-heading {
  animation: paper-settle 260ms steps(5,end) 1;
}

.queue-added {
  animation: queue-added 260ms steps(4,end) 1;
}

.ready-arrived {
  animation: action-settle 250ms steps(4,end) 1;
}

.menu-enter {
  animation: menu-enter 180ms steps(5,end) 1;
}

.dialogue-enter {
  animation: paper-settle 180ms steps(4,end) 1;
}

@keyframes ledger-count {
  0% {
    color: #ac4b33;
    transform: translateY(-2px);
  }
  100% {
    color: #3b4936;
    transform: none;
  }
}

@keyframes receipt-land {
  0% {
    opacity: .4;
    transform: translateY(-5px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

@keyframes paper-settle {
  0% {
    transform: translateY(-4px);
    opacity: .55;
  }
  100% {
    transform: none;
    opacity: 1;
  }
}

@keyframes action-settle {
  0% {
    transform: translateY(-3px);
  }
  100% {
    transform: none;
  }
}

@keyframes queue-added {
  0% {
    color: #fff0bd;
    transform: translateY(-3px);
  }
  100% {
    transform: none;
  }
}

@keyframes menu-enter {
  0% {
    opacity: .4;
    transform: translateY(7px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

/* Finance, cabinet browsing, and rulebook remain part of the shop. */
.day-takings:hover > .raster-surface {
  filter: brightness(1.08);
}

.cabinet-pager {
  position: absolute;
  left: 604px;
  top: 519px;
  width: 385px;
  height: 31px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #f2ddb4;
  font-size: 16px;
}

.cabinet-pager button {
  width: 65px;
  height: 31px;
  padding: 3px 7px;
  color: #f2ddb4;
  background: none;
  font-size: 17px;
}

.cabinet-pager button:disabled {
  opacity: .4;
}

.cabinet-ticket .hotspot-label {
  min-width: 152px;
  z-index: 3;
}

/* Keep the page count in the accessibility tree while a ticket name occupies
   the same narrow counter seam. The printed name has visual priority. */
.play-hud:has(.cabinet-ticket:hover, .cabinet-ticket:focus-visible, .cabinet-ticket.is-picked) #cabinet-page {
  opacity: 0;
}

.cabinet-ticket:nth-of-type(3) .hotspot-label {
  left: auto;
  right: -12px;
  transform: none;
}

.cabinet-ticket.is-unaffordable:hover .hotspot-label {
  opacity: 1;
}

/* Sibling wood tags leave the ticket's one-at-a-time hit area intact. */
.cabinet-buy-ten { position:absolute; z-index:4; isolation:isolate; width:64px; min-height:43px; padding:5px 6px 6px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; background:none; color:#ffe0a4; line-height:1.05; }
.cabinet-buy-ten b { font-family:Georgia,serif; font-size:23px; font-weight:600; }
.cabinet-buy-ten > span:not(.raster-surface) { font-family:"PingFang SC","Microsoft YaHei",sans-serif; font-size:11px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.cabinet-buy-ten:hover:not(:disabled) { filter:brightness(1.16); }
.cabinet-buy-ten:disabled { color:#c9ba9b; }
.cabinet-buy-ten:disabled b { color:#d1c0a1; }
@container (max-width:800px) { .cabinet-buy-ten { width:69px; min-height:48px; } .cabinet-buy-ten b { font-size:27px; } .cabinet-buy-ten > span:not(.raster-surface) { font-size:14px; } }

#ticket-rule-button {
  padding: 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
  background: none;
  color: inherit;
  font: inherit;
  white-space: nowrap;
}

#ticket-rule-button:disabled {
  cursor: default;
}

.rule-mark {
  font-size: 13px;
  letter-spacing: 0;
  color: #d4b17c;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#ticket-rule-button:disabled .rule-mark {
  display: none;
}

.menu-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.volume-setting,
.rules-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  font-size: 18px;
  flex-shrink: 0;
}

.volume-button {
  min-width: 48px;
  height: 36px;
  padding: 5px 10px;
  color: #f7e1b6;
  background: none;
  font-size: 18px;
}

.volume-button:disabled {
  opacity: .4;
}

#volume-value {
  min-width: 55px;
  text-align: center;
  font: 20px Georgia,serif;
  font-variant-numeric: tabular-nums;
}

.menu-panel[data-page="ledger"],
.menu-panel[data-page="rules"] {
  width: 550px;
  height: 652px;
  padding: 72px 62px 52px;
}

.menu-panel[data-page="ledger"] #menu-description,
.menu-panel[data-page="rules"] #menu-description {
  margin-bottom: 14px;
}

.ledger-page,
.rules-page {
  font-size: 18px;
  padding-right: 5px;
}

.ledger-balance {
  margin: 0 0 5px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  color: #345247;
}

.ledger-balance strong {
  font: 30px Georgia,serif;
}

.finance-summary,
.rule-facts {
  margin: 0;
}

.finance-summary div,
.rule-facts div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 0;
}

.finance-summary dt,
.rule-facts dt {
  color: #75684e;
}

.finance-summary dd,
.rule-facts dd {
  margin: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ledger-note,
.save-status {
  margin: 0;
  color: #76664b;
  font-size: 14px;
  line-height: 1.5;
}

.save-status.is-warning {
  color: #963f2c;
}

.journal-heading {
  margin: 12px 0 0;
  font-size: 19px;
  font-weight: 500;
}

.journal-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.journal-list li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 12px;
  padding: 9px 0;
  border-bottom: 1px solid #ae96734d;
}

.journal-list small {
  grid-column: 1 / -1;
  color: #887456;
  font-size: 13px;
}

.journal-list strong {
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.rules-nav {
  justify-content: space-between;
}

#rule-name {
  margin: 10px 0 0;
  text-align: center;
  font-size: 29px;
  font-weight: 500;
}

.rule-price {
  margin: 0;
  text-align: center;
  color: #9c4e32;
}

.rule-description {
  margin: 7px 0;
  font-size: 20px;
  line-height: 1.6;
}

@container(max-width:600px) {
  .menu-panel {
    width: 620px;
    height: 735px;
    padding: 88px 70px 62px;
  }
  .menu-panel #menu-eyebrow {
    font-size: clamp(20px,calc(11px / var(--game-scale)),36px);
    margin-bottom: 12px;
  }
  .menu-panel h1 {
    font-size: clamp(38px,calc(21px / var(--game-scale)),64px);
  }
  .menu-panel #menu-description {
    font-size: clamp(21px,calc(12px / var(--game-scale)),36px);
    margin: 17px 0 28px;
  }
  .menu-page {
    gap: 16px;
  }
  .menu-primary,.menu-option {
    min-height: clamp(58px,calc(30px / var(--game-scale)),96px);
    font-size: clamp(24px,calc(13px / var(--game-scale)),40px);
    padding: 12px 20px;
  }
  .menu-back,.menu-close {
    font-size: clamp(23px,calc(12px / var(--game-scale)),36px);
    min-height: 44px;
    margin-top: 14px;
  }
  .setting-row p {
    font-size: clamp(20px,calc(11px / var(--game-scale)),36px);
    line-height: 1.35;
  }
  .help-page ol {
    font-size: clamp(21px,calc(12px / var(--game-scale)),36px);
    line-height: 1.5;
    padding-left: 30px;
  }
  .key-guide {
    font-size: clamp(20px,calc(11px / var(--game-scale)),36px);
  }
  .help-page #demo-note,
  .restart-copy {
    font-size: clamp(22px,calc(11px / var(--game-scale)),36px);
  }
  .menu-panel:not([data-page="start"]) #menu-description {
    display: none;
  }
  .menu-panel:not([data-page="start"]) h1 {
    margin-bottom: 20px;
  }
  .ticket-readout {
    top: 701px;
    height: 65px;
  }
  .ticket-heading h2 {
    font-size: clamp(22px,calc(11px / var(--game-scale)),36px);
    line-height: 1;
    letter-spacing: 1px;
  }
  .queue-label {
    font-size: 23px;
  }
  .progress-row {
    margin-top: 0;
  }
  .progress-row output {
    font-size: clamp(18px,calc(9px / var(--game-scale)),29px);
    line-height: 1;
  }
  .primary-action,
  .discard-action,
  .actions p {
    font-size: 32px;
  }
  .actions kbd,
  #primary-label {
    display: none;
  }
  #primary-label-compact {
    display: inline;
  }
  .menu-button {
    font-size: 24px;
  }
  .menu-button kbd {
    display: none;
  }
  .ledger-heading {
    font-size: 23px;
  }
  .day-takings output {
    font-size: 31px;
  }
  .hotspot-label {
    font-size: 26px;
    min-width: 145px;
    height: 41px;
    bottom: calc(100% + 5px);
  }
  .tool .hotspot-label {
    min-width: 135px;
  }
  .boss-dialogue {
    font-size: 28px;
    min-height: 72px;
  }
  .boss-dialogue p {
    font-size: 27px;
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation: none!important;
    transition: none!important;
    scroll-behavior: auto!important;
  }
}

body.reduced-motion *,body.reduced-motion *::before,body.reduced-motion *::after {
  animation: none!important;
  transition: none!important;
}

body.game-paused .play-hud * {
  animation-play-state: paused!important;
}

@container(max-width:600px) {
  .menu-panel[data-page="ledger"],
  .menu-panel[data-page="rules"] {
    width: 620px;
    height: 735px;
    padding: 88px 70px 62px;
  }
  .menu-panel[data-page="pause"] .menu-primary,
  .menu-panel[data-page="pause"] .menu-option {
    min-height: 72px;
    padding: 8px 16px;
    font-size: 36px;
  }
  .rule-mark {
    font-size: 25px;
  }
  .cabinet-pager {
    font-size: 26px;
  }
  .cabinet-pager button {
    font-size: 27px;
    width: 75px;
  }
  .cabinet-ticket .hotspot-label {
    min-width: 205px;
  }
  .volume-setting,
  .rules-nav,
  .ledger-page,
  .rules-page,
  .rule-description {
    font-size: clamp(23px,calc(11px / var(--game-scale)),36px);
  }
  .volume-button {
    min-width: 76px;
    height: 58px;
    font-size: 34px;
  }
  #volume-value {
    min-width: 82px;
    font-size: 34px;
  }
  .ledger-note,
  .save-status,
  .journal-list small {
    font-size: clamp(21px,calc(10px / var(--game-scale)),32px);
  }
  .ledger-balance strong {
    font-size: 40px;
  }
  .journal-heading,
  #rule-name {
    font-size: 38px;
  }
  .finance-summary div,
  .rule-facts div {
    gap: 10px;
  }
}

/* Settings now hold five rows (sound, volume, clerk, time of day, motion): put each note beside its button. */
.setting-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.setting-row p {
  margin: 0;
  text-align: left;
}

[data-menu-page="settings"] {
  gap: 10px;
}

[data-menu-page="settings"] .menu-option {
  min-height: 0;
  padding-block: 6px;
  white-space: nowrap;
  width: auto;
  min-width: 9.5em;
}

[data-menu-page="settings"] .setting-row p {
  font-size: 0.82em;
  line-height: 1.3;
}

@container(max-width:600px) {
  [data-menu-page="settings"] .menu-option {
    min-height: 56px;
  }
  [data-menu-page="settings"] .setting-row p {
    font-size: clamp(18px,calc(10px / var(--game-scale)),30px);
  }
}

.rule-tiers {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}

.rule-tiers th,.rule-tiers td {
  padding: 3px 6px;
  text-align: center;
  border-bottom: 1px solid #d8c49a;
}

.rule-tiers th {
  font-weight: 500;
  color: #756b52;
}

@container(max-width:600px) {
  .rule-tiers {
    font-size: clamp(18px,calc(10px / var(--game-scale)),30px);
  }
}

.board-tabs {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

.board-tabs [aria-pressed="true"] {
  color: #ffe8b1;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.board-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-variant-numeric: tabular-nums;
}

.board-list li {
  display: grid;
  grid-template-columns: 2.5em 1fr auto;
  gap: 8px;
  padding: 3px 4px;
  border-bottom: 1px solid #d8c49a;
}

.board-list li.is-mine {
  background: #f3e2bd;
}

.board-rank {
  text-align: center;
  color: #a5502f;
}

.board-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Venue plaques sit on the empty top shelf of the glass case. */
.venue-tabs {
  position: absolute;
  left: 606px;
  top: 470px;
  width: 382px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}

.venue-tabs button {
  height: 30px;
  padding: 0 4px;
  color: #f7e1b6;
  background: none;
  font-size: 15px;
  white-space: nowrap;
}

.venue-tabs [aria-pressed="true"] {
  color: #ffe8b1;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.venue-tabs button:disabled {
  opacity: 0.55;
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.menu-grid .menu-option {
  min-height: 0;
  padding: 6px 4px;
  white-space: nowrap;
}

.market-page {
  overflow-y: auto;
}

.market-head {
  margin: 10px 0 4px;
  font-size: 17px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}

.market-head small {
  font-size: 12px;
  color: #756b52;
  font-weight: 400;
}

.market-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.market-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 6px 2px;
  border-bottom: 1px solid #d8c49a;
}

.market-row b {
  display: block;
  font-size: 15px;
  font-weight: 500;
}

.market-row span {
  display: block;
  font-size: 12px;
  line-height: 1.4;
  color: #6d5b4b;
}

.market-row em {
  font-style: normal;
  font-size: 13px;
  color: #a5502f;
  white-space: nowrap;
}

.market-bar {
  position: relative;
  display: block;
  height: 12px;
  margin-top: 4px;
  background: url("assets/ui/bar-frame.png") center / 100% 100% no-repeat;
  image-rendering: pixelated;
}

/* authored wooden rail and golden fill; width only reveals the fill */
.market-bar i {
  position: absolute;
  left: 4px;
  top: 3px;
  bottom: 3px;
  display: block;
  max-width: calc(100% - 8px);
  background: url("assets/ui/bar-fill.png") left center / 16px 100% repeat-x;
  image-rendering: pixelated;
}

.market-btn {
  min-width: 76px;
  padding: 5px 9px;
  border: 1px solid #8b5a2b;
  color: #3f2a18;
  background: #f3e2bd;
  font: inherit;
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
}

.market-btn.is-primary {
  color: #fff3d6;
  background: #a5352a;
  border-color: #6e1f17;
}

.market-btn:disabled {
  opacity: 0.5;
  cursor: default;
}

.market-note {
  min-height: 1.4em;
  margin: 6px 0 0;
  font-size: 13px;
  color: #a5502f;
  text-align: center;
}

.market-tool {
  position: absolute;
  top: 657px;
  width: 64px;
  height: 36px;
  color: #f7e1b6;
  background: none;
  font-size: 14px;
}

#tool-scanner { left: 268px; }
#tool-auto { left: 340px; }

.win-ticker {
  position: absolute;
  left: 18px;
  top: 18px;
  width: 610px;
  height: 26px;
  overflow: hidden;
  color: #ffe8b1;
  background: rgba(40, 24, 16, 0.62);
  font-size: 14px;
  line-height: 26px;
  white-space: nowrap;
  pointer-events: none;
}

.win-ticker span {
  display: inline-block;
  padding-left: 12px;
}

.win-ticker.is-running span {
  padding-left: 100%;
  animation: win-ticker 28s linear infinite;
}

@keyframes win-ticker {
  to { transform: translateX(-100%); }
}

.pick-deck {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin: 8px 0;
}

.pick-deck .market-btn {
  min-width: 0;
  white-space: normal;
  text-align: left;
}

/* Time dial: opens from the wall clock, and the same control sits in settings. */

.time-dial {
  position: absolute;
  left: 652px;
  top: 104px;
  width: 300px;
  padding: 14px 16px 12px;
  color: #3b2618;
  pointer-events: auto;
  z-index: 6;
}

.time-control { display: grid; gap: 8px; }

.time-readout { display: flex; align-items: baseline; gap: 10px; }

.time-readout b { font-size: 26px; letter-spacing: 1px; font-variant-numeric: tabular-nums; }

.time-readout span { font-size: 14px; opacity: .8; }

.time-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 24px; background: transparent; cursor: pointer; }
/* authored wooden rail and brass knob instead of the browser's own slider */
.time-slider::-webkit-slider-runnable-track { height: 12px; background: url("assets/ui/bar-frame.png") center / 100% 100% no-repeat; image-rendering: pixelated; }
.time-slider::-moz-range-track { height: 12px; background: url("assets/ui/bar-frame.png") center / 100% 100% no-repeat; image-rendering: pixelated; }
.time-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 24px; margin-top: -6px; border: 0; background: url("assets/ui/knob.png") center / 100% 100% no-repeat; image-rendering: pixelated; }
.time-slider::-moz-range-thumb { width: 16px; height: 24px; border: 0; border-radius: 0; background: url("assets/ui/knob.png") center / 100% 100% no-repeat; image-rendering: pixelated; }

.time-presets { display: flex; flex-wrap: wrap; gap: 4px; }

.time-preset { flex: 1 1 auto; min-width: 0; padding: 4px 6px; font-size: 13px; color: #f5dfb7; }

.time-preset { position: relative; }
.time-preset.is-selected::after { content: ''; position: absolute; inset: -6px; pointer-events: none; border-style: solid; border-width: 9px; border-image: url("assets/px/select.png") 8 / 9px round; }

.time-setting { grid-template-columns: 1fr; }

.time-setting .time-control { color: inherit; }

/* The dial opens directly above the clock; the clerk's speech bubble steps aside meanwhile. */
.time-dial-open .boss-dialogue { visibility: hidden; }

.clock-hotspot { cursor: grab; touch-action: none; }

.clock-hotspot.is-turning { cursor: grabbing; }

.signin-card {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  margin-top: 4px;
}

.signin-stamp {
  position: relative;
  isolation: isolate;
  display: grid;
  justify-items: center;
  padding: 5px 0;
  font-size: 12px;
  line-height: 1.2;
  opacity: .75;
}

.signin-mark { position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; transform: translate(-50%, -50%) rotate(-12deg); image-rendering: pixelated; opacity: .85; pointer-events: none; }

.signin-stamp small { font-size: 11px; }

.signin-stamp.is-stamped { color: #b8432c; opacity: 1; }

.signin-stamp.is-next { opacity: 1; }
.signin-stamp.is-next::after { content: ''; position: absolute; inset: -5px; pointer-events: none; border-style: solid; border-width: 9px; border-image: url("assets/px/select.png") 8 / 9px round; }

/* The paper has one scrolling body. Its title and return controls never enter the scroll area. */
.menu-panel,
.menu-panel[data-page="ledger"],
.menu-panel[data-page="rules"] {
  width: 580px;
  height: 688px;
  padding: 83px 61px 64px;
  overflow: hidden;
}
.menu-panel[data-page="start"] { width: 468px; height: 555px; padding: 62px 53px 44px; }
.menu-header { flex: 0 0 auto; position: relative; padding-bottom: 15px; }
.menu-panel .menu-header #menu-eyebrow { font-size: 13px; margin: 0 0 7px; letter-spacing: 4px; }
.menu-panel .menu-header h1 { margin: 0; font-size: 32px; line-height: 1.25; letter-spacing: 3px; }
.menu-panel .menu-header #menu-description { display: block; margin: 10px 0 0; font-size: 15px; line-height: 1.45; }
.menu-body {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #997348 transparent;
  padding: 2px 9px 5px 2px;
  scroll-padding-block: 10px;
}
.menu-body:focus { outline: none; }
.menu-page { min-height: auto; flex: none; overflow: visible; gap: 12px; padding-right: 0; }
.menu-page > * { flex-shrink: 0; }
.menu-footer { flex: 0 0 auto; position: relative; margin-top: 12px; padding-top: 8px; border-top: 1px solid #bd985b66; }
.menu-navigation { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 34px; }
.menu-navigation .menu-back,
.menu-navigation .menu-close { display: block; min-height: 34px; margin: 0; padding: 5px 7px; font-size: 16px; white-space: nowrap; }
.menu-path { flex: 1; font-size: 12px; text-align: center; color: #907650; line-height: 1.4; }
.menu-footer .market-note { min-height: 0; max-height: 56px; overflow-y: auto; margin: 0 0 7px; font-size: 13px; line-height: 1.45; color: #9d472c; }
.menu-footer .market-note:empty { display: none; }
.menu-section-label { margin: 4px 0 -5px; color: #927148; font-size: 13px; letter-spacing: 2px; }
.menu-grid { gap: 7px; }
.menu-grid .menu-option { min-height: 44px; padding: 7px 5px; font-size: 19px; letter-spacing: 0; }
.menu-primary,.menu-option { min-height: 48px; font-size: 21px; }
.menu-primary { font-size: 23px; }
.menu-detail-link { justify-content: space-between; }
.menu-soft-note, .staff-current { margin: 0; font-size: 16px; color: #75634a; line-height: 1.7; }
.staff-current { font-size: 20px; color: var(--ink); }
[data-menu-page="settings"] { gap: 16px; }
[data-menu-page="settings"] .menu-option { min-height: 46px; min-width: 0; font-size: 19px; padding: 9px 16px; }
.setting-row { grid-template-columns: minmax(155px, 1fr) minmax(0, 1fr); gap: 14px; }
.setting-row p, [data-menu-page="settings"] .setting-row p { font-size: 14px; line-height: 1.5; }
.time-setting { grid-template-columns: 1fr; gap: 18px; }
.market-head { margin-top: 12px; font-size: 20px; line-height: 1.5; flex-wrap: wrap; }
.market-head:first-child { margin-top: 0; }
.market-head small { font-size: 13px; }
.market-row { padding: 11px 2px; gap: 12px; }
.market-row b { font-size: 17px; line-height: 1.5; }
.market-row span { font-size: 14px; line-height: 1.55; }
.market-btn { min-height: 37px; font-size: 14px; }
.pick-deck { gap: 8px; }
.pick-deck .market-btn { min-height: 52px; padding: 8px 10px; line-height: 1.5; }
.menu-body button:focus-visible, .menu-body input:focus-visible, .menu-footer button:focus-visible { outline-color: #9d4c2d; outline-offset: 2px; }
.queue-label:hover:not(:disabled) { color: #ffe2a3; border-color: #e9bf72; }
.queue-label:disabled { opacity: .6; }
.clerk-hotspot .hotspot-label { bottom: 12px; }
.time-dial { left: 427px; top: 151px; width: 310px; padding: 18px 21px; }
.time-dial-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }
.time-dial-heading strong { font-size: 18px; font-weight: 500; }
.time-dial-heading button { background: none; padding: 5px; color: #886446; font-size: 14px; }
.time-dial .time-control { gap: 10px; }
.time-exact { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 14px; }
.time-exact input { border: 1px solid #bc9866; border-radius: 0; padding: 3px 7px; color: #50351f; background: #f5e4bf; font: inherit; font-variant-numeric: tabular-nums; }
.time-effect { margin: 0; color: #826342; font-size: 13px; line-height: 1.55; }
.time-preset { min-height: 32px; padding: 5px 7px; }
[data-menu-page="time"] .time-control { gap: 17px; }
[data-menu-page="time"] .time-readout b { font-size: 38px; }
[data-menu-page="time"] .time-effect { font-size: 16px; }
[data-menu-page="time"] .time-preset { font-size: 17px; min-height: 42px; }
[data-menu-page="time"] .time-exact { font-size: 17px; }
@container(max-width:600px) {
  .menu-panel, .menu-panel[data-page="start"], .menu-panel[data-page="ledger"], .menu-panel[data-page="rules"] { width: 650px; height: 735px; padding: 77px 75px 52px; }
  .menu-panel .menu-header #menu-eyebrow { font-size: 19px; margin-bottom: 8px; }
  .menu-panel .menu-header h1 { font-size: 38px; }
  .menu-panel .menu-header #menu-description { font-size: 20px; line-height: 1.4; }
  .menu-header { padding-bottom: 17px; }
  .menu-body { padding-right: 10px; }
  .menu-page { gap: 15px; }
  .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .menu-panel[data-page="pause"] .menu-primary, .menu-panel[data-page="pause"] .menu-option, .menu-primary,.menu-option { min-height: 58px; padding: 8px 12px; font-size: 27px; }
  .menu-section-label { font-size: 20px; margin-top: 8px; }
  .menu-navigation .menu-back,.menu-navigation .menu-close { min-height: 44px; font-size: 23px; }
  .menu-path { font-size: 17px; }
  .menu-footer .market-note { max-height: 75px; font-size: 19px; }
  .market-head { font-size: 28px; }
  .market-head small,.market-row span { font-size: 21px; }
  .market-row b { font-size: 25px; }
  .market-row em,.market-btn { font-size: 21px; }
  .market-btn { min-height: 50px; }
  .market-row { padding-block: 14px; }
  [data-menu-page="settings"] .menu-option { min-height: 58px; font-size: 25px; }
  .setting-row { grid-template-columns: 1fr; gap: 8px; }
  .setting-row p,[data-menu-page="settings"] .setting-row p,.menu-soft-note { font-size: 22px; }
  .time-setting { gap: 18px; }
  [data-menu-page="time"] .time-preset,[data-menu-page="time"] .time-exact,[data-menu-page="time"] .time-effect { font-size: 22px; }
  [data-menu-page="time"] .time-preset { min-height: 50px; }
  .time-dial { left: 385px; top: 105px; width: 370px; }
  .time-dial-heading strong { font-size: 24px; }
  .time-dial-heading button,.time-dial .time-exact,.time-dial .time-effect { font-size: 19px; }
  .time-dial .time-readout b { font-size: 34px; }
  .time-dial .time-readout span,.time-dial .time-preset { font-size: 18px; }
}

/* Incremental shop: machine income under the cash. */
.ledger-rate { display:block; font-size:12px; line-height:1.2; color:#2f6b45; min-height:14px; }
.market-actions { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; max-width:420px; }
.market-empty { font-size:24px; color:#7a5a3a; }

/* Novelty notes: one stamped paper at a time across the top of the shop. */
.news-banner { position:absolute; left:50%; top:64px; z-index:40; transform:translateX(-50%); display:grid; grid-template-columns:auto 1fr; column-gap:12px; align-items:center;
  min-width:420px; max-width:640px; padding:12px 20px; isolation:isolate; color:var(--ink); pointer-events:none; }
.news-banner[hidden] { display:none; }
.news-stamp { grid-row:1 / 3; width:48px; height:48px; image-rendering:pixelated; }
.news-banner b { font-size:24px; font-weight:400; color:#943d2b; }
.news-banner span { font-size:12px; line-height:1.4; }
.news-banner.is-in { animation:news-in .36s steps(4); }
@keyframes news-in { from { transform:translate(-50%, -24px); opacity:0; } to { transform:translateX(-50%); opacity:1; } }
body.reduced-motion .news-banner.is-in { animation:none; }

/* The shop ledger button sits beside the menu button. */
.menu-button.book-button { left:803px; width:100px; }
/* The earning display and three navigation buttons have separate spaces in the header. */
.day-takings { left:18px; width:260px; height:74px; gap:3px 8px; }
.day-takings .ledger-rate { grid-column:1 / -1; text-align:right; }
.day-takings .ledger-entry { top:74px; }
.win-ticker { left:296px; top:28px; width:380px; }

/* One small theme selector shares the cabinet rail with paging; the price series keep their own row. */
.venue-tabs { display:flex; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; scrollbar-color:#b2925b transparent; padding-bottom:7px; }
.venue-tabs button { flex:0 0 auto; min-width:88px; padding-inline:9px; }
.cabinet-pager { gap:6px; }
.cabinet-pager > button { flex:0 0 50px; width:50px; padding-inline:3px; font-size:16px; }
.cabinet-pager #ticket-picker-button { flex-basis:74px; width:74px; }
.cabinet-pager #cabinet-page { flex:0 0 40px; text-align:center; font-variant-numeric:tabular-nums; font-size:15px; }
.cabinet-theme { position:relative; isolation:isolate; flex:1 1 112px; min-width:105px; height:31px; }
.cabinet-theme select { position:relative; z-index:1; display:block; width:100%; height:100%; margin:0; padding:3px 3px 3px 10px; border:0; border-radius:0; background:transparent; color:#f7e2b8; font-family:inherit; font-size:16px; line-height:1.3; pointer-events:auto; cursor:pointer; }
.cabinet-theme select option { background:#efe0bb; color:#374a38; }
.cabinet-theme select:disabled { color:#baaa8b; cursor:default; }
.cabinet-theme select:focus-visible { outline:3px solid #ffe6ac; outline-offset:3px; }
.cabinet-empty { position:absolute; left:656px; top:572px; width:292px; padding:14px 18px; isolation:isolate; color:#40503b; text-align:center; }
.cabinet-empty p { margin:0 0 8px; font-size:18px; line-height:1.5; }
.cabinet-empty button { padding:5px 4px; color:#8a442f; background:none; font-family:inherit; font-size:16px; line-height:1.3; text-decoration:underline; text-underline-offset:4px; }

/* The picker uses the existing authored paper frame and independent ticket paintings. */
#menu-panel[data-page="pick"] { width:744px; height:726px; padding:92px 86px 65px; }
#menu-panel[data-page="pick"] .menu-header { padding-bottom:8px; }
#menu-panel[data-page="pick"] .menu-header #menu-eyebrow { margin-bottom:5px; line-height:1.4; }
#menu-panel[data-page="pick"] .menu-header h1 { font-size:28px; }
#menu-panel[data-page="pick"] .menu-header #menu-description { font-size:14px; margin-top:5px; }
#menu-panel[data-page="pick"] .menu-body { padding:2px 4px 5px; }
#menu-panel[data-page="pick"] .menu-footer { margin-top:5px; padding-top:6px; }
.ticket-picker-page { gap:7px; }
.ticket-picker-filters { display:grid; grid-template-columns:145px minmax(0,1fr); gap:14px; }
.ticket-picker-filters label { display:grid; gap:5px; color:#6e654e; font-size:13px; }
.ticket-picker-filters select { width:100%; min-width:0; min-height:34px; border:1px solid #ad946a; border-radius:0; background:#f2e6c9; color:#2c4b3e; padding:5px 8px; font-family:inherit; font-size:16px; line-height:1.35; }
.ticket-picker-filters select:focus-visible { outline:2px solid #9d4c2d; outline-offset:2px; }
.ticket-picker-detail { display:grid; grid-template-columns:65px minmax(0,1fr); gap:13px; align-items:center; min-height:88px; }
.ticket-picker-detail img { width:65px; height:88px; object-fit:contain; }
.ticket-picker-detail h2 { margin:0 0 5px; color:#2b4e40; font-size:24px; font-weight:500; }
.ticket-picker-detail p { margin:4px 0; color:#63573f; font-size:14px; line-height:1.45; }
.ticket-picker-rules { padding:3px 0; background:none; color:#8e4930; font-family:inherit; font-size:14px; line-height:1.3; text-decoration:underline; text-underline-offset:3px; }
.ticket-picker-number-heading { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-top:3px; color:#3b5542; }
.ticket-picker-number-heading b { font-size:17px; font-weight:500; }
.ticket-picker-number-heading span { font-size:13px; color:#796a4b; }
.ticket-picker-pile { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); align-items:start; min-height:103px; margin:3px 15px 0 0; padding-top:8px; isolation:isolate; }
.ticket-picker-card { position:relative; height:89px; padding:0; border:0; overflow:visible; background:none; color:#35513e; transform:translateY(0); transition:transform 140ms ease-out; }
.ticket-picker-card img { display:block; width:66px; height:88px; max-width:none; object-fit:contain; pointer-events:none; }
.ticket-picker-tail { position:absolute; left:3px; top:61px; min-width:38px; padding:5px 4px; isolation:isolate; font:15px/1.1 ui-monospace,monospace; text-align:center; color:#334e3b; }
.ticket-picker-card:hover:not(:disabled),.ticket-picker-card:focus-visible { z-index:2; transform:translateY(-6px); }
.ticket-picker-card.is-picked { z-index:3; transform:translateY(-10px); }
.ticket-picker-card.is-picked .ticket-picker-tail { color:#963e2a; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.ticket-picker-card:disabled:not(.is-picked) { opacity:.55; }
.ticket-picker-card:focus-visible { outline:2px solid #9d4c2d; outline-offset:3px; }
.ticket-picker-note { margin:0; color:#77684d; font-size:13px; line-height:1.5; }
.ticket-picker-status { margin:0; min-height:22px; color:#3b5542; font-size:15px; line-height:1.45; }
.ticket-picker-action { display:grid; grid-template-columns:minmax(0,1fr) 210px; align-items:center; gap:12px; padding:3px 0 5px; }
#pick-ticket-buy { margin:0; min-height:43px; padding:7px 10px; font-size:19px; letter-spacing:0; }
@container(max-width:600px) {
  .cabinet-pager > button { font-size:20px; }
  .cabinet-pager #cabinet-page { font-size:19px; }
  .cabinet-theme select { font-size:21px; padding-left:6px; }
  .cabinet-empty p { font-size:24px; }
  .cabinet-empty button { font-size:21px; }
  #menu-panel[data-page="pick"] { width:838px; height:742px; padding:94px 98px 66px; }
  #menu-panel[data-page="pick"] .menu-header h1 { font-size:34px; }
  #menu-panel[data-page="pick"] .menu-header #menu-description { font-size:19px; }
  .ticket-picker-filters { grid-template-columns:170px minmax(0,1fr); }
  .ticket-picker-filters label,.ticket-picker-number-heading span,.ticket-picker-note { font-size:19px; }
  .ticket-picker-filters select { min-height:43px; font-size:23px; }
  .ticket-picker-detail h2 { font-size:29px; }
  .ticket-picker-detail p,.ticket-picker-rules,.ticket-picker-status { font-size:21px; }
  .ticket-picker-number-heading b { font-size:24px; }
  .ticket-picker-pile { min-height:115px; margin-right:10px; }
  .ticket-picker-card { height:101px; }
  .ticket-picker-card img { width:74px; height:100px; }
  .ticket-picker-tail { top:69px; }
  .ticket-picker-tail { font-size:21px; min-width:43px; padding-inline:3px; }
  .ticket-picker-action { grid-template-columns:minmax(0,1fr) 260px; gap:10px; }
  #pick-ticket-buy { min-height:54px; font-size:25px; }
}
