:root {
  --bg: #0a0a0a;
  --bg-2: #111010;
  --panel: #171111;
  --panel-2: #1c1414;
  --stroke: #3a1515;
  --crimson: #c41e1e;
  --crimson-d: #8b1515;
  --ink: #f3ece4;
  --muted: #c9b8a8;
  --dim: #7a6a60;
  --lime: #22c55e;
  --lime-fill: color-mix(in srgb, var(--lime) 10%, transparent);
  --lime-border: color-mix(in srgb, var(--lime) 30%, transparent);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --header-h: calc(1.7rem + 3.15rem + 1px);
  --cookie-h: 0px;
  --tarot: 1 / 1.7;
}

.skip {
  position: absolute; left: -999px; top: 0; background: var(--crimson); color: #fff; padding: .5rem 1rem;
}
.skip:focus { left: 1rem; z-index: 100; }
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-x: clip;
  overflow-y: auto;
  max-width: 100%;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  min-height: 100vh;
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--crimson); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; line-height: 1.15; margin: 0 0 .5em; }
h1 { font-size: clamp(2.4rem, 6vw, 4.6rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin-bottom: .8em; }
h2 + p { margin-top: .15rem; }
h3 { font-size: 25px; }
p { margin: 0 0 1em; color: color-mix(in srgb, var(--muted) 68%, var(--dim)); }
.lead { font-size: 1.2rem; color: var(--muted); max-width: 42rem; }
.roles-lead { max-width: 50rem; }
.roles-hub-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: .35rem 1.5rem;
  align-items: start;
  margin-bottom: 1.5rem;
}
.roles-hub-head h1 { margin-bottom: 0; }
.roles-hub-copy { margin-top: .35rem; }
.roles-hub-head.has-art {
  grid-template-columns: minmax(0, 1fr) 6.5rem;
  grid-template-areas:
    "ident art"
    "copy art";
}
.roles-hub-head.has-art .roles-hub-ident { grid-area: ident; }
.roles-hub-head.has-art .roles-hub-copy { grid-area: copy; }
.roles-hub-head.has-art .roles-hub-art { grid-area: art; }
.roles-hub-art {
  display: block;
  width: 6.5rem;
  max-width: 6.5rem;
  aspect-ratio: 1;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: var(--panel);
}

.wrap,
.wrap-wide {
  width: min(1320px, calc(100% - 2rem));
  margin-inline: auto;
}

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(10,10,10,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--stroke);
}
.header-inner { display: flex; align-items: center; gap: 1.5rem; padding: .85rem 0; }
.brand { display: flex; align-items: center; gap: .7rem; flex-shrink: 0; }
.brand-logo { display: block; height: 3.15rem; width: auto; }
.footer-brand { display: inline-block; margin: 0 0 .85rem; }
.footer-brand img { display: block; height: 4.8rem; width: auto; }
.nav-desktop { display: flex; gap: .2rem; margin-left: auto; align-items: center; flex-wrap: wrap; }
.nav-link {
  padding: .45rem .75rem; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--muted); border-bottom: 1px solid transparent;
}
.nav-link:hover, .nav-link.is-active { color: var(--ink); border-bottom-color: var(--crimson); }
.nav-buy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: .55rem;
  padding: .5rem .95rem;
  background: var(--crimson);
  color: #fff;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-bottom: 0;
}
.nav-buy:hover,
.nav-buy:focus-visible,
.nav-buy.is-on {
  background: #e02828;
  color: #fff;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-shrink: 0;
}
.currency-switch { margin: 0; }
.currency-switch div {
  display: inline-flex;
  height: 2.15rem;
  border: 1px solid var(--stroke);
}
.currency-switch button {
  background: none;
  border: 0;
  color: var(--muted);
  font: inherit;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 0 .55rem;
  cursor: pointer;
}
.currency-switch button[aria-current="true"] {
  color: #fff;
  background: #1a1616;
}
.currency-switch button:hover,
.currency-switch button:focus-visible { color: #fff; }
.nav-mobile-currency {
  display: none;
  margin: 1.05rem 0 0;
}
.nav-cart,
.menu-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  height: 2.15rem;
  background: none;
  border: 1px solid var(--stroke);
  color: var(--ink);
  padding: 0 .7rem;
  font: inherit;
  font-size: .75rem;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}
.nav-cart:hover,
.nav-cart:focus-visible,
.nav-cart.has-items {
  border-color: var(--crimson);
  color: #fff;
}
.nav-cart-icon {
  display: block;
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
  translate: 0 -1px;
}
.nav-cart-label {
  display: block;
  line-height: 1;
}
.nav-cart-count {
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 .28rem;
  background: var(--crimson);
  color: #fff;
  font-size: .65rem;
  letter-spacing: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.nav-cart-count[hidden] { display: none; }
body.is-site-checkout .nav-cart-count,
body.is-site-checkout .site-check-bar-cart-count {
  display: none !important;
}
.menu-btn { display: none; }
.nav-mobile { display: none; }
.nav-mobile-head,
.nav-mobile-close { display: none; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .85rem 1.3rem; background: var(--crimson); color: #fff; border: 0;
  font: inherit; font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
}
.btn > svg,
.btn-icon {
  display: block;
  width: 1.05em;
  height: 1.05em;
  flex-shrink: 0;
  translate: 0 -.04em;
}
.btn:hover, .btn:focus-visible { background: #e02828; color: #fff; }
.btn-ghost,
a.btn-ghost {
  background: transparent;
  border: 1px solid var(--crimson);
  color: #fff;
}
.btn.btn-ghost:hover,
.btn.btn-ghost:focus-visible,
a.btn.btn-ghost:hover,
a.btn.btn-ghost:focus-visible {
  background: transparent;
  border-color: var(--crimson);
  color: var(--crimson);
}
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.cta-play {
  display: grid;
  grid-template-columns: 1.15fr 1.05fr;
  gap: 4rem;
  align-items: start;
}
.cta-play-learn h2 + p { font-size: 19px; }
.cta-play-learn .btn { margin-bottom: .2rem; }
.cta-setups-heading { margin-top: 2.2rem; }
.cta-setups {
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
  border-top: 1px solid var(--stroke);
}
.cta-setups li { margin: 0; }
.cta-setup {
  display: block;
  padding: 1.05rem 0;
  border-bottom: 1px solid var(--stroke);
}
.cta-setup:hover { color: inherit; }
.cta-setup-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: .35rem;
}
.cta-setup h4 {
  margin: 0;
  font-size: 1.25rem;
  color: var(--ink);
}
.cta-setup:hover h4 { color: var(--crimson); }
.cta-setup-top span {
  flex-shrink: 0;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--crimson);
}
.cta-setup p { margin: 0 0 .45rem; font-size: .95rem; }
.cta-setup-deal {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  color: var(--dim);
  font-size: .88rem;
}
.cta-setups-all {
  margin: 1rem 0 0;
}
.cta-play-buy {
  display: flex;
  flex-direction: column;
}
.cta-slider-track {
  display: grid;
}
.cta-slide {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .45s ease, visibility .45s ease;
}
.cta-slide.is-on {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.cta-play-buy img { margin-bottom: 1rem; }
.cta-play-buy .buy-fan img,
.cta-play-buy .buy-deal img { margin-bottom: 0; }
.cta-play-buy .cta-buy-lead {
  font-size: 1.15rem;
  color: var(--ink);
}
.cta-buy-price {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .12rem;
  margin: 0 0 .9rem;
  color: var(--ink);
}
.cta-buy-price strong {
  font-family: var(--serif);
  font-size: 2.05rem;
  font-weight: 600;
  line-height: 1.05;
  color: #fff;
  letter-spacing: -.02em;
}
.cta-buy-price span {
  color: var(--muted);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.cta-play-buy .cta-buy-price { margin-bottom: 1.1rem; }
.cta-play-buy .btn { width: 100%; margin-top: auto; }
.cta-play-buy .form { margin-top: auto; }
.cta-play-buy .form input { max-width: none; margin-bottom: .85rem; }
.cta-play-buy .product-points { margin-bottom: 0; }
.cta-play-buy .product-price-row { margin-top: 1.1rem; }
.cta-play-buy .product-buy-form,
.cta-play-buy .product-buy-form[data-cart-add] {
  margin-top: 0;
  margin-bottom: 0;
}
.cta-play-buy .product-buy-form .btn,
.cta-play-buy .product-buy-form[data-cart-add] .btn {
  width: auto;
  flex: 1;
  margin-top: 0;
}
.cta-play-buy .product-final-note { margin-top: .75rem; }
.cta-slider-dots {
  display: flex;
  justify-content: center;
  gap: .45rem;
  margin-top: 1.1rem;
}
.cta-slider-dots button {
  width: .55rem;
  height: .55rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--crimson);
  background: transparent;
  cursor: pointer;
}
.cta-slider-dots button.is-on,
.cta-slider-dots button:hover {
  background: var(--crimson);
}
@media (prefers-reduced-motion: reduce) {
  .cta-slide { transition: none; }
}

.buy-fan {
  position: relative;
  width: 100%;
  height: 11.4rem;
  margin: .1rem auto .85rem;
}
.buy-fan img {
  position: absolute;
  left: 50%;
  top: 52%;
  width: 5.55rem;
  max-height: none;
  height: auto;
  aspect-ratio: var(--tarot);
  margin: 0;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 10px 22px rgba(0, 0, 0, .55);
  transform-origin: 50% 78%;
}
.buy-fan img:nth-child(1) {
  z-index: 1;
  transform: translate(-50%, -50%) rotate(-15deg) translate(-2.45rem, .2rem);
}
.buy-fan img:nth-child(2) {
  z-index: 2;
  transform: translate(-50%, -50%) rotate(-5deg) translate(-.8rem, -.08rem);
}
.buy-fan img:nth-child(3) {
  z-index: 3;
  transform: translate(-50%, -50%) rotate(5deg) translate(.8rem, -.08rem);
}
.buy-fan img:nth-child(4) {
  z-index: 4;
  transform: translate(-50%, -50%) rotate(15deg) translate(2.45rem, .2rem);
}
.cta-play-buy .buy-fan {
  height: 14.2rem;
  margin-bottom: 1.9rem;
}
.cta-play-buy .buy-fan img { width: 6.9rem; }
.cta-play-buy .buy-fan img:nth-child(1) {
  transform: translate(-50%, -50%) rotate(-15deg) translate(-3.05rem, .25rem);
}
.cta-play-buy .buy-fan img:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-5deg) translate(-1rem, -.1rem);
}
.cta-play-buy .buy-fan img:nth-child(3) {
  transform: translate(-50%, -50%) rotate(5deg) translate(1rem, -.1rem);
}
.cta-play-buy .buy-fan img:nth-child(4) {
  transform: translate(-50%, -50%) rotate(15deg) translate(3.05rem, .25rem);
}

.buy-deal {
  --deal-w: 9.8rem;
  container-type: inline-size;
  position: relative;
  width: 100%;
  height: calc(var(--deal-w) * 1.7 + 2.6rem);
  margin: .1rem 0 1.9rem;
  overflow: visible;
}
.buy-deal-cards {
  position: absolute;
  inset: 0;
}
.buy-deal-deck,
.buy-deal-card {
  width: var(--deal-w);
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  margin: 0;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
}
.buy-deal-deck {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 8;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .58);
  transform: translate3d(-50%, -50%, 0);
}
.buy-deal-card {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: calc(1 + var(--i));
  box-shadow: 0 10px 20px rgba(0, 0, 0, .42);
  transform: translate3d(-50%, -50%, 0) rotate(var(--rest-rot, 0deg));
  transform-origin: 50% 70%;
  backface-visibility: hidden;
  will-change: transform;
  transition: transform 1.05s cubic-bezier(.16, 1, .3, 1);
}
.buy-deal-card:nth-child(1) { --rest-rot: -3deg; }
.buy-deal-card:nth-child(2) { --rest-rot: 2deg; }
.buy-deal-card:nth-child(3) { --rest-rot: -1deg; }
.buy-deal-card:nth-child(4) { --rest-rot: 3deg; }
.buy-deal-card:nth-child(5) { --rest-rot: -2deg; }
.buy-deal-card:nth-child(6) { --rest-rot: 2.5deg; }
.buy-deal-card:nth-child(7) { --rest-rot: -2.5deg; }
.buy-deal.is-dealt .buy-deal-card:nth-child(1) {
  transform: translate3d(-50cqi, calc(-50% - 2%), 0) rotate(-19deg);
}
.buy-deal.is-dealt .buy-deal-card:nth-child(2) {
  transform: translate3d(calc(-36cqi - 22%), calc(-50% + 3%), 0) rotate(-12deg);
}
.buy-deal.is-dealt .buy-deal-card:nth-child(3) {
  transform: translate3d(calc(-22cqi - 32%), calc(-50% + 1%), 0) rotate(-6deg);
}
.buy-deal.is-dealt .buy-deal-card:nth-child(4) {
  transform: translate3d(calc(22cqi - 68%), calc(-50% + 2%), 0) rotate(5deg);
}
.buy-deal.is-dealt .buy-deal-card:nth-child(5) {
  transform: translate3d(calc(32cqi - 78%), -50%, 0) rotate(11deg);
}
.buy-deal.is-dealt .buy-deal-card:nth-child(6) {
  transform: translate3d(calc(42cqi - 88%), calc(-50% + 4%), 0) rotate(16deg);
}
.buy-deal.is-dealt .buy-deal-card:nth-child(7) {
  transform: translate3d(calc(50cqi - 100%), calc(-50% + 3%), 0) rotate(22deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(1) {
  transform: translate3d(calc(-50cqi - 2%), calc(-50% - 4%), 0) rotate(-24deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(2) {
  transform: translate3d(calc(-40cqi - 22%), calc(-50% + 4%), 0) rotate(-16deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(3) {
  transform: translate3d(calc(-26cqi - 32%), calc(-50% + 2%), 0) rotate(-9deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(4) {
  transform: translate3d(calc(26cqi - 68%), calc(-50% + 3%), 0) rotate(8deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(5) {
  transform: translate3d(calc(36cqi - 78%), calc(-50% + 1%), 0) rotate(14deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(6) {
  transform: translate3d(calc(45cqi - 88%), calc(-50% + 5%), 0) rotate(20deg);
}
.buy-deal.is-dealt:hover .buy-deal-card:nth-child(7) {
  transform: translate3d(calc(50cqi - 98%), calc(-50% + 4%), 0) rotate(26deg);
}
@media (prefers-reduced-motion: reduce) {
  .buy-deal-card { transition: none; }
}
.hero { padding: 3.5rem 0 2.5rem; position: relative; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; }
.kicker { color: var(--crimson); letter-spacing: .22em; text-transform: uppercase; font-size: .72rem; margin-bottom: .8rem; }
.hero-fan { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; }
.hero-fan img, .card-frame img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
}
.card-frame { position: relative; display: block; }
.card-frame:hover { color: inherit; }
.card-frame:hover img { border-color: var(--crimson); }
.card-frame figcaption {
  font-size: .72rem;
  color: var(--dim);
  margin-top: .35rem;
  letter-spacing: .04em;
}
.card-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .22rem;
  margin-top: .55rem;
  text-align: center;
  letter-spacing: 0;
  color: inherit;
  font-size: inherit;
}
.card-name {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.15;
  letter-spacing: 0;
}
.card-faction {
  font-size: .64rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--dim);
}
.card-faction.is-mafia { color: var(--crimson); }
.card-faction.is-host { color: #c9b8a8; }
.card-faction.is-expansion { color: #c41e1e; }
.card-frame:hover .card-name { color: #fff; }
.card-art {
  display: block;
  perspective: 1100px;
}
.card-flip {
  display: block;
  position: relative;
  transform-style: preserve-3d;
  transition: transform .55s ease;
}
.card-frame:hover .card-flip,
.card-frame:focus-visible .card-flip { transform: rotateY(180deg); }
.card-face {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.card-face-front { display: block; }
.card-face-front img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
}
.card-face-back {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .5rem;
  padding: 1rem .85rem;
  background: #120c0c;
  border: 1px solid var(--crimson);
  transform: rotateY(180deg);
  overflow: auto;
}
.card-face-back strong {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
}
.card-face-back span {
  font-size: .88rem;
  line-height: 1.45;
  color: var(--muted);
}
@media (prefers-reduced-motion: reduce) {
  .card-flip { transition: none; }
}

.trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--stroke); border: 1px solid var(--stroke); }
.trust div { background: var(--bg-2); padding: 1.1rem 1rem; text-align: center; }
.trust strong { display: block; font-family: var(--serif); font-size: 1.5rem; color: var(--ink); }
.trust span { color: var(--dim); font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }

.section { padding: 4.2rem 0; }
.section-muted { background: var(--bg-2); border-block: 1px solid var(--stroke); }
.cta-play-section {
  border-bottom: 0;
  margin-bottom: 0;
}
main:has(.cta-play-section:last-child) + .site-footer {
  margin-top: 0;
  border-top: 0;
}
.section-head { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: 1.8rem; flex-wrap: wrap; }
.section-head p { margin: 0; max-width: 36rem; }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.grid-6 { display: grid; grid-template-columns: repeat(6, 1fr); gap: .7rem; }
.grid-roles { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1rem; }
.grid-roles:has(.roles-empty) { grid-template-columns: 1fr; }
.roles-hub .grid-roles {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 640px) {
  .roles-hub .grid-roles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .roles-hub .grid-roles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .roles-hub .grid-roles { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
.roles-hub.section:has(.roles-band) { padding-bottom: 3.2rem; }
.roles-band {
  margin-top: 3.4rem;
  padding-top: 3.2rem;
  border-top: 1px solid var(--stroke);
  scroll-margin-top: 5.5rem;
}
.roles-map {
  margin-top: 3.6rem;
  padding: 3.2rem 0 3.4rem;
  background: transparent;
}
.roles-band-head { max-width: 42rem; margin: 0 0 2.2rem; }
.roles-band-head h2 { margin: 0 0 .8em; color: var(--ink); }
.roles-band-head p { margin: 0; padding-top: 0; font-size: 19px; }
.roles-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.4rem 3rem;
}
.roles-guide-card {
  background: none;
  border: 0;
  padding: 0 0 0 1.15rem;
  border-left: 1px solid var(--stroke);
}
.roles-guide-card.is-city { border-left-color: #8a7a6a; }
.roles-guide-card.is-mafia { border-left-color: var(--crimson); }
.roles-guide-card.is-host { border-left-color: #c9b8a8; }
.roles-guide-card p { margin: 0; }
.roles-guide-card p > strong:first-child {
  display: block;
  font-family: var(--serif);
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 .7rem;
}
.roles-guide-card p > strong:first-child a { color: inherit; border-bottom: 0; }
.roles-guide-card a {
  color: var(--ink);
  border-bottom: 1px solid var(--stroke);
}
.roles-guide-card a:hover { color: var(--crimson); }
.roles-guide-note,
.roles-map-note {
  max-width: 46rem;
  margin: 2.2rem 0 0;
  padding: 1.5rem 0 0;
  background: none;
  border: 0;
  border-top: 1px solid var(--stroke);
}
.roles-guide-note a,
.roles-map-note a {
  color: var(--ink);
  border-bottom: 1px solid var(--stroke);
}
.roles-guide-note a:hover,
.roles-map-note a:hover { color: var(--crimson); }
.roles-map-table-wrap { margin: 0; overflow-x: auto; }
.roles-map-table {
  width: 100%;
  border-collapse: collapse;
  background: none;
  border: 0;
  font-size: .95rem;
}
.roles-map-table th,
.roles-map-table td {
  text-align: left;
  vertical-align: top;
  padding: 1.05rem 1.6rem 1.05rem 0;
  border-bottom: 1px solid var(--stroke);
}
.roles-map-table th {
  background: none;
  padding: 0 1.6rem .85rem 0;
  color: var(--dim);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-bottom-color: var(--crimson-d);
}
.roles-map-table tbody tr:last-child td { border-bottom: 0; }
.roles-map-table tbody tr:hover td { color: var(--ink); }
.roles-map-table td:first-child { color: var(--dim); width: 28%; }
.roles-map-table td:nth-child(2) {
  width: 18%;
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.2;
}
.roles-map-table td:nth-child(2) a {
  color: inherit;
  border-bottom: 0;
}
.roles-map-table td:nth-child(2) a:hover { color: var(--crimson); }
.roles-map-table td:nth-child(3) { color: var(--muted); padding-right: 0; }
@media (max-width: 1100px) {
  .roles-guide-grid { grid-template-columns: 1fr 1fr; gap: 2rem 2.2rem; }
  .roles-guide-card.is-host { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .roles-band { margin-top: 2.2rem; padding-top: 2.2rem; }
  .roles-map { margin-top: 2.4rem; padding: 2.2rem 0 2.4rem; }
  .roles-guide-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .roles-guide-card.is-host { grid-column: auto; }
  .roles-map-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .roles-map-table,
  .roles-map-table tbody,
  .roles-map-table td {
    display: block;
    width: 100%;
  }
  .roles-map-table tr {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--stroke);
    padding: 1.15rem 0 1.05rem;
    margin: 0;
  }
  .roles-map-table tbody tr:last-child { border-bottom: 0; }
  .roles-map-table td {
    padding: .25rem 0;
    border: 0;
    width: auto;
  }
  .roles-map-table td:nth-child(1) {
    order: 2;
    width: 100%;
  }
  .roles-map-table td:nth-child(2) {
    order: 1;
    font-size: 1.45rem;
    padding: .1rem 0 .45rem;
  }
  .roles-map-table td:nth-child(3) { order: 3; }
  .roles-map-table td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-family: var(--sans);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--dim);
    margin-bottom: .15rem;
  }
  .roles-map-table td:nth-child(2)[data-label]::before { display: none; }
}
.roles-empty {
  border: 1px dashed var(--stroke);
  padding: 2.4rem 1.4rem;
  text-align: center;
  color: var(--dim);
  background: #100c0c;
}

.panel {
  background: var(--panel); border: 1px solid var(--stroke); padding: 1.4rem;
}
.panel h3 { margin-top: 0; }
.panel img { margin-bottom: 1rem; border: 1px solid var(--stroke); }
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  min-height: 1.45rem;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 0 .5rem;
  border: 1px solid var(--stroke);
  color: var(--muted);
  line-height: 1;
  text-box: trim-both cap alphabetic;
}
.pill-mafia { border-color: var(--crimson); color: var(--crimson); }
.pill-city { border-color: #8a7a6a; color: var(--muted); }
.pill-host { border-color: #c9b8a8; color: #c9b8a8; }
.pill-expansion { border-color: var(--crimson); color: var(--crimson); }
.pill-classic {
  border-color: color-mix(in srgb, var(--ink) 42%, var(--stroke));
  color: var(--ink);
  background: color-mix(in srgb, var(--ink) 12%, transparent);
}

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.step-num { font-family: var(--serif); color: var(--crimson); font-size: 2rem; }

.block { margin: 2.4rem 0; padding-top: 1.4rem; border-top: 1px solid var(--stroke); }
.block h2 { color: var(--ink); }
.role-page.section { padding: 2.2rem 0 4.8rem; }
.role-page .crumbs { margin-bottom: 2rem; }
.role-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2.4rem 2.8rem;
  align-items: start;
}
.role-hero-stage {
  display: grid;
  grid-template-columns: minmax(17.5rem, 23rem);
  gap: .7rem 0.85rem;
  align-items: start;
  position: sticky;
  top: calc(var(--header-h) + .85rem);
}
.role-hero-card {
  margin: 0;
  width: 100%;
  max-width: 23rem;
}
.role-hero-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 28px 64px rgba(0, 0, 0, .45);
}
.role-hero-copy {
  min-width: 0;
}
.role-hero-copy > h1 {
  margin: 0 0 .75rem;
  font-size: clamp(2.6rem, 5vw, 4.1rem);
}
.role-pills { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.5rem; }
.role-hero-essentials {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  grid-template-areas:
    "does does"
    "play tips";
  gap: 1.35rem 1.5rem;
}
.role-hero-essentials #does { grid-area: does; }
.role-hero-essentials #play { grid-area: play; }
.role-hero-essentials #tips { grid-area: tips; }
.role-panel {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.7rem 1.75rem 1.55rem;
  min-width: 0;
  scroll-margin-top: calc(var(--header-h) + 4.2rem);
}
.role-panel-kicker {
  margin: 0 0 1.2rem;
  color: var(--crimson);
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: .68rem;
}
.role-panel p { margin: 0; }
.role-panel .role-panel-kicker { margin: 0 0 1.2rem; }
.role-panel-lead {
  color: var(--ink);
  font-size: 1.18rem;
  line-height: 1.5;
  max-width: none;
}
.role-sheet-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.role-sheet-steps li {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: .2rem .75rem;
  align-items: start;
}
.role-sheet-steps-num {
  font-family: var(--serif);
  color: var(--crimson);
  font-size: 1.35rem;
  line-height: 1.2;
}
.role-sheet-steps h3 {
  margin: 0 0 .18rem;
  color: var(--ink);
}
.role-sheet-steps p { margin: 0; color: var(--muted); }
.role-tips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .7rem;
}
.role-tips li {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  gap: .55rem;
  align-items: start;
  color: var(--muted);
}
.role-tips svg {
  width: 16px;
  height: 16px;
  margin-top: .18rem;
  color: var(--crimson);
}
.role-up {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin: 1.45rem 0 0;
  padding: 0;
  max-width: 38rem;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.5;
  letter-spacing: .01em;
}
.role-up-ico {
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  margin-top: .17rem;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--crimson) 62%, var(--stroke));
  border-radius: 50%;
  color: var(--crimson);
  font-family: var(--serif);
  font-size: .66rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1;
}
.role-up a {
  color: var(--ink);
  border-bottom: 1px solid color-mix(in srgb, var(--crimson) 45%, transparent);
}
.role-up a:hover {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
.buy-bridge {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  margin: 1.15rem 0 0;
  padding: 1rem 1.15rem;
  max-width: 50rem;
  background: var(--panel);
  border: 1px solid var(--stroke);
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.5;
}
.buy-bridge-ico {
  flex: 0 0 auto;
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--stroke);
  background: var(--bg-2);
  color: var(--crimson);
}
.buy-bridge-ico svg {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
}
.buy-bridge-copy { min-width: 0; padding-top: .15rem; }
.buy-bridge a {
  color: var(--ink);
  border-bottom: 1px solid var(--crimson);
}
.buy-bridge a:hover {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
@media (max-width: 760px) {
  .buy-bridge {
    flex-direction: column;
    align-items: flex-start;
    gap: .7rem;
  }
  .buy-bridge-copy { padding-top: 0; }
}
.role-jump {
  margin: 2.6rem 0 0;
  border-bottom: 1px solid var(--stroke);
  position: sticky;
  top: var(--header-h);
  z-index: 30;
  background: rgba(10, 10, 10, .92);
  backdrop-filter: blur(10px);
}
.role-jump-row {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: .5rem 1rem;
  padding: 0;
}
.role-jump a {
  flex: 0 0 auto;
  padding: .85rem 0 .7rem;
  font-size: .76rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.role-jump a:hover {
  color: var(--ink);
}
.role-jump a.is-on {
  color: var(--ink);
  border-bottom-color: var(--crimson);
}
.role-sheet {
  margin-top: 3.6rem;
  padding-top: 2.8rem;
  border-top: 1px solid var(--stroke);
  scroll-margin-top: calc(var(--header-h) + 4.2rem);
}
.role-jump + .wrap-wide > .role-sheet:first-child {
  border-top: none;
  margin-top: 2rem;
  padding-top: 1.6rem;
}
.role-sheet-head { margin-bottom: 1.6rem; max-width: 40rem; }
.role-sheet-head .kicker { margin-bottom: .45rem; }
.role-sheet-head h2 { margin: 0 0 .8em; }
.role-sheet-head p { margin: 0; padding-top: 0; }
.role-setups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}
.role-setups .setup-card { min-height: 100%; }
.setup-card[hidden] { display: none !important; }
.role-setup-more {
  appearance: none;
  font: inherit;
  color: var(--ink);
  cursor: pointer;
  text-align: center;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: .55rem;
}
.role-setup-more svg {
  width: 2.75rem;
  height: 2.75rem;
  color: var(--crimson);
  flex-shrink: 0;
}
.role-setup-more h3 { margin: 0; color: var(--ink); }
.setup-card.role-setup-more:hover h3 { color: var(--ink); }
.role-setup-more p { margin: 0; color: var(--muted); }
.role-setup-more:focus-visible { outline: 1px solid var(--crimson); outline-offset: 2px; }
.setup-card.role-script-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 1.85rem 2rem 1.7rem;
  text-align: center;
}
.setup-card.role-script-card:hover {
  transform: none;
  box-shadow: none;
}
.setup-card.role-script-card:hover::before { transform: none; }
.setup-card.role-script-card:hover h2 { color: var(--ink); }
.role-script-inner {
  width: 100%;
  max-width: 48rem;
}
.role-script-card .kicker { margin-bottom: .45rem; }
.setup-card.role-script-card h2 {
  margin: 0 0 .5em;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-family: var(--serif);
  font-weight: 600;
  line-height: 1.15;
  color: var(--ink);
}
.role-script-card p { margin: 0; max-width: none; }
.role-script-card .setup-info-mark { margin-bottom: .75rem; }
.role-script-card .btn-row {
  margin-top: 1.25rem;
  justify-content: center;
}
.role-sheet-faces,
.role-sheet-related {
  display: grid;
  gap: 1.15rem 1rem;
}
.role-sheet-faces { grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); }
.role-sheet-related { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.role-person-card {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 2rem 2.15rem 1.85rem;
}
.role-person-card > .kicker { margin-bottom: .45rem; }
.role-person-card > h2 { margin: 0; }
.role-person-dates {
  margin: .35rem 0 0;
  color: var(--dim);
  font-size: .92rem;
}
.role-person-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.15rem 2.6rem;
  align-items: start;
  margin-top: 1.75rem;
}
.role-person-copy.is-single {
  grid-template-columns: minmax(0, 42rem);
}
.role-person-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}
.role-person-col p { margin: 0; max-width: none; }
.role-person-card .btn-row { margin-top: 1.45rem; }
.role-lore-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(17.5rem, .85fr);
  gap: 1.6rem 2rem;
  align-items: start;
}
.role-lore {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  min-width: 0;
}
.role-lore .role-sheet-head {
  margin-bottom: 0;
  max-width: none;
}
.role-lore .role-sheet-head h2 {
  margin-bottom: 0;
}
.role-lore-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}
.role-lore-card {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.35rem 1.4rem 1.25rem;
  min-width: 0;
  transition: border-color .2s ease;
}
.role-lore-card:hover { border-color: var(--crimson); }
.role-lore-card .kicker { margin-bottom: .35rem; }
.role-lore-card h3 {
  margin: 0 0 .5em;
  color: var(--ink);
}
.role-lore-card p { margin: 0; padding-top: 0; }
.role-lore-card-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  margin-bottom: .85rem;
  border: 1px solid var(--crimson);
  color: var(--crimson);
}
.role-lore-card-ico svg { width: 18px; height: 18px; }
.role-lore-quote {
  margin: 1.25rem 0;
  padding: 0 0 0 1.35rem;
  border-left: 3px solid var(--crimson);
}
.role-lore-quote p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.55rem, 2.4vw, 2.05rem);
  line-height: 1.3;
  color: var(--ink);
}
.role-lore-quote cite {
  display: block;
  margin-top: 1.05rem;
  font-style: normal;
  color: var(--dim);
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.role-lore-copy {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.role-lore-copy p { margin: 0; max-width: none; }

.figure-scene-cta {
  margin: 1.35rem 0 0;
}
.figure-scene-cta .btn {
  min-height: 2.6rem;
}

dialog.figure-scene-dialog {
  width: min(42rem, calc(100vw - 1.25rem));
  max-height: calc(100vh - 1.25rem);
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  overflow: visible;
}
.figure-scene-dialog::backdrop {
  background: rgba(5, 3, 3, .9);
}
.figure-scene-sheet {
  position: relative;
  max-height: calc(100vh - 1.25rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 2rem 1.6rem 1.7rem;
  border: 1px solid #3a1515;
  background:
    radial-gradient(ellipse at 18% 0%, rgba(140, 40, 40, .16), transparent 55%),
    linear-gradient(180deg, #140c0c 0%, #0c0808 100%);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
  scrollbar-width: thin;
  scrollbar-color: #5a2424 transparent;
}
.figure-scene-sheet::-webkit-scrollbar {
  width: 8px;
}
.figure-scene-sheet::-webkit-scrollbar-track {
  background: transparent;
}
.figure-scene-sheet::-webkit-scrollbar-thumb {
  background: #5a2424;
  border: 2px solid transparent;
  background-clip: padding-box;
  border-radius: 999px;
}
.figure-scene-close {
  position: absolute;
  top: .7rem;
  right: .7rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 1px solid #3a1515;
  background: rgba(12, 8, 8, .85);
  color: var(--ink);
  cursor: pointer;
}
.figure-scene-close svg {
  width: 16px;
  height: 16px;
}
.figure-scene-close:hover,
.figure-scene-close:focus-visible {
  border-color: var(--crimson);
  color: #fff;
  outline: none;
}
.figure-scene-head {
  margin: 0 2.2rem 1.5rem 0;
}
.figure-scene-head .kicker {
  margin-bottom: .45rem;
}
.figure-scene-head h2 {
  margin: 0;
  font-size: clamp(1.8rem, 3.5vw, 2.45rem);
  line-height: 1.05;
}
.figure-scene-meta {
  margin: .55rem 0 0;
  color: var(--dim);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.figure-scene-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.figure-scene-title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink);
}
.figure-scene-date,
.figure-scene-salute {
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: 1.05rem;
  font-style: italic;
}
.figure-scene-narration {
  margin: 0;
  max-width: none;
  color: color-mix(in srgb, var(--muted) 55%, var(--ink));
  font-size: 1.05rem;
  line-height: 1.65;
}
.figure-scene-speech {
  font-family: var(--serif);
  font-size: 1.22em;
  font-style: italic;
  font-weight: 600;
  line-height: 1.4;
  color: #f8f3ec;
}
.figure-scene-sheet.is-letter .figure-scene-narration {
  font-family: var(--serif);
  font-size: 1.12rem;
  line-height: 1.7;
}
.figure-scene-sheet.is-letter .figure-scene-speech {
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  color: inherit;
}
.figure-scene-foot {
  margin-top: 2rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.figure-scene-actions {
  margin-top: 0;
}
.figure-scene-actions .btn {
  display: inline-flex;
}

@media (max-width: 640px) {
  .figure-scene-sheet {
    padding: 1.55rem 1.15rem 1.35rem;
  }
  .figure-scene-head {
    margin-right: 2rem;
  }
}

.figure-page.section { padding: 2.2rem 0 4.8rem; }
.figure-page .crumbs { margin-bottom: 2rem; }
.figure-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(17.5rem, 23rem);
  grid-template-areas:
    "ident stage"
    "body stage";
  column-gap: 3.2rem;
  row-gap: 1.5rem;
  align-items: start;
  scroll-margin-top: calc(var(--header-h) + .75rem);
}
.figure-ident,
.figure-body { min-width: 0; }
.figure-ident { grid-area: ident; }
.figure-body { grid-area: body; }
.figure-ident > h1 {
  margin: 0 0 .45rem;
  font-size: clamp(2.6rem, 5vw, 4.1rem);
}
.figure-dates {
  margin: 0;
  color: var(--dim);
  font-size: .92rem;
}
.figure-bio {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0 0 1.45rem;
  max-width: 42rem;
}
.figure-bio p { margin: 0; }
.figure-quote {
  position: relative;
  margin: 0 0 1.7rem;
  padding: .15rem 0 0 1.35rem;
  border-left: 3px solid var(--crimson);
  max-width: 40rem;
}
.figure-quote::before {
  content: "“";
  display: block;
  margin: 0 0 .15rem;
  font-family: var(--serif);
  font-size: 2.6rem;
  line-height: .7;
  color: var(--crimson);
}
.figure-quote p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.45rem, 2.3vw, 1.95rem);
  line-height: 1.3;
  color: var(--ink);
}
.figure-quote cite {
  display: block;
  margin-top: 1.05rem;
  font-style: normal;
  color: var(--dim);
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.figure-quote-wide {
  max-width: none;
  margin: 2.4rem 0 0;
  padding: 1.6rem 0 0 1.5rem;
  border-top: 1px solid var(--stroke);
}
.figure-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7.4rem, 1fr));
  gap: .85rem;
  margin: 0;
}
.figure-stat {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1rem 1.05rem .95rem;
  min-width: 0;
  transition: border-color .2s ease;
}
.figure-stat:hover { border-color: var(--crimson); }
.figure-stat .kicker { margin: 0 0 .25rem; }
.figure-stat p:last-child {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1.12rem;
  line-height: 1.25;
}
.figure-stat-ico {
  display: flex;
  color: var(--crimson);
  margin-bottom: .55rem;
}
.figure-stat-ico svg { width: 18px; height: 18px; }
.figure-hero-stage {
  grid-area: stage;
  align-self: stretch;
  min-width: 0;
}
.figure-hero-pin {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: sticky;
  top: calc(var(--header-h) + .85rem);
}
.figure-exhibit {
  position: relative;
  padding: .7rem;
}
.figure-corner {
  position: absolute;
  width: 13px;
  height: 13px;
  border-color: var(--crimson);
  border-style: solid;
  pointer-events: none;
}
.figure-corner-tl { top: 0; left: 0; border-width: 1px 0 0 1px; }
.figure-corner-tr { top: 0; right: 0; border-width: 1px 1px 0 0; }
.figure-corner-bl { bottom: 0; left: 0; border-width: 0 0 1px 1px; }
.figure-corner-br { bottom: 0; right: 0; border-width: 0 1px 1px 0; }
.figure-hero-card {
  margin: 0;
  width: 100%;
  max-width: 23rem;
}
.figure-hero-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 28px 64px rgba(0, 0, 0, .45);
}
.figure-hero-cta {
  width: calc(100% - 1.4rem);
  margin-inline: auto;
  box-sizing: border-box;
}
.figure-icon-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
  margin: 0 0 1.8rem;
}
.figure-icon-card,
.figure-thread,
.figure-callout {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.35rem 1.4rem 1.25rem;
  min-width: 0;
  transition: border-color .2s ease;
}
.figure-icon-card:hover,
.figure-thread:hover {
  border-color: var(--crimson);
}
.figure-icon-card .kicker,
.figure-thread .kicker,
.figure-callout .kicker { margin-bottom: .35rem; }
.figure-icon-card h3,
.figure-thread h3,
.figure-callout h3 {
  margin: 0 0 .5em;
  color: var(--ink);
}
.figure-icon-card p,
.figure-thread p,
.figure-callout p { margin: 0; padding-top: 0; }
.figure-icon-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  margin-bottom: .85rem;
  border: 1px solid var(--crimson);
  color: var(--crimson);
}
.figure-icon-mark svg { width: 18px; height: 18px; }
.figure-callout {
  border-left: 2px solid var(--crimson);
}
.figure-page .role-jump {
  overflow-x: auto;
}
.figure-deck-split,
.figure-east-split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
  gap: 1.6rem 2rem;
  align-items: start;
}
.figure-deck-copy p { margin: 0 0 1rem; max-width: 44rem; }
.figure-deck-copy a,
.figure-callout a,
.figure-east-copy a {
  color: var(--ink);
  border-bottom: 1px solid var(--stroke);
}
.figure-deck-copy a:hover,
.figure-callout a:hover,
.figure-east-copy a:hover { color: var(--crimson); }
.figure-bullets {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.figure-bullets li {
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr);
  gap: .6rem;
  align-items: start;
  margin: 0;
  color: var(--muted);
}
.figure-bullets svg {
  width: 16px;
  height: 16px;
  margin-top: .18rem;
  color: var(--crimson);
}
.figure-steps {
  list-style: none;
  margin: 1.15rem 0 0;
  padding: 0;
  counter-reset: figstep;
}
.figure-steps li {
  counter-increment: figstep;
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .55rem;
  margin: 0 0 .85rem;
  color: var(--muted);
}
.figure-steps li:last-child { margin-bottom: 0; }
.figure-steps li::before {
  content: counter(figstep, decimal-leading-zero);
  font-family: var(--serif);
  color: var(--crimson);
  font-size: 1.2rem;
  line-height: 1.3;
}
.figure-steps strong { color: var(--ink); }
.figure-east-copy p { margin: 0 0 1rem; max-width: 44rem; }
.figure-timeline {
  list-style: none;
  margin: 1.6rem 0 0;
  padding: 0 0 0 1.25rem;
  border-left: 1px solid var(--stroke);
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}
.figure-timeline li {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: .85rem;
  margin: 0;
  position: relative;
}
.figure-timeline li::before {
  content: "";
  position: absolute;
  left: calc(-1.25rem - 3px);
  top: .5rem;
  width: 7px;
  height: 7px;
  background: var(--crimson);
  border-radius: 50%;
  box-shadow: 0 0 0 4px var(--bg);
}
.figure-timeline-mark {
  font-family: var(--serif);
  color: var(--crimson);
  font-size: 1.15rem;
  line-height: 1.2;
  margin-left: -.15rem;
}
.figure-timeline h3 {
  margin: 0 0 .25rem;
  color: var(--ink);
}
.figure-timeline p { margin: 0; }
.figure-threads {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.figure-faces {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
  gap: 1.15rem 1rem;
}
.figure-pager {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.15rem;
  margin-top: 3.2rem;
  padding-top: 1.8rem;
  border-top: 1px solid var(--stroke);
}
.figure-pager-link {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.2rem 1.3rem 1.15rem;
  color: inherit;
  min-height: 100%;
}
.figure-pager-link:hover { border-color: var(--crimson); color: inherit; }
.figure-pager-link.is-next { text-align: right; align-items: flex-end; }
.figure-pager-link.is-empty {
  background: transparent;
  border-color: transparent;
  pointer-events: none;
}
.figure-pager-dir {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--crimson);
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.figure-pager-dir svg { width: 14px; height: 14px; }
.figure-pager-link strong {
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 600;
  color: var(--ink);
}
.figure-pager-link span:last-child { color: var(--dim); font-size: .9rem; }

@media (max-width: 1100px) {
  .figure-icon-grid { grid-template-columns: 1fr 1fr; }
  .figure-icon-grid .figure-icon-card:last-child { grid-column: 1 / -1; }
  .figure-deck-split,
  .figure-east-split,
  .role-lore-split {
    grid-template-columns: 1fr;
  }
  .role-hero-essentials {
    grid-template-columns: 1fr;
    grid-template-areas:
      "does"
      "play"
      "tips";
  }
  .role-sheet-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-jump-row {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0 1.25rem;
  }
}
@media (max-width: 980px) {
  .role-jump-row {
    flex-wrap: nowrap;
    align-items: center;
    gap: .15rem;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }
  .role-jump-row::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  .role-jump a {
    white-space: nowrap;
    padding: .45rem .7rem;
    font-size: .78rem;
  }
}
@media (max-width: 900px) {
  .roles-hub-head.has-art {
    grid-template-columns: minmax(0, 1fr) 3.5rem;
    grid-template-areas:
      "ident art"
      "copy copy";
    column-gap: .9rem;
    align-items: start;
  }
  .roles-hub-art {
    width: 3.5rem;
    max-width: 3.5rem;
    justify-self: end;
  }
  .role-page .role-hero {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
  .role-hero-stage { position: static; }
  .role-lore-split { grid-template-columns: 1fr; gap: 1.6rem; }
  .role-person-copy { grid-template-columns: 1fr; gap: 1rem; }
  .role-setups { grid-template-columns: 1fr 1fr; }
  .figure-hero {
    grid-template-columns: 1fr;
    grid-template-areas:
      "ident"
      "stage"
      "body";
    gap: 1.6rem;
  }
  .figure-hero-stage {
    justify-self: center;
    width: min(100%, 20rem);
  }
  .figure-hero-pin { position: static; }
  .figure-icon-grid { grid-template-columns: 1fr; }
  .figure-icon-grid .figure-icon-card:last-child { grid-column: auto; }
}

.filters { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; margin-bottom: 1.4rem; }
.filters-left, .filters-right { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (min-width: 761px) {
  .filters { justify-content: space-between; }
  .filters-right { margin-left: auto; }
}
.filters a, .filters button {
  background: transparent; border: 1px solid var(--stroke); color: var(--muted);
  padding: .4rem .7rem; font: inherit; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}
.filters a.is-on, .filters button.is-on, .filters a:hover, .filters button:hover {
  border-color: var(--crimson); color: var(--ink);
}

table.data { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.data th, table.data td { text-align: left; padding: .7rem .6rem; border-bottom: 1px solid var(--stroke); vertical-align: top; }
table.data th { color: var(--dim); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .72rem; }

.form label { display: block; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--dim); margin: .8rem 0 .3rem; }
.form label[hidden] { display: none !important; }
.form input, .form textarea, .form select, select {
  width: 100%; max-width: 22rem; background: #0e0c0c; border: 1px solid var(--stroke); color: var(--ink);
  padding: .7rem .8rem; font: inherit;
}
.dim { color: var(--dim); }
ol, ul { color: var(--muted); padding-left: 1.2rem; }
ol li, ul li { margin: .4rem 0; }
ol a, ul a { color: var(--ink); border-bottom: 1px solid var(--stroke); }
ol a:hover, ul a:hover { color: var(--crimson); }
.flash { padding: .8rem 1rem; border: 1px solid var(--crimson); color: var(--ink); margin-bottom: 1rem; }

.site-footer { border-top: 1px solid var(--stroke); padding: 3rem 0 2rem; background: #080808; margin-top: 2rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 1.5rem; }
.footer-grid h4 { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--crimson); }
.footer-grid a { display: block; color: var(--muted); font-size: .9rem; padding: .18rem 0; }
.footer-grid a:hover { color: var(--ink); }
.footer-buy { margin: .7rem 0 .85rem; }
.footer-grid .footer-buy .btn {
  display: inline-flex;
  width: auto;
  padding: .75rem 1.15rem;
  font-size: 15px;
  color: #fff;
  border-bottom: 0;
}
.footer-grid .footer-buy .btn:hover,
.footer-grid .footer-buy .btn:focus-visible {
  color: #fff;
  background: #e02828;
}
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: center; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--stroke); color: var(--dim); font-size: .8rem; }
.footer-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .2rem .4rem;
}
.footer-social a { color: inherit; }
.footer-social a:hover,
.footer-social a:focus-visible { color: var(--muted); }
.footer-bottom a,
.footer-cookie-link { color: inherit; }
.footer-bottom a:hover,
.footer-bottom a:focus-visible,
.footer-cookie-link:hover,
.footer-cookie-link:focus-visible { color: var(--muted); }
.footer-cookie-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.crumbs {
  font-size: .78rem;
  letter-spacing: .03em;
  line-height: 1.3;
  color: var(--dim);
  margin: 0 0 1.65rem;
  padding: .2rem 0 .95rem;
  border-bottom: 1px solid var(--stroke);
}
main > .section:has(.crumbs) {
  padding-top: .7rem;
}
.crumbs {
  padding-top: 0;
}
.crumbs a {
  color: var(--muted);
  border-bottom: 0;
  text-decoration: none;
}
.crumbs a:hover,
.crumbs a:focus-visible {
  color: var(--crimson);
  border-bottom: 0;
}
.crumbs ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: .1rem;
  row-gap: .2rem;
}
.crumbs li {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
}
.crumbs a,
.crumbs [aria-current="page"] {
  display: inline-block;
  padding: .42rem .65rem;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.crumbs li:first-child > a,
.crumbs li:first-child > [aria-current="page"] {
  padding-left: 0;
}
.crumbs li:not(:last-child)::after {
  content: "";
  width: .36rem;
  height: .36rem;
  margin: 0 .32rem 0 .28rem;
  border-right: 1px solid var(--dim);
  border-top: 1px solid var(--dim);
  transform: rotate(45deg);
  opacity: .55;
  flex-shrink: 0;
}
.crumbs [aria-current="page"] { color: var(--ink); }
.lead a {
  color: var(--ink);
  border-bottom: 1px solid var(--crimson);
}
.lead a:hover { color: var(--crimson); }

.setup-index {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem;
  margin: 3.2rem 0 0;
}
.setups-index-section { padding-bottom: 5.5rem; }
.setup-pick-section {
  padding-top: 5.2rem;
  padding-bottom: 4.4rem;
  border-bottom: 0;
}
.setup-pick-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 2rem 2.6rem;
  align-items: start;
}
.setup-pick-copy h2 { margin-top: 0; }
.setup-pick-copy p { margin: 0 0 1em; }
.setup-pick-copy p:last-child { margin-bottom: 0; }
.setup-info-card {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.5rem 1.55rem 1.4rem;
}
.setup-info-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  margin-bottom: .85rem;
  border: 1px solid var(--stroke);
  color: var(--crimson);
  line-height: 0;
}
.setup-info-mark svg { width: 18px; height: 18px; }
.setup-info-card p { margin: 0 0 1em; }
.setup-info-card p:last-child { margin-bottom: 0; }
.setup-info-card a {
  color: var(--ink);
  border-bottom: 1px solid var(--stroke);
}
.setup-info-card a:hover { color: var(--crimson); }
.setup-pick-section .btn-row { margin-top: 2.2rem; }
@media (max-width: 760px) {
  .setup-pick-section .btn-row .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}
