body {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(217, 178, 111, 0.10), transparent 55%),
    repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.012) 0 3px, transparent 3px 9px),
    radial-gradient(circle at 50% 30%, var(--velvet), var(--bg) 70%);
  background-attachment: fixed;
}
.vignette {
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background: radial-gradient(ellipse at center, transparent 45%, rgba(0, 0, 0, 0.65) 100%);
}
.parlor {
  position: relative; z-index: 1;
  max-width: 960px;
  margin: 0 auto;
  padding: 2.5rem 1.25rem 4rem;
  display: flex; flex-direction: column; gap: 1.75rem;
}
.parlor__header { text-align: center; }
.parlor__home {
  margin: 0 0 0.5rem;
  font-size: 0.85rem;
}
.parlor__home a {
  color: var(--ink-dim);
  text-decoration: none;
  letter-spacing: 0.05em;
}
.parlor__home a:hover, .parlor__home a:focus-visible { color: var(--gold); }
.parlor__eyebrow {
  margin: 0; color: var(--ink-dim);
  font-size: 0.8rem; letter-spacing: 0.3em; text-transform: uppercase;
}
.parlor__header h1 { font-size: clamp(2.4rem, 6vw, 3.6rem); line-height: 1.1; }
.greeting {
  max-width: 44ch; margin: 0.75rem auto 0;
  font-style: italic; color: var(--ink-dim);
}
.parlor__footer { text-align: center; color: var(--ink-dim); font-size: 0.85rem; margin-top: 2rem; }

.table {
  position: relative;
  padding: 1.5rem 0.5rem;
  border-top: 1px solid var(--panel-border);
  border-bottom: 1px solid var(--panel-border);
  background: radial-gradient(ellipse at 50% 100%, rgba(217, 178, 111, 0.06), transparent 70%);
}
.table__actions { display: flex; justify-content: center; gap: 0.75rem; margin-top: 1.25rem; flex-wrap: wrap; }

.deck { position: relative; width: 120px; aspect-ratio: 5 / 9; margin: 1rem auto 2rem; }
.deck__card {
  position: absolute; inset: 0;
  border-radius: 8px;
  background: var(--card-back);
  border: 2px solid var(--gold-soft);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.55);
}
.deck__card:nth-child(2) { transform: translate(3px, -3px); }
.deck__card:nth-child(3) { transform: translate(6px, -6px); }
.deck.is-shuffling .deck__card:nth-child(1) { animation: shuffle-a 0.9s ease-in-out; }
.deck.is-shuffling .deck__card:nth-child(2) { animation: shuffle-b 0.9s ease-in-out; }
.deck.is-shuffling .deck__card:nth-child(3) { animation: shuffle-c 0.9s ease-in-out; }
@keyframes shuffle-a {
  0%, 100% { transform: none; }
  35% { transform: translateX(-80px) rotate(-8deg); }
  70% { transform: translateX(25px) rotate(3deg); }
}
@keyframes shuffle-b {
  0%, 100% { transform: translate(3px, -3px); }
  35% { transform: translateX(80px) rotate(8deg); }
  70% { transform: translateX(-25px) rotate(-3deg); }
}
@keyframes shuffle-c {
  0%, 100% { transform: translate(6px, -6px); }
  50% { transform: translateY(-30px) rotate(-2deg); }
}