/* Keep a short deck on a full-height table; a longer deck extends normal document flow. */
body {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  position: relative;
  isolation: isolate;
}
.stage-container { width: 100%; flex: 0 0 auto; margin: 0 auto; }
.site-footer { width: 100%; flex: 0 0 auto; margin: auto auto 0; }

/* Ink pressed into the table surface, uncovered as the cards move. */
.table-imprint {
  position: absolute;
  top: clamp(300px, 43vh, 620px);
  left: 50%;
  transform: translateX(-50%) rotate(-.6deg);
  z-index: -1;
  color: #ffffff08;
  font-family: var(--font-title);
  font-size: clamp(38px, 8.7vw, 180px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: .16em;
  white-space: nowrap;
  text-shadow: 0 1px 0 #0005;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

/* A second ink layer keeps the metal reveal crisp without changing the lettering. */
.table-imprint::after {
  content: 'HAPLAB';
  position: absolute;
  inset: 0;
  color: transparent;
  background-image: var(--grain), linear-gradient(117deg, #6b5229 0%, #c3a266 19%, #e1c586 27%, #8f713d 37%, #ba9654 48%, #e8cf94 51%, #9b793f 59%, #c4a363 79%, #73582c 100%);
  background-clip: text;
  -webkit-background-clip: text;
  text-shadow: none;
  filter: url('#felt-print') drop-shadow(0 -.6px .3px #ead59d44) drop-shadow(0 1px 1px #000c);
  opacity: 0;
  transition: opacity 240ms ease-out;
}
.table-imprint.is-gold::after { opacity: .88; }

@media (max-width: 760px) {
  .site-footer { padding: 18px 20px 26px; }
}
@media (prefers-reduced-motion: reduce) { .table-imprint::after { transition: none; } }