.setup-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, var(--panel), var(--bg-2));
  border: 1px solid var(--stroke);
  padding: 1.5rem 1.6rem 1.3rem;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.setup-card::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  height: 2px;
  background: var(--crimson);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}
.setup-card:hover {
  color: inherit;
  border-color: var(--crimson-d);
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .45);
}
.setup-card:hover::before { transform: scaleX(1); }
.setup-card.is-featured {
  grid-column: 1 / -1;
  border-color: var(--crimson-d);
  background: linear-gradient(160deg, #1e1212, var(--bg-2) 70%);
}
.setup-card.is-featured::before { transform: scaleX(1); }
.setup-card-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .9rem;
}
.setup-card-players {
  margin-left: auto;
  flex-shrink: 0;
  white-space: nowrap;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--crimson);
}
.pill-first { border-color: var(--crimson); color: var(--ink); background: var(--crimson-d); }
.setup-card h2 {
  margin: 0 0 .7rem;
  font-size: clamp(1.5rem, 2.4vw, 1.9rem);
}
.setup-card h3 {
  margin: 0 0 .7rem;
}
.setup-card.is-featured h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.setup-card:hover h2,
.setup-card:hover h3 { color: var(--crimson); }
.setup-card.role-setup-more h3 { margin: 0; }
.setup-card-pitch {
  color: var(--muted);
  margin: 0 0 1.2rem;
  max-width: 38rem;
}
.setup-card:has(> .setup-vs) {
  padding-bottom: 0;
  overflow: visible;
}
.setup-card > .setup-vs:not(.is-large) {
  margin-left: -1.6rem;
  margin-right: -1.6rem;
  padding: 1rem .85rem 1.15rem;
}
.setup-card-deal {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  border-top: 1px solid var(--stroke);
  padding-top: .95rem;
  font-size: .88rem;
  color: var(--muted);
}
.deal-line { display: flex; align-items: baseline; gap: .6rem; }
.deal-line b {
  flex-shrink: 0;
  min-width: 3.6rem;
  text-align: center;
  font-weight: 600;
  font-size: .64rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .14rem .45rem;
  border: 1px solid #8a7a6a;
  color: var(--muted);
}
.deal-line-mafia b { border-color: var(--crimson); color: var(--crimson); }
.setup-page.section,
.setups-index-section {
  padding-top: 2.2rem;
}
@media (max-width: 760px) {
  .setup-index { grid-template-columns: 1fr; }
  .setup-pick-grid { grid-template-columns: 1fr; }
  .setup-page.section,
  .setups-index-section {
    padding-top: .45rem;
  }
  .setup-page .crumbs,
  .setups-index-section .crumbs {
    margin: 0 0 .35rem;
    padding: 0 0 .3rem;
  }
  .setup-page .crumbs a,
  .setup-page .crumbs [aria-current="page"],
  .setups-index-section .crumbs a,
  .setups-index-section .crumbs [aria-current="page"] {
    padding: .1rem .28rem;
  }
  .setup-page .crumbs li:first-child > a,
  .setup-page .crumbs li:first-child > [aria-current="page"],
  .setups-index-section .crumbs li:first-child > a,
  .setups-index-section .crumbs li:first-child > [aria-current="page"] {
    padding-left: 0;
  }
  .deal-grid {
    gap: .65rem;
  }
  .deal-sheet {
    padding: .85rem .7rem .55rem;
  }
  .deal-sheet-kicker {
    font-size: .58rem;
    letter-spacing: .14em;
  }
  .deal-sheet h3 {
    font-size: 1.35rem;
    margin-bottom: .55rem;
  }
  .deal-sheet-row {
    gap: .4rem;
    padding: .48rem 0;
    font-size: 1rem;
  }
  .deal-sheet-row b {
    flex-basis: 1.05rem;
    font-size: .6rem;
  }
}
.deal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.15rem;
  margin: 1.5rem 0 0;
}
.setup-page .block > p,
.setup-page .setup-guide p { max-width: 46rem; }
.setup-page .deal-grid + p { margin-top: 1.5rem; }
.deal-sheet {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 1.5rem 1.4rem 1.2rem;
  border: 1px solid var(--stroke);
  background: #120e0e;
  background-origin: border-box;
}
.deal-sheet.is-city {
  border-color: color-mix(in srgb, var(--ink) 22%, var(--stroke));
  background:
    radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--ink) 6%, transparent), transparent 54%),
    linear-gradient(180deg, #181412, #100c0c);
  background-origin: border-box;
}
.deal-sheet.is-mafia {
  border-color: color-mix(in srgb, var(--crimson) 48%, var(--stroke));
  background:
    radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--crimson) 8%, transparent), transparent 54%),
    linear-gradient(180deg, #1a0e0e, #100808);
  background-origin: border-box;
}
.deal-sheet-kicker {
  margin: 0 0 .15rem;
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--dim);
}
.deal-sheet.is-mafia .deal-sheet-kicker { color: var(--crimson); }
.deal-sheet h3 {
  margin: 0 0 1.05rem;
  font-size: clamp(2.3rem, 5vw, 3.4rem);
  letter-spacing: -.03em;
  line-height: .92;
  text-transform: uppercase;
}
.deal-sheet.is-mafia h3 { color: var(--crimson); }
.deal-sheet-roles {
  list-style: none;
  margin: 0;
  padding: 0;
}
.deal-sheet-roles li + li {
  border-top: 1px solid color-mix(in srgb, var(--stroke) 88%, transparent);
}
.deal-sheet-row {
  display: flex;
  align-items: baseline;
  gap: .85rem;
  padding: .7rem 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  font-weight: 600;
  line-height: 1.15;
}
a.deal-sheet-row:hover { color: var(--crimson); }
.deal-sheet-row b {
  flex: 0 0 1.7rem;
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--dim);
}
@media (max-width: 760px) {
  .deal-sheet-row {
    gap: .38rem;
  }
  .deal-sheet-row b {
    flex: 0 0 auto;
    min-width: 0;
    font-size: .95rem;
  }
}
.deal-sheet.is-mafia .deal-sheet-row b { color: var(--crimson); }
.deal-sheet-roles .is-fill .deal-sheet-row {
  color: var(--muted);
  font-style: italic;
  font-weight: 500;
}
.setup-guide { margin-top: 2rem; }
.setup-page .block-plain {
  border-top: 0;
  padding-top: 0;
}
.setup-page .rules-facts + .block-plain { margin-top: 2.6rem; }
.setup-page .setup-vs.is-large + .deal-grid { margin-top: 1.6rem; }
.setup-page .block + .block-plain { margin-top: 2.8rem; }
.setup-pager {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 2.4rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--stroke);
}
.setup-pager a {
  display: block;
  padding: 1rem 0;
  color: var(--ink);
}
.setup-pager a:last-child:not(:first-child) { text-align: right; }
.setup-pager span {
  display: block;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--crimson);
  margin-bottom: .25rem;
}
.phase-cards {
  margin: 1.4rem 0 0;
  column-gap: .9rem;
  row-gap: 2.5rem;
}
.phase-cards .card-meta {
  align-items: flex-start;
  text-align: left;
  gap: .18rem;
  margin-top: .8rem;
  padding-top: .55rem;
  border-top: 1px solid var(--stroke);
}
.phase-cards .card-name {
  font-size: 1.05rem;
}
.phase-cards .card-who {
  font-size: .7rem;
  line-height: 1.35;
  color: var(--dim);
  letter-spacing: .04em;
}
.phase-script {
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 0;
  border-top: 1px solid var(--stroke);
}
.phase-script li {
  display: grid;
  grid-template-columns: 3.2rem 1fr;
  gap: 1rem;
  margin: 0;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--stroke);
}
.phase-script-num {
  font-family: var(--serif);
  color: var(--crimson);
  font-size: 1.7rem;
  line-height: 1.1;
}
.phase-script h3 { margin: 0 0 .35rem; }
.phase-script p { margin: 0; }
.night-script-note { margin-top: 1.6rem; }
.table-scroll {
  overflow-x: auto;
  margin: 1rem 0 1.2rem;
  max-width: 100%;
  min-width: 0;
  -webkit-overflow-scrolling: touch;
}
.rank-card {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.3rem 1.4rem 1.4rem;
  margin: 1rem 0 0;
}
.rank-card.is-featured { border-color: var(--crimson); }
.rank-card-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: start;
  margin-bottom: .75rem;
}
.rank-num {
  font-family: var(--serif);
  color: var(--crimson);
  font-size: 2rem;
  line-height: 1;
}
.rank-card h3 { margin: 0 0 .25rem; }
.rank-meta { margin: 0; color: var(--dim); font-size: .88rem; }
.rank-scores {
  display: flex;
  gap: .7rem;
  text-align: center;
}
.rank-scores div {
  min-width: 3.4rem;
}
.rank-scores strong {
  display: block;
  font-family: var(--serif);
  font-size: 1.45rem;
  color: var(--ink);
}
.rank-scores span {
  color: var(--dim);
  font-size: .65rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.rank-card .btn { margin-top: .4rem; }
.rank-card .product-buy-form .btn { margin-top: 0; }
.rank-card .cta-play-buy {
  margin-top: 1.15rem;
}
.rank-card .cta-play-buy.panel {
  background: #0a0a0a;
}
.pick-grid { margin-top: 1rem; margin-bottom: 2.2rem; }
.pick-grid .panel h3 { margin-top: 0; }
.setup-tips-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.15rem 1.5rem;
  align-items: start;
  margin-top: 1rem;
  margin-bottom: 2.2rem;
}
.setup-tips-stack {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}
.setup-tips-stack .panel h3 { margin-top: 0; }
.setup-tips-sheet .nl-capture {
  margin: 0;
  max-width: none;
  height: 100%;
}
.setup-tips-sheet .nl-capture h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
}
@media (max-width: 760px) {
  .setup-tips-layout {
    grid-template-columns: 1fr;
  }
  .setup-tips-sheet {
    order: -1;
  }
}
.mech-grid { margin: 1.2rem 0 1.6rem; }
.like-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 1.2rem 0 1.5rem;
}
.like-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.15rem 1.25rem 1.3rem;
}
.like-card h3 { margin: 0 0 .25rem; }
.like-card .rank-meta { margin: 0 0 .7rem; }
.like-card p { margin: 0 0 .9rem; }
.like-card .btn { margin-top: auto; }

.scene { width: 100%; border: 1px solid var(--stroke); margin: 0 0 1rem; }

.compare-soon td:last-child { color: var(--dim); font-style: italic; }

.rules-hero { margin-bottom: 3.2rem; }
.rules-hero-art { margin: 1.4rem 0 0; }
.rules-hero:has(.genre-hero) { overflow: visible; }
.rules-hero:has(.genre-hero) > .kicker,
.rules-hero:has(.genre-hero) > h1,
.rules-hero:has(.genre-hero) > .lead,
.rules-hero:has(.genre-hero) > .buy-bridge,
.rules-hero:has(.genre-hero) .rules-facts {
  position: relative;
  z-index: 2;
}
.rules-hero > .buy-bridge,
.roles-hub-head .buy-bridge {
  position: relative;
  z-index: 2;
}

.genre-hero {
  --spread: 1;
  --nudge: 0rem;
  position: relative;
  isolation: isolate;
  z-index: 1;
  width: 100vw;
  margin: 1.8rem 0 .15rem;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: visible;
}
.genre-hero-card {
  --dx: 0rem;
  --dy: 0rem;
  --rr: 0deg;
  --cw: 8.8rem;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: var(--cw);
  aspect-ratio: var(--tarot);
  transform:
    translate(-50%, -50%)
    translate(calc(var(--dx) * var(--spread)), calc(var(--dy) * var(--spread) + var(--nudge)))
    rotate(var(--rr));
  transform-origin: center 30%;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.genre-hero-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 20px 38px rgba(0, 0, 0, .6);
}
.genre-hero-card:hover,
.genre-hero-card:focus-visible {
  color: inherit;
  transform:
    translate(-50%, -50%)
    translate(calc(var(--dx) * var(--spread)), calc(var(--dy) * var(--spread) + var(--nudge) - .75rem))
    rotate(var(--rr));
}

.genre-hero-social { height: calc(27.5rem * var(--spread) + 2rem); }
.genre-hero-box {
  position: absolute;
  left: 50%;
  top: 58%;
  z-index: 12;
  width: calc(15.6rem * var(--spread));
  aspect-ratio: var(--tarot);
  transform: translate(-50%, -50%) translateY(var(--nudge)) rotate(-3deg);
  filter: drop-shadow(0 26px 40px rgba(0, 0, 0, .64));
}
.genre-hero-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--crimson);
  background: #0a0a0a;
}
.genre-hero-box:hover { color: inherit; }
.genre-social-card { --cw: 8.9rem; }
.genre-social-card-1 { --dx: -21.6rem; --dy: -4.4rem; --rr: -14deg; z-index: 3; }
.genre-social-card-2 { --dx: -15.8rem; --dy: -6.6rem; --rr: 8deg; z-index: 4; }
.genre-social-card-3 { --dx: -9.6rem; --dy: -7.5rem; --rr: -6deg; z-index: 5; }
.genre-social-card-4 { --dx: -3.2rem; --dy: -8.1rem; --rr: 5deg; z-index: 6; }
.genre-social-card-5 { --dx: 3.4rem; --dy: -7.9rem; --rr: -4deg; z-index: 6; }
.genre-social-card-6 { --dx: 9.8rem; --dy: -7.2rem; --rr: 7deg; z-index: 5; }
.genre-social-card-7 { --dx: 16rem; --dy: -6.3rem; --rr: -8deg; z-index: 4; }
.genre-social-card-8 { --dx: 21.8rem; --dy: -4.1rem; --rr: 12deg; z-index: 3; }
.genre-social-card-9 { --dx: -13.6rem; --dy: 1.35rem; --rr: -10deg; z-index: 8; --cw: 9.6rem; }
.genre-social-card-10 { --dx: 13.8rem; --dy: 1.5rem; --rr: 11deg; z-index: 8; --cw: 9.6rem; }

.genre-hero-psych { height: calc(24.5rem * var(--spread) + 1.4rem); }
.genre-psych-card-1 { --dx: -22.4rem; --dy: 1.5rem; --rr: -18deg; z-index: 2; --cw: 8.2rem; }
.genre-psych-card-2 { --dx: -15.2rem; --dy: .25rem; --rr: -12deg; z-index: 3; --cw: 8.8rem; }
.genre-psych-card-3 { --dx: -8.1rem; --dy: -.55rem; --rr: -7deg; z-index: 4; --cw: 9.4rem; }
.genre-psych-card-4 { --dx: 0rem; --dy: -1.1rem; --rr: 2deg; z-index: 10; --cw: 13.6rem; }
.genre-psych-card-5 { --dx: 8.1rem; --dy: -.55rem; --rr: 7deg; z-index: 4; --cw: 9.4rem; }
.genre-psych-card-6 { --dx: 15.2rem; --dy: .25rem; --rr: 12deg; z-index: 3; --cw: 8.8rem; }
.genre-psych-card-7 { --dx: 22.4rem; --dy: 1.5rem; --rr: 18deg; z-index: 2; --cw: 8.2rem; }

.genre-hero-wolf { height: calc(28rem * var(--spread) + 1.6rem); }
.genre-wolf-v { --cw: 7.5rem; }
.genre-wolf-v-1 { --dx: -20.4rem; --dy: -6.6rem; --rr: -10deg; z-index: 2; }
.genre-wolf-v-2 { --dx: -12.2rem; --dy: -7.8rem; --rr: 5deg; z-index: 3; }
.genre-wolf-v-3 { --dx: -4.1rem; --dy: -8.4rem; --rr: -3deg; z-index: 4; }
.genre-wolf-v-4 { --dx: 4.2rem; --dy: -8.3rem; --rr: 4deg; z-index: 4; }
.genre-wolf-v-5 { --dx: 12.4rem; --dy: -7.7rem; --rr: -6deg; z-index: 3; }
.genre-wolf-v-6 { --dx: 20.5rem; --dy: -6.5rem; --rr: 9deg; z-index: 2; }
.genre-wolf-h { --cw: 12.2rem; }
.genre-wolf-h-1 { --dx: -6.6rem; --dy: .85rem; --rr: -8deg; z-index: 8; }
.genre-wolf-h-2 { --dx: 6.4rem; --dy: 1.15rem; --rr: 7deg; z-index: 9; }
.genre-wolf-dead {
  --dx: .4rem;
  --dy: 8.4rem;
  --rr: -11deg;
  --cw: 9.6rem;
  z-index: 11;
}

