/* Shared sign-in controls, with a game-specific visual theme.
 * Kept local so a game's entry screen needs no cross-origin asset request. */
body:has(.signin-screen:not([hidden])) {
  --signin-paper: #f5f3eb;
  background: var(--signin-paper);
}
.signin-screen {
  --signin-card: #fffef9;
  --signin-ink: #203d34;
  --signin-muted: #626d65;
  --signin-green: #234c3e;
  --signin-hover: #163c30;
  --signin-line: #d8ddd2;
  --signin-focus: #ab6c26;
  --signin-white: #fff;
  --signin-width: 540px;
  --signin-space: 24px;
  --signin-small: 12px;
  --signin-padding: clamp(24px, 6vw, 56px);
  --signin-radius: 16px;
  --signin-action-radius: 8px;
  --signin-title: clamp(36px, 6vw, 56px);
  --signin-caption: 13px;
  --signin-tracking: 0.14em;
  --signin-border: 1px;
  --signin-outline: 3px;
  --signin-shadow: 0 12px 42px #26382b0b;
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  min-height: 85svh;
  padding: var(--signin-padding) var(--signin-space);
  color-scheme: light;
  color: var(--signin-ink);
  background: var(--signin-paper);
  font:
    16px/1.6 system-ui,
    sans-serif;
}
.signin-screen[hidden] {
  display: none;
}
body:has(.signin-screen:not([hidden])) > main:not(.signin-screen) {
  max-width: none;
  padding: 0;
}
.signin-card {
  width: min(100%, var(--signin-width));
  padding: var(--signin-padding);
  border: var(--signin-border) solid var(--signin-line);
  border-radius: var(--signin-radius);
  background: var(--signin-card);
  box-shadow: var(--signin-shadow);
  text-align: center;
}

.signin-card .signin-eyebrow {
  margin: var(--signin-small) 0 var(--signin-space);
  color: var(--signin-muted);
  font-size: var(--signin-caption);
  font-weight: 700;
  letter-spacing: var(--signin-tracking);
}
.signin-card h1 {
  margin: 0 0 var(--signin-space);
  font:
    500 var(--signin-title) / 1.1 Georgia,
    serif;
  letter-spacing: normal;
}
.signin-card .signin-description {
  margin: 0 0 var(--signin-space);
  color: var(--signin-muted);
}
.signin-card .signin-action {
  display: block;
  padding: var(--signin-small) var(--signin-space);
  border-radius: var(--signin-action-radius);
  background: var(--signin-green);
  color: var(--signin-white);
  text-decoration: none;
  font-weight: 600;
}
.signin-card .signin-action:hover {
  background: var(--signin-hover);
}
.signin-card .signin-action:focus-visible {
  outline: var(--signin-outline) solid var(--signin-focus);
  outline-offset: var(--signin-outline);
}
.signin-card .signin-note {
  margin: var(--signin-space) 0 0;
  color: var(--signin-muted);
  font-size: var(--signin-caption);
}

/* A felt table and a dealt pair distinguish Poker from the shared login. */
body:has(.signin-screen:not([hidden])) {
  --signin-paper: #092d25;
}
.signin-screen {
  --signin-card: #124c3d;
  --signin-ink: #fff5dd;
  --signin-muted: #d3dfcc;
  --signin-green: #efd18d;
  --signin-hover: #ffe1a0;
  --signin-white: #20382b;
  --signin-line: #b49254;
  --signin-focus: #fff5dd;
  --signin-shadow: 0 18px 70px #001b18aa, inset 0 0 0 7px #214e3e;
  --art-ivory: #fff9e9;
  --art-black: #20342f;
  --art-red: #ac3e37;
  --art-width: 82px;
  --art-height: 114px;
  --art-chip: 56px;
  --art-font: 28px;
  --art-suit: 42px;
  --art-overlap: -12px;
  --art-angle: 12deg;
  --art-shadow: 0 8px 12px #00251c66;
  --art-grain: #ffffff08;
  --art-grain-angle: 35deg;
  --art-grain-gap: 3px;
  --art-grain-period: 4px;
  --art-table-curve: 40%;
  --art-table-depth: 12%;
  --art-chip-border: 6px;
  background-image: repeating-linear-gradient(
    var(--art-grain-angle),
    transparent 0 var(--art-grain-gap),
    var(--art-grain) var(--art-grain-gap) var(--art-grain-period)
  );
}
.signin-card {
  border-radius: var(--art-table-curve) var(--art-table-curve)
    var(--signin-radius) var(--signin-radius) / var(--art-table-depth)
    var(--art-table-depth) var(--signin-radius) var(--signin-radius);
}
.signin-art {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--signin-small) 0 var(--signin-space);
}
.welcome-playing-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: var(--art-width);
  height: var(--art-height);
  border-radius: var(--signin-action-radius);
  background: var(--art-ivory);
  color: var(--art-black);
  font:
    bold var(--art-font) / 1 Georgia,
    serif;
  transform: rotate(calc(-1 * var(--art-angle)));
  box-shadow: var(--art-shadow);
}
.welcome-playing-card span {
  font-size: var(--art-suit);
}
.welcome-playing-card.red {
  color: var(--art-red);
  transform: rotate(var(--art-angle));
  margin-left: var(--art-overlap);
}
.welcome-chip {
  display: grid;
  place-items: center;
  align-self: flex-end;
  width: var(--art-chip);
  height: var(--art-chip);
  margin-left: var(--art-overlap);
  border: var(--art-chip-border) dashed var(--art-ivory);
  border-radius: 50%;
  background: var(--art-red);
  color: var(--art-ivory);
  font-size: var(--art-font);
  box-shadow: var(--art-shadow);
  z-index: 1;
}