@media (max-width: 1100px) {
  .genre-hero { --spread: .74; }
  .genre-hero-social { height: calc(22.5rem * var(--spread) + 2.2rem); }
  .genre-hero-psych { height: calc(20.5rem * var(--spread) + 1.6rem); }
  .genre-hero-wolf { height: calc(23rem * var(--spread) + 1.8rem); }
}
@media (max-width: 760px) {
  .genre-hero {
    --spread: .52;
    --nudge: 1.85rem;
    margin-top: 3.1rem;
  }
  .genre-hero-social { height: calc(20rem * var(--spread) + 4.2rem); }
  .genre-hero-psych { height: calc(18.5rem * var(--spread) + 3.6rem); }
  .genre-hero-wolf { height: calc(21rem * var(--spread) + 3.8rem); }
  .genre-hero-box { top: 62%; }
}
@media (prefers-reduced-motion: reduce) {
  .genre-hero-card { transition: none; }
}
.what-hero-vs {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.1rem;
  margin: 1.8rem 0 .15rem;
}
.what-hero-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}
.what-hero-side-label {
  margin: 0 0 .15rem;
  font-family: var(--serif);
  font-size: clamp(2.3rem, 5vw, 3.4rem);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: .92;
  text-transform: uppercase;
}
.what-hero-side.is-mafia .what-hero-side-label { color: var(--crimson); }
.what-hero-vs-mark {
  flex: 0 0 auto;
  align-self: center;
  padding-top: 2.4rem;
  font-family: var(--serif);
  font-size: 2.1rem;
  font-weight: 600;
  letter-spacing: .14em;
  color: var(--crimson);
}
.what-hero-fan {
  position: relative;
  width: 31.5rem;
  height: 22.5rem;
}
.what-hero-card {
  --rx: 0rem;
  --ry: 0rem;
  --rr: 0deg;
  --hx: 0rem;
  --hy: 0rem;
  --hr: 0deg;
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: 11.2rem;
  margin: 0;
  aspect-ratio: var(--tarot);
  transform: translate(-50%, -50%) translate(var(--rx), var(--ry)) rotate(var(--rr));
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.what-hero-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .58);
}
.what-hero-card:hover,
.what-hero-card:focus-visible { color: inherit; }
.what-hero-fan:hover .what-hero-card,
.what-hero-fan:focus-within .what-hero-card {
  transform: translate(-50%, -50%) translate(var(--hx), var(--hy)) rotate(var(--hr));
}
.what-hero-fan.is-city .what-hero-card:nth-child(1) { z-index: 1; --rr: -8deg; --rx: -10.1rem; --ry: .18rem; --hr: -10deg; --hx: -11.2rem; --hy: .12rem; }
.what-hero-fan.is-city .what-hero-card:nth-child(2) { z-index: 2; --rr: 4deg; --rx: -5.05rem; --ry: -.1rem; --hr: 6deg; --hx: -5.6rem; --hy: -.14rem; }
.what-hero-fan.is-city .what-hero-card:nth-child(3) { z-index: 3; --rr: -2deg; --rx: 0rem; --ry: .08rem; --hr: -3deg; --hx: 0rem; --hy: .04rem; }
.what-hero-fan.is-city .what-hero-card:nth-child(4) { z-index: 4; --rr: 5deg; --rx: 5.05rem; --ry: -.12rem; --hr: 7deg; --hx: 5.6rem; --hy: -.1rem; }
.what-hero-fan.is-city .what-hero-card:nth-child(5) { z-index: 5; --rr: -6deg; --rx: 10.1rem; --ry: .16rem; --hr: -8deg; --hx: 11.2rem; --hy: .1rem; }
.what-hero-fan.is-mafia .what-hero-card:nth-child(1) { z-index: 1; --rr: 6deg; --rx: -10.1rem; --ry: -.12rem; --hr: 8deg; --hx: -11.2rem; --hy: -.1rem; }
.what-hero-fan.is-mafia .what-hero-card:nth-child(2) { z-index: 2; --rr: -4deg; --rx: -5.05rem; --ry: .14rem; --hr: -6deg; --hx: -5.6rem; --hy: .16rem; }
.what-hero-fan.is-mafia .what-hero-card:nth-child(3) { z-index: 3; --rr: 2deg; --rx: 0rem; --ry: -.08rem; --hr: 3deg; --hx: 0rem; --hy: -.04rem; }
.what-hero-fan.is-mafia .what-hero-card:nth-child(4) { z-index: 4; --rr: -5deg; --rx: 5.05rem; --ry: .1rem; --hr: -7deg; --hx: 5.6rem; --hy: .12rem; }
.what-hero-fan.is-mafia .what-hero-card:nth-child(5) { z-index: 5; --rr: 7deg; --rx: 10.1rem; --ry: -.14rem; --hr: 9deg; --hx: 11.2rem; --hy: -.1rem; }
@media (max-width: 1100px) {
  .what-hero-vs {
    flex-direction: column;
    gap: 1.1rem;
  }
  .what-hero-vs-mark { font-size: 1.6rem; padding-top: 0; }
  .what-hero-fan { width: min(31.5rem, 100%); height: 18.6rem; }
  .what-hero-card { width: 9.6rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(1),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(1) { --rx: -8.5rem; --hx: -9.4rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(2),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(2) { --rx: -4.25rem; --hx: -4.7rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(3),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(3) { --rx: 0rem; --hx: 0rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(4),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(4) { --rx: 4.25rem; --hx: 4.7rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(5),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(5) { --rx: 8.5rem; --hx: 9.4rem; }
}
@media (max-width: 760px) {
  .what-hero-fan { height: 13.6rem; }
  .what-hero-card { width: 6.8rem; }
  .what-hero-vs-mark { font-size: 1.35rem; margin-bottom: 1rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(1),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(1) { --rx: -6rem; --hx: -6.6rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(2),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(2) { --rx: -3rem; --hx: -3.3rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(3),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(3) { --rx: 0rem; --hx: 0rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(4),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(4) { --rx: 3rem; --hx: 3.3rem; }
  .what-hero-fan.is-city .what-hero-card:nth-child(5),
  .what-hero-fan.is-mafia .what-hero-card:nth-child(5) { --rx: 6rem; --hx: 6.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .what-hero-card { transition: none; }
}
.howto-video {
  margin: 1.4rem 0 0;
  aspect-ratio: 16 / 9;
  background: #0e0c0c;
  border: 1px solid var(--stroke);
}
.howto-video iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.howto-video p { margin: 0; padding: 1rem 1.1rem; }
.howto-hero-fans {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2.6rem;
  margin: 1.8rem 0 .15rem;
}
.howto-fan {
  position: relative;
  width: 37rem;
  height: 23.5rem;
}
.howto-fan-card {
  --rx: 0rem;
  --ry: 0rem;
  --rr: 0deg;
  --hx: 0rem;
  --hy: 0rem;
  --hr: 0deg;
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: 12rem;
  margin: 0;
  aspect-ratio: var(--tarot);
  transform: translate(-50%, -50%) translate(var(--rx), var(--ry)) rotate(var(--rr));
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.howto-fan-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .58);
}
.howto-fan-card:hover,
.howto-fan-card:focus-visible { color: inherit; }
.howto-fan:hover .howto-fan-card,
.howto-fan:focus-within .howto-fan-card {
  transform: translate(-50%, -50%) translate(var(--hx), var(--hy)) rotate(var(--hr));
}
.howto-fan.is-city .howto-fan-card:nth-child(1) { z-index: 1; --rr: -7deg; --rx: -12.6rem; --ry: .18rem; --hr: -9deg; --hx: -14.2rem; --hy: .12rem; }
.howto-fan.is-city .howto-fan-card:nth-child(2) { z-index: 2; --rr: 4deg; --rx: -4.2rem; --ry: -.12rem; --hr: 6deg; --hx: -4.75rem; --hy: -.16rem; }
.howto-fan.is-city .howto-fan-card:nth-child(3) { z-index: 3; --rr: -3deg; --rx: 4.2rem; --ry: .1rem; --hr: -5deg; --hx: 4.75rem; --hy: .12rem; }
.howto-fan.is-city .howto-fan-card:nth-child(4) { z-index: 4; --rr: 6deg; --rx: 12.6rem; --ry: -.16rem; --hr: 8deg; --hx: 14.2rem; --hy: -.12rem; }
.howto-fan.is-mafia .howto-fan-card:nth-child(1) { z-index: 1; --rr: 5deg; --rx: -12.6rem; --ry: -.12rem; --hr: 7deg; --hx: -14.2rem; --hy: -.1rem; }
.howto-fan.is-mafia .howto-fan-card:nth-child(2) { z-index: 2; --rr: -5deg; --rx: -4.2rem; --ry: .16rem; --hr: -7deg; --hx: -4.75rem; --hy: .18rem; }
.howto-fan.is-mafia .howto-fan-card:nth-child(3) { z-index: 3; --rr: 3deg; --rx: 4.2rem; --ry: -.1rem; --hr: 5deg; --hx: 4.75rem; --hy: -.12rem; }
.howto-fan.is-mafia .howto-fan-card:nth-child(4) { z-index: 4; --rr: -7deg; --rx: 12.6rem; --ry: .14rem; --hr: -9deg; --hx: 14.2rem; --hy: .1rem; }
@media (max-width: 1100px) {
  .howto-hero-fans {
    flex-direction: column;
    gap: 1.6rem;
  }
  .howto-fan { width: min(36rem, 100%); height: 19.5rem; }
  .howto-fan-card { width: 10.2rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(1),
  .howto-fan.is-mafia .howto-fan-card:nth-child(1) { --rx: -10.6rem; --hx: -12rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(2),
  .howto-fan.is-mafia .howto-fan-card:nth-child(2) { --rx: -3.55rem; --hx: -4rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(3),
  .howto-fan.is-mafia .howto-fan-card:nth-child(3) { --rx: 3.55rem; --hx: 4rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(4),
  .howto-fan.is-mafia .howto-fan-card:nth-child(4) { --rx: 10.6rem; --hx: 12rem; }
}
@media (max-width: 760px) {
  .howto-fan { height: 14.4rem; }
  .howto-fan-card { width: 7.2rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(1),
  .howto-fan.is-mafia .howto-fan-card:nth-child(1) { --rx: -7.4rem; --hx: -8.3rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(2),
  .howto-fan.is-mafia .howto-fan-card:nth-child(2) { --rx: -2.45rem; --hx: -2.75rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(3),
  .howto-fan.is-mafia .howto-fan-card:nth-child(3) { --rx: 2.45rem; --hx: 2.75rem; }
  .howto-fan.is-city .howto-fan-card:nth-child(4),
  .howto-fan.is-mafia .howto-fan-card:nth-child(4) { --rx: 7.4rem; --hx: 8.3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .howto-fan-card { transition: none; }
}

.howto-night-peek {
  --night-w: 13.2rem;
  --night-h: calc(var(--night-w) * 1.7);
  --night-show: calc(var(--night-h) * 2 / 3);
  --night-lift: calc(var(--night-h) / 6);
  margin: .2rem 0 1.25rem;
  padding-top: calc(var(--night-lift) + 1.5rem);
  overflow: hidden;
  border-bottom: 2px solid var(--crimson);
}
.howto-night-well {
  position: relative;
  height: var(--night-show);
}
.howto-night-card {
  --rx: 0rem;
  --ry: 0rem;
  --rr: 0deg;
  position: absolute;
  left: 50%;
  top: 0;
  display: block;
  width: var(--night-w);
  margin: 0;
  aspect-ratio: var(--tarot);
  transform: translateX(-50%) translate(var(--rx), var(--ry)) rotate(var(--rr));
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.howto-night-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .58);
}
.howto-night-card:hover,
.howto-night-card:focus-visible {
  color: inherit;
  transform: translateX(-50%) translate(var(--rx), calc(var(--ry) - var(--night-lift))) rotate(var(--rr));
}
.howto-night-card:nth-child(1) { z-index: 1; --rr: -7deg; --rx: -9.4rem; --ry: .14rem; }
.howto-night-card:nth-child(2) { z-index: 2; --rr: 4deg; --rx: 0rem; --ry: -.1rem; }
.howto-night-card:nth-child(3) { z-index: 3; --rr: -4deg; --rx: 9.4rem; --ry: .12rem; }
@media (max-width: 760px) {
  .howto-night-peek { --night-w: 8.2rem; padding-top: calc(var(--night-lift) + 1.1rem); }
  .howto-night-card:nth-child(1) { --rx: -5.9rem; }
  .howto-night-card:nth-child(3) { --rx: 5.9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .howto-night-card { transition: none; }
}

.night-order-peek {
  --order-w: 9rem;
  --order-h: calc(var(--order-w) * 1.7);
  --order-show: calc(var(--order-h) * 2 / 3);
  --order-lift: calc(var(--order-h) / 6);
  --order-overlap: 3.35rem;
  position: relative;
  isolation: isolate;
  margin: 1.4rem 0 .2rem;
  padding-top: calc(var(--order-lift) + 1.5rem);
  overflow: visible;
  clip-path: inset(0 -100vw 0 -100vw);
}
.night-order-peek::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 20;
  height: 2px;
  background: var(--crimson);
  pointer-events: none;
}
.night-order-well {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  height: var(--order-show);
}
.night-order-card {
  --rr: 0deg;
  position: relative;
  flex: 0 0 var(--order-w);
  width: var(--order-w);
  margin: 0 0 0 calc(var(--order-overlap) * -1);
  aspect-ratio: var(--tarot);
  transform: rotate(var(--rr));
  transform-origin: center 28%;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.night-order-card:first-child { margin-left: 0; }
.night-order-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .58);
}
.night-order-card:hover,
.night-order-card:focus-visible {
  color: inherit;
  transform: translateY(calc(var(--order-lift) * -1)) rotate(var(--rr));
}
.night-order-card:nth-child(1) { z-index: 1; --rr: -8deg; }
.night-order-card:nth-child(2) { z-index: 2; --rr: 5deg; }
.night-order-card:nth-child(3) { z-index: 3; --rr: -4deg; }
.night-order-card:nth-child(4) { z-index: 4; --rr: 6deg; }
.night-order-card:nth-child(5) { z-index: 5; --rr: -6deg; }
.night-order-card:nth-child(6) { z-index: 6; --rr: 4deg; }
.night-order-card:nth-child(7) { z-index: 7; --rr: -3deg; }
.night-order-card:nth-child(8) { z-index: 8; --rr: 5deg; }
.night-order-card:nth-child(9) { z-index: 9; --rr: -7deg; }
.night-order-card:nth-child(10) { z-index: 10; --rr: 4deg; }
.night-order-card:nth-child(11) { z-index: 11; --rr: -5deg; }
.night-order-card:nth-child(12) { z-index: 12; --rr: 6deg; }
.night-order-card:nth-child(13) { z-index: 13; --rr: -7deg; }
@media (max-width: 1100px) {
  .night-order-peek { --order-w: 7.2rem; --order-overlap: 2.7rem; }
}
@media (max-width: 760px) {
  .night-order-peek {
    --order-w: 6.2rem;
    --order-overlap: 2.15rem;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-top: calc(var(--order-lift) + 1.1rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  .night-order-card { transition: none; }
}

.script-hero-peek {
  --host-w: calc(var(--order-w) * 1.42);
  --host-h: calc(var(--host-w) * 1.7);
  --order-show: var(--host-h);
}
.script-hero-peek .night-order-card {
  --peek-hide: calc(var(--host-h) - var(--order-h) * 2 / 3);
  transform: translateY(var(--peek-hide)) rotate(var(--rr));
}
.script-hero-peek .night-order-card.is-night {
  --peek-hide: calc(var(--host-h) - var(--order-h) * 3 / 4);
}
.script-hero-peek .night-order-card.is-host {
  --peek-hide: 0px;
  --rr: 0deg;
  z-index: 15;
  flex-basis: var(--host-w);
  width: var(--host-w);
}
.script-hero-peek .night-order-card:hover,
.script-hero-peek .night-order-card:focus-visible {
  transform: translateY(calc(var(--peek-hide) - var(--order-lift))) rotate(var(--rr));
}

.howto-dawn-fan {
  --dawn-w: 10.2rem;
  position: relative;
  width: 100%;
  height: calc(var(--dawn-w) * 1.7 + 1.6rem);
  margin: .35rem 0 1.25rem;
}
.howto-dawn-card {
  --rx: 0rem;
  --ry: 0rem;
  --rr: 0deg;
  --hx: 0rem;
  --hy: 0rem;
  --hr: 0deg;
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: var(--dawn-w);
  height: calc(var(--dawn-w) * 1.7);
  margin: 0;
  aspect-ratio: var(--tarot);
  transform: translate(-50%, -50%) translate(var(--rx), var(--ry)) rotate(var(--rr));
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.howto-dawn-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #141010;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .58);
}
.howto-dawn-card:hover,
.howto-dawn-card:focus-visible { color: inherit; }
.howto-dawn-fan:hover .howto-dawn-card,
.howto-dawn-fan:focus-within .howto-dawn-card {
  transform: translate(-50%, -50%) translate(var(--hx), var(--hy)) rotate(var(--hr));
}
.howto-dawn-card:nth-child(1) { z-index: 1; --rr: -7deg; --rx: -14.8rem; --ry: .16rem; --hr: -9deg; --hx: -16.6rem; --hy: .12rem; }
.howto-dawn-card:nth-child(2) { z-index: 2; --rr: 4deg; --rx: -7.4rem; --ry: -.12rem; --hr: 6deg; --hx: -8.3rem; --hy: -.16rem; }
.howto-dawn-card:nth-child(3) { z-index: 5; --rr: -2deg; --rx: 0rem; --ry: .08rem; --hr: -3deg; --hx: 0rem; --hy: -.06rem; }
.howto-dawn-card:nth-child(4) { z-index: 3; --rr: 5deg; --rx: 7.4rem; --ry: -.1rem; --hr: 7deg; --hx: 8.3rem; --hy: -.12rem; }
.howto-dawn-card:nth-child(5) { z-index: 4; --rr: -6deg; --rx: 14.8rem; --ry: .14rem; --hr: -8deg; --hx: 16.6rem; --hy: .1rem; }
@media (max-width: 760px) {
  .howto-dawn-fan { --dawn-w: 5.6rem; }
  .howto-dawn-card:nth-child(1) { --rx: -8.2rem; --hx: -9.2rem; }
  .howto-dawn-card:nth-child(2) { --rx: -4.1rem; --hx: -4.6rem; }
  .howto-dawn-card:nth-child(4) { --rx: 4.1rem; --hx: 4.6rem; }
  .howto-dawn-card:nth-child(5) { --rx: 8.2rem; --hx: 9.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .howto-dawn-card { transition: none; }
}

.howto-trial-court {
  --trial-w: 10.2rem;
  position: relative;
  width: 100%;
  height: calc(var(--trial-w) * 1.7 + 6.4rem);
  margin: .35rem 0 1.25rem;
}
.howto-trial-card {
  --rx: 0rem;
  --ry: 0rem;
  --rr: 0deg;
  --hx: 0rem;
  --hy: 0rem;
  --hr: 0deg;
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: var(--trial-w);
  height: calc(var(--trial-w) * 1.7);
  margin: 0;
  aspect-ratio: var(--tarot);
  transform: translate(-50%, -50%) translate(var(--rx), var(--ry)) rotate(var(--rr));
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.howto-trial-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .58);
}
.howto-trial-card:hover,
.howto-trial-card:focus-visible { color: inherit; }
.howto-trial-court:hover .howto-trial-card,
.howto-trial-court:focus-within .howto-trial-card {
  transform: translate(-50%, -50%) translate(var(--hx), var(--hy)) rotate(var(--hr));
}
.howto-trial-card:nth-child(1) { z-index: 1; --rr: -16deg; --rx: -12.6rem; --ry: -3.05rem; --hr: -20deg; --hx: -14.5rem; --hy: -3.4rem; }
.howto-trial-card:nth-child(2) { z-index: 3; --rr: -8deg; --rx: -6.6rem; --ry: .25rem; --hr: -10deg; --hx: -7.6rem; --hy: .2rem; }
.howto-trial-card:nth-child(3) { z-index: 5; --rr: 2deg; --rx: 0rem; --ry: 2.45rem; --hr: 3deg; --hx: 0rem; --hy: 2.95rem; }
.howto-trial-card:nth-child(4) { z-index: 4; --rr: 7deg; --rx: 6.6rem; --ry: .3rem; --hr: 9deg; --hx: 7.6rem; --hy: .25rem; }
.howto-trial-card:nth-child(5) { z-index: 2; --rr: 15deg; --rx: 12.6rem; --ry: -2.9rem; --hr: 19deg; --hx: 14.5rem; --hy: -3.25rem; }
@media (max-width: 760px) {
  .howto-trial-court { --trial-w: 6.2rem; height: calc(var(--trial-w) * 1.7 + 4.6rem); }
  .howto-trial-card:nth-child(1) { --rx: -7.8rem; --hx: -8.9rem; --ry: -1.85rem; --hy: -2.1rem; }
  .howto-trial-card:nth-child(2) { --rx: -4.05rem; --hx: -4.65rem; }
  .howto-trial-card:nth-child(4) { --rx: 4.05rem; --hx: 4.65rem; }
  .howto-trial-card:nth-child(5) { --rx: 7.8rem; --hx: 8.9rem; --ry: -1.75rem; --hy: -2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .howto-trial-card { transition: none; }
}

.day-fan { margin: 1.15rem 0 1.2rem; }
.day-fan-card {
  --rr: 0deg;
  --ry: 0rem;
  display: block;
  margin: 0;
  aspect-ratio: var(--tarot);
  transform: rotate(var(--rr)) translateY(var(--ry));
  transform-origin: center 30%;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.day-fan-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 16px 30px rgba(0, 0, 0, .55);
}
.day-fan-card:hover,
.day-fan-card:focus-visible { color: inherit; }

.day-fan.is-hero {
  --day-w: 11rem;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: calc(var(--day-w) * 1.7 + 3.4rem);
  margin: 1.5rem 0 .35rem;
}
.day-fan.is-hero .day-fan-card {
  position: relative;
  flex: 0 0 var(--day-w);
  width: var(--day-w);
  margin-left: -3.2rem;
}
.day-fan.is-hero .day-fan-card:first-child { margin-left: 0; }
.day-fan.is-hero .day-fan-card:nth-child(1) { z-index: 1; --rr: -16deg; --ry: -2.9rem; }
.day-fan.is-hero .day-fan-card:nth-child(2) { z-index: 2; --rr: -9deg; --ry: -1.35rem; }
.day-fan.is-hero .day-fan-card:nth-child(3) { z-index: 3; --rr: -4deg; --ry: -.3rem; }
.day-fan.is-hero .day-fan-card:nth-child(4) { z-index: 7; --rr: 2deg; --ry: .2rem; }
.day-fan.is-hero .day-fan-card:nth-child(5) { z-index: 4; --rr: 6deg; --ry: -.25rem; }
.day-fan.is-hero .day-fan-card:nth-child(6) { z-index: 5; --rr: 11deg; --ry: -1.4rem; }
.day-fan.is-hero .day-fan-card:nth-child(7) { z-index: 6; --rr: 17deg; --ry: -2.85rem; }
.day-fan.is-hero .day-fan-card:hover,
.day-fan.is-hero .day-fan-card:focus-visible {
  transform: rotate(var(--rr)) translateY(calc(var(--ry) - .85rem));
}

.day-fan.is-dawn,
.day-fan.is-after {
  --day-w: 8.2rem;
  --day-h: calc(var(--day-w) * 1.7);
  --day-show: calc(var(--day-h) * 2 / 3);
  --day-lift: calc(var(--day-h) / 6);
  --day-overlap: 2.55rem;
  padding-top: calc(var(--day-lift) + 1.25rem);
  overflow: hidden;
  border-bottom: 2px solid var(--crimson);
}
.day-fan-well {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  height: var(--day-show);
}
.day-fan.is-dawn .day-fan-card,
.day-fan.is-after .day-fan-card {
  position: relative;
  flex: 0 0 var(--day-w);
  width: var(--day-w);
  margin-left: calc(var(--day-overlap) * -1);
}
.day-fan.is-dawn .day-fan-card:first-child,
.day-fan.is-after .day-fan-card:first-child { margin-left: 0; }
.day-fan.is-dawn .day-fan-card:nth-child(1) { z-index: 1; --rr: -7deg; }
.day-fan.is-dawn .day-fan-card:nth-child(2) { z-index: 2; --rr: 4deg; }
.day-fan.is-dawn .day-fan-card:nth-child(3) { z-index: 5; --rr: -2deg; }
.day-fan.is-dawn .day-fan-card:nth-child(4) { z-index: 3; --rr: 5deg; }
.day-fan.is-dawn .day-fan-card:nth-child(5) { z-index: 4; --rr: -6deg; }
.day-fan.is-after { --day-w: 9.4rem; --day-overlap: 2.35rem; }
.day-fan.is-after .day-fan-card:nth-child(1) { z-index: 1; --rr: -7deg; }
.day-fan.is-after .day-fan-card:nth-child(2) { z-index: 2; --rr: 3deg; }
.day-fan.is-after .day-fan-card:nth-child(3) { z-index: 3; --rr: -5deg; }
.day-fan.is-dawn .day-fan-card:hover,
.day-fan.is-dawn .day-fan-card:focus-visible,
.day-fan.is-after .day-fan-card:hover,
.day-fan.is-after .day-fan-card:focus-visible {
  transform: translateY(calc(var(--day-lift) * -1)) rotate(var(--rr));
}

.day-fan.is-talk {
  --day-w: 9.2rem;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: calc(var(--day-w) * 1.7 + 2.4rem);
  margin-bottom: 2.8rem;
  padding-bottom: .6rem;
}
.day-fan.is-talk .day-fan-card {
  position: relative;
  flex: 0 0 var(--day-w);
  width: var(--day-w);
  margin-left: -3.25rem;
}
.day-fan.is-talk .day-fan-card:first-child { margin-left: 0; }
.day-fan.is-talk .day-fan-card:nth-child(1) { z-index: 1; --rr: -12deg; --ry: -2.15rem; }
.day-fan.is-talk .day-fan-card:nth-child(2) { z-index: 3; --rr: 8deg; --ry: .4rem; }
.day-fan.is-talk .day-fan-card:nth-child(3) { z-index: 2; --rr: -5deg; --ry: -1.35rem; }
.day-fan.is-talk .day-fan-card:nth-child(4) { z-index: 5; --rr: 10deg; --ry: .65rem; }
.day-fan.is-talk .day-fan-card:nth-child(5) { z-index: 4; --rr: -9deg; --ry: -1.85rem; }
.day-fan.is-talk .day-fan-card:nth-child(6) { z-index: 6; --rr: 6deg; --ry: .25rem; }
.day-fan.is-talk .day-fan-card:hover,
.day-fan.is-talk .day-fan-card:focus-visible {
  transform: rotate(var(--rr)) translateY(calc(var(--ry) - .9rem));
}

.day-fan.is-nominate {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 19rem;
  margin-bottom: 2.1rem;
  padding-bottom: .45rem;
}
.day-nominate-wall {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}
.day-nominate-wall .day-fan-card {
  --day-w: 8.1rem;
  position: relative;
  flex: 0 0 var(--day-w);
  width: var(--day-w);
  margin-left: -2.65rem;
}
.day-nominate-wall .day-fan-card:first-child { margin-left: 0; }
.day-nominate-wall .day-fan-card:nth-child(1) { z-index: 1; --rr: -8deg; }
.day-nominate-wall .day-fan-card:nth-child(2) { z-index: 2; --rr: -3deg; }
.day-nominate-wall .day-fan-card:nth-child(3) { z-index: 3; --rr: 4deg; }
.day-nominate-wall .day-fan-card:nth-child(4) { z-index: 4; --rr: 8deg; }
.day-nominate-name {
  --day-w: 10.6rem;
  position: relative;
  z-index: 8;
  width: var(--day-w);
  margin-top: -6.2rem;
}
.day-nominate-name .day-fan-card {
  width: 100%;
  --rr: 2deg;
}
.day-fan.is-nominate:hover .day-nominate-wall .day-fan-card:nth-child(1),
.day-fan.is-nominate:focus-within .day-nominate-wall .day-fan-card:nth-child(1) { transform: rotate(-11deg) translateX(-.55rem); }
.day-fan.is-nominate:hover .day-nominate-wall .day-fan-card:nth-child(2),
.day-fan.is-nominate:focus-within .day-nominate-wall .day-fan-card:nth-child(2) { transform: rotate(-5deg) translateX(-.25rem); }
.day-fan.is-nominate:hover .day-nominate-wall .day-fan-card:nth-child(3),
.day-fan.is-nominate:focus-within .day-nominate-wall .day-fan-card:nth-child(3) { transform: rotate(6deg) translateX(.25rem); }
.day-fan.is-nominate:hover .day-nominate-wall .day-fan-card:nth-child(4),
.day-fan.is-nominate:focus-within .day-nominate-wall .day-fan-card:nth-child(4) { transform: rotate(11deg) translateX(.55rem); }
.day-nominate-name .day-fan-card:hover,
.day-nominate-name .day-fan-card:focus-visible {
  transform: rotate(2deg) translateY(-.7rem);
}

.day-fan.is-trial {
  --day-w: 11.8rem;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin-bottom: 2.1rem;
  padding-bottom: .45rem;
}
.day-fan.is-trial .day-fan-card {
  position: relative;
  flex: 0 0 var(--day-w);
  width: var(--day-w);
  margin-left: -3.2rem;
}
.day-fan.is-trial .day-fan-card:first-child { margin-left: 0; }
.day-fan.is-trial .day-fan-card:nth-child(1) { z-index: 1; --rr: -8deg; }
.day-fan.is-trial .day-fan-card:nth-child(2) { z-index: 3; --rr: 2deg; }
.day-fan.is-trial .day-fan-card:nth-child(3) { z-index: 2; --rr: 7deg; }
.day-fan.is-trial:hover .day-fan-card:nth-child(1),
.day-fan.is-trial:focus-within .day-fan-card:nth-child(1) { transform: rotate(-11deg) translateX(-.7rem); }
.day-fan.is-trial:hover .day-fan-card:nth-child(2),
.day-fan.is-trial:focus-within .day-fan-card:nth-child(2) { transform: rotate(2deg) translateY(-.35rem); }
.day-fan.is-trial:hover .day-fan-card:nth-child(3),
.day-fan.is-trial:focus-within .day-fan-card:nth-child(3) { transform: rotate(10deg) translateX(.7rem); }

.day-fan.is-vote {
  --day-w: 8.8rem;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 1.8rem;
  margin-bottom: 2.1rem;
  padding-bottom: .45rem;
}
.day-vote-side {
  display: flex;
  align-items: flex-end;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.day-vote-side .day-fan-card {
  position: relative;
  flex: 0 0 var(--day-w);
  width: var(--day-w);
  margin-left: -2.7rem;
}
.day-vote-side .day-fan-card:first-child { margin-left: 0; }
.day-vote-side.is-city .day-fan-card:nth-child(1) { z-index: 1; --rr: -14deg; --ry: -.35rem; }
.day-vote-side.is-city .day-fan-card:nth-child(2) { z-index: 2; --rr: -7deg; }
.day-vote-side.is-city .day-fan-card:nth-child(3) { z-index: 3; --rr: -2deg; --ry: .2rem; }
.day-vote-side.is-mafia .day-fan-card:nth-child(1) { z-index: 1; --rr: 2deg; --ry: .2rem; }
.day-vote-side.is-mafia .day-fan-card:nth-child(2) { z-index: 2; --rr: 8deg; }
.day-vote-side.is-mafia .day-fan-card:nth-child(3) { z-index: 3; --rr: 14deg; --ry: -.35rem; }
.day-fan.is-vote:hover .day-vote-side.is-city,
.day-fan.is-vote:focus-within .day-vote-side.is-city { transform: translateX(-.7rem); }
.day-fan.is-vote:hover .day-vote-side.is-mafia,
.day-fan.is-vote:focus-within .day-vote-side.is-mafia { transform: translateX(.7rem); }
.day-vote-side .day-fan-card:hover,
.day-vote-side .day-fan-card:focus-visible {
  transform: rotate(var(--rr)) translateY(calc(var(--ry) - .65rem));
}

@media (max-width: 760px) {
  .day-fan.is-hero { --day-w: 6.8rem; }
  .day-fan.is-hero .day-fan-card { margin-left: -2rem; }
  .day-fan.is-dawn { --day-w: 5.6rem; --day-overlap: 1.85rem; }
  .day-fan.is-after { --day-w: 6.2rem; --day-overlap: 1.7rem; }
  .day-fan.is-talk { --day-w: 6.2rem; margin-bottom: 2.2rem; }
  .day-fan.is-talk .day-fan-card { margin-left: -2.2rem; }
  .day-fan.is-nominate { margin-bottom: 1.8rem; }
  .day-nominate-wall .day-fan-card { --day-w: 5.6rem; margin-left: -1.85rem; }
  .day-nominate-name { --day-w: 7.4rem; margin-top: -4.2rem; }
  .day-fan.is-trial { --day-w: 8rem; margin-bottom: 1.8rem; }
  .day-fan.is-trial .day-fan-card { margin-left: -2.2rem; }
  .day-fan.is-vote { --day-w: 5.8rem; gap: 1rem; margin-bottom: 1.8rem; }
  .day-vote-side .day-fan-card { margin-left: -1.8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .day-fan-card,
  .day-vote-side { transition: none; }
}
.play-steps {
  list-style: none;
  margin: 1.6rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.play-steps li { margin: 0; }
.play-steps a {
  display: grid;
  grid-template-columns: 3.1rem minmax(0, 1fr);
  gap: .85rem 1.1rem;
  align-items: start;
}
.play-steps-num {
  font-family: var(--serif);
  color: var(--crimson);
  font-size: 1.7rem;
  line-height: 1.2;
}
.play-steps h3 { margin: 0 0 .3rem; }
.play-steps p { margin: 0; color: var(--muted); }
.rules-hero .lead a {
  color: var(--ink);
  border-bottom: 1px solid var(--crimson);
}
.rules-hero .lead a:hover { color: var(--crimson); }
.rules-facts, .role-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--stroke);
  border: 1px solid var(--stroke);
  margin-top: 1.8rem;
}
.rules-facts div, .role-facts div { background: var(--bg-2); padding: 1rem .9rem; text-align: center; }
.rules-facts strong, .role-facts strong { display: block; font-family: var(--serif); font-size: 1.45rem; color: var(--ink); }
.rules-facts span, .role-facts span {
  display: block;
  color: var(--dim);
  font-size: .75rem;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
}
.docs {
  display: grid;
  grid-template-columns: 15.5rem minmax(0, 1fr);
  gap: 2.8rem;
  align-items: start;
  min-width: 0;
}
.docs-nav {
  position: sticky;
  top: 5.25rem;
  max-height: calc(100vh - 6.5rem);
  overflow: auto;
  min-width: 0;
  padding: .2rem 0 1rem;
  border-right: 1px solid var(--stroke);
  overscroll-behavior: contain;
}
.docs-nav-label {
  margin: 0 0 .7rem;
  padding: 0 .85rem;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--crimson);
}
.docs-nav a {
  display: block;
  padding: .38rem .85rem;
  font-size: .84rem;
  color: var(--dim);
  border-left: 2px solid transparent;
  line-height: 1.35;
}
.docs-nav a:hover,
.docs-nav a.is-on {
  color: var(--ink);
  border-left-color: var(--crimson);
}
.docs-article { max-width: 46rem; min-width: 0; }
.docs-block { scroll-margin-top: 5.5rem; }
.docs-block > h2 { margin-bottom: .8em; }
.docs-block > h3 { scroll-margin-top: 5.5rem; margin-top: 1.75rem; margin-bottom: .5em; }
.docs-block > h2 + p,
.docs-block > h3 + p { margin-top: 0; padding-top: 0; }
.docs-block + .docs-block {
  margin-top: 2.6rem;
  padding-top: 2.2rem;
  border-top: 1px solid var(--stroke);
}
.docs-article h2 { color: var(--ink); }
.docs-article h3 { color: var(--ink); }
.docs-article a:not(.btn) { border-bottom: 1px solid var(--stroke); }
.docs-article a:not(.btn):hover { color: var(--crimson); }
.docs-article .play-steps a:not(.btn) {
  color: #fff;
  padding: 0 0 1.15rem;
}
.docs-article .phase-cards a:not(.btn),
.docs-article .howto-night-card,
.docs-article .howto-dawn-card,
.docs-article .howto-trial-card,
.docs-article .day-fan-card,
.docs-article .about-print-card,
.docs-article .about-street-card {
  border-bottom: 0;
  color: inherit;
}
.docs-article .howto-night-card:hover,
.docs-article .howto-night-card:focus-visible,
.docs-article .howto-dawn-card:hover,
.docs-article .howto-dawn-card:focus-visible,
.docs-article .howto-trial-card:hover,
.docs-article .howto-trial-card:focus-visible,
.docs-article .day-fan-card:hover,
.docs-article .day-fan-card:focus-visible,
.docs-article .about-print-card:hover,
.docs-article .about-print-card:focus-visible,
.docs-article .about-street-card:hover,
.docs-article .about-street-card:focus-visible {
  color: inherit;
}
.docs-article .phase-cards a:not(.btn):hover {
  color: inherit;
}
.docs-article .phase-cards a:not(.btn):hover img {
  border-color: var(--crimson);
}
.docs-article .phase-cards a:not(.btn):hover .card-name {
  color: var(--crimson);
}
.docs-article .play-steps + p {
  padding-top: 1.5rem;
}
.docs-article .script-panel + p,
.docs-article .phase-script + p {
  padding-top: 1.5rem;
}
.docs-article .play-steps a:not(.btn) h3 { color: #fff; }
.docs-article .play-steps a:not(.btn):hover,
.docs-article .play-steps a:not(.btn):hover h3 { color: var(--crimson); }
.rules-setup-links { margin: 0 0 1em; }

@media (max-width: 980px) {
  .hero-grid, .grid-2, .footer-grid, .steps, .trust, .home-hero-grid, .home-product, .home-split, .home-mosaic { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .grid-4, .grid-6 { grid-template-columns: repeat(3, 1fr); }
  .rules-facts, .role-facts { grid-template-columns: 1fr 1fr; }
  .docs { grid-template-columns: minmax(0, 1fr); gap: 1.4rem; }
  .docs-nav {
    top: calc(var(--header-h) - 1px);
    z-index: 40;
    max-height: none;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
    padding: 0;
    border-right: 0;
    border-bottom: 1px solid var(--stroke);
    background: var(--bg);
  }
  .docs-nav-track {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .15rem;
    width: 100%;
    min-width: 0;
    padding: .55rem 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }
  .docs-nav-track::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  .docs-nav-label { display: none; }
  .docs-nav a {
    flex: 0 0 auto;
    white-space: nowrap;
    border-left: 0;
    border-bottom: 2px solid transparent;
    padding: .45rem .7rem;
    font-size: .78rem;
  }
  .docs-nav a:hover,
  .docs-nav a.is-on { border-left-color: transparent; border-bottom-color: var(--crimson); }
  .docs-block { scroll-margin-top: 8.5rem; }
  .crumbs {
    margin-bottom: .45rem;
    padding: 0 0 .35rem;
  }
  .crumbs a,
  .crumbs [aria-current="page"] {
    padding: .12rem .3rem;
  }
  .crumbs li:first-child > a,
  .crumbs li:first-child > [aria-current="page"] {
    padding-left: 0;
  }
}
.legal-page { padding-bottom: 4rem; }
.legal-hero { margin-bottom: 3.2rem; }
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 2.4rem 3rem;
  align-items: start;
}
.contact-aside > h2 { margin: 0 0 .8em; }
.contact-aside > h2 + p { margin-top: 0; padding-top: 0; }
.contact-aside .contact-topics + h2 { margin-top: 2rem; }
.contact-email-card {
  border: 1px solid var(--crimson);
  background: var(--panel);
  padding: 1.45rem 1.5rem 1.25rem;
  margin: 0 0 2.1rem;
}
.contact-email-card .kicker { margin-bottom: .35rem; }
.contact-email-card p:last-child { margin-bottom: 0; }
.contact-phone { margin: .15rem 0 .7rem; }
.contact-phone a { color: var(--ink); font-size: 1.05rem; }
.contact-email {
  display: inline-block;
  font-family: var(--serif);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  line-height: 1.2;
  color: var(--ink);
  border-bottom: 0;
  word-break: break-word;
}
.contact-topics {
  display: grid;
  gap: 1rem;
  margin: 0 0 .4rem;
}
.contact-topics h3 { margin: 0 0 .5em; }
.contact-topics p { margin: 0; padding-top: 0; }
.contact-form-panel { padding: 1.7rem 1.7rem 1.5rem; }
.contact-form-panel h2 { margin-top: 0; }
.contact-form-panel .form input,
.contact-form-panel .form textarea,
.contact-form-panel .form select {
  max-width: none;
}
.contact-form-panel .req { color: var(--crimson); }
.contact-form-panel .form select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 2.4rem;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23c9b8a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1rem;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; }
}
.about-lead { max-width: 44rem; }
.about-page .docs-block + .docs-block {
  border-top: 0;
}
.about-hero { position: relative; overflow: visible; }
.about-hero > .kicker,
.about-hero > h1,
.about-hero > .about-lead,
.about-hero > .buy-bridge,
.about-hero > .rules-facts {
  position: relative;
  z-index: 2;
}
.about-hero > .rules-facts {
  margin-top: 1.15rem;
}
@property --lift {
  syntax: "<length>";
  inherits: true;
  initial-value: 0rem;
}
.about-prose .about-pull {
  margin: 1.4rem 0 1.5rem;
  padding: 0 0 0 1.15rem;
  border-left: 2px solid var(--crimson);
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  line-height: 1.4;
  color: var(--ink);
}
.about-prose .scene { margin: 1.4rem 0 0; }

.about-hero-table {
  --cw: 11.4rem;
  --spread: 1;
  position: relative;
  isolation: isolate;
  z-index: 1;
  width: 100vw;
  margin: 2.6rem 0 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  height: calc(var(--cw) * 1.7 + 9.2rem * var(--spread));
  overflow: visible;
}
.about-hero-table::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 58%;
  z-index: 0;
  width: min(54rem, 70vw);
  height: calc(20.5rem * var(--spread));
  transform: translate(-50%, -50%);
  border: 2px solid var(--crimson);
  border-radius: 50%;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--crimson) 30%, transparent),
    inset 0 0 64px rgba(196, 30, 30, .14);
  pointer-events: none;
}
.about-table-card {
  --dx: 0rem;
  --dy: 0rem;
  --rr: 0deg;
  --lift: 0rem;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: var(--cw);
  aspect-ratio: var(--tarot);
  transform:
    translate(-50%, -50%)
    translate(calc(var(--dx) * var(--spread)), calc(var(--dy) * var(--spread)))
    translateY(var(--lift))
    rotate(var(--rr));
  transform-origin: center 30%;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.about-table-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 22px 40px rgba(0, 0, 0, .62);
}
.about-table-card:hover,
.about-table-card:focus-visible {
  color: inherit;
  --lift: -.85rem;
}
.about-table-card-1 { --dx: -37.6rem; --dy: 6.7rem; --rr: -22deg; z-index: 11; width: calc(var(--cw) * 1.16); }
.about-table-card-2 { --dx: -31.4rem; --dy: 1.7rem; --rr: -16deg; z-index: 9; width: calc(var(--cw) * 1.08); }
.about-table-card-3 { --dx: -24.1rem; --dy: -2.7rem; --rr: -11deg; z-index: 7; }
.about-table-card-4 { --dx: -15.4rem; --dy: -5.6rem; --rr: -7deg; z-index: 5; }
.about-table-card-5 { --dx: -7.3rem; --dy: -7.05rem; --rr: -3deg; z-index: 3; width: calc(var(--cw) * .94); }
.about-table-card-6 { --dx: 0rem; --dy: -7.5rem; --rr: 2deg; z-index: 4; width: calc(var(--cw) * .92); }
.about-table-card-7 { --dx: 7.3rem; --dy: -7.05rem; --rr: 4deg; z-index: 3; width: calc(var(--cw) * .94); }
.about-table-card-8 { --dx: 15.4rem; --dy: -5.6rem; --rr: 8deg; z-index: 5; }
.about-table-card-9 { --dx: 24.1rem; --dy: -2.7rem; --rr: 12deg; z-index: 7; }
.about-table-card-10 { --dx: 31.4rem; --dy: 1.7rem; --rr: 16deg; z-index: 9; width: calc(var(--cw) * 1.08); }
.about-table-card-11 { --dx: 37.6rem; --dy: 6.7rem; --rr: 22deg; z-index: 11; width: calc(var(--cw) * 1.16); }
@media (max-width: 1100px) {
  .about-hero-table { --cw: 8.3rem; --spread: .74; }
}
@media (max-width: 760px) {
  .about-hero-table { --cw: 6.5rem; --spread: .54; margin-top: 1.8rem; }
}

.about-print-fan {
  --fw: 8.2rem;
  position: relative;
  isolation: isolate;
  height: calc(var(--fw) * 1.78);
  margin: 1.9rem 0 2.8rem;
}
.about-print-card {
  --rr: 0deg;
  --hr: 0deg;
  --tx: 0rem;
  --hx: 0rem;
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 1;
  width: var(--fw);
  aspect-ratio: var(--tarot);
  transform-origin: 50% 130%;
  transform: translateX(calc(-50% + var(--tx))) rotate(var(--rr));
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.about-print-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 16px 30px rgba(0, 0, 0, .55);
}
.about-print-card:hover,
.about-print-card:focus-visible { color: inherit; }
.about-print-fan:hover .about-print-card,
.about-print-fan:focus-within .about-print-card {
  transform: translateX(calc(-50% + var(--hx))) rotate(var(--hr));
}
.about-print-card:nth-child(1) { z-index: 1; --rr: -58deg; --hr: -68deg; --tx: -1.85rem; --hx: -2.45rem; }
.about-print-card:nth-child(2) { z-index: 2; --rr: -39deg; --hr: -46deg; --tx: -1.15rem; --hx: -1.55rem; }
.about-print-card:nth-child(3) { z-index: 3; --rr: -19deg; --hr: -23deg; --tx: -.5rem; --hx: -.7rem; }
.about-print-card:nth-child(4) { z-index: 4; --rr: 0deg; --hr: 0deg; }
.about-print-card:nth-child(5) { z-index: 5; --rr: 19deg; --hr: 23deg; --tx: .5rem; --hx: .7rem; }
.about-print-card:nth-child(6) { z-index: 6; --rr: 39deg; --hr: 46deg; --tx: 1.15rem; --hx: 1.55rem; }
.about-print-card:nth-child(7) { z-index: 7; --rr: 58deg; --hr: 68deg; --tx: 1.85rem; --hx: 2.45rem; }
@media (max-width: 760px) {
  .about-print-fan { --fw: 6.2rem; height: calc(var(--fw) * 1.82); }
  .about-print-card:nth-child(1) { --tx: -1.15rem; --hx: -1.55rem; }
  .about-print-card:nth-child(2) { --tx: -.7rem; --hx: -1rem; }
  .about-print-card:nth-child(3) { --tx: -.3rem; --hx: -.45rem; }
  .about-print-card:nth-child(5) { --tx: .3rem; --hx: .45rem; }
  .about-print-card:nth-child(6) { --tx: .7rem; --hx: 1rem; }
  .about-print-card:nth-child(7) { --tx: 1.15rem; --hx: 1.55rem; }
}

.about-street {
  --sw: 7.3rem;
  position: relative;
  isolation: isolate;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  height: calc(var(--sw) * 1.7 + 1.4rem);
  margin: 1.7rem 0 0;
  overflow: hidden;
  clip-path: inset(-6rem -2rem 0 -2rem);
}
.about-street::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 20;
  height: 2px;
  background: var(--crimson);
  pointer-events: none;
}
.about-street-card {
  --rr: 0deg;
  --dy: 0rem;
  position: relative;
  z-index: 1;
  flex: 0 0 var(--sw);
  width: var(--sw);
  margin-left: calc(var(--sw) * -.4);
  aspect-ratio: var(--tarot);
  transform: rotate(var(--rr)) translateY(var(--dy));
  transform-origin: center bottom;
  transition: transform .4s cubic-bezier(.18, 1.05, .32, 1);
}
.about-street-card:first-child { margin-left: 0; }
.about-street-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 16px 30px rgba(0, 0, 0, .55);
}
.about-street-card:hover,
.about-street-card:focus-visible {
  color: inherit;
  transform: rotate(var(--rr)) translateY(calc(var(--dy) - .7rem));
}
.about-street-card:nth-child(1) { z-index: 2; --rr: -7deg; --dy: 0rem; }
.about-street-card:nth-child(2) { z-index: 3; --rr: 4deg; --dy: -.55rem; }
.about-street-card:nth-child(3) { z-index: 5; --rr: -2deg; --dy: -.2rem; width: calc(var(--sw) * 1.08); flex-basis: calc(var(--sw) * 1.08); }
.about-street-card:nth-child(4) { z-index: 4; --rr: 6deg; --dy: 0rem; }
.about-street-card:nth-child(5) { z-index: 6; --rr: -5deg; --dy: -.35rem; width: calc(var(--sw) * 1.1); flex-basis: calc(var(--sw) * 1.1); }
.about-street-card:nth-child(6) { z-index: 4; --rr: 3deg; --dy: 0rem; }
.about-street-card:nth-child(7) { z-index: 3; --rr: -6deg; --dy: -.15rem; }
.about-street-card:nth-child(8) { z-index: 2; --rr: 8deg; --dy: 0rem; }
@media (max-width: 760px) {
  .about-street { --sw: 5.4rem; }
}

@media (prefers-reduced-motion: reduce) {
  .about-table-card,
  .about-print-card,
  .about-street-card { transition: none; }
}

.about-next {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1.4rem;
}
.about-next a {
  display: block;
  padding: 1.15rem 1.2rem 1.05rem;
  background: var(--panel);
  border: 1px solid var(--stroke);
  border-bottom-width: 1px;
}
.about-prose .about-next a:not(.btn) {
  border: 1px solid var(--stroke);
  color: inherit;
}
.about-prose .about-next a:not(.btn):hover {
  border-color: var(--crimson);
  color: inherit;
}
.about-next h3 { margin: 0 0 .5em; font-style: normal; }
.about-next p {
  margin: 0;
  padding-top: 0;
  font-family: var(--sans);
  font-style: normal;
  font-size: 1rem;
  color: var(--dim);
}
@media (max-width: 760px) {
  .about-next { grid-template-columns: 1fr; }
}
.legal-updated { color: var(--dim); font-size: .9rem; margin: .8rem 0 0; }
.legal-page .docs-block > h2 { margin: 0 0 .8em; }
.legal-page .docs-block > h2 + p { margin-top: 0; padding-top: 0; }
.legal-body h3 { margin: 1.3rem 0 .5em; color: var(--ink); }
.legal-body h3 + p { margin-top: 0; padding-top: 0; }
.legal-body p, .legal-body li { color: var(--muted); }
.legal-body ul { margin: 0 0 1em; }
.legal-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.2rem;
  font-size: .88rem;
}
.legal-body th, .legal-body td {
  text-align: left;
  vertical-align: top;
  padding: .55rem .65rem;
  border: 1px solid var(--stroke);
  color: var(--muted);
}
.legal-body th { color: var(--ink); font-weight: 600; }
.narrator-hero-actions { margin-top: 1.4rem; }
@media (min-width: 761px) {
  .narrator-hero-actions { justify-content: flex-start; }
  .narrator-hero-actions .narrator-print { margin-left: auto; }
}
.script-panel {
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 1.35rem 1.4rem 1.2rem;
  margin: 1.2rem 0 0;
}
.script-panel.is-featured { border-color: var(--crimson); }
.script-lines { margin: 0; }
.script-lines p {
  margin: 0 0 .7rem;
  font-family: var(--serif);
  font-size: 1.28rem;
  line-height: 1.4;
  color: var(--ink);
}
.script-lines p:last-child { margin-bottom: 0; }
.script-lines .script-aside {
  font-family: var(--sans);
  font-size: .92rem;
  color: var(--dim);
  font-style: italic;
}
.script-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.15rem;
}
.script-copy { margin-top: 1.1rem; }
.script-toolbar .script-copy { margin-top: 0; }
.script-table {
  width: 100%;
  min-width: 40rem;
  border-collapse: collapse;
  font-size: .9rem;
}
.script-table th,
.script-table td {
  text-align: left;
  vertical-align: top;
  padding: .65rem .7rem;
  border: 1px solid var(--stroke);
  color: var(--muted);
}
.script-table th { color: var(--ink); font-weight: 600; }
.script-table td:nth-child(3) { color: var(--ink); }
@media (max-width: 1100px) {
  :root { --header-h: calc(1.7rem + 2.6rem + 1px); }
  .brand-logo { height: 2.6rem; }
  .nav-desktop { display: none; }
  .header-actions { margin-left: auto; }
  .header-actions .currency-switch { display: none; }
  .nav-mobile-currency { display: block; }
  .nav-cart-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .nav-cart,
  .menu-btn { padding: 0 .55rem; }
  .menu-btn { display: inline-flex; }
  .nav-mobile {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 85;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    background: var(--bg);
    flex-direction: column;
    overscroll-behavior: contain;
  }
  .nav-mobile.open { display: flex; }
  .nav-mobile-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1.15rem;
    border-bottom: 1px solid var(--stroke);
  }
  .nav-mobile-title {
    margin: 0;
    font-family: var(--serif);
    font-size: 1.7rem;
    color: var(--ink);
  }
  .nav-mobile-close {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    background: none;
    border: 1px solid var(--stroke);
    color: var(--ink);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
  }
  .nav-mobile-close:hover,
  .nav-mobile-close:focus-visible {
    border-color: var(--crimson);
    color: #fff;
  }
  .nav-mobile-links {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: auto;
    padding: 1.2rem 1.25rem calc(1.6rem + env(safe-area-inset-bottom, 0px));
  }
  .nav-mobile .nav-link { padding: .95rem 0; }
  .nav-mobile .nav-buy {
    margin: .9rem 0 0;
    width: 100%;
    padding: .85rem 1rem;
  }
}
@media (max-width: 760px) {
  .wrap,
  .wrap-wide { width: min(1320px, calc(100% - 3rem)); }
  .role-page .role-hero { grid-template-columns: 1fr; gap: 1.4rem; }
  .role-hero-stage {
    position: static;
    grid-template-columns: 1fr;
    justify-items: center;
    max-width: none;
    width: 100%;
  }
  .role-hero-card { max-width: 19rem; }
  .figure-hero-stage { width: min(100%, 19rem); }
  .figure-threads,
  .figure-pager { grid-template-columns: 1fr; }
  .figure-pager-link.is-next { text-align: left; align-items: flex-start; }
  .figure-faces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-sheet-related,
  .role-sheet-faces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-setups { grid-template-columns: 1fr; }
  .role-lore-split,
  .role-person-copy { grid-template-columns: 1fr; }
  .hero-grid, .grid-2, .grid-3, .steps, .trust, .footer-grid, .cta-play, .home-hero-grid, .home-product, .home-split, .home-mosaic, .home-mosaic-3, .home-close, .like-grid { grid-template-columns: 1fr; }
  .home-product-box { max-width: 18rem; }
  .grid-4, .grid-6, .hero-fan { grid-template-columns: repeat(2, 1fr); }
  .hero { padding-top: 2rem; }
  .phase-script li { grid-template-columns: 2.4rem 1fr; gap: .75rem; }
  .rank-card-head { grid-template-columns: auto 1fr; }
  .rank-scores { grid-column: 1 / -1; justify-content: flex-start; }
  .rank-card .qty-stepper { display: none; }
  .setup-page.section,
  .setups-index-section {
    padding-top: .45rem;
  }
  .setup-page .crumbs,
  .setups-index-section .crumbs {
    margin: 0 0 .3rem;
    padding: 0 0 .25rem;
  }
}
@media print {
  .skip, .site-header, .site-footer, .cart-root, .docs-nav, .crumbs, .narrator-hero-actions,
  .script-copy, .script-toolbar .btn, .buy-card-section, .setup-pager, .btn-row, .role-jump,
  .nl-capture {
    display: none !important;
  }
  .docs { display: block; }
  .docs-article { max-width: none; }
  .script-panel { break-inside: avoid; border: 1px solid #000; }
  .script-lines p { color: #000; }
  a { text-decoration: none; color: #000; }
}

html.is-overlay-open,
body.is-overlay-open {
  overflow: hidden;
  overscroll-behavior: none;
}
body.is-overlay-open {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
}
.cart-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(0, 0, 0, .58);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease;
}
.cart-root.is-open .cart-backdrop {
  opacity: 1;
  pointer-events: auto;
}
.cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 90;
  display: flex;
  flex-direction: column;
  width: min(26.5rem, 100vw);
  height: 100vh;
  height: 100dvh;
  background: var(--bg-2);
  /* Neutral rails for cards, fields, and separators (same as checkout). */
  --stroke: rgba(255, 255, 255, 0.18);
  border-left: 1px solid var(--stroke);
  color: var(--ink);
  transform: translateX(100%);
  transition: transform .28s ease;
}
.cart-root.is-open .cart-drawer { transform: translateX(0); }
.cart-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  border-bottom: 1px solid var(--stroke);
}
.cart-drawer-head h2 {
  margin: 0;
  font-size: 1.7rem;
}
.cart-drawer-count {
  margin: .15rem 0 0;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dim);
}
.cart-drawer-count[hidden] { display: none; }
.cart-drawer-close {
  width: 2.4rem;
  height: 2.4rem;
  background: none;
  border: 1px solid var(--stroke);
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.cart-drawer-close:hover,
.cart-drawer-close:focus-visible {
  border-color: #fff;
  color: #fff;
}
.cart-drawer-panel {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.cart-drawer-body {
  flex: 1;
  overflow: auto;
  padding: 1.25rem;
}
.cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .85rem;
  max-width: 19rem;
  margin: 1.25rem auto 0;
  color: var(--muted);
}
.cart-empty-product {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .7rem;
}
.cart-empty-thumb {
  display: block;
  width: 7.5rem;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  line-height: 0;
}
.cart-empty-thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
}
.cart-empty-name {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--ink);
}
.cart-empty form,
.cart-empty > a.btn {
  margin: .35rem 0 0;
  width: 100%;
}
.cart-empty-perk {
  margin: 1.15rem 0 0;
  padding: .85rem .9rem;
  display: grid;
  gap: .45rem;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--lime-border);
  background: var(--lime-fill);
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.4;
  text-align: center;
  justify-items: center;
}
.cart-empty-perk-kicker {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lime);
}
.cart-empty-perk-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  color: var(--ink);
  font-size: .88rem;
  line-height: 1.35;
  text-align: center;
}
.cart-empty-perk-ico {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--crimson);
}
.cart-lines {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cart-chaos-nudge {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  margin: 0 0 1.15rem;
  padding: .65rem .75rem;
  border: 1px solid color-mix(in srgb, var(--stroke) 80%, #000);
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.28);
  color: #eae3d2;
  font-size: .8rem;
  line-height: 1.4;
}
.cart-chaos-nudge-ico {
  flex: none;
  display: none;
  width: 1em;
  height: 1em;
  margin: calc((1.4em - 1em) / 2) 0 0;
  color: #eae3d2;
}
.cart-chaos-nudge.is-stage-1 > .cart-chaos-nudge-ico[data-nudge-ico="stack"],
.cart-chaos-nudge.is-unlocked > .cart-chaos-nudge-ico[data-nudge-ico="check"],
.cart-dossiers-nudge.is-stage-1 > .cart-chaos-nudge-ico[data-nudge-ico="file"],
.cart-dossiers-nudge.is-unlocked > .cart-chaos-nudge-ico[data-nudge-ico="check"] {
  display: block;
}
.cart-chaos-nudge-main {
  display: grid;
  gap: .4rem;
  min-width: 0;
  flex: 1;
}
.cart-chaos-nudge-copy {
  margin: 0;
  color: #eae3d2;
}
.cart-chaos-nudge-save {
  color: var(--lime);
  font-weight: 600;
}
.cart-chaos-nudge-lime {
  color: var(--lime);
  font-weight: 700;
}
.cart-chaos-nudge-meter {
  position: relative;
  width: 100%;
  height: .63rem;
  overflow: hidden;
  border: 1px solid var(--stroke);
  background: rgba(0, 0, 0, 0.35);
}
.cart-chaos-nudge-meter-fill {
  display: block;
  height: 100%;
  width: 0;
  background: var(--lime);
}
.cart-chaos-nudge.is-unlocked {
  background: var(--lime-fill);
  border-color: var(--lime-border);
}
.cart-chaos-nudge.is-unlocked > .cart-chaos-nudge-ico {
  color: var(--lime);
}
/* Classified Player Files offer (cart drawer) — typographic, not a card */
.cart-deck-nudge {
  display: grid;
  gap: .4rem;
  margin: 0 0 1.1rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.4;
  text-align: center;
}
.cart-deck-nudge-heading {
  margin: 0;
  font-family: var(--sans);
  font-size: .95rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
  text-align: center;
}
.cart-deck-nudge-lead {
  font-weight: 400;
  color: var(--muted);
}
.cart-deck-nudge-name {
  font-weight: 700;
  color: var(--ink);
}
.cart-deck-nudge-highlight,
.cart-deck-nudge-dash,
.cart-deck-nudge-unlocked {
  color: var(--lime);
  font-weight: 700;
}
.cart-deck-nudge-unlocked {
  letter-spacing: .04em;
}
.cart-deck-nudge-meter {
  position: relative;
  width: 100%;
  height: .28rem;
  overflow: hidden;
  border: 0;
  background: color-mix(in srgb, var(--ink) 12%, transparent);
}
.cart-deck-nudge-meter-fill {
  display: block;
  height: 100%;
  width: var(--nudge-target, 0%);
  background: var(--lime);
  transition: width .6s cubic-bezier(.22, .9, .32, 1), background .25s ease;
}
.cart-deck-nudge-copy {
  margin: 0;
  color: var(--dim);
  font-size: .8rem;
  line-height: 1.4;
  text-align: center;
}
.cart-deck-nudge.is-unlocked .cart-deck-nudge-meter-fill {
  background: var(--lime);
}
.cart-lines.site-check-lines {
  margin: 0;
}
.cart-drawer .site-check-lines li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.cart-line-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .75rem;
  margin: .45rem 0 0;
}
.cart-line-form .site-check-stepper {
  margin: 0;
}
.cart-remove {
  padding: 0;
  width: auto;
  background: none;
  border: 0;
  color: var(--dim);
  font: inherit;
  font-size: .68rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
}
.cart-remove:hover,
.cart-remove:focus-visible { color: var(--crimson); }
.cart-line-kicker {
  margin: 0 0 .2rem;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dim);
}
.cart-line-kicker.is-gift {
  color: var(--lime);
}
.cart-drawer .btn,
.cart-drawer a.btn {
  background: var(--lime);
  color: #06140c;
  border: 0;
  border-bottom: 0;
  text-decoration: none;
}
.cart-drawer .btn:hover,
.cart-drawer .btn:focus-visible,
.cart-drawer a.btn:hover,
.cart-drawer a.btn:focus-visible {
  background: color-mix(in srgb, var(--lime) 86%, #fff);
  color: #06140c;
  border-bottom: 0;
}
.cart-drawer .btn:disabled {
  background: color-mix(in srgb, var(--lime) 28%, #1a1a1a);
  color: color-mix(in srgb, #06140c 55%, var(--dim));
  cursor: not-allowed;
}
.cart-drawer .btn.cart-empty-btn,
.cart-drawer a.btn.cart-empty-btn {
  width: 100%;
  background: var(--crimson);
  color: #fff;
}
.cart-drawer .btn.cart-empty-btn:hover,
.cart-drawer .btn.cart-empty-btn:focus-visible,
.cart-drawer a.btn.cart-empty-btn:hover,
.cart-drawer a.btn.cart-empty-btn:focus-visible {
  background: #e02828;
  color: #fff;
}
.cart-checkout-btn {
  width: 100%;
}
.cart-drawer-foot {
  padding: 1.15rem 1.25rem calc(1.15rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--stroke);
  background: var(--panel);
}
.cart-ship-note {
  margin: 0 0 .85rem;
  color: var(--dim);
  font-size: .82rem;
}
.cart-ship {
  margin: 0 0 1.1rem;
  padding: 0;
  border: 0;
  min-width: 0;
}
.cart-ship legend {
  padding: 0;
  margin: 0 0 .55rem;
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dim);
}
.cart-ship-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
}
.cart-ship-grid label {
  margin: 0;
  cursor: pointer;
}
.cart-ship-grid input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cart-ship-grid span {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.55rem;
  padding: .45rem .5rem;
  text-align: center;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--muted);
  background: color-mix(in srgb, var(--bg) 70%, var(--panel));
  border: 1px solid var(--stroke);
}
@property --ship-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.cart-ship-grid.is-hint label span::after {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  pointer-events: none;
  background: conic-gradient(
    from var(--ship-angle),
    transparent 0 50%,
    color-mix(in srgb, var(--crimson-d) 75%, transparent) 68%,
    var(--crimson-d) 78%,
    var(--crimson) 88%,
    var(--crimson-d) 96%,
    transparent 100%
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  animation: cart-ship-border-run 9.2s linear infinite;
}
.cart-ship-grid.is-hint label:nth-child(1) span::after { animation-delay: 7.4s; }
.cart-ship-grid.is-hint label:nth-child(2) span::after { animation-delay: 0s; }
.cart-ship-grid.is-hint label:nth-child(3) span::after { animation-delay: 1.8s; }
.cart-ship-grid.is-hint label:nth-child(4) span::after { animation-delay: 3.6s; }
.cart-ship-grid label:hover span,
.cart-ship-grid label:focus-within span {
  color: var(--ink);
  border-color: #fff;
}
.cart-ship-grid input:checked + span {
  color: #fff;
  background: color-mix(in srgb, #fff 5.5%, #0e0c0c);
  border-color: #fff;
  box-shadow: inset 0 0 0 1px #fff;
}
.cart-ship-grid.is-hint input:checked + span::after {
  display: none;
}
.cart-ship-grid input:focus-visible + span {
  outline: 1px solid #fff;
  outline-offset: 2px;
}
@keyframes cart-ship-border-run {
  0% {
    --ship-angle: 0deg;
    opacity: 0;
  }
  2% { opacity: 1; }
  17% {
    --ship-angle: 360deg;
    opacity: 1;
  }
  20%, 100% {
    --ship-angle: 360deg;
    opacity: 0;
  }
}
.cart-summary { margin: 0 0 .75rem; }
.cart-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin: 0 0 .4rem;
  color: var(--muted);
  font-size: .92rem;
}
.cart-summary-row dt,
.cart-summary-row dd {
  margin: 0;
}
.cart-summary-row dd {
  text-align: right;
  min-width: 8.6rem;
  min-height: 1.35em;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.cart-summary-row.is-save {
  color: var(--muted);
}
.cart-summary-row.is-save dd {
  gap: .35em;
  font-weight: 400;
  font-variant-numeric: normal;
  color: var(--muted);
}
.cart-summary-save-amount {
  color: var(--lime);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.cart-summary-save-note {
  color: var(--muted);
  font-weight: 400;
}
.cart-summary-row.is-ship {
  color: var(--dim);
  font-size: .85rem;
}
.cart-summary-row.is-ship dd {
  min-width: 0;
  color: var(--dim);
  font-variant-numeric: normal;
}
.cart-summary-row.is-total {
  margin: .7rem 0 0;
  padding-top: .7rem;
  border-top: 1px solid var(--stroke);
  color: var(--ink);
  font-size: 1.05rem;
}
.cart-summary-row.is-total:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.cart-summary-row.is-total dd { font-weight: 600; }
.cart-summary-ship dd,
.cart-summary-customs dd {
  font-variant-numeric: tabular-nums;
}
.cart-summary-customs {
  align-items: flex-start;
}
.cart-summary-customs dt {
  max-width: 13rem;
  min-height: 2.5em;
  line-height: 1.25;
}
.cart-summary-ship dd.is-wait,
.cart-summary-customs dd.is-wait {
  color: var(--dim);
}
.cart-ship-slot {
  display: grid;
  grid-template-columns: .85rem minmax(7.4rem, max-content);
  column-gap: .35rem;
  align-items: center;
  justify-content: end;
  min-height: 1.35em;
  min-width: 8.6rem;
}
.cart-ship-slot [data-cart-ship-text] {
  min-width: 7.4rem;
  text-align: right;
  white-space: nowrap;
}
.cart-ship-spinner {
  width: .72rem;
  height: .72rem;
  border: 1.5px solid transparent;
  border-radius: 50%;
  flex-shrink: 0;
  visibility: hidden;
}
.cart-summary-ship dd.is-wait .cart-ship-spinner {
  visibility: visible;
  border-color: color-mix(in srgb, var(--stroke) 70%, var(--dim));
  border-top-color: var(--crimson);
  animation: cart-ship-spin .65s linear infinite;
}
@keyframes cart-ship-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .cart-ship-spinner { animation: none; }
  .cart-ship-grid.is-hint label span::after { animation: none; opacity: 0; }
}
.cart-note {
  margin: 0 0 1rem;
  font-size: .88rem;
  color: var(--dim);
}
.cart-drawer-foot .btn { width: 100%; }
.cart-checkout { margin: 0; display: flex; flex-direction: column; gap: .45rem; }
.cart-trust {
  list-style: none;
  margin: .85rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .45rem .95rem;
}
.cart-trust-item {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--dim);
  font-size: .72rem;
  letter-spacing: .04em;
  line-height: 1.2;
}
.cart-trust-ico {
  flex: none;
  width: .9rem;
  height: .9rem;
  color: var(--muted);
}

.checkout-page { padding-bottom: 4rem; }
.checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr);
  gap: 2rem;
  align-items: start;
}
.checkout-form-panel,
.checkout-summary { padding: 1.7rem 1.7rem 1.5rem; }
.checkout-form-panel h2,
.checkout-summary h2 { margin-top: 0; }
.checkout-form-panel .form input { max-width: none; }
.checkout-form-panel .req { color: var(--crimson); }
.checkout-optional {
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dim);
  font-weight: 400;
}
.checkout-hint {
  margin: .35rem 0 0;
  color: var(--dim);
  font-size: .88rem;
}
.form label.checkout-confirm {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 1.25rem 0 1.2rem;
  text-transform: none;
  letter-spacing: 0;
  font-size: .92rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--muted);
}
.checkout-confirm input {
  width: 1.15rem;
  height: 1.15rem;
  max-width: none;
  margin: .15rem 0 0;
  flex-shrink: 0;
  accent-color: var(--crimson);
}
.checkout-confirm a { color: var(--ink); border-bottom: 1px solid var(--stroke); }
.checkout-form-panel .btn { width: 100%; }
.checkout-lines {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}
.checkout-lines li {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  margin: 0 0 .85rem;
  padding: 0 0 .85rem;
  border-bottom: 1px solid var(--stroke);
}
.checkout-lines img {
  width: 3.4rem;
  height: auto;
  aspect-ratio: var(--tarot, 2 / 3);
  object-fit: cover;
  background: #111;
}
.checkout-line-name { margin: 0; color: var(--ink); }
.checkout-line-meta { margin: .2rem 0 0; color: var(--dim); font-size: .82rem; }
.checkout-line-sum { margin: 0; color: var(--ink); }
@media (max-width: 900px) {
  .checkout-layout { grid-template-columns: 1fr; }
}

body.is-site-checkout main { padding: 0; }
body.is-site-checkout .site-footer { margin-top: 0; }
/* overflow-x: clip on html/body breaks Stripe Payment Element iframe hit targets
   (expiry + CVC sit in nested iframes and stop receiving clicks).
   overflow-y: auto on body makes it the sticky scrollport, so Your order
   scrolls away with the page. Keep both axes visible. */
html:has(body.is-site-checkout),
body.is-site-checkout {
  overflow-x: visible;
  overflow-y: visible;
}
body.is-site-checkout {
  /* Neutral rails for cards, fields, and separators (was crimson #3a1515). */
  --stroke: rgba(255, 255, 255, 0.18);
}
.site-check {
  position: relative;
  padding: 1.6rem 0 4.5rem;
  overflow: visible;
  background:
    radial-gradient(70% 80% at 100% 0%, color-mix(in srgb, var(--crimson) 14%, transparent), transparent 58%),
    radial-gradient(50% 60% at 0% 20%, color-mix(in srgb, var(--ink) 6%, transparent), transparent 55%);
}
.site-check-glow {
  position: absolute;
  inset: auto 0 40% auto;
  width: min(22rem, 70%);
  height: 22rem;
  background: radial-gradient(circle, color-mix(in srgb, var(--crimson) 22%, transparent), transparent 70%);
  pointer-events: none;
}
.site-check-inner { position: relative; }
.site-check-trial {
  margin: 0 0 1.1rem;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dim);
}
.site-check-hosted { display: none; }
.site-check-hosted-link {
  display: inline;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--stroke);
  background: none;
  color: var(--ink);
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.site-check-hosted-link:hover,
.site-check-hosted-link:focus-visible { color: var(--crimson); }
.site-check-head { max-width: 38rem; margin: 0 0 1.6rem; }
.site-check-head h1 {
  margin: 0 0 .45rem;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
}
.site-check-head h1 em { color: var(--crimson); font-style: italic; }
.site-check-head .lead { margin: 0; }
.site-check-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(17rem, .8fr);
  gap: 1.6rem;
  align-items: start;
}
.site-check-form {
  margin: 0;
  display: grid;
  gap: 1rem;
  min-width: 0;
  position: relative;
  /* Above sticky summary so card expiry/CVC iframes stay clickable. */
  z-index: 4;
}
.site-check-card,
.site-check-sum {
  margin: 0;
  padding: 1.35rem 1.35rem 1.2rem;
  background: color-mix(in srgb, var(--panel) 88%, #000);
  border: 1px solid var(--stroke);
  overflow: visible;
}
.site-check-card h2,
.site-check-sum h2 {
  margin: 0 0 .85rem;
  font-size: 1.55rem;
}
.site-check-note {
  margin: 0 0 .85rem;
  color: var(--dim);
  font-size: .9rem;
}
.site-check-form label { max-width: none; }
.site-check-form .req { color: var(--crimson); }
.site-check-form input:not([type="radio"]):not([type="checkbox"]),
.site-check-form select,
.site-check-form .country-select-search {
  max-width: none;
  font-size: 1.125rem;
  line-height: 1.45;
  padding: .9rem 1rem;
  min-height: 3.15rem;
}
.site-check-form input::placeholder,
.site-check-form .country-select-search::placeholder {
  color: color-mix(in srgb, var(--dim) 58%, transparent);
  opacity: 1;
}
.site-check-form input:-webkit-autofill,
.site-check-form input:-webkit-autofill:hover,
.site-check-form input:-webkit-autofill:focus,
.site-check-form input:-webkit-autofill:active,
.site-check-form select:-webkit-autofill,
.site-check-form select:-webkit-autofill:hover,
.site-check-form select:-webkit-autofill:focus,
.site-check-form .country-select-search:-webkit-autofill,
.site-check-form .country-select-search:-webkit-autofill:hover,
.site-check-form .country-select-search:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
  border: 1px solid var(--stroke);
  box-shadow: 0 0 0 1000px #0e0c0c inset;
  transition: background-color 99999s ease-out;
}
.site-check-form input:-webkit-autofill:focus-visible,
.site-check-form select:-webkit-autofill:focus-visible,
.site-check-form .country-select-search:-webkit-autofill:focus-visible {
  border-color: #fff;
  box-shadow:
    0 0 0 1000px #0e0c0c inset,
    inset 0 0 0 1px #fff;
}
.site-check-control {
  position: relative;
  width: 100%;
}
.site-check-control > input,
.site-check-control > select:not(.country-select-native) {
  width: 100%;
  padding-right: 2.65rem;
}
.site-check-ok {
  position: absolute;
  right: .85rem;
  top: 50%;
  z-index: 2;
  width: 1.15rem;
  height: 1.15rem;
  color: #22c55e;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-50%) scale(0);
  transform-origin: center;
  transition:
    transform .32s cubic-bezier(.22, 1, .36, 1),
    opacity .22s ease;
}
.site-check-ok svg {
  display: block;
  width: 100%;
  height: 100%;
}
.site-check-field.is-valid > .site-check-control > .site-check-ok,
.country-select.is-valid > .site-check-control > .site-check-ok {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}
.site-check-control--combo .site-check-ok {
  right: 2.45rem;
}
.site-check-field.is-invalid > .site-check-control > input,
.site-check-field.is-invalid > .site-check-control > select:not(.country-select-native),
.site-check-field.is-invalid > .site-check-control .country-select-search,
.country-select.is-invalid > .site-check-control .country-select-search,
.site-check-field.is-invalid > .site-check-control > input:-webkit-autofill,
.site-check-field.is-invalid > .site-check-control > input:-webkit-autofill:focus,
.country-select.is-invalid > .site-check-control .country-select-search:-webkit-autofill {
  border-color: color-mix(in srgb, #c41e1e 55%, #8a5050);
  box-shadow:
    0 0 0 1000px #0e0c0c inset,
    inset 0 0 0 1px color-mix(in srgb, #c41e1e 28%, transparent);
}
.site-check-field-msg {
  margin: .35rem 0 0;
  font-size: .82rem;
  line-height: 1.35;
  color: color-mix(in srgb, #e8a0a0 75%, #c41e1e);
}
.site-check-field-msg[hidden] { display: none !important; }
.site-check-form input:not([type="radio"]):not([type="checkbox"]):focus,
.site-check-form select:focus,
.site-check-form .country-select-search:focus,
.site-check-form input:not([type="radio"]):not([type="checkbox"]):focus-visible,
.site-check-form select:focus-visible,
.site-check-form .country-select-search:focus-visible {
  outline: none;
  border-color: #fff;
  box-shadow: inset 0 0 0 1px #fff;
}
.site-check-form .btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.site-check-field { min-width: 0; }
.country-select { position: relative; }
.country-select-label {
  display: block;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dim);
  margin: .8rem 0 .3rem;
}
.country-select-combo { position: relative; }
.country-select-combo::after {
  content: "";
  position: absolute;
  right: 1rem;
  top: 50%;
  width: 1rem;
  height: 1rem;
  transform: translateY(-50%);
  pointer-events: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23c9b8a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center / 1rem;
  transition: transform .2s ease;
}
.country-select-combo.is-open::after {
  transform: translateY(-50%) rotate(180deg);
}
.country-select.is-enhanced .country-select-native {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}
.country-select-search {
  width: 100%;
  max-width: 22rem;
  background: #0e0c0c;
  border: 1px solid var(--stroke);
  color: var(--ink);
  padding: .7rem 2.4rem .7rem .8rem;
  font: inherit;
  display: block;
  -webkit-appearance: none;
  appearance: none;
}
.country-select-search::-webkit-search-cancel-button { display: none; }
.country-select-list {
  position: absolute;
  z-index: 8;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  max-height: 18rem;
  overflow: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: .35rem 0;
  list-style: none;
  background: #0e0c0c;
  border: 1px solid var(--stroke);
  color: var(--ink);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.28) #1a1212;
}
.country-select-list::-webkit-scrollbar {
  width: 8px;
}
.country-select-list::-webkit-scrollbar-track {
  background: #1a1212;
  border-left: 1px solid var(--stroke);
}
.country-select-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 0;
}
.country-select-list::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.34);
}
.country-select-list li { margin: 0; color: var(--ink); }
.country-select-list .country-select-heading {
  color: var(--dim);
}
.country-select-list [role="option"] {
  padding: .55rem 1rem;
  cursor: pointer;
}
.country-select-list [role="option"]:hover,
.country-select-list [role="option"].is-on {
  background: color-mix(in srgb, #fff 7%, #0e0c0c);
}
.country-select-list [role="option"].is-current {
  color: #fff;
  background: color-mix(in srgb, #fff 5.5%, #0e0c0c);
}
.country-select-empty {
  padding: .7rem 1rem;
  color: var(--dim);
  font-size: .92rem;
}
.country-select-heading {
  padding: .55rem 1rem .35rem;
  color: var(--dim);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  pointer-events: none;
}
.country-select-split {
  height: 1px;
  margin: 1rem 1rem;
  padding: 0;
  background: var(--stroke);
  font-size: 0;
  overflow: hidden;
  pointer-events: none;
  box-shadow: none;
}
.site-check-form .country-select-search { max-width: none; padding-right: 2.6rem; }
.site-check-control--combo .country-select-search { padding-right: 4.1rem; }
.site-check-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 .9rem;
  align-items: start;
}
.site-check-grid > * { min-width: 0; }
.site-check-grid > .site-check-field > label,
.site-check-grid > .country-select > .country-select-label {
  margin-top: 0;
}
.country-select,
.country-select-combo {
  width: 100%;
  max-width: none;
}
.site-check-addr {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: start;
}
.site-check-local {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.05fr) minmax(6.5rem, .75fr);
  gap: 0 .7rem;
  align-items: start;
}
.site-check-state {
  min-width: 0;
  position: relative;
  z-index: 6;
}
.site-check-state.is-us [data-state-text],
.site-check-state:not(.is-us) [data-state-us],
.site-check-state [hidden] {
  display: none !important;
}
.site-check-form .country-select {
  position: relative;
  z-index: 2;
}
.site-check-form .country-select:has(.country-select-combo.is-open) {
  z-index: 40;
}
.site-check-form .country-select-list {
  z-index: 50;
}
@keyframes site-check-smoke {
  0% { background-position: 120% 0; opacity: .2; }
  45% { opacity: .85; }
  100% { background-position: -30% 0; opacity: .2; }
}
.site-check-totals .is-fee dt,
.site-check-totals .is-fee dd,
.site-check-totals.is-pending .is-total dd {
  color: var(--dim);
  font-weight: 400;
  transition: color .45s ease, filter .55s ease, opacity .55s ease;
}
.site-check-totals.is-set .is-fee dt,
.site-check-totals.is-set .is-fee dd {
  color: var(--muted);
  font-weight: 400;
}
.site-check-totals [data-site-fee-row] { position: relative; }
.site-check-totals [data-site-fee-row].site-check-customs,
.site-check-totals [data-site-fee-row].site-check-ship-fee { position: static; }
.site-check-customs .site-check-fee-line,
.site-check-ship-fee .site-check-fee-line { position: relative; }
.site-check-totals.is-calc [data-site-fee-row] dd {
  filter: blur(3.5px);
  opacity: .5;
  color: var(--muted);
}
.site-check-totals.is-calc [data-site-fee-row]:not(.site-check-customs):not(.site-check-ship-fee)::after,
.site-check-totals.is-calc .site-check-customs .site-check-fee-line::after,
.site-check-totals.is-calc .site-check-ship-fee .site-check-fee-line::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 46%;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    color-mix(in srgb, var(--ink) 10%, transparent) 36%,
    color-mix(in srgb, #d8d0c6 42%, transparent) 50%,
    color-mix(in srgb, var(--ink) 10%, transparent) 64%,
    transparent 100%
  );
  background-size: 220% 100%;
  animation: site-check-smoke 1.2s ease-in-out infinite;
  mix-blend-mode: screen;
}
.site-check-ship-fee,
.site-check-customs {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .28rem;
  margin: 0 0 .4rem;
  color: var(--muted);
  font-size: .92rem;
}
.site-check-ship-fee .site-check-fee-line,
.site-check-customs .site-check-fee-line {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
}
.site-check-customs[hidden] { display: none !important; }
.site-check-rate {
  display: flex;
  align-items: center;
  gap: .35rem;
  margin: 0 0 .75rem;
  padding: 0 0 0 .15rem;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.35;
}
.site-check-ship-fee > .site-check-rate { margin-bottom: .35rem; }
.site-check-rate.is-blue { color: #b8b4ae; }
.site-check-rate.is-green { color: var(--muted); }
.site-check-rate-branch {
  flex: none;
  color: inherit;
  font-size: .85em;
  line-height: 1;
}
.site-check-rate > .site-check-ico {
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  color: var(--lime);
  display: none;
}
.site-check-rate:not(.is-plain):not(.is-globe) > .site-check-ico[data-nudge-ico="shield"],
.site-check-rate.is-globe:not(.is-plain) > .site-check-ico[data-nudge-ico="globe"] {
  display: block;
}
.site-check-rate.is-blue > .site-check-ico { color: #60a5fa; }
.site-check-rate [data-site-rate-text] {
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.35;
}
.site-check-totals .site-check-rate[hidden] { display: none !important; }
.site-check-totals.is-set .site-check-rate:not([hidden]) {
  animation: site-check-rate-in .7s cubic-bezier(.22, 1, .36, 1) both;
}
@keyframes site-check-rate-in {
  from {
    opacity: 0;
    transform: translateY(.35rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.site-check-ship-wrap {
  margin: 0;
  position: relative;
  z-index: 1;
}
.site-check-ship-wrap[hidden] { display: none !important; }
.site-check-country-fees {
  display: none;
}
.site-check-ship-label {
  display: block;
  margin: .8rem 0 .3rem;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dim);
}
.site-check-ship {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: 0;
  padding: 0;
  border: 0;
}
.site-check-ship legend { display: none; }
.site-check-form .site-check-ship label {
  position: relative;
  display: flex;
  align-items: center;
  gap: .7rem;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  min-height: 3.15rem;
  padding: .9rem 1rem;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  color: var(--ink);
  font: inherit;
  font-size: 1.125rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
  cursor: pointer;
}
.site-check-form .site-check-ship label:has(input:checked) {
  border-color: #fff;
  box-shadow: inset 0 0 0 1px #fff;
  background: color-mix(in srgb, #fff 5.5%, #0e0c0c);
}
.site-check-form .site-check-ship label:focus-within {
  border-color: #fff;
  box-shadow: inset 0 0 0 1px #fff;
}
.site-check-form .site-check-ship input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 1.5px solid color-mix(in srgb, var(--ink) 42%, transparent);
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  accent-color: unset;
}
.site-check-form .site-check-ship label:has(input:checked) input[type="radio"] {
  border-color: #fff;
  background: #fff;
}
.site-check-form .site-check-ship label.is-free-ship:has(input:checked) {
  border-color: var(--lime-border);
  box-shadow: none;
  background: var(--lime-fill);
}
.site-check-form .site-check-ship label.is-free-ship:focus-within {
  border-color: var(--lime-border);
  box-shadow: none;
}
.site-check-form .site-check-ship label.is-free-ship:has(input:checked) input[type="radio"] {
  border-color: var(--lime);
  background: var(--lime);
}
.site-check-form .site-check-ship label.is-disabled {
  opacity: .45;
  cursor: not-allowed;
  pointer-events: none;
  border-color: var(--stroke);
  box-shadow: none;
  color: var(--dim);
}
.site-check-form .site-check-ship label.is-disabled:has(input:checked),
.site-check-form .site-check-ship label.is-disabled:focus-within {
  border-color: var(--stroke);
  box-shadow: none;
}
.site-check-ship .site-check-ship-title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font: inherit;
  font-weight: 400;
  line-height: inherit;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.site-check-ship .site-check-ship-price {
  flex: 0 0 auto;
  position: relative;
  margin: 0 0 0 auto;
  font: inherit;
  font-style: normal;
  font-weight: 400;
  color: inherit;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-align: right;
  transition: color .45s ease, filter .55s ease, opacity .55s ease;
}
.site-check-ship-wrap.is-calc .site-check-ship-price {
  filter: blur(3.5px);
  opacity: .5;
  color: var(--muted);
}
.site-check-ship-wrap.is-calc .site-check-ship-price::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: -40%;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 0%,
    color-mix(in srgb, var(--ink) 10%, transparent) 36%,
    color-mix(in srgb, #d8d0c6 42%, transparent) 50%,
    color-mix(in srgb, var(--ink) 10%, transparent) 64%,
    transparent 100%
  );
  background-size: 220% 100%;
  animation: site-check-smoke 1.2s ease-in-out infinite;
  mix-blend-mode: screen;
}
.site-check-ship .site-check-ship-chip {
  position: absolute;
  top: 0;
  right: .75rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  transform: translateY(-50%);
  padding: .20rem .5rem .18rem;
  border: 1px solid #fff;
  background: #0e0c0c;
  color: #fff;
  font-family: var(--sans);
  font-size: .62rem;
  font-weight: 600;
  font-style: normal;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
}
.site-check-ship label.is-free-ship .site-check-ship-chip {
  border-color: #fff;
  background: #0e0c0c;
  color: #fff;
}
@media (max-width: 560px) {
  .site-check-ship {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* Order bump / host upgrades */
.site-check-bump > h2 {
  margin-bottom: .35rem;
}
.site-check-bump-sub {
  margin: 0 0 1.2rem;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
  font-weight: 400;
}
.site-check-bump-options {
  display: grid;
  gap: .75rem;
}
.site-check-form .site-check-bump-opt {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: .95rem 1rem;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  color: var(--ink);
  font: inherit;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.site-check-form .site-check-bump-opt:has(.site-check-bump-check:checked) {
  border-color: var(--lime-border);
  background: var(--lime-fill);
  box-shadow: none;
}
.site-check-form .site-check-bump-opt:focus-within {
  border-color: var(--lime-border);
  box-shadow: none;
}
.site-check-form .site-check-bump-opt .site-check-bump-check {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 1.05rem;
  height: 1.05rem;
  min-width: 1.05rem;
  max-width: 1.05rem;
  min-height: 0;
  margin: .28rem 0 0;
  padding: 0;
  border: 1.5px solid color-mix(in srgb, var(--ink) 42%, transparent);
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
}
.site-check-form .site-check-bump-opt:has(.site-check-bump-check:checked) .site-check-bump-check {
  border-color: var(--lime);
  background: var(--lime);
}
.site-check-bump-body {
  display: grid;
  gap: .3rem;
  min-width: 0;
  flex: 1 1 auto;
}
.site-check-bump-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .65rem 1rem;
}
.site-check-bump-name {
  color: var(--ink);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.45;
}
.site-check-bump-title {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .55rem;
  min-width: 0;
}
.site-check-bump-meta {
  color: var(--dim);
  font-size: .9rem;
  line-height: 1.45;
}
.site-check-bump-price-row {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: .45rem;
  flex: 0 0 auto;
  text-align: right;
  line-height: 1.45;
}
.site-check-form .site-check-bump-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  align-self: center;
  margin: 0;
  padding: .22rem .5rem .16rem;
  border: 1px solid var(--lime-border);
  background: var(--lime-fill);
  color: var(--lime);
  font-family: var(--sans);
  font-size: .62rem;
  font-weight: 600;
  font-style: normal;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  vertical-align: middle;
}
.site-check-bump-was {
  color: var(--dim);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.site-check-bump-price {
  color: var(--ink);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.45;
  white-space: nowrap;
}
@media (max-width: 560px) {
  .site-check-bump-top {
    flex-direction: column;
    align-items: stretch;
    gap: .35rem;
  }
  .site-check-bump-price-row {
    justify-content: flex-start;
    text-align: left;
  }
}

.site-check-pay {
  position: relative;
  z-index: 6;
  isolation: isolate;
  min-height: 5.5rem;
  margin: 0 0 1rem;
  overflow: visible;
  pointer-events: auto;
}
.site-check-pay iframe {
  pointer-events: auto !important;
}
.site-check-card[data-site-pay-card] {
  position: relative;
  z-index: 5;
  overflow: visible;
}
.site-check-express {
  position: relative;
  z-index: 1;
  contain: layout style;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: hidden;
}
.site-check-express[hidden] {
  display: none !important;
}
.site-check-express-mount {
  min-height: 0;
}
.site-check-card h2.site-check-pay-heading {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin: 0 0 1rem;
  color: var(--dim);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}
.site-check-card h2.site-check-pay-heading::before,
.site-check-card h2.site-check-pay-heading::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--stroke);
}
.site-check-card h2.site-check-pay-heading span {
  flex: 0 0 auto;
}
.site-check-bar {
  display: none;
}
.site-check-express-error {
  margin: .65rem 0 0;
  color: var(--crimson);
  font-size: .92rem;
}
.site-check-express-or {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin: 1rem 0 .15rem;
  color: var(--dim);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.site-check-express-or::before,
.site-check-express-or::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--stroke);
}
.site-check-express-or span {
  flex: 0 0 auto;
}
.site-check-express-or.is-lead,
.site-check-express-or.is-after {
  margin-bottom: 0;
}
.site-check-express-or.is-lead {
  margin-top: 0;
  margin-bottom: 1rem;
}
.site-check-express-or.is-after {
  margin-top: 1rem;
}
.site-check-error {
  margin: 0 0 .8rem;
  color: var(--crimson);
  font-size: .92rem;
}
.site-check-pay-btn {
  width: 100%;
  min-height: 3.2rem;
  font-size: 1.05rem;
  background: var(--lime);
  color: #06140c;
}
.site-check-pay-btn:hover,
.site-check-pay-btn:focus-visible {
  background: color-mix(in srgb, var(--lime) 86%, #fff);
  color: #06140c;
}
.site-check-pay-btn:disabled,
.site-check-pay-btn[disabled] {
  background: color-mix(in srgb, var(--lime) 28%, #1a1a1a);
  color: color-mix(in srgb, #06140c 55%, var(--dim));
  cursor: not-allowed;
}
.site-check-trust {
  list-style: none;
  margin: .9rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem .75rem;
}
.site-check-trust li {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.35;
}
.site-check-trust .site-check-ico {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin: 0 !important;
  color: var(--dim);
}
.site-check-trust li > span {
  min-width: 0;
}
@media (max-width: 700px) {
  .site-check-trust {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem .45rem;
  }
  .site-check-trust li {
    font-size: .65rem;
    align-items: flex-start;
  }
  .site-check-trust .site-check-ico {
    margin-top: .12em !important;
  }
}
.site-check-legal {
  margin: .75rem 0 0;
  text-align: center;
  font-size: .8rem;
  color: var(--dim);
}
.site-check-legal a { color: var(--ink); border-bottom: 1px solid var(--stroke); }
.site-check-sum {
  position: sticky;
  top: calc(var(--header-h) + .8rem);
  align-self: start;
  z-index: 2;
  min-width: 0;
  isolation: isolate;
}
.site-check-sum-toggle {
  display: none;
}
.site-check-sum-body {
  display: block;
}
@media (min-width: 901px) {
  .site-check-sum {
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - var(--header-h) - 1.6rem);
    padding-right: .55rem;
    overflow: hidden;
  }
  .site-check-sum-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }
  .site-check-sum-body > * {
    flex-shrink: 0;
  }
  .site-check-sum-body > :not(.site-check-lines) {
    margin-right: .8rem;
  }
  .site-check-sum .site-check-lines {
    flex-shrink: 1;
    min-height: 0;
    margin-right: 0;
    padding-right: .8rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--stroke) transparent;
  }
  .site-check-sum .site-check-lines::-webkit-scrollbar {
    width: 3px;
  }
  .site-check-sum .site-check-lines::-webkit-scrollbar-track {
    background: transparent;
  }
  .site-check-sum .site-check-lines::-webkit-scrollbar-thumb {
    background: var(--stroke);
    border-radius: 999px;
  }
  .site-check-sum .site-check-lines::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.32);
  }
}
.site-check-sum-anchor {
  display: none;
}
.site-check-sum-chevron {
  display: none;
}
.site-check-lines {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  overflow: visible;
}
.site-check-lines li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  margin: 0 0 .8rem;
  padding: 0 0 .8rem;
  border-bottom: 1px solid var(--stroke);
  overflow: visible;
}
.site-check-thumb {
  display: block;
  width: 3.5rem;
  flex: 0 0 auto;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  box-sizing: border-box;
  line-height: 0;
}
.site-check-thumb img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 0;
}
.site-check-line-name {
  margin: 0;
  font-family: var(--serif);
  font-size: 20px;
  color: var(--ink);
}
.site-check-line-copy { min-width: 0; }
.site-check-stepper {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin: .45rem 0 0;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  border-radius: 2px;
  overflow: hidden;
  width: fit-content;
  max-width: 100%;
}
.site-check-stepper.is-busy { opacity: .7; pointer-events: none; }
.site-check-stepper-btn {
  box-sizing: border-box;
  min-width: 36px;
  min-height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--dim);
  font: inherit;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.site-check-stepper-btn:hover:not(:disabled),
.site-check-stepper-btn:focus-visible:not(:disabled) {
  color: var(--crimson);
  background: color-mix(in srgb, var(--crimson) 12%, transparent);
  outline: none;
}
.site-check-stepper-btn:active:not(:disabled) {
  color: #fff;
  background: color-mix(in srgb, var(--crimson) 28%, transparent);
}
.site-check-stepper-btn:disabled {
  opacity: .35;
  cursor: not-allowed;
}
.site-check-stepper-val {
  min-width: 2rem;
  padding: 0 .35rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  font-size: .95rem;
}
.site-check-qty-nudge-wrap {
  display: grid;
  grid-template-rows: 0fr;
  margin: 0;
  transition: grid-template-rows .42s cubic-bezier(.22, 1, .36, 1);
}
.site-check-qty-nudge-wrap.is-open {
  grid-template-rows: 1fr;
  margin: 0 0 .85rem;
}
.site-check-qty-nudge-slot {
  overflow: hidden;
  min-height: 0;
}
.site-check-qty-nudge {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  margin: 0;
  padding: .65rem .75rem;
  border: 1px solid color-mix(in srgb, var(--stroke) 80%, #000);
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.28);
  color: #eae3d2;
  font-size: .8rem;
  line-height: 1.4;
  opacity: 0;
  transform: translateY(.65rem);
  transition:
    opacity .35s ease,
    transform .42s cubic-bezier(.22, 1, .36, 1),
    color .25s ease,
    background .25s ease,
    border-color .25s ease;
}
.site-check-qty-nudge-wrap.is-open .site-check-qty-nudge {
  opacity: 1;
  transform: translateY(0);
}
.site-check-qty-nudge > .site-check-ico {
  flex: none;
  display: none;
  width: 1em;
  height: 1em;
  margin: calc((1.4em - 1em) / 2) 0 0;
  color: #eae3d2;
}
.site-check-qty-nudge.is-stage-1 > .site-check-ico[data-nudge-ico="truck-delivery"],
.site-check-qty-nudge.is-stage-2 > .site-check-ico[data-nudge-ico="bolt"],
.site-check-qty-nudge.is-unlocked > .site-check-ico[data-nudge-ico="rosette-discount-check"],
.site-check-qty-nudge.is-stage-1 > .site-check-ico[data-nudge-ico="stack"],
.site-check-qty-nudge.is-unlocked > .site-check-ico[data-nudge-ico="check"],
.site-check-qty-nudge.is-stage-1 > .site-check-ico[data-nudge-ico="file-type-pdf"],
.site-check-qty-nudge[data-site-dossiers-nudge].is-unlocked > .site-check-ico[data-nudge-ico="check"] {
  display: block;
}
.site-check-qty-nudge-main {
  display: grid;
  gap: .4rem;
  min-width: 0;
  flex: 1;
}
.site-check-qty-nudge-copy {
  margin: 0;
  color: #eae3d2;
}
.site-check-qty-nudge[data-site-dossiers-nudge] .site-check-qty-nudge-copy {
  text-align: center;
}
.site-check-qty-nudge-meter {
  position: relative;
  width: 100%;
  height: .63rem;
  overflow: hidden;
  border: 1px solid var(--stroke);
  background: rgba(0, 0, 0, 0.35);
}
.site-check-qty-nudge-meter-fill {
  display: block;
  height: 100%;
  width: 0;
  background: var(--lime);
  transition: width .4s cubic-bezier(.22, 1, .36, 1), background .25s ease;
}
.site-check-qty-nudge.is-unlocked {
  color: #eae3d2;
  background: var(--lime-fill);
  border-color: var(--lime-border);
}
.site-check-qty-nudge.is-unlocked > .site-check-ico {
  color: var(--lime);
}
.site-check-qty-nudge.is-stage-2 > .site-check-ico {
  color: #eae3d2;
}
.site-check-qty-nudge.is-unlocked .site-check-qty-nudge-copy {
  color: #eae3d2;
}
.site-check-qty-nudge.is-unlocked .site-check-qty-nudge-meter {
  border-color: var(--lime-border);
}
.site-check-qty-nudge.is-unlocked .site-check-qty-nudge-meter-fill {
  background: var(--lime);
}
.site-check-qty-nudge-lead {
  color: #eae3d2;
  font-weight: 400;
}
.site-check-qty-nudge-reward,
.site-check-qty-nudge-save {
  color: var(--lime);
  font-weight: 700;
}
.site-check-qty-nudge-lime {
  color: var(--lime);
  font-weight: 700;
}
.site-check-ship-price.is-free,
.site-check-line-sum.is-free,
.site-check-totals.is-set .is-fee dd[data-site-ship-total].is-free,
.site-check-totals .is-fee dd[data-site-ship-total].is-free {
  color: var(--lime);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.site-check-totals.is-set .is-fee dd[data-site-ship-total].is-free > span,
.site-check-totals .is-fee dd[data-site-ship-total].is-free > span,
.site-check-ship-price.is-free > span,
.site-check-totals .is-fee dd .is-free-label,
.site-check-ship-price .is-free-label,
.site-check-country-fee-amount .is-free-label {
  color: var(--lime);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.site-check-ship-price .site-check-ship-was,
[data-site-ship-total] .site-check-ship-was,
.site-check-country-fee-amount .site-check-ship-was {
  margin-right: .15em;
  color: var(--dim);
  font-size: inherit;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.site-check-price-fade {
  transition: opacity .28s ease;
}
.site-check-price-fade.is-pulse {
  animation: site-check-price-pulse .45s ease;
}
@keyframes site-check-price-pulse {
  0% { opacity: .35; }
  100% { opacity: 1; }
}
.site-check-line-meta { margin: .15rem 0 0; color: var(--dim); font-size: .82rem; }
.site-check-line-prices {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .15rem;
  margin: 0;
}
.site-check-line-was {
  margin: 0;
  font-size: .78rem;
  color: var(--dim);
  font-variant-numeric: tabular-nums;
}
.site-check-line-was s {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.site-check-line-sum { margin: 0; color: var(--ink); font-variant-numeric: tabular-nums; }
.site-check-lines li.is-gift {
  align-items: center;
}
.site-check-lines li.is-bump {
  align-items: center;
}
.site-check-lines li[hidden] {
  display: none !important;
}
.site-check-thumb--gift,
.site-check-thumb--bump {
  display: grid;
  place-items: center;
  width: 3.5rem;
  aspect-ratio: var(--tarot);
  color: var(--crimson);
  background:
    linear-gradient(160deg, color-mix(in srgb, var(--crimson) 16%, #0e0c0c), #0e0c0c);
}
.site-check-thumb--bump svg,
.site-check-thumb--bump [data-bump-ico] {
  display: none;
  width: 22px;
  height: 22px;
  color: inherit;
  stroke: currentColor;
}
.site-check-thumb--bump [data-bump-ico].is-on {
  display: block;
}
.site-check-save {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem .45rem;
  margin: .85rem 0 0;
  padding: .7rem .85rem;
  border: 1px solid var(--lime-border);
  background: var(--lime-fill);
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.4;
}
.site-check-save > .site-check-ico {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  color: var(--dim);
  stroke: currentColor;
}
.site-check-save strong {
  color: var(--lime);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
/* Desktop: flash is mobile-only. Mobile styles live in the 900px block. */
.site-check-save-flash {
  display: none;
}
.site-check-totals { margin: 0 0 1.1rem; }
.site-check-totals > div:not(.site-check-customs):not(.site-check-ship-fee) {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 .4rem;
  color: var(--muted);
  font-size: .92rem;
}
.site-check-totals dt,
.site-check-totals dd { margin: 0; }
.site-check-totals dd { text-align: right; font-variant-numeric: tabular-nums; }
.site-check-totals > div.is-total:not(.site-check-customs):not(.site-check-ship-fee) {
  margin-top: .7rem;
  padding-top: .7rem;
  border-top: 1px solid var(--stroke);
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
}
.site-check-eur-approx {
  color: var(--dim);
  font-weight: 400;
}
.site-check-eur-sep {
  display: inline-block;
  padding: 0 .7rem;
  color: var(--dim);
  font-weight: 400;
  position: relative;
  top: -2px;
}
.site-check-ico { flex: 0 0 auto; margin-top: .12rem; color: var(--crimson); }
@media (max-width: 900px) {
  /* Default only — JS overwrites with the measured navbar bottom.
     Keep this on :root so body does not shadow a measured html value. */
  :root:has(body.is-site-checkout) {
    --check-bar-h: calc(3.05rem + env(safe-area-inset-top, 0px));
  }
  body.is-site-checkout .site-header {
    display: none;
  }
  body.is-site-checkout .site-check-head {
    display: none;
  }
  body.is-site-checkout .site-check {
    padding-top: var(--check-bar-h);
    /* overflow clip on an ancestor breaks position:fixed for the summary panel */
    overflow: visible;
  }
  .site-check-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 70;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    /* Height comes from padding + content — do not size from --check-bar-h
       (that var is only the offset for the summary sheet below this bar). */
    min-height: 0;
    margin: 0;
    padding: calc(.55rem + env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px)) .55rem max(1rem, env(safe-area-inset-left, 0px));
    border-bottom: 0;
    background: var(--bg);
    box-sizing: border-box;
  }
  .site-check-bar-brand {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    flex: 0 1 auto;
    min-width: 0;
    line-height: 0;
    color: var(--ink);
  }
  .site-check-bar-logo {
    display: block;
    height: 1.7rem;
    width: auto;
  }
  .site-check-bar-word {
    font-family: var(--serif);
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .site-check-bar-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2.4rem;
    height: 2.4rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
  }
  .site-check-bar-cart-count {
    position: absolute;
    top: .15rem;
    right: .05rem;
    min-width: 1rem;
    height: 1rem;
    padding: 0 .22rem;
    border-radius: 999px;
    background: var(--crimson);
    color: #fff;
    font-size: .62rem;
    font-weight: 600;
    line-height: 1rem;
    text-align: center;
  }
  .site-check-express {
    padding-top: 0;
  }
  .site-check-express-or.is-lead {
    margin: .35rem 0 .85rem;
  }
  .site-check-express-or.is-after {
    display: none;
  }
  .site-check-card,
  .site-check-card.site-check-bump {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .site-check-form {
    gap: 1.5rem;
  }
  .site-check-stepper,
  .site-check-stepper-btn {
    position: relative;
    z-index: 5;
    pointer-events: auto !important;
    touch-action: manipulation;
  }
  .site-check-stepper-btn {
    min-width: 44px;
    min-height: 44px;
  }
  .country-select.is-pick-only .country-select-search {
    cursor: pointer;
    caret-color: transparent;
  }
  .site-check-layout,
  .site-check-grid,
  .site-check-local { grid-template-columns: 1fr; }
  .site-check-layout {
    display: flex;
    flex-direction: column;
  }
  .site-check-grid { gap: .8rem 0; }
  .site-check-grid > .country-select > .country-select-label { margin-top: 0; }
  .site-check-country-fees {
    display: grid;
    gap: .35rem;
    margin: .35rem 0 .15rem;
    padding: 0;
    border: 0;
    background: transparent;
    opacity: 0;
    transform: translateY(.35rem);
  }
  /* Fees live inside the selected ship <label> — keep method/price on one row with the radio,
     then stack only the └ note (and customs) underneath. */
  .site-check-form .site-check-ship label {
    flex-wrap: wrap;
    align-items: center;
  }
  .site-check-form .site-check-ship label > input[type="radio"] {
    align-self: center;
  }
  .site-check-ship .site-check-ship-title {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .site-check-ship .site-check-ship-price {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
    text-align: right;
  }
  .site-check-form .site-check-ship label > .site-check-country-fees {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    order: 10;
    margin: .12rem 0 0;
    padding-left: 0;
    box-sizing: border-box;
  }
  /* Hide the repeated shipping line when there is no tax/customs breakdown. */
  .site-check-form .site-check-ship label > .site-check-country-fees:not(:has([data-site-country-customs-line]:not([hidden]))) [data-site-country-ship-line] {
    display: none !important;
  }
  /* EU / any area with both shipping + taxes: show the shipping price line too. */
  .site-check-form .site-check-ship label > .site-check-country-fees:has([data-site-country-customs-line]:not([hidden])) [data-site-country-ship-line] {
    display: flex !important;
  }
  .site-check-country-fees[hidden] {
    display: none !important;
  }
  .site-check-country-fees.is-in {
    opacity: 1;
    transform: translateY(0);
    animation: site-check-country-fees-in .45s ease both;
  }
  @keyframes site-check-country-fees-in {
    from {
      opacity: 0;
      transform: translateY(.35rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  .site-check-country-fee-line {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    color: var(--muted);
    font-size: .92rem;
  }
  .site-check-country-fee-line[hidden] {
    display: none !important;
  }
  .site-check-country-fee-label {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--muted);
    font-size: .92rem;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
  }
  .site-check-country-fee-amount {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: .92rem;
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    text-align: right;
  }
  .site-check-country-fee-amount.is-free {
    color: var(--lime);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .site-check-country-fee-rate {
    display: flex;
    align-items: flex-start;
    gap: .35rem;
    margin: 0;
    width: 100%;
    padding: 0;
  }
  .site-check-country-fee-rate .site-check-rate-branch {
    flex: none;
    line-height: 1.35;
    margin: 0;
    padding: 0;
  }
  .site-check-country-fee-rate > .site-check-ico {
    flex: none;
    width: 18px;
    height: 18px;
    margin: 0 !important;
    transform: translateY(-2px);
    color: var(--lime);
  }
  .site-check-country-fee-rate [data-site-country-ship-rate-text],
  .site-check-country-fee-rate [data-site-country-customs-rate-text] {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
  }
  .site-check-country-fees .site-check-country-fee-rate[hidden] {
    display: none !important;
  }
  .site-check-save-flash {
    position: fixed;
    top: calc(var(--check-bar-h) + 3.35rem);
    left: 0;
    right: 0;
    z-index: 55;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 1.05rem 1rem .75rem;
    border: 0;
    border-bottom: 1px solid var(--lime-border);
    background: color-mix(in srgb, var(--lime) 16%, #121010);
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.35;
    box-shadow: none;
    box-sizing: border-box;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-.4rem);
    transition: opacity .32s ease, transform .32s ease;
  }
  .site-check-save-flash[hidden] {
    display: none !important;
  }
  .site-check-save-flash.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  .site-check-save-flash strong {
    color: var(--lime);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
  }
  .site-check-save-flash svg,
  .site-check-save-flash .site-check-ico {
    flex: 0 0 auto;
    width: 1.05rem;
    height: 1.05rem;
    margin: 0;
    color: var(--dim);
    stroke: currentColor;
  }
  .site-check-sum-anchor {
    display: block;
    height: 3.35rem;
    margin: 0 0 1.55rem;
  }
  /* Drawer totals: keep shipping/customs price in the right money column under Subtotal. */
  .site-check-sum .site-check-ship-fee .site-check-fee-line,
  .site-check-sum .site-check-customs .site-check-fee-line {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
  }
  .site-check-sum .site-check-ship-fee .site-check-fee-line dd,
  .site-check-sum .site-check-customs .site-check-fee-line dd {
    text-align: right;
  }
  .site-check-sum .site-check-totals .site-check-rate {
    align-items: flex-start;
  }
  .site-check-sum .site-check-totals .site-check-rate [data-site-rate-text] {
    min-width: 0;
  }
  .site-check-sum {
    position: fixed;
    top: var(--check-bar-h);
    left: 0;
    right: 0;
    z-index: 60;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 2px solid var(--stroke);
    border-radius: 0;
    background: color-mix(in srgb, var(--panel) 96%, #000);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
    box-sizing: border-box;
    pointer-events: auto;
  }
  .site-check-sum.is-open {
    bottom: 0;
    height: calc(100dvh - var(--check-bar-h));
    max-height: calc(100dvh - var(--check-bar-h));
  }
  .site-check-sum.is-total-pulse {
    animation: site-check-sum-pulse .85s ease;
  }
  .site-check-sum-toggle-now.is-total-pulse {
    animation: site-check-sum-total-pulse .85s ease;
  }
  .site-check-sum-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex: 0 0 auto;
    width: 100%;
    min-height: 3.35rem;
    margin: 0;
    padding: .7rem max(1.25rem, env(safe-area-inset-right, 0px)) .7rem max(1.25rem, env(safe-area-inset-left, 0px));
    border: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: .95rem;
    font-weight: 500;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    cursor: pointer;
    box-sizing: border-box;
    touch-action: manipulation;
  }
  .site-check-sum-toggle-lead {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    flex: 1 1 auto;
    min-width: 0;
  }
  .site-check-sum-toggle-label {
    color: var(--muted);
    font-weight: 400;
  }
  .site-check-sum-chevron {
    display: block;
    flex: 0 0 auto;
    width: 1.05rem;
    height: 1.05rem;
    color: var(--muted);
    transition: transform .2s ease;
  }
  .site-check-sum.is-open .site-check-sum-chevron {
    transform: rotate(180deg);
  }
  .site-check-sum-toggle-total {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .1rem;
    flex: 0 0 auto;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    line-height: 1.15;
  }
  .site-check-sum-toggle-was {
    color: var(--dim);
    font-size: .72rem;
    font-weight: 400;
    text-decoration: line-through;
  }
  .site-check-sum-toggle-was[hidden] {
    display: none !important;
  }
  .site-check-sum-toggle-now {
    font-size: 1.05rem;
    font-weight: 600;
  }
  .site-check-sum-toggle-now .site-check-eur-approx {
    font-size: .78rem;
    font-weight: 500;
    color: var(--dim);
  }
  .site-check-sum-toggle-now .site-check-eur-sep {
    padding: 0 .4rem;
    font-size: .72rem;
    font-weight: 400;
  }
  .site-check-sum-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 1.25rem max(1.25rem, env(safe-area-inset-right, 0px)) 1.15rem max(1.25rem, env(safe-area-inset-left, 0px));
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    border-top: 1px solid var(--stroke);
    background: color-mix(in srgb, var(--panel) 96%, #000);
  }
  .site-check-sum.is-open .site-check-sum-body {
    display: block !important;
  }
  .site-check-sum.is-open .site-check-sum-body[hidden] {
    display: block !important;
  }
  /* closed on mobile */
  .site-check-sum:not(.is-open) .site-check-sum-body,
  .site-check-sum:not(.is-open) .site-check-sum-body[hidden] {
    display: none !important;
  }
  .site-check-sum-body > h2 {
    display: none;
  }
}
@keyframes site-check-sum-pulse {
  0% {
    border-width: 2px;
    border-style: solid;
    border-color: var(--lime);
    box-shadow:
      0 0 0 0 color-mix(in srgb, var(--lime) 45%, transparent),
      0 8px 20px rgba(0, 0, 0, .35);
  }
  40% {
    border-width: 2px;
    border-style: solid;
    border-color: var(--lime);
    box-shadow:
      0 0 0 4px color-mix(in srgb, var(--lime) 22%, transparent),
      0 8px 20px rgba(0, 0, 0, .35);
  }
  100% {
    border-width: 2px;
    border-style: solid;
    border-color: var(--stroke);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
  }
}
@keyframes site-check-sum-total-pulse {
  0% {
    color: var(--lime);
  }
  40% {
    color: var(--lime);
  }
  100% {
    color: var(--ink);
  }
}
.cta-play-buy form[data-cart-add]:not(.product-buy-form) { margin-top: auto; }
.cta-play-buy form[data-cart-add]:not(.product-buy-form) .btn { width: 100%; }
@media (prefers-reduced-motion: reduce) {
  .cart-backdrop,
  .cart-drawer { transition: none; }
  .site-check-rate,
  .site-check-totals [data-site-fee-row] dd,
  .country-select-combo::after,
  .site-check-qty-nudge-wrap,
  .site-check-qty-nudge,
  .site-check-country-fees {
    transition: none !important;
    animation: none !important;
    transform: none !important;
    filter: none !important;
  }
  .site-check-country-fees.is-in {
    opacity: 1;
    transform: none;
  }
  .site-check-qty-nudge-wrap.is-open .site-check-qty-nudge {
    opacity: 1;
    transform: none;
  }
  .site-check-sum-chevron {
    transition: none !important;
  }
  .site-check-sum.is-total-pulse {
    animation: none !important;
  }
  .site-check-save-flash {
    transition: none !important;
    transform: translateY(0) !important;
  }
  .site-check-save-flash.is-visible {
    opacity: 1;
  }
  .site-check-sum-toggle-now.is-total-pulse {
    animation: none !important;
  }
  .site-check-totals.is-calc [data-site-fee-row]::after { display: none; }
  .site-check-ship-wrap.is-calc .site-check-ship-price::after { display: none; }
  .site-check-ok {
    transition: opacity .15s ease;
    transform: translateY(-50%) scale(0);
  }
  .site-check-field.is-valid > .site-check-control > .site-check-ok,
  .country-select.is-valid > .site-check-control > .site-check-ok {
    transform: translateY(-50%) scale(1);
  }
}

.product-hero-section.section {
  position: relative;
  padding-top: 2.2rem;
  background:
    radial-gradient(68% 90% at 100% 12%, color-mix(in srgb, var(--crimson) 8%, transparent), transparent 58%),
    radial-gradient(52% 70% at 6% 88%, color-mix(in srgb, var(--ink) 5%, transparent), transparent 62%);
}
.product-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2.4rem;
  align-items: start;
  justify-items: start;
}
.product-gallery {
  --gallery-gap: .42rem;
  --gallery-visible: 5;
  --gallery-main: 27.5rem;
  --gallery-main-h: calc(var(--gallery-main) * 1.7);
  --gallery-thumb-h: calc((var(--gallery-main-h) - (var(--gallery-visible) - 1) * var(--gallery-gap)) / var(--gallery-visible));
  --gallery-thumb: calc(var(--gallery-thumb-h) / 1.7);
  --gallery-stack: var(--gallery-main-h);
  display: grid;
  grid-template-columns: var(--gallery-main) var(--gallery-thumb);
  gap: .55rem;
  align-items: start;
  justify-self: start;
  margin: 0;
  padding: 0;
}
.product-gallery-main {
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
  width: var(--gallery-main);
  max-width: 100%;
  aspect-ratio: var(--tarot);
  overflow: hidden;
  border: 0;
  background: none;
  box-shadow: none;
}
.product-gallery-main [data-gallery-layer] {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background-color: transparent;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  pointer-events: none;
}
.product-gallery-main [data-gallery-layer].is-front {
  opacity: 1;
}
.product-gallery-rail {
  position: relative;
  width: var(--gallery-thumb);
  height: var(--gallery-main-h);
  min-height: 0;
}
.product-gallery-thumbs {
  overflow: hidden;
  height: 100%;
  max-height: var(--gallery-stack);
  scrollbar-width: none;
}
.product-gallery-thumbs::-webkit-scrollbar { display: none; }
.product-gallery-track {
  display: grid;
  gap: var(--gallery-gap);
  grid-auto-rows: var(--gallery-thumb-h);
  transition: transform .32s ease;
}
.product-gallery-nav {
  position: absolute;
  left: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  padding: 0;
  border: 0;
  background: rgba(10, 10, 10, .52);
  color: var(--ink);
  cursor: pointer;
  opacity: .62;
  transform: translateX(-50%);
  transition: opacity .2s ease, background .2s ease, color .2s ease;
}
.product-gallery-nav.is-up { top: .22rem; }
.product-gallery-nav.is-down { bottom: .22rem; }
.product-gallery-nav svg { width: 15px; height: 15px; }
.product-gallery-rail:hover .product-gallery-nav:not(:disabled),
.product-gallery-nav:focus-visible:not(:disabled) {
  opacity: .95;
}
.product-gallery-nav:hover,
.product-gallery-nav:focus-visible {
  background: rgba(10, 10, 10, .82);
  color: #fff;
}
.product-gallery-nav:disabled {
  opacity: 0;
  pointer-events: none;
}
.product-gallery-thumb {
  appearance: none;
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: var(--tarot);
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: none;
  border: 0;
  cursor: pointer;
  outline: 1px solid transparent;
  outline-offset: -1px;
}
.product-gallery-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .75;
}
.product-gallery-thumb:hover img,
.product-gallery-thumb:focus-visible img { opacity: 1; }
.product-gallery-thumb.is-on {
  outline-color: color-mix(in srgb, var(--crimson) 70%, var(--stroke));
}
.product-gallery-thumb.is-on img { opacity: 1; }
.product-buybox {
  background: none;
  border: 0;
  padding: 0;
}
.product-buybox h1 {
  font-size: clamp(1.9rem, 3.4vw, 2.7rem);
  margin: 0 0 1rem;
}
.product-buybox .product-price {
  font-size: clamp(2.6rem, 5vw, 3.35rem);
}
.product-tagline {
  color: var(--muted);
  font-size: 19px;
  line-height: 1.6;
  margin: .15rem 0 1.2rem;
}
.product-tagline a {
  color: var(--muted);
  border-bottom: 1px solid var(--crimson);
}
.product-tagline a:hover { color: var(--crimson); }
.product-points {
  list-style: none;
  margin: 0 0 1.3rem;
  padding: 0;
}
.product-points li {
  position: relative;
  margin: 0 0 .55rem;
  padding-left: 1.5rem;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.45;
}
.product-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .42em;
  width: .55rem;
  height: .32rem;
  border-left: 2px solid var(--crimson);
  border-bottom: 2px solid var(--crimson);
  transform: rotate(-45deg);
}
.product-points strong { color: var(--ink); }
.product-price-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .4rem;
  margin: 0 0 1.15rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--stroke);
}
.product-price-main {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
}
.product-price {
  font-family: var(--serif);
  font-size: clamp(2.35rem, 4.4vw, 3.05rem);
  font-weight: 600;
  line-height: .95;
  letter-spacing: -.03em;
  color: var(--ink);
}
.product-price-row.is-sale .product-price {
  color: #fff;
}
.product-off {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.7rem;
  padding: .38rem .58rem;
  border-radius: 999px;
  background: var(--crimson);
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1;
}
.product-price-meta {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: .55rem 0 0;
  padding: 0;
}
.product-price-was {
  color: var(--dim);
  font-size: 1.05rem;
  font-weight: 400;
}
.product-stock.is-preorder { color: #c4a574; }
.product-contents { margin: 0 0 1.4rem; }
.product-stock {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: #7fbf7f;
  font-size: .85rem;
  letter-spacing: .04em;
  line-height: 1.2;
}
.product-stock svg {
  display: block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
}
.product-stock > span {
  display: block;
  line-height: 1.2;
}
.product-buy-form {
  display: flex;
  gap: .7rem;
  align-items: stretch;
  margin: 0 0 1.3rem;
}
.qty-stepper {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  flex-shrink: 0;
}
.qty-stepper button {
  width: 2.6rem;
  background: none;
  border: 0;
  color: var(--ink);
  font: inherit;
  font-size: 1.15rem;
  cursor: pointer;
}
.qty-stepper button:hover,
.qty-stepper button:focus-visible { color: var(--crimson); }
.qty-stepper input {
  width: 2.6rem;
  max-width: none;
  padding: 0;
  text-align: center;
  background: none;
  border: 0;
  border-inline: 1px solid var(--stroke);
  color: var(--ink);
  font: inherit;
  -moz-appearance: textfield;
  appearance: textfield;
}
.qty-stepper input::-webkit-outer-spin-button,
.qty-stepper input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.product-buy-btn { flex: 1; }
.product-buy-btn > svg,
.buy-cta .btn > svg,
.product-notify-form .btn > svg {
  translate: none;
}
.product-trust {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 1rem;
  row-gap: .85rem;
  margin: 0;
  padding: 1.05rem 0 0;
  border-top: 1px solid var(--stroke);
}
.product-trust li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: 0;
  background: none;
  border: 0;
  font-size: .8rem;
  color: var(--dim);
  line-height: 1.35;
}
.product-trust svg { color: var(--crimson); flex-shrink: 0; margin-top: .12rem; }
.product-trust strong {
  display: block;
  color: var(--muted);
  font-weight: 600;
  font-size: .82rem;
  margin-bottom: .08rem;
}
.product-notify {
  margin: 0 0 1.3rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--stroke);
  scroll-margin-top: calc(var(--header-h) + .75rem);
}
.product-notify-status {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin: 0 0 1rem;
}
.product-notify-status-icon {
  display: block;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  color: #c4a574;
}
.product-notify-status-copy {
  min-width: 0;
}
.product-notify-status strong {
  display: block;
  color: #c4a574;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: .35rem;
}
.product-notify-status p {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.45;
}
.product-notify-form {
  display: flex;
  flex-direction: column;
  gap: 1.05rem;
  margin: 0;
}
.product-notify-fields {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.product-notify-form input[type="email"] {
  max-width: none;
  margin: 0;
  border-color: color-mix(in srgb, var(--crimson) 48%, var(--stroke));
}
.product-notify-form .btn {
  width: 100%;
  margin-top: 0;
}
.product-notify-form .form label.checkout-confirm.product-notify-agree,
.product-notify-form label.product-notify-agree {
  margin: 0;
}
.cta-play-buy .product-notify {
  margin-top: auto;
  margin-bottom: 0;
}
.product-notify-ok {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1rem 1.05rem;
  border: 1px solid color-mix(in srgb, #3d9a6a 58%, var(--stroke));
  background: rgba(61, 154, 106, .14);
}
.product-notify-ok-mark {
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #3d9a6a;
  color: #0c1210;
}
.product-notify-ok-mark svg {
  display: block;
}
.product-notify-ok p {
  margin: .15rem 0 0;
  color: #c8ead4;
  font-size: .98rem;
  line-height: 1.45;
}
.product-notify-error {
  margin: 0;
  color: #ee7a7a;
  font-size: .9rem;
  line-height: 1.4;
}

.nl-capture {
  position: relative;
  margin: 2.2rem 0 0;
  padding: 1.6rem 1.45rem 1.5rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--crimson) 46%, var(--stroke));
  background:
    radial-gradient(80% 70% at 0% 0%, color-mix(in srgb, var(--crimson) 10%, transparent), transparent 56%),
    var(--panel);
  scroll-margin-top: calc(var(--header-h) + .75rem);
}
.nl-capture-mark {
  width: 2.4rem;
  height: 2.4rem;
  display: grid;
  place-items: center;
  margin: 0 0 .85rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--crimson) 18%, #140e0e);
  color: #f3c3c3;
  border: 1px solid color-mix(in srgb, var(--crimson) 40%, var(--stroke));
}
.nl-capture-mark svg { width: 1.15rem; height: 1.15rem; }
.nl-capture-kicker {
  margin: 0 0 .45rem;
  color: var(--crimson);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.nl-capture h2 {
  margin: 0 0 .65rem;
  font-family: var(--serif);
  font-size: clamp(1.65rem, 4vw, 2.2rem);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: -.02em;
  color: var(--ink);
}
.nl-capture-lede {
  margin: 0 0 1.15rem;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.5;
}
.nl-capture-perks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  list-style: none;
  margin: 0 0 1.2rem;
  padding: 0;
  color: var(--ink);
}
.nl-capture-perks li {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  padding: .5rem .65rem;
  background: rgba(10, 8, 8, .28);
  border: 1px solid var(--stroke);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .05em;
  line-height: 1;
  text-transform: uppercase;
}
.nl-capture-perks span {
  display: block;
  line-height: 1.15;
}
.nl-capture-perks svg {
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--crimson);
}
.nl-capture-form {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  margin: 0;
}
.nl-capture-form input[type="email"] {
  max-width: none;
  margin: 0;
  border-color: var(--stroke);
  background: #0e0c0c;
}
.nl-capture-form .btn {
  width: 100%;
  margin-top: .5rem;
  padding: 1rem 1.2rem;
  font-size: .92rem;
  line-height: 1;
  letter-spacing: .08em;
  white-space: normal;
}
.nl-capture-form .btn > svg {
  display: block;
  width: 18px;
  height: 18px;
  translate: none;
}
.nl-capture-form .btn > span {
  display: block;
  line-height: 1;
}
.nl-capture-form .form label.checkout-confirm.nl-capture-agree,
.nl-capture-form label.nl-capture-agree {
  align-items: center;
  margin: .1rem 0 .15rem;
  font-size: .86rem;
  line-height: 1.35;
  color: var(--muted);
}
.nl-capture-form label.nl-capture-agree input {
  margin: 0;
}
@media (max-width: 720px) {
  .nl-capture-form .form label.checkout-confirm.nl-capture-agree,
  .nl-capture-form label.nl-capture-agree {
    align-items: flex-start;
  }
}
.nl-capture-error {
  margin: 0;
  color: #ee7a7a;
  font-size: .9rem;
}
.nl-capture-ok {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}
.nl-capture-ok-mark {
  width: 2.4rem;
  height: 2.4rem;
  display: grid;
  place-items: center;
  margin: 0 0 .85rem;
  border-radius: 50%;
  background: #3d9a6a;
  color: #0c1210;
}
.nl-capture-ok-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .55rem;
  width: 100%;
  max-width: 22rem;
  margin: 0;
}
.nl-capture-ok-actions .btn {
  margin: 0;
  width: 100%;
}
.nl-capture-ok .btn > svg {
  display: block;
  translate: none;
}
.nl-capture-ok .btn > span { display: block; line-height: 1; }
.nl-capture-ok .nl-capture-lede { margin-bottom: .85rem; }
.nl-capture + .docs-block {
  margin-top: 2.6rem;
  padding-top: 2.2rem;
  border-top: 1px solid var(--stroke);
}
.docs-block + .nl-capture {
  margin-top: 2.2rem;
}
.docs-article .nl-capture a.btn { border-bottom: 0; }
.faq-page .nl-capture {
  max-width: 46rem;
}
.faq-page-list .nl-capture {
  margin: 1.35rem 0 1.85rem;
}

.product-trust-strip {
  border-top: 1px solid var(--stroke);
  background:
    radial-gradient(70% 90% at 50% 0%, color-mix(in srgb, var(--crimson) 3%, transparent), transparent 58%),
    linear-gradient(180deg, #161111 0%, var(--panel) 55%, #141010 100%);
  padding: 2.2rem 0;
}
.product-trust-strip-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem 2.6rem;
}
.product-trust-strip-grid > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}
.product-trust-strip-grid svg {
  width: 3.6rem;
  height: 3.6rem;
  margin-bottom: .7rem;
  color: var(--crimson);
  stroke-width: 1.45;
}
.product-trust-strip-grid svg.icon-laurel {
  stroke-width: 1.2;
}
.product-trust-strip-grid strong {
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.15;
  margin: 0 0 .45rem;
}
.product-trust-strip-grid span {
  color: var(--muted);
  font-size: 1em;
  line-height: 1.6;
}

.buy-cta { display: inline-block; }
.buy-cta .btn { gap: .55rem; }
.buy-cta-inline { margin-top: 1.3rem; }
.buy-cta-center {
  display: flex;
  justify-content: center;
  margin-top: 2.2rem;
}

.product-deck {
  padding: 3.4rem 0 3.2rem;
  border-block: 1px solid var(--stroke);
  background: var(--bg-2);
}
.product-deck-head {
  text-align: center;
  margin-bottom: 1.4rem;
}
.product-deck-head h2 { margin-bottom: 1rem; }
.product-deck-head .lead {
  margin: 0 auto;
  max-width: 46rem;
}
.product-tags {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto .8rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--crimson);
  text-align: center;
  font-size: .72rem;
  letter-spacing: .22em;
  line-height: 1.35;
  text-transform: uppercase;
}
.product-tag {
  display: inline;
  white-space: nowrap;
  font-size: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-transform: inherit;
}
.product-tag + .product-tag::before {
  content: "·";
  display: inline;
  margin: 0 .45em;
  letter-spacing: 0;
}
.product-marquee {
  padding: .2rem 0 1.8rem;
  overflow: hidden;
}
.product-deck-inside-kicker {
  text-align: center;
  margin: 0 0 1.25rem;
}
.product-deck-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
}
.product-deck-card {
  display: flex;
  flex-direction: column;
  padding: 1.4rem 1.3rem 1.25rem;
  border-top-width: 2px;
}
.product-deck-card.is-mafia { border-top-color: var(--crimson); }
.product-deck-card.is-city { border-top-color: #8a7a6a; }
.product-deck-card.is-witness { border-top-color: var(--ink); }
.product-deck-card .product-panel-icon { margin-bottom: .65rem; }
.product-deck-card .kicker { margin-bottom: .3rem; }
.product-deck-card h3 {
  margin: 0 0 .5rem;
}
.product-deck-card > p { margin-bottom: .85rem; }
.product-deck-card .product-points { margin: 0; }
.product-deck-card .product-points li {
  font-size: 17px;
  margin-bottom: .42rem;
}
.product-deck-card .product-points li:last-child { margin-bottom: 0; }
.product-deck-specs {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem 1.4rem;
  margin: 1.7rem 0 0;
  padding: 1.35rem 0 0;
  border-top: 1px solid var(--stroke);
}
.product-deck-specs li {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: .55rem;
  color: var(--dim);
  font-size: 15px;
  line-height: 1.35;
}
.product-deck-specs svg {
  width: 22px;
  height: 22px;
  color: var(--crimson);
  flex-shrink: 0;
  margin-top: .08rem;
}
.product-deck-specs strong {
  display: block;
  color: var(--ink);
  font-weight: 600;
  font-size: 15px;
  margin-bottom: .08rem;
}
.marquee-row {
  overflow: hidden;
  padding: 1.1rem 0 1.4rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee-left 60s linear infinite;
}
.marquee-reverse .marquee-track { animation-name: marquee-right; }
.marquee-set {
  display: flex;
  gap: 1.3rem;
  padding-right: 1.3rem;
}
.marquee-card {
  display: block;
  width: 11.5rem;
  flex-shrink: 0;
  transition: rotate .25s ease, translate .25s ease;
}
.marquee-set .marquee-card:nth-child(4n+1) { rotate: -2.4deg; translate: 0 .55rem; }
.marquee-set .marquee-card:nth-child(4n+2) { rotate: 1.7deg; }
.marquee-set .marquee-card:nth-child(4n+3) { rotate: -1.1deg; translate: 0 .35rem; }
.marquee-set .marquee-card:nth-child(4n) { rotate: 2.6deg; translate: 0 .15rem; }
.marquee-set .marquee-card:hover,
.marquee-set .marquee-card:focus-visible {
  rotate: 0deg;
  translate: 0;
}
.marquee-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  transition: border-color .2s ease;
}
.marquee-card:hover img,
.marquee-card:focus-visible img {
  border-color: var(--crimson);
}
@keyframes marquee-left {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@keyframes marquee-right {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
}

.product-twist-head {
  text-align: center;
  margin-bottom: 2rem;
}
.product-twist-head h2 { margin-bottom: 1rem; }
.product-twist-head .lead {
  margin: 0 auto;
  max-width: 46rem;
}
.product-twist-head .lead em { font-style: italic; color: var(--ink); }
.product-twist .product-timeline { margin-bottom: 2.6rem; }
.product-twist-kicker {
  text-align: center;
  margin: 0 0 1.2rem;
}
.product-twist-nights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
  margin-bottom: 1.8rem;
}
.product-twist-nights .product-panel-icon { margin-bottom: .7rem; }
.product-twist-nights h3 {
  color: var(--ink);
  margin: 0 0 .45rem;
}
.product-twist-nights p { margin: 0; }
.product-twist-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 .4rem;
  background: var(--stroke);
  border: 1px solid var(--stroke);
}
.product-twist-facts > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: 1.25rem 1rem 1.15rem;
  background: var(--panel);
  text-align: center;
}
.product-twist-facts svg {
  width: 1.35rem;
  height: 1.35rem;
  color: var(--crimson);
  stroke-width: 1.6;
}
.product-twist-facts strong {
  display: block;
  font-family: var(--serif);
  font-size: clamp(1.55rem, 2.4vw, 2.05rem);
  font-weight: 600;
  color: var(--ink);
  line-height: 1.1;
}
.product-twist-facts span {
  color: var(--dim);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-inbox-head {
  text-align: center;
  max-width: 46rem;
  margin: 0 auto 2.6rem;
}
.product-inbox-head h2 { margin-bottom: 1rem; }
.product-inbox-head .lead {
  margin: 0 auto;
}
.product-inbox-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
}
.product-inbox-items .product-panel-icon { margin-bottom: .7rem; }
.product-inbox-items h3 {
  color: var(--ink);
  margin: 0 0 .45rem;
}
.product-inbox-items p {
  margin: 0;
}
.product-inbox.section {
  padding-bottom: 0;
  overflow: hidden;
}
.product-inbox .wrap-wide {
  position: relative;
  z-index: 1;
  padding-bottom: 2.2rem;
}
.product-inbox-spill {
  position: relative;
  height: 13.6rem;
  margin-top: -1.2rem;
  overflow: hidden;
  pointer-events: none;
}
.product-inbox-spill img {
  position: absolute;
  left: calc(var(--x) * 1%);
  top: calc(1.35rem + var(--dip));
  z-index: var(--z);
  width: 10.2rem;
  max-width: none;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  margin: 0;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .58);
  transform: translateX(-50%) rotate(var(--rot));
  transform-origin: 50% 8%;
}
#scan { scroll-margin-top: calc(var(--header-h) + .75rem); }
.product-panel-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  margin-bottom: .85rem;
  border: 1px solid var(--stroke);
  background: var(--bg-2);
  color: var(--crimson);
}
.product-panel-icon svg { width: 20px; height: 20px; }
.product-qr {
  display: grid;
  grid-template-columns: minmax(0, 24rem) minmax(0, 1fr);
  gap: 3rem;
  align-items: center;
}
.product-qr-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
}
.product-qr h2 { margin-bottom: 1rem; }
.product-qr .product-tags {
  text-align: left;
  margin: 0 0 .8rem;
}
.product-qr .lead { margin-bottom: 1.15rem; }
.product-qr .product-points { margin-bottom: 0; }
.product-qr .product-points li { font-size: 17px; line-height: 1.6; }
.product-play-head {
  text-align: center;
  max-width: 46rem;
  margin: 0 auto 2.4rem;
}
.product-play-head h2 { margin-bottom: .5rem; }
.product-timeline {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 1.6rem;
  margin: 0 0 2rem;
  padding: 0;
  position: relative;
}
.product-timeline::before {
  content: "";
  position: absolute;
  top: 1.35rem;
  left: 16.666%;
  right: 16.666%;
  height: 1px;
  background: var(--stroke);
}
.product-timeline > li {
  text-align: center;
  padding: 0 .15rem;
}
.product-timeline-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  margin: 0 auto 1.2rem;
  border: 1px solid var(--crimson);
  border-radius: 50%;
  background: var(--bg-2);
  color: var(--crimson);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
  position: relative;
  z-index: 1;
}
.product-timeline h3 {
  color: var(--ink);
  margin: 0 0 .5rem;
}
.product-timeline p { margin: 0; }
.product-play .btn-row {
  justify-content: center;
}
.product-faces h2 {
  margin-bottom: 1rem;
}
.product-faces h2 + p {
  margin-top: .15rem;
  margin-bottom: 1.4rem;
}
.product-featured {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}
.product-loud-head {
  text-align: center;
  max-width: 46rem;
  margin: 0 auto 2.4rem;
}
.product-loud-head h2 { margin-bottom: 1rem; }
.product-loud-head .lead { margin: 0 auto; }
.product-loud-list {
  list-style: none;
  max-width: 48rem;
  margin: 0 auto;
  padding: 0;
  border-top: 1px solid var(--stroke);
}
.product-loud-list > li {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr);
  gap: .15rem 1.25rem;
  padding: 1.55rem 0 1.5rem;
  border-bottom: 1px solid var(--stroke);
}
.product-loud-n {
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 600;
  color: var(--crimson);
  line-height: 1.2;
  padding-top: .12rem;
}
.product-loud-list h3 {
  margin: 0 0 .4rem;
  color: var(--ink);
}
.product-loud-list p { margin: 0; }
.product-faq-head {
  text-align: center;
  max-width: 46rem;
  margin: 0 auto 1.6rem;
}
.product-faq-head h2 { margin-bottom: 1rem; }
.product-faq-head .lead { margin: 0 auto; }
.product-faq {
  max-width: 46rem;
  margin-inline: auto;
}
.product-final { background: var(--bg-2); border-top: 1px solid var(--stroke); margin-bottom: 0; }
main:has(.product-final:last-child) + .site-footer { margin-top: 0; }
.product-final-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.4rem;
  align-items: center;
}
.product-final .buy-fan {
  height: 28rem;
  margin: 0;
}
.product-final .buy-fan img { width: 13.6rem; }
.product-final .buy-fan img:nth-child(1) {
  transform: translate(-50%, -50%) rotate(-15deg) translate(-5.8rem, .4rem);
}
.product-final .buy-fan img:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-5deg) translate(-1.9rem, -.14rem);
}
.product-final .buy-fan img:nth-child(3) {
  transform: translate(-50%, -50%) rotate(5deg) translate(1.9rem, -.14rem);
}
.product-final .buy-fan img:nth-child(4) {
  transform: translate(-50%, -50%) rotate(15deg) translate(5.8rem, .4rem);
}
.product-final .product-price-row { border-top: 1px solid var(--stroke); }
.product-final-note {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: .95rem 0 0;
  color: var(--dim);
  font-size: .84rem;
}
.product-final-note svg { color: var(--crimson); }

@media (max-width: 980px) {
  .product-hero { grid-template-columns: 1fr; gap: 2rem; }
  .product-gallery {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    --gallery-main: auto;
    --gallery-main-h: calc((80cqi - .55rem) * 1.7);
    --gallery-thumb: 20%;
    --gallery-thumb-h: auto;
    --gallery-stack: var(--gallery-main-h);
    container-type: inline-size;
    grid-template-columns: minmax(0, 1fr) 20%;
    align-items: start;
  }
  .product-gallery-main {
    width: 100%;
    height: auto;
    aspect-ratio: var(--tarot);
  }
  .product-gallery-rail {
    width: 100%;
    height: var(--gallery-main-h);
    max-height: var(--gallery-main-h);
    overflow: hidden;
  }
  .product-gallery-thumbs {
    height: 100%;
    max-height: 100%;
    overflow: hidden;
  }
  .product-gallery-track {
    grid-auto-rows: auto;
  }
  .product-gallery-thumb {
    width: 100%;
    height: auto;
    aspect-ratio: var(--tarot);
  }
  .product-twist-facts { grid-template-columns: 1fr 1fr; }
  .product-inbox-items { gap: 1.2rem; }
  .product-inbox-spill { height: 11.2rem; }
  .product-inbox-spill img { width: 8.4rem; }
  .product-featured { grid-template-columns: repeat(3, 1fr); }
  .product-trust-strip-grid { grid-template-columns: 1fr 1fr; gap: 2.2rem 2rem; }
  .product-deck-grid { gap: 1rem; }
  .product-qr { grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); gap: 2rem; }
  .product-final-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .product-final .buy-fan { height: 20rem; }
  .product-final .buy-fan img { width: 9.6rem; }
  .product-final .buy-fan img:nth-child(1) {
    transform: translate(-50%, -50%) rotate(-15deg) translate(-4rem, .3rem);
  }
  .product-final .buy-fan img:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-5deg) translate(-1.3rem, -.12rem);
  }
  .product-final .buy-fan img:nth-child(3) {
    transform: translate(-50%, -50%) rotate(5deg) translate(1.3rem, -.12rem);
  }
  .product-final .buy-fan img:nth-child(4) {
    transform: translate(-50%, -50%) rotate(15deg) translate(4rem, .3rem);
  }
}
@media (max-width: 760px) {
  .product-hero-section.section { background: none; }
  .product-tags {
    width: 100%;
    padding: 0;
  }
  .product-tag {
    white-space: normal;
    overflow-wrap: break-word;
  }
  .product-buybox { padding: 0; }
  .product-trust { column-gap: .65rem; }
  .product-deck { padding: 2.6rem 0 2.4rem; }
  .product-deck-grid { grid-template-columns: 1fr; }
  .product-deck-specs { grid-template-columns: 1fr; gap: .85rem; }
  .product-deck-specs li { justify-content: flex-start; }
  .product-twist-nights { grid-template-columns: 1fr; }
  .product-timeline {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .product-timeline::before {
    top: 1.35rem;
    bottom: 1.35rem;
    left: 1.35rem;
    right: auto;
    width: 1px;
    height: auto;
  }
  .product-timeline > li {
    display: grid;
    grid-template-columns: 2.7rem minmax(0, 1fr);
    column-gap: 1.15rem;
    text-align: left;
    padding: 0 0 2rem;
  }
  .product-timeline > li:last-child { padding-bottom: 0; }
  .product-timeline-num {
    grid-row: 1 / span 2;
    margin: 0;
  }
  .product-inbox-items { grid-template-columns: 1fr; }
  .product-inbox-spill { height: 8.6rem; }
  .product-inbox-spill img { width: 6.8rem; }
  .product-featured { grid-template-columns: repeat(2, 1fr); }
  .product-trust-strip-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.6rem; }
  .product-qr { grid-template-columns: 1fr; gap: 1.4rem; }
  .product-qr-img {
    max-width: 18rem;
    margin-inline: auto;
  }
  .product-final-inner { grid-template-columns: 1fr; }
  .product-final .buy-fan {
    height: 16.5rem;
    margin-bottom: 1.6rem;
    padding-bottom: 1.4rem;
  }
  .marquee-card { width: 8rem; }
}

/* Homepage */
.home-hero {
  position: relative;
  z-index: 1;
  padding: 3.2rem 0 2.4rem;
  overflow: visible;
}
.home-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.2rem;
  align-items: start;
}
.home-hero h1 {
  margin-bottom: .4em;
  font-size: 60px;
  font-weight: 700;
}
@media (max-width: 760px) {
  .home-hero { padding-top: .7rem; }
  .home-hero h1 { font-size: 48px; }
}
.home-hero .lead { max-width: 40rem; }
.home-hero .lead i { font-style: italic; color: var(--ink); }
.home-hero .lead b { color: var(--ink); font-weight: 600; }
.home-hero-copy > p { max-width: 40rem; }
.home-hero-lead { max-width: 40rem; }
.home-hero-points { margin: 1.15rem 0 0; }
.home-hero-points li {
  font-size: 17px;
  line-height: 1.6;
}
.home-ghost {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  max-width: 40rem;
  margin: 1.25rem 0 0;
  padding: 1rem 1.1rem 1.05rem;
  background:
    radial-gradient(90% 140% at 0% 0%, color-mix(in srgb, var(--crimson) 6%, transparent), transparent 58%),
    linear-gradient(180deg, #201212, var(--panel) 70%);
  border: 1px solid var(--crimson-d);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .38);
}
.home-ghost-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  border: 1px solid var(--crimson);
  background: color-mix(in srgb, var(--crimson) 14%, var(--bg));
  color: var(--crimson);
}
.home-ghost-icon svg {
  width: 1.7rem;
  height: 1.7rem;
  stroke-width: 1.8;
}
.home-ghost-copy strong {
  display: block;
  margin: .08rem 0 .35rem;
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--crimson);
}
.home-ghost-copy p {
  margin: 0;
  color: var(--ink);
  font-size: .98rem;
  line-height: 1.5;
}
.home-hero-copy {
  position: relative;
  z-index: 2;
}
.home-sticky-buy { display: none; }
@media (max-width: 760px) {
  .home-hero-cta,
  .home-close-cta,
  .home-close-cta .buy-cta {
    display: block;
    width: 100%;
  }
  .home-hero-cta .btn,
  .home-close-cta .btn,
  .home-sticky-buy .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
  }
  .home-faction-blurb { display: none; }
  .home-sticky-buy {
    display: block;
    position: fixed;
    z-index: 60;
    left: 0;
    right: 0;
    bottom: calc(.5rem + env(safe-area-inset-bottom, 0px));
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0 max(1.5rem, env(safe-area-inset-right, 0px)) 0 max(1.5rem, env(safe-area-inset-left, 0px));
    box-sizing: border-box;
    background: transparent;
    box-shadow: none;
    transform: none;
    transition: none;
  }
  .home-sticky-buy:not(.is-on) {
    visibility: hidden;
    pointer-events: none;
  }
  .home-sticky-buy .btn {
    box-shadow: 0 14px 28px rgba(0, 0, 0, .48);
  }
  body:has(.home-sticky-buy.is-on) .cookie-banner {
    bottom: var(--sticky-buy-h, 0px);
  }
  body:has(.home-sticky-buy.is-on) .cookie-banner-inner {
    padding-bottom: 1rem;
  }
}
.home-hero-stage {
  position: relative;
  z-index: 1;
  min-height: 28rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.home-hero-graphic {
  --fan: 0;
  position: relative;
  width: min(100%, 34rem);
  aspect-ratio: 1 / 1;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.home-hero-graphic.is-dealt { --fan: 1; }
.home-hero-graphic.is-dealt.is-tucked { --fan: .8; }
.home-hero-floats {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: visible;
}
.home-hero-float {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 34%;
  max-width: none;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 18px 36px rgba(0, 0, 0, .58);
  transform:
    translate(-50%, -50%)
    translate(calc(var(--dx) * var(--fan)), calc(var(--dy) * var(--fan)))
    rotate(calc(var(--stack-rot, 0deg) + (var(--rot) - var(--stack-rot, 0deg)) * var(--fan)));
  transition: transform 1.05s cubic-bezier(.18, 1.05, .32, 1);
  transition-delay: calc(.1s + var(--i, 0) * .06s);
  z-index: 1;
  --dx: 0%;
  --dy: 0%;
  --rot: 0deg;
}
.home-hero-graphic.is-settled .home-hero-float {
  transition-duration: .55s;
  transition-delay: calc(var(--i, 0) * .02s);
}
.home-hero-float-1 { --stack-rot: -7deg; --dx: 36%; --dy: -86%; --rot: -22deg; }
.home-hero-float-2 { --stack-rot: 5deg; --dx: 142%; --dy: -48%; --rot: 19deg; }
.home-hero-float-3 { --stack-rot: -4deg; --dx: 168%; --dy: 16%; --rot: -8deg; }
.home-hero-float-4 { --stack-rot: 8deg; --dx: 126%; --dy: 74%; --rot: 24deg; }
.home-hero-float-5 { --stack-rot: 2deg; --dx: 42%; --dy: 92%; --rot: -16deg; }
.home-hero-float-6 { --stack-rot: -6deg; --dx: -82%; --dy: 80%; --rot: 14deg; }
.home-hero-float-7 { --stack-rot: 4deg; --dx: -128%; --dy: 14%; --rot: -21deg; }
.home-hero-float-8 { --stack-rot: -8deg; --dx: -102%; --dy: -52%; --rot: 11deg; }
.home-hero-float-9 { --stack-rot: 6deg; --dx: -44%; --dy: -90%; --rot: -18deg; }
.home-hero-float-10 { --stack-rot: -3deg; --dx: 96%; --dy: -74%; --rot: 26deg; }
.home-hero-float-11 { --stack-rot: 5deg; --dx: -70%; --dy: 48%; --rot: -27deg; }
.home-hero-float-12 { --stack-rot: -5deg; --dx: 80%; --dy: 38%; --rot: 9deg; }
.home-hero-box {
  position: relative;
  z-index: 5;
  display: block;
  width: 58%;
  max-width: 22rem;
  aspect-ratio: var(--tarot);
  overflow: hidden;
  filter: drop-shadow(0 28px 42px rgba(0, 0, 0, .62));
}
.home-hero-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 1px solid var(--crimson);
  background: #0a0a0a;
}
.home-hero-box:hover { color: inherit; }
@media (prefers-reduced-motion: reduce) {
  .home-hero-float { transition: none; }
}

.home-trust {
  position: relative;
  z-index: 0;
  border-block: 1px solid var(--stroke);
  background:
    radial-gradient(70% 90% at 50% 0%, color-mix(in srgb, var(--crimson) 3%, transparent), transparent 58%),
    linear-gradient(180deg, #161111 0%, var(--panel) 55%, #141010 100%);
  padding: 2.2rem 0;
}
.home-trust-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.4rem 2.6rem;
}
.home-trust-grid > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}
.home-trust-grid svg {
  width: 3.6rem;
  height: 3.6rem;
  margin-bottom: .7rem;
  color: var(--crimson);
  stroke-width: 1.45;
}
.home-trust-grid strong {
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.15;
  margin: 0 0 .45rem;
}
.home-trust-grid span {
  color: var(--muted);
  font-size: 1em;
  line-height: 1.6;
}

.home-block-head { margin-bottom: 1.8rem; }
.home-block-head h2,
.home-hero h1,
.home-close h2 {
  scroll-margin-top: calc(var(--header-h) + .75rem);
}
.home-block-head .kicker {
  display: flex;
  align-items: center;
  gap: .65rem;
}
.home-block-head .kicker span {
  font-family: var(--serif);
  font-size: 1.05rem;
  letter-spacing: .04em;
}
.home-block-head h2 { margin-bottom: 1rem; }
.home-block-head .lead { margin-bottom: 0; }

.home-usp-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
}
.home-usp-card {
  display: flex;
  flex-direction: column;
  padding: 1.45rem 1.35rem 1.3rem;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
}
.home-usp-card.is-accent {
  border-color: var(--crimson-d);
  background: linear-gradient(180deg, #1e1212, var(--panel) 72%);
}
.home-usp-card h3 { margin: 0 0 .5rem; }
.home-usp-card > p { margin-bottom: .85rem; }
.home-usp-card ul {
  margin: auto 0 0;
  padding: 0 0 0 1.05rem;
  color: var(--muted);
}
.home-usp-card li { margin: 0 0 .35rem; }
.home-usp-card li::marker { color: var(--crimson); }
.home-usp-foot {
  margin-top: 1.8rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--stroke);
}
.home-usp-foot p { margin: 0; max-width: 46rem; }
.home-usp-foot a {
  color: var(--ink);
  border-bottom: 1px solid var(--crimson);
}
.home-usp-foot a:hover { color: var(--crimson); }

.home-silo-bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
}
.home-silo-hub,
.home-silo-narrator,
.home-faction,
.home-persona,
.home-tool {
  background: linear-gradient(180deg, var(--panel), var(--bg-2));
  border: 1px solid var(--stroke);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .28);
}
.home-silo-hub {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1.2rem;
  padding: 1.5rem 1.4rem 1.35rem;
  overflow: visible;
  align-items: stretch;
}
.home-silo-hub-copy {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.home-silo-hub:hover { color: inherit; border-color: var(--crimson-d); z-index: 2; }
.home-silo-hub h3,
.home-silo-narrator h3,
.home-faction h3,
.home-tool h3 { margin: 0 0 .45rem; }
.home-silo-hub p,
.home-silo-narrator p,
.home-faction-head p { margin: 0 0 .9rem; }
.home-silo-go {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  width: max-content;
  max-width: 100%;
  color: var(--ink);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .75rem;
  border-bottom: 1px solid var(--stroke);
}
.home-silo-hub:hover .home-silo-go,
.home-silo-narrator:hover .home-silo-go,
.home-tool:hover .home-silo-go,
.home-genre-body .home-silo-go:hover,
a.home-silo-go:hover { color: var(--crimson); border-bottom-color: var(--crimson); }
.home-silo-stack {
  position: relative;
  height: 9.2rem;
}
.home-silo-stack img {
  position: absolute;
  left: calc(12% + (var(--i) * 14%));
  top: .4rem;
  width: 6.4rem;
  height: auto;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  transform: rotate(calc((var(--i) - 2) * 6deg));
  box-shadow: 0 12px 24px rgba(0, 0, 0, .45);
  transition: transform .4s cubic-bezier(.22, 1, .32, 1), left .4s cubic-bezier(.22, 1, .32, 1), top .4s ease;
}
.home-silo-narrator {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 6.6rem minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  gap: .45rem 1.15rem;
  align-items: stretch;
  height: 100%;
  padding: 1.15rem 1.2rem 1.1rem;
  overflow: visible;
}
.home-silo-narrator:hover { color: inherit; border-color: var(--crimson-d); z-index: 2; }
.home-silo-narrator > .kicker {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  max-width: 100%;
}
.home-silo-narrator-copy {
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 1 / -1;
  min-width: 0;
  min-height: 100%;
}
.home-silo-narrator img {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  margin: 0;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  align-self: start;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.22, 1, .32, 1), border-color .2s ease;
}
.home-faction { padding: 1.4rem 1.3rem 1.2rem; }
.home-faction.is-city { border-top: 2px solid #8a7a6a; }
.home-faction.is-mafia { border-top: 2px solid var(--crimson); }
.home-faction-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.home-faction-head .kicker { margin-bottom: .55rem; }
.home-faction.is-city .kicker { color: var(--ink); }
.home-faction-featured {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem .7rem;
}
.home-faction-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: .4rem;
}
.home-faction-role {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .65rem;
  width: 100%;
  color: inherit;
}
.home-faction-role:hover { color: inherit; }
.home-faction-role img {
  width: 100%;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  margin-bottom: 0;
  transform-origin: 50% 80%;
  transition: transform .35s cubic-bezier(.22, 1, .32, 1), border-color .2s ease;
}
.home-faction-role:hover img { border-color: var(--crimson); }
.home-faction-role:hover .home-silo-go {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
.home-faction-role-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .4rem;
  min-width: 0;
  width: 100%;
}
.home-faction-blurb {
  margin: 0;
  width: 100%;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.45;
  text-align: left;
}

.home-personas {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.6rem;
  align-items: start;
  margin-top: 1.8rem;
  padding-top: 1.8rem;
  border-top: 1px solid var(--stroke);
}
.home-personas-copy .kicker { margin: 0 0 .8rem; color: var(--crimson); }
.home-personas-copy h3 { margin: 0 0 .55rem; }
.home-personas-copy p {
  margin: 0;
  color: var(--muted);
}
.home-personas-cards {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}
.home-persona {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 6.6rem minmax(0, 1fr);
  gap: 1.15rem;
  align-items: stretch;
  padding: 1.15rem 1.2rem 1.1rem;
  overflow: visible;
}
.home-persona-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  min-height: 100%;
}
.home-persona-body h3 {
  margin: 0 0 .4rem;
}
.home-persona img {
  width: 100%;
  max-width: none;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  transform-origin: center center;
  transition: transform .4s cubic-bezier(.22, 1, .32, 1), border-color .2s ease;
}
.home-persona-blurb {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.5;
  text-align: left;
}
.home-persona:hover { color: inherit; border-color: var(--crimson-d); z-index: 2; }
.home-persona:hover img { border-color: var(--crimson); }
.home-persona:hover .home-silo-go {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
@media (hover: hover) and (pointer: fine) {
  .home-silo-hub:hover .home-silo-stack img {
    left: calc(6% + (var(--i) * 19%));
    top: .15rem;
    transform: rotate(calc((var(--i) - 2) * 11deg)) translateY(-6px);
  }
  .home-silo-narrator:hover img,
  .home-persona:hover img {
    transform: scale(1.06);
  }
  .home-faction-card:nth-child(1):hover img { transform: rotate(-4.2deg); }
  .home-faction-card:nth-child(2):hover img { transform: rotate(3.1deg); }
  .home-faction-card:nth-child(3):hover img { transform: rotate(5deg); }
}
@media (prefers-reduced-motion: reduce) {
  .home-silo-stack img,
  .home-silo-narrator img,
  .home-persona img,
  .home-faction-role img { transition: none; }
  .home-silo-hub:hover .home-silo-stack img {
    left: calc(12% + (var(--i) * 14%));
    top: .4rem;
    transform: rotate(calc((var(--i) - 2) * 6deg));
  }
  .home-silo-narrator:hover img,
  .home-persona:hover img,
  .home-faction-card:hover img { transform: none; }
}

.home-tools-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
}
.home-tool {
  display: flex;
  flex-direction: column;
  padding: 1.45rem 1.35rem 1.3rem;
  color: inherit;
}
.home-tool:hover { color: inherit; border-color: var(--crimson-d); }
.home-tool.is-accent {
  border-color: var(--crimson-d);
  background: linear-gradient(180deg, #1e1212, var(--bg-2) 70%);
}
.home-tool ul {
  margin: 0 0 1.1rem;
  padding: 0 0 0 1.05rem;
  color: var(--muted);
}
.home-tool li { margin: 0 0 .35rem; }
.home-tool li::marker { color: var(--crimson); }
.home-silo-hub-copy .home-silo-go,
.home-silo-narrator-copy .home-silo-go,
.home-tool .home-silo-go,
.home-persona-body .home-silo-go {
  margin-top: auto;
  padding-top: 1.15rem;
}
.home-setup-previews {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  margin-top: 1.6rem;
}
.home-setup-previews .setup-card {
  overflow: visible;
}
.home-setup-previews .setup-card.is-featured { grid-column: auto; }
.setup-index .setup-card.is-featured { grid-column: auto; }
@media (min-width: 760px) {
  .setup-index .setup-card.is-wide {
    grid-column: 1 / -1;
  }
  .setup-index .setup-card.is-wide h2 {
    font-size: clamp(1.85rem, 3vw, 2.45rem);
  }
  .setup-index .setup-card.is-wide .setup-vs-fan { height: 17.2rem; }
  .setup-index .setup-card.is-wide .setup-vs-card { width: 10rem; }
  .setup-index .setup-card.is-wide .setup-vs-mark {
    font-size: 2rem;
    padding-bottom: 6.6rem;
  }
}
.setup-vs {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: .35rem .55rem;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--stroke);
  background:
    radial-gradient(ellipse 80% 90% at 0% 100%, color-mix(in srgb, var(--ink) 6%, transparent), transparent 62%),
    radial-gradient(ellipse 80% 90% at 100% 100%, color-mix(in srgb, var(--crimson) 8%, transparent), transparent 62%);
  background-origin: border-box;
}
.setup-vs-side {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}
.setup-vs-side .setup-vs-fan { margin-top: auto; }
.setup-vs-label {
  margin: 0 0 .55rem;
  max-width: 100%;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.35;
  text-align: center;
  text-transform: uppercase;
  color: var(--ink);
}
.setup-vs-side.is-mafia .setup-vs-label { color: var(--crimson); }
.setup-vs-mark {
  align-self: end;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: .14em;
  color: var(--crimson);
  padding-bottom: 3.1rem;
}
.setup-vs-fan {
  --tight: calc(1 / (0.7 + var(--n) * 0.22));
  position: relative;
  width: 100%;
  height: 9.4rem;
}
.setup-vs-card {
  --spread: calc(var(--i) - (var(--n) - 1) / 2);
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 5rem;
  max-width: none;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0a0a0a;
  box-shadow: 0 12px 22px rgba(0, 0, 0, .45);
  transform-origin: 50% 100%;
  transform: translateX(calc(-50% + var(--spread) * .55rem * var(--tight))) rotate(calc(var(--spread) * 11deg * var(--tight)));
  transition: transform .4s cubic-bezier(.22, 1, .32, 1);
  z-index: calc(2 + var(--i));
}
.setup-vs-side.is-city .setup-vs-card {
  transform: translateX(calc(-50% + var(--spread) * .55rem * var(--tight))) rotate(calc((var(--spread) * 11deg - 8deg) * var(--tight)));
}
.setup-vs-side.is-mafia .setup-vs-card {
  transform: translateX(calc(-50% + var(--spread) * .55rem * var(--tight))) rotate(calc((var(--spread) * 11deg + 8deg) * var(--tight)));
}
.setup-vs.is-large {
  margin: 2rem 0 0;
  padding: 1.5rem 1rem 1.8rem;
  border: 1px solid var(--stroke);
  background:
    radial-gradient(58% 85% at 0% 72%, color-mix(in srgb, var(--ink) 6%, transparent), transparent 64%),
    radial-gradient(58% 85% at 100% 72%, color-mix(in srgb, var(--crimson) 8%, transparent), transparent 64%),
    linear-gradient(180deg, #161010, #0e0a0a);
  background-origin: border-box;
}
.setup-vs.is-large .setup-vs-mark {
  font-size: 1.8rem;
  padding-bottom: 4.6rem;
}
.setup-vs.is-large .setup-vs-fan { height: 13.5rem; }
.setup-vs.is-large .setup-vs-card { width: 7.2rem; }
@media (min-width: 760px) {
  .setup-vs.is-large .setup-vs-fan { height: 25rem; }
  .setup-vs.is-large .setup-vs-card { width: 14.4rem; }
  .setup-vs.is-large .setup-vs-mark {
    font-size: 2.2rem;
    padding-bottom: 8.6rem;
  }
}
@media (hover: hover) and (pointer: fine) {
  .setup-vs-side.is-city .setup-vs-fan:hover .setup-vs-card {
    transform: translateX(calc(-50% + var(--spread) * 1.15rem * var(--tight))) rotate(calc((var(--spread) * 20deg - 14deg) * var(--tight)));
  }
  .setup-vs-side.is-mafia .setup-vs-fan:hover .setup-vs-card {
    transform: translateX(calc(-50% + var(--spread) * 1.15rem * var(--tight))) rotate(calc((var(--spread) * 20deg + 14deg) * var(--tight)));
  }
  .setup-vs.is-large .setup-vs-side.is-city .setup-vs-fan:hover .setup-vs-card {
    transform: translateX(calc(-50% + var(--spread) * 1.7rem * var(--tight))) rotate(calc((var(--spread) * 18deg - 12deg) * var(--tight)));
  }
  .setup-vs.is-large .setup-vs-side.is-mafia .setup-vs-fan:hover .setup-vs-card {
    transform: translateX(calc(-50% + var(--spread) * 1.7rem * var(--tight))) rotate(calc((var(--spread) * 18deg + 12deg) * var(--tight)));
  }
}
@media (prefers-reduced-motion: reduce) {
  .setup-vs-card { transition: none; }
}
@media (max-width: 520px) {
  .setup-vs-fan { height: 8rem; }
  .setup-vs-card { width: 4.1rem; }
  .setup-vs-mark { font-size: 1.1rem; padding-bottom: 2.5rem; }
  .setup-vs.is-large .setup-vs-fan { height: 9.2rem; }
  .setup-vs.is-large .setup-vs-card { width: 4.6rem; }
  .setup-vs.is-large .setup-vs-mark { font-size: 1.25rem; padding-bottom: 3rem; }
}

.home-genre-chapters {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--stroke);
}
.home-genre-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: .7rem 2.6rem;
  padding: 1.55rem 0 1.65rem;
  border-bottom: 1px solid var(--stroke);
}
.home-genre-index {
  display: flex;
  align-items: baseline;
  gap: .7rem;
  margin: 0;
  color: var(--crimson);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.home-genre-index span {
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--ink);
}
.home-genre-body h3 { margin: 0 0 .45rem; }
.home-genre-body p { margin: 0 0 1rem; max-width: 42rem; }
.home-genre-body .home-silo-go { margin-top: .15rem; }

.home-genre {
  position: relative;
  z-index: 0;
}
.home-faq {
  background: #080808;
  border-block: 1px solid var(--stroke);
}
.home-faq-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.4rem;
  align-items: start;
}
.home-faq-copy { margin-bottom: 0; }
.home-faq-copy .lead { margin-bottom: 1rem; }
.home-faq-copy .home-silo-go { margin-top: .15rem; }
.home-close {
  position: relative;
  z-index: 1;
  padding: 4.2rem 0 5.2rem;
  margin-bottom: 0;
  overflow: visible;
  border-top: 1px solid var(--crimson);
  background:
    radial-gradient(80% 120% at 88% 0%, color-mix(in srgb, var(--crimson) 22%, transparent), transparent 58%),
    linear-gradient(180deg, #1a0c0c, #0e0808 70%);
}
main:has(.home-close:last-child) + .site-footer {
  position: relative;
  z-index: 3;
  margin-top: 0;
}
.home-close-copy {
  position: relative;
}
.home-close-copy > :not(.home-close-assets) {
  position: relative;
  z-index: 5;
}
.home-close-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
}
.home-close h2 { margin-bottom: 1rem; }
.home-close-assets {
  position: relative;
  z-index: 1;
  list-style: none;
  margin: 0 0 1.2rem;
  padding: 0;
}
.home-close-assets li {
  position: relative;
  padding: .45rem 0 .45rem 1.15rem;
  border-bottom: 1px solid var(--stroke);
  color: var(--muted);
}
.home-close-assets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .95rem;
  width: .45rem;
  height: .45rem;
  background: var(--crimson);
}
.home-close-assets strong { color: var(--ink); }
.home-close-assets li:last-child { border-bottom: 0; }
.home-close .product-price-row {
  align-items: flex-start;
  text-align: left;
  margin-top: .2rem;
  padding-top: .15rem;
  border-top: 0;
}
.home-close-cta {
  position: relative;
  z-index: 5;
  justify-content: flex-start;
}
.home-close .product-final-note {
  position: relative;
  z-index: 5;
  margin-top: .75rem;
}
.home-close-art {
  position: relative;
  z-index: 3;
  overflow: visible;
}
.home-close-stage {
  position: relative;
  z-index: 1;
  min-height: 22rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.home-close-graphic {
  width: min(92%, 27rem);
}

@media (min-width: 760px) {
  .home-hero { padding: 4.2rem 0 3rem; }
  .home-hero-stage { min-height: 36rem; }
  .home-hero-graphic { width: min(125%, 48rem); }
  .home-hero-box { max-width: 24rem; }
  .home-usp-grid,
  .home-tools-grid,
  .home-setup-previews { grid-template-columns: 1fr 1fr; }
  .home-genre-row {
    grid-template-columns: 13.5rem minmax(0, 1fr);
    align-items: start;
    padding: 1.85rem 0;
  }
  .home-silo-bento { grid-template-columns: 1fr 1fr; }
  .home-silo-hub { grid-column: 1 / -1; grid-template-columns: 1.1fr .9fr; align-items: center; }
  .home-silo-narrator {
    grid-column: 1 / -1;
    row-gap: .8rem;
  }
  .home-silo-narrator > .kicker {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }
  .home-silo-narrator img {
    grid-column: 1;
    grid-row: 1 / -1;
  }
  .home-silo-narrator-copy {
    grid-column: 2;
    grid-row: 2;
  }
  .home-personas {
    grid-template-columns: 1.05fr .95fr;
    gap: 2rem 2.4rem;
    align-items: start;
  }
  .home-faq-inner {
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    gap: 2rem 3.2rem;
  }
  .home-close-inner { grid-template-columns: 1.15fr .85fr; }
  .home-close-stage { min-height: 28rem; }
  .home-close-graphic { width: min(110%, 38rem); }
}
@media (min-width: 980px) {
  .home-hero-grid {
    grid-template-columns: 1.02fr .98fr;
    gap: 1.4rem;
    align-items: center;
  }
  .home-hero-stage { margin-top: 0; min-height: 42rem; }
  .home-hero-graphic { width: min(175%, 56rem); }
  .home-hero-box { width: 56%; max-width: 26rem; }
  .home-hero-float { width: 32%; }
  .home-close-stage { min-height: 32rem; }
  .home-close-graphic { width: min(145%, 44rem); }
  .home-trust-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 2.4rem 2.6rem;
  }
  .home-usp-grid,
  .home-tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-silo-bento { grid-template-columns: 1.15fr .85fr 1fr 1fr; }
  .home-silo-hub { grid-column: 1 / span 2; grid-row: 1; }
  .home-silo-narrator {
    grid-column: 3 / span 2;
    grid-row: 1;
    grid-template-columns: 8.2rem minmax(0, 1fr);
    gap: .8rem 1.2rem;
    padding: 1.35rem 1.3rem 1.2rem;
  }
  .home-silo-narrator-copy { min-height: 100%; }
  .home-faction.is-city { grid-column: 1 / span 2; }
  .home-faction.is-mafia { grid-column: 3 / span 2; }
}
@media (max-width: 520px) {
  .home-trust-grid { grid-template-columns: 1fr 1fr; }
  .home-silo-stack { height: 7.4rem; }
  .home-silo-stack img { width: 5.2rem; }
}

body.has-cookie-banner {
  padding-bottom: var(--cookie-h, 0px);
}

.cookie-banner {
  position: fixed;
  z-index: 70;
  left: 0;
  right: 0;
  bottom: 0;
  background: color-mix(in srgb, var(--panel) 92%, #000);
  border-top: 1px solid var(--stroke);
  box-shadow: 0 -18px 40px rgba(0, 0, 0, .38);
  backdrop-filter: blur(12px);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner-inner {
  padding: 1.15rem 0 calc(1.15rem + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.35rem 2rem;
}
.cookie-banner-lead {
  display: flex;
  align-items: flex-start;
  gap: 1rem 1.15rem;
  min-width: 0;
}
.cookie-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 auto;
  margin-top: .15rem;
  border: 1px solid var(--crimson);
  background: color-mix(in srgb, var(--crimson) 14%, var(--bg));
  color: var(--crimson);
}
.cookie-icon-svg { display: block; }
.cookie-kicker {
  margin: 0 0 .28rem;
  color: var(--crimson);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.cookie-banner-copy { min-width: 0; }
.cookie-banner-title {
  margin: 0 0 .4rem;
  font-family: var(--serif);
  font-size: clamp(1.28rem, 2vw, 1.55rem);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.15;
  color: var(--ink);
}
.cookie-banner-copy > p:last-child {
  margin: 0;
  max-width: 44rem;
  font-size: .98rem;
  line-height: 1.55;
  color: var(--muted);
}
.cookie-banner-copy a {
  color: var(--ink);
  border-bottom: 1px solid var(--stroke);
}
.cookie-banner-copy a:hover,
.cookie-banner-copy a:focus-visible {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
.cookie-banner-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.1rem;
  flex: 0 0 auto;
}
.cookie-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: .82rem;
  letter-spacing: .04em;
  color: var(--dim);
  text-decoration: underline;
  text-underline-offset: .18em;
  cursor: pointer;
}
.cookie-link:hover,
.cookie-link:focus-visible {
  color: var(--ink);
}
.cookie-dialog {
  width: min(38rem, calc(100vw - 2rem));
  max-height: min(92vh, 48rem);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid var(--stroke);
  border-radius: 0;
  background: var(--panel);
  color: var(--ink);
  box-shadow: 0 24px 64px rgba(0, 0, 0, .55);
}
.cookie-dialog:focus {
  outline: none;
}
.cookie-dialog::backdrop {
  background: rgba(6, 4, 4, .72);
}
.cookie-dialog-form { padding: 1.55rem 1.5rem 1.35rem; }
.cookie-dialog-head {
  display: flex;
  align-items: flex-start;
  gap: .95rem;
  margin-bottom: 1rem;
}
.cookie-dialog-head .cookie-icon { margin-top: .1rem; }
.cookie-dialog h2 {
  margin: 0;
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  letter-spacing: -.015em;
}
.cookie-dialog-prose {
  margin: 0 0 1.2rem;
}
.cookie-dialog-prose p {
  margin: 0 0 .75rem;
  font-size: .98rem;
  line-height: 1.6;
  color: var(--muted);
}
.cookie-dialog-prose p:last-child { margin-bottom: 0; }
.cookie-choice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.15rem;
  margin: 0 0 .55rem;
  padding: 1rem 1.05rem;
  border: 1px solid var(--stroke);
  background: var(--panel-2);
  cursor: pointer;
}
.cookie-choice:last-of-type { margin-bottom: 1.15rem; }
.cookie-choice-text {
  min-width: 0;
  font-size: .92rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--muted) 70%, var(--dim));
}
.cookie-choice-name {
  display: block;
  margin-bottom: .28rem;
  font-family: var(--serif);
  font-size: 1.22rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--ink);
}
.cookie-choice input {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 2.55rem;
  height: 1.35rem;
  margin: 0;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  position: relative;
  cursor: pointer;
}
.cookie-choice input::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: .85rem;
  height: .85rem;
  background: var(--dim);
}
.cookie-choice input:checked {
  border-color: var(--crimson);
  background: color-mix(in srgb, var(--crimson) 20%, #0e0c0c);
}
.cookie-choice input:checked::after {
  left: auto;
  right: 2px;
  background: var(--crimson);
}
.cookie-choice input:disabled {
  opacity: .55;
  cursor: default;
}
.cookie-choice:has(input:disabled) { cursor: default; }
.cookie-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem 1rem;
}
.cookie-dialog-actions .cookie-link { margin-right: auto; }
@media (max-width: 760px) {
  .cookie-banner-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }
  .cookie-banner-actions {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: .7rem;
  }
  .cookie-banner-actions .btn { width: 100%; }
  .cookie-banner-actions .cookie-link { text-align: center; }
}
@media (max-width: 520px) {
  .cookie-dialog-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .cookie-dialog-actions .cookie-link {
    margin-right: 0;
    text-align: center;
  }
  .cookie-dialog-actions .btn { width: 100%; }
}

.faq-page-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}
.faq-page-intro h1 { margin-bottom: .45em; }
.faq-page-intro .lead { max-width: 36rem; }
.faq-page-intro .buy-bridge {
  width: 100%;
  max-width: none;
  margin: 1.35rem 0 1.25rem;
}
.faq-page-go {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  width: max-content;
  max-width: 100%;
  color: var(--ink);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .75rem;
  border-bottom: 1px solid var(--stroke);
}
.faq-page-go:hover,
.faq-page-go:focus-visible {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
.faq-page-go svg {
  width: 1em;
  height: 1em;
}
.faq-page-item {
  margin: 0;
  border-bottom: 1px solid var(--stroke);
  background: transparent;
}
.faq-page-item:first-child { border-top: 1px solid var(--stroke); }
.faq-page-item summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.1rem;
  cursor: pointer;
  list-style: none;
  padding: 1.15rem 0;
}
.faq-page-item summary::-webkit-details-marker { display: none; }
.faq-page-item h2,
.faq-page-item .faq-page-q {
  flex: 1;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.25;
  color: var(--ink);
  transition: color .15s ease;
}
@media (hover: hover) and (min-width: 760px) {
  .faq-page-item summary:hover h2,
  .faq-page-item summary:hover .faq-page-q {
    color: var(--crimson);
  }
}
.faq-page-item summary::after {
  content: "+";
  flex: 0 0 auto;
  margin-top: .15rem;
  color: var(--crimson);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1;
}
.faq-page-item[open] summary::after { content: "–"; }
.faq-page-item p {
  margin: 0;
  padding: 0 0 1.25rem;
  max-width: 42rem;
}
@media (min-width: 760px) {
  .faq-page-inner {
    grid-template-columns: minmax(16rem, .88fr) minmax(0, 1.12fr);
    gap: 2.4rem 3.4rem;
  }
  .faq-page-intro {
    position: sticky;
    top: calc(var(--header-h) + 1.15rem);
  }
}

html:has(body.lore-page) {
  scroll-behavior: auto;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}
body.lore-page {
  background: #050303;
  height: 100%;
  min-height: 100svh;
  overflow: hidden;
  overscroll-behavior: none;
}
body.lore-page.has-cookie-banner {
  padding-bottom: 0;
}
body.lore-page .cookie-banner,
body.lore-page .cookie-dialog {
  display: none !important;
}
body.lore-page main {
  padding: 0;
  height: 100%;
  overflow: hidden;
}
.lore-story {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100svh;
  overflow: hidden;
  color: var(--ink);
  --lore-clear: calc(11rem + env(safe-area-inset-bottom, 0px));
  --lore-scroll: 12px;
}
.lore-plate {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100lvh;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  transform: translateZ(0);
}
.lore-plate-img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 40%;
  transform: scale(1.14);
  filter: saturate(.55) contrast(1.12) brightness(.55);
  opacity: .55;
  transition: opacity 1.2s ease, filter 1.2s ease, transform 18s ease-out;
}
.lore-story.is-on .lore-plate-img {
  transform: scale(1.04) translate3d(-1.4%, 1.2%, 0);
}
.lore-story.is-lit .lore-plate-img {
  opacity: .78;
  filter: saturate(.75) contrast(1.18) brightness(.72);
}
.lore-plate-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(5, 3, 3, .62) 0%, rgba(5, 3, 3, .18) 46%, rgba(5, 3, 3, .48) 100%),
    linear-gradient(180deg, rgba(5, 3, 3, .06) 0%, rgba(5, 3, 3, .5) 100%);
}
.lore-plate-grain {
  position: absolute;
  inset: 0;
  opacity: .18;
  mix-blend-mode: overlay;
  background-image: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(243, 236, 228, .04) 2px,
    rgba(243, 236, 228, .04) 3px
  );
}
.lore-frame {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  margin: 0;
  padding: 1.4rem 3.6rem var(--lore-clear);
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #5a2424 transparent;
}
.lore-frame::-webkit-scrollbar {
  width: var(--lore-scroll);
}
.lore-frame::-webkit-scrollbar-track {
  background: transparent;
}
.lore-frame::-webkit-scrollbar-thumb {
  background: #5a2424;
  border: 2px solid transparent;
  background-clip: padding-box;
}
.lore-rail {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  align-items: center;
  position: fixed;
  top: 1.4rem;
  right: calc(var(--lore-scroll) + .85rem);
  z-index: 3;
  max-height: calc(100dvh - 7.6rem);
  pointer-events: none;
  user-select: none;
}
.lore-rail-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  color: var(--dim);
  font-size: .68rem;
  letter-spacing: .12em;
}
.lore-rail-mark span {
  position: relative;
  z-index: 1;
}
.lore-rail-mark::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1px;
  height: 1.15rem;
  background: #3a1515;
  transform: translate(-50%, -50%);
}
.lore-rail-mark.is-on {
  color: var(--crimson);
}
.lore-rail-mark.is-on::before {
  width: 2.15rem;
  height: 2.15rem;
  border: 1px solid var(--crimson);
  background: rgba(196, 30, 30, .12);
  box-shadow: 0 0 18px rgba(196, 30, 30, .2);
}
.lore-stage {
  min-width: 0;
  padding: .4rem 0 0;
}
.lore-chapter {
  max-width: none;
}
.lore-story:not(.is-on) .lore-chapter + .lore-chapter {
  margin-top: 4rem;
  padding-top: 3rem;
  border-top: 1px solid #3a1515;
}
.lore-chapter:not(.is-current) {
  display: none;
}
.lore-head {
  margin: 0 0 1.8rem;
}
.lore-kicker {
  display: flex;
  align-items: baseline;
  gap: .65rem;
  margin: 0 0 .7rem;
  color: var(--crimson);
  font-size: .72rem;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.lore-kicker span {
  color: var(--dim);
  letter-spacing: .2em;
}
.lore-title {
  margin: 0;
  font-size: clamp(3rem, 8vw, 6.2rem);
  line-height: .88;
  letter-spacing: -.04em;
  color: #f3ece4;
}
.lore-title:focus { outline: none; }
.lore-title:focus-visible {
  outline: 1px solid var(--crimson);
  outline-offset: 8px;
}
.lore-story.is-on .lore-head {
  opacity: 0;
  transform: translateY(1.1rem);
  filter: blur(8px);
}
.lore-story.is-on .lore-chapter.is-current.is-ready .lore-head {
  animation: lore-rise 1s cubic-bezier(.16, 1, .3, 1) forwards;
}
.lore-beats {
  display: grid;
  gap: 1.45rem;
}
.lore-continue {
  display: none;
  margin: 0;
  box-sizing: border-box;
}
.lore-continue.is-on {
  display: flex;
  align-items: center;
  height: var(--lore-clear);
  margin-bottom: calc(var(--lore-clear) * -1);
  padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
}
.lore-continue a {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  color: #f8f3ec;
  font-family: var(--serif);
  font-size: calc(1.42rem * 1.2);
  font-weight: 700;
  line-height: 1.15;
  text-decoration: none;
  opacity: 0;
  transform: translateY(1.6rem);
}
.lore-continue.is-on a {
  animation: lore-continue-in 2.8s cubic-bezier(.16, 1, .3, 1) forwards;
}
.lore-continue-arrow {
  display: block;
  width: 1.45em;
  height: .4em;
  flex-shrink: 0;
  translate: 0 .06em;
  overflow: visible;
  opacity: .82;
  transition: transform .4s cubic-bezier(.16, 1, .3, 1), opacity .4s ease;
}
.lore-continue a:hover,
.lore-continue a:focus-visible {
  color: var(--crimson);
}
.lore-continue a:hover .lore-continue-arrow,
.lore-continue a:focus-visible .lore-continue-arrow {
  transform: translateX(.38em);
  opacity: 1;
}
@media (min-width: 861px) {
  .lore-chapter,
  .lore-beats,
  .lore-line {
    display: grid;
    grid-template-columns: minmax(6.2rem, 1fr) minmax(0, 36rem) minmax(6.2rem, 1fr);
    column-gap: 1.6rem;
    align-items: start;
  }
  .lore-head,
  .lore-narration,
  .lore-mix,
  .lore-still,
  .lore-continue,
  .lore-line p {
    grid-column: 2;
    max-width: none;
    justify-self: stretch;
  }
  .lore-beats {
    grid-column: 1 / -1;
  }
  .lore-line {
    grid-column: 1 / -1;
  }
  .lore-line cite {
    grid-column: 1;
    text-align: right;
    margin-bottom: 0;
    padding-top: calc(.28rem + 2px);
  }
}
.lore-narration,
.lore-mix,
.lore-line,
.lore-still {
  margin: 0;
  scroll-margin-bottom: var(--lore-clear);
}
.lore-continue {
  scroll-margin-bottom: var(--lore-clear);
}
.lore-narration,
.lore-mix {
  max-width: 36rem;
  width: 100%;
  font-size: 1.12rem;
  line-height: 1.65;
  color: color-mix(in srgb, var(--muted) 82%, var(--ink));
}
.lore-mix .lore-speech {
  font-family: var(--serif);
  font-size: 1.42rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.35;
  color: #f8f3ec;
}
.lore-mix .lore-aside {
  font-style: normal;
  font-weight: inherit;
}
.lore-mix .lore-speech,
.lore-mix .lore-aside {
  display: inline;
}
.lore-line {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}
.lore-line cite {
  display: block;
  margin: 0 0 .35rem;
  color: var(--crimson);
  font-family: var(--sans);
  font-style: normal;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(.55rem);
  filter: blur(8px);
}
.lore-line cite.is-named {
  animation: lore-name .85s cubic-bezier(.16, 1, .3, 1) both;
}
.lore-line p {
  margin: 0;
  max-width: 36rem;
  font-family: var(--serif);
  font-size: 1.42rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.35;
  color: #f8f3ec;
}
.lore-still {
  max-width: 36rem;
  width: 100%;
}
.lore-still-open {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: zoom-in;
}
.lore-still-open:focus-visible {
  outline: 2px solid var(--crimson);
  outline-offset: 3px;
}
.lore-still-frame {
  display: block;
  background: #0a0607;
  border: 1px solid #3a1515;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
  line-height: 0;
}
.lore-still img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}
.lore-still figcaption {
  margin: .55rem 0 0;
  color: var(--dim);
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
dialog.lore-gallery {
  width: fit-content;
  max-width: calc(100vw - 1.5rem);
  max-height: calc(100vh - 1.5rem);
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  overflow: visible;
}
.lore-gallery::backdrop {
  background: rgba(5, 3, 3, .92);
}
.lore-gallery-sheet {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .6rem;
}
.lore-gallery-figure {
  margin: 0;
  min-width: 0;
}
.lore-gallery img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(92vw, 1600px);
  max-height: calc(100vh - 7.5rem);
  margin: 0 auto;
  object-fit: contain;
  border: 1px solid #3a1515;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
  background: #0a0607;
}
.lore-gallery figcaption {
  margin: .7rem 0 0;
  color: var(--muted);
  font-size: .78rem;
  letter-spacing: .14em;
  text-align: center;
  text-transform: uppercase;
}
.lore-gallery-close,
.lore-gallery-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 1px solid #3a1515;
  background: rgba(12, 8, 8, .85);
  color: var(--ink);
  cursor: pointer;
}
.lore-gallery-close {
  position: absolute;
  top: .55rem;
  right: .55rem;
  z-index: 1;
}
.lore-gallery-close svg,
.lore-gallery-nav svg {
  width: 16px;
  height: 16px;
}
.lore-gallery-close:hover,
.lore-gallery-close:focus-visible,
.lore-gallery-nav:hover,
.lore-gallery-nav:focus-visible {
  border-color: var(--crimson);
  color: #fff;
}
.lore-gallery-nav[hidden] {
  display: none;
}
@media (max-width: 640px) {
  .lore-gallery-sheet {
    grid-template-columns: minmax(0, 1fr);
  }
  .lore-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .lore-gallery-nav.is-prev { left: .35rem; }
  .lore-gallery-nav.is-next { right: .35rem; }
}
.lore-beats > :not(.is-in) {
  display: none;
}
.lore-narration.is-typing::after,
.lore-line p.is-typing::after,
.lore-mix .is-typing::after {
  content: "▍";
  display: inline-block;
  width: .45em;
  margin-left: .08em;
  color: var(--crimson);
  animation: lore-caret .72s steps(1, end) infinite;
}
.lore-still.is-in .lore-still-frame {
  animation: lore-wipe 1.15s cubic-bezier(.16, 1, .3, 1) both;
}
.lore-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding: .85rem 1.2rem calc(.95rem + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, transparent, rgba(5, 3, 3, .92) 36%);
  border-top: 1px solid #3a1515;
}
.lore-nav {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  justify-self: start;
  height: 2.15rem;
  padding: 0 .85rem;
  border: 1px solid #3a1515;
  background: rgba(12, 8, 8, .7);
  color: var(--ink);
  font: inherit;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  appearance: none;
  -webkit-appearance: none;
}
a.lore-nav:hover,
a.lore-nav:focus-visible {
  color: #fff;
}
.lore-nav.is-next { justify-self: end; }
.lore-nav-ico {
  display: block;
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
  translate: 0 -1px;
}
.lore-nav-label {
  display: block;
  line-height: 1;
}
.lore-nav:hover,
.lore-nav:focus-visible {
  border-color: var(--crimson);
  color: #fff;
}
.lore-nav:disabled {
  opacity: .35;
  cursor: default;
  border-color: #2a1212;
  color: var(--dim);
}
.lore-nav.is-next.is-end:not(:disabled) {
  background: var(--crimson);
  border-color: var(--crimson);
  color: #fff;
}
.lore-nav.is-next.is-end:not(:disabled):hover,
.lore-nav.is-next.is-end:not(:disabled):focus-visible {
  background: #e02828;
  border-color: #e02828;
  color: #fff;
}
.lore-count {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  letter-spacing: .08em;
  color: var(--ink);
}
.lore-count span {
  margin: 0 .35rem;
  color: var(--crimson);
  font-style: italic;
}
@keyframes lore-continue-in {
  from {
    opacity: 0;
    transform: translateY(1.6rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes lore-rise {
  to {
    opacity: 1;
    transform: none;
    filter: none;
  }
}
@keyframes lore-name {
  from {
    opacity: 0;
    transform: translateY(.45rem);
    filter: blur(7px);
  }
  to {
    opacity: 1;
    transform: none;
    filter: none;
  }
}
@keyframes lore-caret {
  0%, 45% { opacity: 1; }
  46%, 100% { opacity: 0; }
}
@keyframes lore-wipe {
  from {
    clip-path: inset(0 100% 0 0);
    transform: translateX(-2%);
  }
  to {
    clip-path: inset(0 0 0 0);
    transform: none;
  }
}
@keyframes lore-ken {
  from { transform: scale(1.12) translate3d(0, 0, 0); }
  to { transform: scale(1.06) translate3d(-1.2%, .8%, 0); }
}
@media (max-width: 860px) {
  .lore-plate {
    height: 100lvh;
  }
  .lore-plate-img {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 200%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    transform: translateX(-50%) scale(1.06);
    transform-origin: left center;
  }
  .lore-story.is-on .lore-plate-img {
    transform: translateX(-50%) scale(1.02);
  }
  .lore-plate-veil {
    background:
      linear-gradient(180deg, rgba(5, 3, 3, .38) 0%, rgba(5, 3, 3, .1) 34%, rgba(5, 3, 3, .62) 78%, rgba(5, 3, 3, .88) 100%),
      linear-gradient(90deg, rgba(5, 3, 3, .28) 0%, rgba(5, 3, 3, .04) 42%, rgba(5, 3, 3, .04) 58%, rgba(5, 3, 3, .32) 100%);
  }
  .lore-frame {
    padding: 1rem 2.7rem var(--lore-clear) 1rem;
  }
  .lore-rail {
    top: 1rem;
    right: calc(var(--lore-scroll) + .55rem);
  }
  .lore-rail-mark {
    width: 1.7rem;
    height: 1.7rem;
    font-size: .58rem;
  }
  .lore-rail-mark::before { height: .85rem; }
  .lore-rail-mark.is-on::before {
    width: 1.7rem;
    height: 1.7rem;
  }
  .lore-stage { padding: .2rem 0 0; }
  .lore-title { font-size: clamp(2.4rem, 14vw, 4.2rem); }
  .lore-line cite { margin-bottom: .3rem; }
  a.lore-nav .lore-nav-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lore-narration.is-typing::after,
  .lore-line p.is-typing::after {
    content: none;
    animation: none;
  }
  .lore-plate-img,
  .lore-story.is-on .lore-plate-img,
  .lore-still img {
    transition: none;
    animation: none !important;
    transform: none;
  }
  .lore-story.is-on .lore-head,
  .lore-line cite,
  .lore-line cite.is-named,
  .lore-continue.is-on a,
  .lore-still.is-in .lore-still-frame {
    animation: none !important;
    opacity: 1;
    transform: none;
    filter: none;
    clip-path: none;
  }
}
@media (prefers-reduced-motion: reduce) and (max-width: 860px) {
  .lore-plate-img,
  .lore-story.is-on .lore-plate-img {
    transform: translateX(-50%);
  }
}

.lore-faq {
  position: relative;
  z-index: 1;
  padding-top: 2.4rem;
  background: #070505;
  border-top: 1px solid var(--stroke);
}

body.is-order-success main { padding: 0; }
.order-success {
  position: relative;
  min-height: calc(100dvh - var(--header-h, 4.5rem));
  padding: 3.4rem 0 5rem;
  overflow: hidden;
}
.order-success-glow {
  position: absolute;
  inset: -20% 20% auto -10%;
  height: 28rem;
  background:
    radial-gradient(closest-side, color-mix(in srgb, var(--crimson) 22%, transparent), transparent 72%);
  pointer-events: none;
}
.order-success.is-fail .order-success-glow {
  background: radial-gradient(closest-side, color-mix(in srgb, var(--ink) 8%, transparent), transparent 72%);
}
.order-success-inner { position: relative; }
.order-success-head { max-width: 40rem; margin-bottom: 2.6rem; }
.order-success-head h1 {
  margin: 0 0 .55em;
  font-size: clamp(3.2rem, 10vw, 7.2rem);
  line-height: .88;
  letter-spacing: -.04em;
}
.order-success-head h1 em {
  font-style: italic;
  color: var(--crimson);
}
.order-success-head .lead {
  margin: 0;
  max-width: 34rem;
  font-size: 1.18rem;
  color: var(--muted);
}
.order-success-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .9fr);
  gap: 1.6rem 2.4rem;
  align-items: start;
}
.order-success-grid:not(:has(.order-success-side)) {
  grid-template-columns: minmax(0, 1fr);
}
.order-success-side {
  display: grid;
  gap: 1.1rem;
  align-content: start;
  min-width: 0;
}
.order-downloads {
  margin: 0;
  padding: 1.45rem 1.5rem 1.35rem;
  background: color-mix(in srgb, var(--panel) 88%, #000);
  border: 1px solid var(--stroke);
}
.order-downloads-head { margin: 0 0 1.1rem; }
.order-downloads-head h2 {
  margin: 0 0 .35rem;
  font-size: clamp(1.55rem, 3vw, 2rem);
}
.order-downloads-lead {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
}
.order-downloads-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.order-downloads-list li {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
  padding: 1.05rem 0;
  border-top: 1px solid var(--stroke);
}
.order-downloads-list li:first-child {
  padding-top: 0;
  border-top: 0;
}
.order-downloads-list li:last-child {
  padding-bottom: 0;
}
.order-downloads-copy {
  min-width: 0;
}
.order-downloads-name {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.2rem;
  line-height: 1.2;
  color: var(--ink);
}
.order-downloads-blurb {
  margin: .35rem 0 0;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.4;
}
.order-downloads-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .45rem;
}
.order-downloads-actions .btn {
  width: 100%;
  justify-content: center;
  min-height: 2.55rem;
  padding: .55rem .9rem;
  font-size: .9rem;
}
@media (min-width: 861px) {
  .order-downloads-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .order-downloads-actions .btn {
    width: auto;
    flex: 1 1 calc(50% - .25rem);
    min-width: 0;
  }
}
.order-receipt,
.order-next {
  background: color-mix(in srgb, var(--panel) 88%, #000);
  border: 1px solid var(--stroke);
}
.order-receipt { padding: 1.5rem 1.5rem 1.35rem; }
.order-next { padding: 1.6rem 1.55rem 1.5rem; }
.order-receipt-items li.is-digital .order-receipt-digital-ico {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
  color: var(--crimson);
}
.order-receipt-items li.is-digital .order-receipt-digital-ico .order-ico {
  width: 1.35rem;
  height: 1.35rem;
  margin: 0;
}
.order-receipt-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid var(--stroke);
}
.order-receipt-label {
  margin: 0 0 .2rem;
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--crimson);
}
.order-receipt-id {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: .9;
  letter-spacing: -.03em;
  color: var(--ink);
}
.order-receipt-date {
  margin: 0;
  color: var(--dim);
  font-size: .88rem;
}
.order-receipt-items {
  list-style: none;
  margin: 0;
  padding: 1.1rem 0;
}
.order-receipt-items li {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr) auto;
  gap: .85rem;
  align-items: center;
}
.order-receipt-items img {
  width: 3.4rem;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  border: 1px solid var(--stroke);
  background: #0e0c0c;
}
.order-receipt-name {
  margin: 0;
  color: var(--ink);
  font-weight: 600;
}
.order-receipt-meta {
  margin: .15rem 0 0;
  color: var(--dim);
  font-size: .86rem;
}
.order-receipt-sum {
  margin: 0;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.order-receipt-totals {
  margin: 0;
  padding: .85rem 0 1.05rem;
  border-top: 1px solid var(--stroke);
}
.order-receipt-totals div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1.2rem;
  margin: 0 0 .45rem;
}
.order-receipt-totals dt {
  margin: 0;
  max-width: 14rem;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.3;
}
.order-receipt-totals dd {
  margin: 0;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.order-receipt-totals .is-total {
  margin: .75rem 0 0;
  padding-top: .75rem;
  border-top: 1px solid var(--stroke);
  align-items: flex-end;
}
.order-receipt-totals .is-total dt {
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: .68rem;
  color: var(--dim);
}
.order-receipt-totals .is-total dd {
  font-family: var(--serif);
  font-size: 2rem;
  line-height: 1;
}
.order-receipt-ship,
.order-receipt-track {
  margin: 0 0 1rem;
  padding-top: .9rem;
  border-top: 1px solid var(--stroke);
}
.order-receipt-ship p,
.order-receipt-track p {
  margin: 0;
  color: var(--muted);
}
.order-receipt-ship p + p,
.order-receipt-track p + p { margin-top: .25rem; }
.order-copy {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .25rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--dim);
  font: inherit;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.order-copy:hover,
.order-copy:focus-visible { color: var(--crimson); }
.order-copy .order-ico,
.order-copy .btn-icon { width: 15px; height: 15px; }
.order-steps {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: grid;
  gap: 1.15rem;
}
.order-steps li {
  display: grid;
  grid-template-columns: 1.7rem minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
}
.order-steps .order-ico { color: var(--crimson); margin-top: .15rem; }
.order-steps h2 {
  margin: 0 0 .25rem;
  font-family: var(--sans);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink);
}
.order-steps p { margin: 0; color: var(--muted); }
.order-next-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
@media (max-width: 860px) {
  .order-success { padding-top: 2.2rem; }
  .order-success-grid { grid-template-columns: 1fr; }
}

body.is-lost main { padding: 0; }
.lost {
  position: relative;
  min-height: calc(100dvh - var(--header-h, 4.5rem));
  padding: 3.2rem 0 4.5rem;
  overflow: hidden;
}
.lost-glow {
  position: absolute;
  inset: -18% auto auto 8%;
  width: 36rem;
  height: 22rem;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--crimson) 20%, transparent), transparent 72%);
  pointer-events: none;
}
.lost-inner { position: relative; }
.lost-head { max-width: 38rem; margin-bottom: 2.4rem; }
.lost-head h1 {
  margin: 0 0 .5em;
  font-size: clamp(3.2rem, 10vw, 7rem);
  line-height: .88;
  letter-spacing: -.04em;
}
.lost-head h1 em {
  font-style: italic;
  color: var(--crimson);
}
.lost-head .lead {
  margin: 0;
  max-width: 32rem;
  font-size: 1.15rem;
}
.lost-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.lost-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  background: color-mix(in srgb, var(--panel) 90%, #000);
  border: 1px solid var(--stroke);
  color: inherit;
}
.lost-card:hover,
.lost-card:focus-visible {
  border-color: var(--crimson);
  color: inherit;
}
.lost-card img {
  width: 100%;
  aspect-ratio: var(--tarot);
  object-fit: cover;
  background: #0e0c0c;
  border-bottom: 1px solid var(--stroke);
}
.lost-card-copy {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.05rem 1.1rem 1.15rem;
}
.lost-card-kicker {
  margin: 0 0 .35rem;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--crimson);
}
.lost-card h2 {
  margin: 0 0 .4rem;
  font-size: 1.55rem;
  letter-spacing: -.02em;
  color: var(--ink);
}
.lost-card-copy > p:last-of-type {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: .95rem;
}
.lost-card-go {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: auto;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dim);
}
.lost-card:hover .lost-card-go,
.lost-card:focus-visible .lost-card-go { color: var(--crimson); }
.lost-home {
  margin: 2rem 0 0;
  font-size: .88rem;
}
.lost-home a { color: var(--dim); border-bottom: 1px solid var(--stroke); }
.lost-home a:hover { color: var(--crimson); border-bottom-color: var(--crimson); }
@media (max-width: 1080px) {
  .lost-cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .lost { padding-top: 2.1rem; }
  .lost-cards { grid-template-columns: 1fr; }
}

/* ===== Admin cheat-sheet studio (/admin/cheat-sheet) ===== */
body.is-host-studio {
  background: #070707;
}
.host-studio-chrome {
  padding: 2.6rem 0 2.2rem;
}
.host-studio-flag {
  display: inline-block;
  margin: 0 0 1rem;
  padding: .22rem .55rem;
  border: 1px solid var(--stroke);
  color: var(--crimson);
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.host-studio-chrome h1 {
  margin: 0 0 .55rem;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: .95;
  color: var(--ink);
}
.host-studio-chrome > p {
  max-width: 46rem;
  margin: 0 0 1.3rem;
  color: var(--muted);
  font-size: 1.05rem;
}
.host-studio-chrome code {
  font-size: .88em;
  color: var(--ink);
}
.host-studio-jump {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .9rem;
}
.host-studio-jump a {
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dim);
  border-bottom: 1px solid var(--stroke);
}
.host-studio-jump a:hover,
.host-studio-jump a:focus-visible {
  color: var(--crimson);
  border-bottom-color: var(--crimson);
}
.host-studio-caption {
  padding: 1.6rem 0 1.1rem;
}
.host-studio-kicker {
  margin: 0 0 .35rem;
  color: var(--crimson);
  font-size: .68rem;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.host-studio-caption h2 {
  margin: 0 0 .35rem;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  color: var(--ink);
}
.host-studio-caption p {
  max-width: 40rem;
  margin: 0;
  color: var(--dim);
  font-size: .92rem;
}
.host-studio-desk {
  overflow-x: auto;
  padding: 2.4rem 1.2rem 3.2rem;
  background:
    linear-gradient(180deg, #b9aea0 0%, #cfc4b4 42%, #c4b8a8 100%);
}
.host-studio-spread {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: start;
  gap: 2.4rem 2.2rem;
  width: max-content;
  min-width: 100%;
  margin: 0 auto;
}
.host-studio-paper {
  position: relative;
  width: 210mm;
  height: 297mm;
  flex-shrink: 0;
  margin: 1.4rem 0 0;
  box-shadow: 0 18px 50px rgba(40, 20, 16, .28);
}
.host-studio-leaf {
  position: absolute;
  top: -1.45rem;
  left: 0;
  margin: 0;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #8b1515;
}
.host-studio-paper::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px dashed rgba(139, 21, 21, .45);
  pointer-events: none;
  z-index: 4;
  box-sizing: border-box;
}
.host-studio-crop {
  position: absolute;
  width: 10px;
  height: 10px;
  border-color: #8b1515;
  z-index: 5;
  pointer-events: none;
}
.host-studio-crop--tl { top: -1px; left: -1px; border-top: 1px solid; border-left: 1px solid; }
.host-studio-crop--tr { top: -1px; right: -1px; border-top: 1px solid; border-right: 1px solid; }
.host-studio-crop--bl { bottom: -1px; left: -1px; border-bottom: 1px solid; border-left: 1px solid; }
.host-studio-crop--br { bottom: -1px; right: -1px; border-bottom: 1px solid; border-right: 1px solid; }
.host-studio-stage--phone {
  border-top: 1px solid var(--stroke);
}
.host-studio-night {
  display: flex;
  justify-content: center;
  padding: 1.4rem 1rem 3.6rem;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(196, 30, 30, .12), transparent 62%),
    #050505;
}
.host-studio-device {
  width: 402px;
  max-width: calc(100% - 1rem);
  padding: 9px;
  background: #101010;
  border: 1px solid #2c1616;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .55);
}

.sheet,
.sheet h1,
.sheet h2,
.sheet h3,
.sheet p,
.sheet li,
.sheet dt,
.sheet dd,
.sheet th,
.sheet td,
.sheet strong,
.sheet em {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
}
.sheet {
  border-radius: 0;
}
.sheet ul,
.sheet ol,
.sheet dl {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sheet table {
  border-collapse: collapse;
  width: 100%;
}
.sheet-tick,
.sheet-pad b {
  display: inline-block;
  width: .78em;
  height: .78em;
  border: .6px solid #c41e1e;
  background: transparent;
  flex-shrink: 0;
  vertical-align: -1px;
}
.sheet-chap {
  color: #c41e1e;
  font-family: var(--sans);
  font-weight: 600;
}

/* --- A4: low-ink print proof --- */
.sheet--a4 {
  display: flex;
  flex-direction: column;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
  padding: 8mm 9.5mm 7.5mm;
  background: #fff;
  color: #5a4e45;
  font-family: var(--sans);
  font-size: 8.15px;
  font-weight: 500;
  line-height: 1.28;
  box-sizing: border-box;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.sheet--a4 .sheet-mast-rule {
  height: 0;
  border-top: .7px solid #c41e1e;
  border-bottom: .35px solid #c41e1e;
  padding-bottom: 1.1px;
  margin-bottom: 2.4mm;
}
.sheet--a4 .sheet-kicker {
  color: #c41e1e;
  font-size: 7.2px;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 1.4mm;
}
.sheet--a4 .sheet-mast-row {
  display: flex;
  justify-content: space-between;
  gap: 8mm;
  align-items: end;
  padding-bottom: 2mm;
  border-bottom: .4px solid #222;
}
.sheet--a4 .sheet-mast-meta {
  display: flex;
  align-items: stretch;
  gap: 2.2mm;
  flex-shrink: 0;
  font-size: 7.6px;
  line-height: 1.45;
}
.sheet--a4 h1 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 600;
  line-height: .92;
  letter-spacing: -.02em;
  color: #111;
}
.sheet--a4 h1 em {
  font-style: italic;
  font-weight: 500;
  color: #c41e1e;
}
.sheet--a4 .sheet-sub {
  margin-top: 1.1mm;
  font-size: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #5a4e45;
}
.sheet--a4 .sheet-facts {
  text-align: right;
  font-size: inherit;
  line-height: inherit;
  color: #5a4e45;
}
.sheet--a4 .sheet-facts span {
  display: inline-block;
  min-width: 2.6em;
  margin-right: .4em;
  color: #c41e1e;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 6.6px;
  font-weight: 600;
}
.sheet--a4 .sheet-qr {
  display: block;
  box-sizing: border-box;
  width: calc(3 * 1.45em);
  height: calc(3 * 1.45em);
  max-width: none;
  flex-shrink: 0;
  object-fit: contain;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.sheet--a4 .sheet-mantra {
  margin: 1.8mm 0 3mm;
  font-family: var(--serif);
  font-style: italic;
  font-size: 9.5px;
  color: #111;
}
.sheet--a4 h2 {
  display: flex;
  align-items: baseline;
  gap: 1.4mm;
  margin: 0 0 1.3mm;
  padding-bottom: .6mm;
  border-bottom: .35px solid #c41e1e;
  font-size: 7.1px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #111;
}
.sheet--a4 .sheet-col--left h2:not(:first-child),
.sheet--a4 .sheet-col--mid h2:not(:first-child),
.sheet--a4 .sheet-col--right h2:not(:first-child) {
  margin-top: 2.6mm;
}
.sheet--a4 .sheet-chap {
  font-size: 7.1px;
  letter-spacing: .08em;
}
.sheet--a4 .sheet-lede,
.sheet--a4 .sheet-aside {
  margin: 0 0 1.4mm;
  color: #5a4e45;
}
.sheet--a4 .sheet-aside {
  font-family: var(--serif);
  font-style: italic;
  font-size: 8.6px;
}
.sheet--a4 .sheet-grid {
  flex: 1 1 auto;
  min-height: 0;
}
.sheet--a4.sheet-page--front .sheet-grid {
  display: grid;
  grid-template-columns: 31.2% 37.6% 31.2%;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "left mid right"
    "roles roles roles"
    "short short short";
  column-gap: 0;
  row-gap: 2mm;
  align-items: start;
}
.sheet--a4 .sheet-col--left { grid-area: left; padding-right: 3.2mm; }
.sheet--a4 .sheet-col--mid {
  grid-area: mid;
  padding: 0 3.3mm;
  border-left: .45px solid #c41e1e;
  border-right: .45px solid #c41e1e;
}
.sheet--a4 .sheet-col--right { grid-area: right; padding-left: 3.2mm; }
.sheet--a4.sheet-page--front .sheet-band--roles {
  grid-area: roles;
  padding-top: 1.6mm;
  border-top: .4px solid #222;
}
.sheet--a4.sheet-page--front .sheet-band--short {
  grid-area: short;
  padding-top: 1.6mm;
  border-top: .4px solid #222;
}
.sheet--a4 .sheet-band--pad { margin-top: 2.4mm; padding-top: 2mm; border-top: .4px solid #222; }
.sheet--a4 .sheet-col--left .sheet-fw {
  margin-top: 2.4mm;
  margin-left: 0;
  padding: 1.7mm 1.8mm 1.8mm;
  border: .45px solid #c41e1e;
}
.sheet--a4 .sheet-bullets li,
.sheet--a4 .sheet-steps li {
  position: relative;
  padding-left: 2.2mm;
  margin-bottom: .85mm;
  color: #5a4e45;
}
.sheet--a4 .sheet-bullets li::before,
.sheet--a4 .sheet-steps li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 1.1mm;
  height: .35px;
  background: #c41e1e;
}
.sheet--a4 .sheet-script {
  margin-bottom: 1.2mm;
}
.sheet--a4 .sheet-script li {
  margin: 0 0 .55mm;
  padding-left: 3.4mm;
  text-indent: -3.4mm;
  color: #5a4e45;
}
.sheet--a4 .sheet-script li::before {
  content: "— ";
  color: #c41e1e;
  font-weight: 600;
}
.sheet--a4 .sheet-script li.is-host {
  color: #c41e1e;
  font-style: italic;
}
.sheet--a4 .sheet-script--call li {
  font-weight: 600;
  color: #111;
}
.sheet--a4 .sheet-script--call li.is-host {
  font-weight: 400;
}
.sheet--a4 strong { font-weight: 600; }
.sheet--a4 .sheet-call li {
  display: grid;
  grid-template-columns: 2.4mm 4.6mm minmax(0, 1fr);
  gap: 0 1.3mm;
  align-items: start;
  padding: .45mm 0;
  border-bottom: .3px solid #d7d7d7;
}
.sheet--a4 .sheet-tick {
  margin-top: .45mm;
  width: 2.1mm;
  height: 2.1mm;
}
.sheet--a4 .sheet-call-n {
  color: #c41e1e;
  font-size: 7px;
  font-weight: 600;
  letter-spacing: .04em;
  padding-top: .1mm;
}
.sheet--a4 .sheet-call-name,
.sheet--a4 .sheet-call-say,
.sheet--a4 .sheet-call-note {
  display: inline;
}
.sheet--a4 .sheet-call-name {
  font-weight: 600;
  font-size: 8.4px;
  color: #111;
  margin-right: 1.2mm;
}
.sheet--a4 .sheet-call-say {
  color: #5a4e45;
}
.sheet--a4 .sheet-call-say::after {
  content: " · ";
  color: #c41e1e;
  font-weight: 600;
}
.sheet--a4 .sheet-call-note {
  color: #5a4e45;
}
.sheet--a4 .sheet-call-end {
  margin: 1.4mm 0 1.6mm;
  font-weight: 600;
  color: #111;
}
.sheet--a4 .sheet-mute {
  padding-top: 1.3mm;
  border-top: .35px solid #c41e1e;
}
.sheet--a4 .sheet-mute-label {
  margin-bottom: .6mm;
  color: #c41e1e;
  font-size: 6.8px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.sheet--a4 .sheet-crib {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 4mm;
}
.sheet--a4 .sheet-crib-label {
  margin-bottom: .9mm;
  color: #c41e1e;
  font-size: 6.8px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sheet--a4 .sheet-crib dl div {
  display: grid;
  grid-template-columns: 18mm minmax(0, 1fr);
  gap: 1.2mm;
  padding: .45mm 0;
  border-bottom: .3px solid #e4e4e4;
}
.sheet--a4 .sheet-crib dt {
  font-weight: 600;
  color: #111;
}
.sheet--a4 .sheet-crib dt i {
  font-style: normal;
  color: #c41e1e;
  font-weight: 600;
  font-size: 6.6px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sheet--a4 .sheet-pad {
  display: flex;
  flex-direction: column;
  gap: 1.7mm;
}
.sheet--a4 .sheet-pad p {
  display: flex;
  align-items: flex-end;
  gap: 2mm;
  margin: 0;
  min-height: 4.4mm;
}
.sheet--a4 .sheet-pad span {
  flex-shrink: 0;
  font-weight: 600;
  font-size: 7.2px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #c41e1e;
}
.sheet--a4 .sheet-pad-rule {
  display: none;
}
.sheet--a4 .sheet-pad i {
  display: block;
  flex: 1;
  min-width: 0;
  border-bottom: .45px solid #888;
  height: 4mm;
}
.sheet--a4 .sheet-pad b {
  width: 2.6mm;
  height: 2.6mm;
  margin-bottom: .4mm;
}
.sheet--a4 .sheet-pad-pair {
  gap: 2mm 3.2mm;
}
.sheet--a4 .sheet-pad-pair span:last-of-type {
  margin-left: 1.6mm;
}
.sheet--a4 .sheet-fw h2 {
  margin-top: 0;
}
.sheet--a4 .sheet-band--pad h2 {
  margin-top: 0;
}
.sheet--a4 .sheet-fw-trigger {
  margin: 0 0 1.2mm;
  font-weight: 600;
  color: #111;
}
.sheet--a4 .sheet-fw-say {
  margin-top: 1.2mm;
  padding-top: 1.1mm;
  border-top: .35px solid #c41e1e;
  font-family: var(--serif);
  font-style: italic;
  font-size: 8.6px;
  color: #111;
}
.sheet--a4 .sheet-fw-say span {
  display: inline-block;
  margin-right: 1.2mm;
  font-family: var(--sans);
  font-style: normal;
  font-size: 6.6px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #c41e1e;
}
.sheet--a4 .sheet-matrix {
  font-size: inherit;
  line-height: inherit;
}
.sheet--a4.sheet-page--front .sheet-crib dl div {
  padding: .32mm 0;
}
.sheet--a4 .sheet-matrix th {
  color: #c41e1e;
  font-size: 7.1px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-align: left;
  padding: 0 1.4mm .7mm 0;
  border-bottom: .45px solid #c41e1e;
}
.sheet--a4 .sheet-matrix th:last-child {
  text-align: right;
  padding-right: 0;
}
.sheet--a4 .sheet-matrix td {
  padding: .42mm 1.4mm .42mm 0;
  border-bottom: .3px solid #e0e0e0;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.sheet--a4 .sheet-matrix td:first-child,
.sheet--a4 .sheet-matrix td:last-child {
  font-weight: 600;
  color: #c41e1e;
  white-space: nowrap;
}
.sheet--a4 .sheet-matrix td:last-child {
  text-align: right;
  padding-right: 0;
}
.sheet--a4 .sheet-colophon {
  display: flex;
  justify-content: space-between;
  gap: 4mm;
  margin-top: auto;
  flex-shrink: 0;
  padding-top: 1.6mm;
  border-top: .7px solid #c41e1e;
  font-size: 7px;
  color: #5a4e45;
}
.sheet--a4 .sheet-colophon p:last-child {
  text-align: right;
  white-space: nowrap;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #c41e1e;
  font-weight: 600;
}

/* --- Mobile stacked: premium night table --- */
.sheet--phone {
  position: relative;
  width: 100%;
  padding: 28px 22px 36px 26px;
  background: #0a0a0a;
  color: #f3ece4;
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.45;
  box-sizing: border-box;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.sheet--phone::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #c41e1e;
}
.sheet--phone .sheet-mast-rule {
  height: 0;
  border-top: 1px solid #c41e1e;
  margin-bottom: 18px;
}
.sheet--phone .sheet-kicker {
  margin-bottom: 10px;
  color: #c41e1e;
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.sheet--phone h1 {
  font-family: var(--serif);
  font-size: 2.55rem;
  font-weight: 600;
  line-height: .92;
  letter-spacing: -.03em;
  color: #fff;
}
.sheet--phone h1 em {
  display: block;
  font-style: italic;
  font-weight: 500;
  color: #f3ece4;
}
.sheet--phone .sheet-sub {
  margin-top: 10px;
  color: #c9b8a8;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sheet--phone .sheet-facts {
  margin-top: 18px;
  padding: 14px 0;
  border-top: 1px solid #3a1515;
  border-bottom: 1px solid #3a1515;
}
.sheet--phone .sheet-facts li {
  display: flex;
  gap: .7rem;
  padding: .28rem 0;
  color: #f3ece4;
  font-size: .92rem;
}
.sheet--phone .sheet-facts span {
  width: 3.4rem;
  flex-shrink: 0;
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding-top: .28rem;
}
.sheet--phone .sheet-mantra {
  margin: 16px 0 8px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.2rem;
  line-height: 1.3;
  color: #f3ece4;
}
.sheet--phone .sheet-grid {
  display: flex;
  flex-direction: column;
}
.sheet--phone .sheet-col,
.sheet--phone .sheet-band,
.sheet--phone .sheet-fw {
  padding: 1.35rem 0 1.4rem;
  border-bottom: 1px solid #3a1515;
}
.sheet--phone h2 {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  margin-bottom: .75rem;
  padding-bottom: .45rem;
  border-bottom: 1px solid #c41e1e;
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: -.01em;
  color: #fff;
  text-transform: none;
}
.sheet--phone .sheet-chap {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 500;
}
.sheet--phone .sheet-lede,
.sheet--phone .sheet-aside {
  color: #c9b8a8;
  margin-bottom: .75rem;
}
.sheet--phone .sheet-aside { font-style: italic; }
.sheet--phone .sheet-bullets li,
.sheet--phone .sheet-steps li {
  position: relative;
  padding-left: .9rem;
  margin-bottom: .45rem;
  color: #f3ece4;
}
.sheet--phone .sheet-bullets li::before,
.sheet--phone .sheet-steps li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: .45rem;
  height: 1px;
  background: #c41e1e;
}
.sheet--phone .sheet-script li {
  margin-bottom: .4rem;
  padding-left: .85rem;
  border-left: 1px solid #c41e1e;
  color: #fff;
}
.sheet--phone .sheet-script li.is-host {
  color: #c9b8a8;
  font-style: italic;
  font-weight: 400;
}
.sheet--phone .sheet-script--call li { font-weight: 600; }
.sheet--phone strong { font-weight: 600; color: #fff; }
.sheet--phone .sheet-call li {
  display: grid;
  grid-template-columns: 14px 28px minmax(0, 1fr);
  gap: 0 .55rem;
  padding: .7rem 0;
  border-bottom: 1px solid #2a1414;
}
.sheet--phone .sheet-tick {
  margin-top: .35rem;
  width: 12px;
  height: 12px;
  border-width: 1px;
}
.sheet--phone .sheet-call-n {
  color: #c41e1e;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1rem;
  padding-top: .1rem;
}
.sheet--phone .sheet-call-name {
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.15;
}
.sheet--phone .sheet-call-say {
  margin-top: .15rem;
  color: #f3ece4;
}
.sheet--phone .sheet-call-note {
  color: #c9b8a8;
  font-size: .88rem;
}
.sheet--phone .sheet-call-end {
  margin: .9rem 0 .7rem;
  font-family: var(--serif);
  font-size: 1.15rem;
  color: #fff;
}
.sheet--phone .sheet-mute {
  margin-top: .4rem;
  padding: 1rem 0 0;
}
.sheet--phone .sheet-mute-label {
  margin-bottom: .4rem;
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sheet--phone .sheet-mute p { color: #c9b8a8; }
.sheet--phone .sheet-crib-label {
  margin: 1rem 0 .55rem;
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.sheet--phone .sheet-crib > div:first-child .sheet-crib-label {
  margin-top: 0;
}
.sheet--phone .sheet-crib dl div {
  padding: .55rem 0;
  border-bottom: 1px solid #2a1414;
}
.sheet--phone .sheet-crib dt {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: #fff;
}
.sheet--phone .sheet-crib dt i {
  font-family: var(--sans);
  font-style: normal;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #c41e1e;
}
.sheet--phone .sheet-crib dd {
  margin-top: .2rem;
  color: #c9b8a8;
  font-size: .95rem;
}
.sheet--phone .sheet-pad p {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: .55rem;
  margin-bottom: .7rem;
  min-height: 1.7rem;
}
.sheet--phone .sheet-pad span {
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.sheet--phone .sheet-pad i {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  flex: 1;
  min-width: 0;
  min-height: 26px;
  position: relative;
}
.sheet--phone .sheet-pad-rule {
  display: block;
  height: 2px;
  width: 100%;
  background: #f3ece4;
  flex-shrink: 0;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.sheet--phone .sheet-pad b {
  width: 16px;
  height: 16px;
  border-width: 1px;
  margin-bottom: 4px;
}
.sheet--phone .sheet-pad-pair {
  gap: .55rem 1.1rem;
}
.sheet--phone .sheet-pad-pair span:last-of-type {
  margin-left: .35rem;
}
.sheet--phone .sheet-col .sheet-fw {
  margin-top: 1.2rem;
  padding: 1.05rem 1rem 1.1rem;
  border: 1px solid #c41e1e;
  background: #111010;
}
.sheet--phone .sheet-col .sheet-band--pad {
  margin-top: 1.15rem;
  padding: 1.15rem 0 0;
  border-top: 1px solid #3a1515;
  border-bottom: 0;
}
.sheet--phone .sheet-fw h2 {
  margin-bottom: .65rem;
}
.sheet--phone .sheet-fw-trigger {
  margin: 0 0 .7rem;
  color: #fff;
  font-weight: 600;
}
.sheet--phone .sheet-fw-say {
  margin-top: .85rem;
  padding-top: .8rem;
  border-top: 1px solid #c41e1e;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.08rem;
  line-height: 1.35;
  color: #f3ece4;
}
.sheet--phone .sheet-fw-say span {
  display: block;
  margin-bottom: .3rem;
  font-family: var(--sans);
  font-style: normal;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #c41e1e;
}
.sheet--phone .sheet-matrix {
  font-size: inherit;
  line-height: inherit;
}
.sheet--phone .sheet-matrix th {
  color: #c41e1e;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-align: left;
  padding: 0 .45rem .55rem 0;
  border-bottom: 1px solid #c41e1e;
}
.sheet--phone .sheet-matrix th:last-child {
  text-align: right;
  padding-right: 0;
}
.sheet--phone .sheet-matrix td {
  padding: .5rem .45rem .5rem 0;
  border-bottom: 1px solid #2a1414;
  color: #f3ece4;
  vertical-align: top;
}
.sheet--phone .sheet-matrix td:first-child,
.sheet--phone .sheet-matrix td:last-child {
  color: #c41e1e;
  font-weight: 600;
  white-space: nowrap;
}
.sheet--phone .sheet-host-note {
  margin: 0;
  padding: 1.2rem 0 0;
  color: #c9b8a8;
  font-size: .92rem;
  line-height: 1.4;
}
.sheet--phone .sheet-colophon {
  padding-top: 1.2rem;
  color: #c41e1e;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .68rem;
  font-weight: 600;
}

.sheet--phone a.sheet-buy,
.sheet--phone a.sheet-buy:hover,
.sheet--phone a.sheet-buy:focus-visible {
  color: inherit;
  text-decoration: none;
}
.sheet--phone .sheet-buy {
  display: block;
  position: relative;
  margin: 1.1rem 0 0;
  padding: 1.15rem .95rem 1.2rem;
  border: 1px solid #c41e1e;
  background:
    radial-gradient(80% 55% at 50% 0%, rgba(196, 30, 30, .16), transparent 62%),
    #110c0c;
  overflow: visible;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.sheet--phone .sheet-buy-rule {
  height: 0;
  border-top: 1px solid #c41e1e;
  border-bottom: .45px solid #c41e1e;
  padding-bottom: 1.4px;
  margin-bottom: .85rem;
}
.sheet--phone .sheet-buy-kicker {
  margin: 0 0 .35rem;
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.sheet--phone .sheet-buy-stage {
  position: relative;
  height: 13.8rem;
  margin: .15rem -.35rem 1rem;
}
.sheet--phone .sheet-buy-fan,
.sheet--phone .sheet-buy-card,
.sheet--phone .sheet-buy-box {
  pointer-events: none;
}
.sheet--phone .sheet-buy-card,
.sheet--phone .sheet-buy-box {
  position: absolute;
  left: 50%;
  top: 52%;
  width: 4.55rem;
  max-width: none;
  height: auto;
  aspect-ratio: var(--tarot);
  margin: 0;
  object-fit: cover;
  background: #0a0a0a;
}
.sheet--phone .sheet-buy-card {
  border: 1px solid #3a1515;
  box-shadow: 0 12px 22px rgba(0, 0, 0, .5);
  transform-origin: 50% 82%;
  transition: transform .7s cubic-bezier(.16, 1, .3, 1);
}
.sheet--phone .sheet-buy-card:nth-child(1) {
  z-index: 1;
  transform: translate(-50%, -50%) rotate(-26deg) translate(-3.15rem, .55rem);
}
.sheet--phone .sheet-buy-card:nth-child(2) {
  z-index: 2;
  transform: translate(-50%, -50%) rotate(-13deg) translate(-1.7rem, .18rem);
}
.sheet--phone .sheet-buy-card:nth-child(3) {
  z-index: 3;
  transform: translate(-50%, -50%) rotate(0deg) translate(0, -.05rem);
}
.sheet--phone .sheet-buy-card:nth-child(4) {
  z-index: 4;
  transform: translate(-50%, -50%) rotate(13deg) translate(1.7rem, .18rem);
}
.sheet--phone .sheet-buy-card:nth-child(5) {
  z-index: 5;
  transform: translate(-50%, -50%) rotate(26deg) translate(3.15rem, .55rem);
}
.sheet--phone .sheet-buy-box {
  z-index: 8;
  width: 5.55rem;
  border: 1px solid #c41e1e;
  box-shadow:
    0 0 0 1px #0a0a0a,
    0 18px 36px rgba(0, 0, 0, .62);
  transform: translate(-50%, -50%);
  transition: transform .7s cubic-bezier(.16, 1, .3, 1);
}
.sheet--phone .sheet-buy:hover .sheet-buy-card:nth-child(1),
.sheet--phone .sheet-buy:focus-visible .sheet-buy-card:nth-child(1) {
  transform: translate(-50%, -50%) rotate(-32deg) translate(-3.55rem, .35rem);
}
.sheet--phone .sheet-buy:hover .sheet-buy-card:nth-child(2),
.sheet--phone .sheet-buy:focus-visible .sheet-buy-card:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-16deg) translate(-2rem, .05rem);
}
.sheet--phone .sheet-buy:hover .sheet-buy-card:nth-child(3),
.sheet--phone .sheet-buy:focus-visible .sheet-buy-card:nth-child(3) {
  transform: translate(-50%, -50%) rotate(0deg) translate(0, -.2rem);
}
.sheet--phone .sheet-buy:hover .sheet-buy-card:nth-child(4),
.sheet--phone .sheet-buy:focus-visible .sheet-buy-card:nth-child(4) {
  transform: translate(-50%, -50%) rotate(16deg) translate(2rem, .05rem);
}
.sheet--phone .sheet-buy:hover .sheet-buy-card:nth-child(5),
.sheet--phone .sheet-buy:focus-visible .sheet-buy-card:nth-child(5) {
  transform: translate(-50%, -50%) rotate(32deg) translate(3.55rem, .35rem);
}
.sheet--phone .sheet-buy:hover .sheet-buy-box,
.sheet--phone .sheet-buy:focus-visible .sheet-buy-box {
  transform: translate(-50%, calc(-50% - .18rem));
}
.sheet--phone .sheet-buy-title,
.sheet--phone h2.sheet-buy-title {
  display: block;
  margin: 0 0 .55rem;
  padding: 0;
  border: 0;
  font-family: var(--serif);
  font-size: 1.85rem;
  font-weight: 600;
  font-style: normal;
  line-height: .95;
  letter-spacing: -.03em;
  color: #fff;
  text-transform: none;
}
.sheet--phone .sheet-buy-title em {
  display: block;
  margin-top: .12rem;
  font-style: italic;
  font-weight: 500;
  color: #f3ece4;
}
.sheet--phone .sheet-buy-lede {
  margin: 0 0 .9rem;
  color: #c9b8a8;
  font-size: .95rem;
  line-height: 1.4;
}
.sheet--phone .sheet-buy-facts {
  margin: 0 0 1rem;
  padding: .7rem 0;
  border-top: 1px solid #3a1515;
  border-bottom: 1px solid #3a1515;
}
.sheet--phone .sheet-buy-facts li {
  display: flex;
  gap: .7rem;
  padding: .22rem 0;
  color: #f3ece4;
  font-size: .9rem;
}
.sheet--phone .sheet-buy-facts li::before {
  content: none;
}
.sheet--phone .sheet-buy-facts span {
  width: 3.4rem;
  flex-shrink: 0;
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding-top: .22rem;
}
.sheet--phone .sheet-buy-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  width: 100%;
  padding: .95rem 1rem;
  background: #c41e1e;
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  box-sizing: border-box;
  transition: background .2s ease;
}
.sheet--phone .sheet-buy-cta svg {
  display: block;
  width: 1.05em;
  height: 1.05em;
  flex-shrink: 0;
}
.sheet--phone .sheet-buy:hover .sheet-buy-cta,
.sheet--phone .sheet-buy:focus-visible .sheet-buy-cta {
  background: #e02828;
}
.sheet--phone .sheet-buy-url {
  display: block;
  margin-top: .7rem;
  color: #c41e1e;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: lowercase;
  text-align: center;
}
.sheet--phone .sheet-buy:focus-visible {
  outline: 2px solid #c41e1e;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .sheet--phone .sheet-buy-card,
  .sheet--phone .sheet-buy-box {
    transition: none;
  }
}

@media (max-width: 760px) {
  .host-studio-chrome { padding-top: 1.8rem; }
  .host-studio-desk { padding-left: .75rem; padding-right: .75rem; }
}

html:has(body.is-host-print),
body.is-host-print {
  background: #fff;
  margin: 0;
  padding: 0;
  min-height: 0;
  height: 297mm;
  max-width: none;
  overflow: hidden;
}
body.is-host-print main {
  margin: 0;
  padding: 0;
  width: 210mm;
  height: 297mm;
  overflow: hidden;
}
body.is-host-print .sheet--a4 {
  box-shadow: none;
}

@media print {
  @page {
    size: A4 portrait;
    margin: 0;
  }
  html:has(body.is-host-print),
  body.is-host-print {
    background: #fff !important;
    min-height: 0;
    height: auto;
    overflow: hidden;
  }
  body.is-host-print main {
    margin: 0;
    padding: 0;
  }
  body.is-host-studio {
    background: #fff !important;
  }
  body.admin.is-host-studio {
    display: block;
    grid-template-columns: none;
  }
  body.is-host-studio .skip,
  body.is-host-studio .site-header,
  body.is-host-studio .site-footer,
  body.is-host-studio .cart-root,
  body.is-host-studio .cookie-banner,
  body.is-host-studio .cookie-dialog,
  body.is-host-studio .nav-mobile,
  body.is-host-studio .admin-side,
  body.is-host-studio .host-studio-chrome,
  body.is-host-studio .host-studio-caption,
  body.is-host-studio .host-studio-stage--phone,
  body.is-host-studio .host-studio-crop,
  body.is-host-studio .host-studio-leaf,
  body.is-host-studio .host-studio-paper::after {
    display: none !important;
  }
  body.is-host-studio .host-studio-desk {
    background: #fff;
    padding: 0;
    overflow: visible;
  }
  body.is-host-studio .admin-main {
    padding: 0;
    overflow: visible;
  }
  body.is-host-studio .host-studio-spread {
    display: block;
    width: auto;
    min-width: 0;
    gap: 0;
  }
  body.is-host-studio .host-studio-paper {
    box-shadow: none;
    margin: 0;
    width: 210mm;
    height: 297mm;
  }
  body.is-host-studio .sheet--a4 {
    box-shadow: none;
  }
}

html:has(body.is-host-print-mobile),
body.is-host-print-mobile {
  background: #0a0a0a;
  margin: 0;
  padding: 0;
  min-height: 0;
  height: auto;
  max-width: none;
  overflow: visible;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
body.is-host-print-mobile main {
  margin: 0;
  padding: 0;
  width: 402px;
  max-width: none;
}
body.is-host-print-mobile .sheet--phone {
  width: 402px;
}
body.is-host-print-mobile .sheet-tick {
  width: 18px;
  height: 18px;
  margin-top: .22rem;
}
body.is-host-print-mobile .sheet-call li {
  grid-template-columns: 22px 28px minmax(0, 1fr);
}
body.is-host-print-mobile .sheet-pad i {
  min-height: 36px;
}
body.is-host-print-mobile .sheet-pad-rule {
  display: none;
}
body.is-host-print-mobile .sheet-pad b {
  width: 18px;
  height: 18px;
}
body.is-host-print-mobile .sheet-buy-card,
body.is-host-print-mobile .sheet-buy-box {
  transition: none;
}

@media print {
  body.is-host-print-mobile {
    background: #0a0a0a !important;
  }
  body.is-host-print-mobile main,
  body.is-host-print-mobile .sheet--phone {
    width: 402px;
  }
}

