:root {
  --ink: #070707;
  --paper: #f3ead6;
  --dirty-paper: #e3d3af;
  --bone: #fff2d6;
  --white: #f7f4ec;
  --cyan: #14b8ff;
  --cyan-dark: #00638d;
  --orange: #ff6400;
  --yellow: #ffc400;
  --red: #e32719;
  --green: #a7ff2f;
  --bruise: #171923;
  --sludge: #272719;
  --shadow: 8px 8px 0 var(--ink);
  --fat-border: 4px solid var(--ink);
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--ink);
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--white);
  background:
    radial-gradient(circle at 12% 20%, rgba(255,100,0,.22), transparent 22rem),
    radial-gradient(circle at 82% 16%, rgba(20,184,255,.18), transparent 20rem),
    linear-gradient(135deg, #070707 0%, #131313 48%, #070707 100%);
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", system-ui, sans-serif;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 27px 27px, 27px 27px;
  mask-image: radial-gradient(circle at center, black, transparent 75%);
  z-index: -3;
}

img { max-width: 100%; display: block; }

a { color: inherit; }

.noise {
  position: fixed;
  inset: -20%;
  opacity: .13;
  pointer-events: none;
  z-index: 20;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode: screen;
  animation: jitter 1.1s steps(2, end) infinite;
}

@keyframes jitter {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(-2%, 1%); }
  50% { transform: translate(1%, -2%); }
  75% { transform: translate(2%, 2%); }
}

.spray {
  position: fixed;
  width: 31rem;
  aspect-ratio: 1;
  border-radius: 999px;
  filter: blur(70px);
  opacity: .28;
  pointer-events: none;
  z-index: -2;
}

.s1 { background: var(--cyan); left: -10rem; top: 20rem; }
.s2 { background: var(--red); right: -13rem; bottom: 1rem; }

.ticker {
  position: relative;
  overflow: hidden;
  height: 34px;
  display: flex;
  align-items: center;
  background:
    repeating-linear-gradient(
      -12deg,
      rgba(255, 43, 214, 0.16) 0 12px,
      rgba(0, 229, 255, 0.10) 12px 24px,
      rgba(255, 255, 255, 0.04) 24px 28px
    ),
    #05070c;
  border-top: 3px solid #ff2bd6;
  border-bottom: 3px solid #00e5ff;
  color: #ffffff;
  box-shadow:
    0 6px 0 #000,
    0 0 22px rgba(255, 43, 214, 0.35);
}

.ticker::before,
.ticker::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 70px;
  z-index: 2;
  pointer-events: none;
}

.ticker::before {
  left: 0;
  background: linear-gradient(90deg, #05070c, transparent);
}

.ticker::after {
  right: 0;
  background: linear-gradient(270deg, #05070c, transparent);
}

.ticker-track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: 300%;
  white-space: nowrap;
  animation: crawl 22s linear infinite;
  will-change: transform;
}

.ticker-track span {
  flex: 0 0 auto;
  display: inline-block;
  padding: 5px 2rem 0 0;
  color: #ffffff;
  font-size: .92rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-shadow:
    2px 2px 0 #ff2bd6,
    -2px -1px 0 #00e5ff,
    0 0 10px rgba(255, 255, 255, 0.04);
}

@keyframes crawl {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-33.333%, 0, 0);
  }
}

.site-header {
  position: sticky;
  top: 34px;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: min(1180px, calc(100% - 24px));
  margin: 18px auto 0;
  padding: .65rem .8rem;
  color: var(--ink);
  background: rgba(243,234,214,.94);
  border: var(--fat-border);
  box-shadow: var(--shadow);
  transform: rotate(.45deg);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  text-decoration: none;
  text-transform: uppercase;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 46px;
  height: 42px;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  transform: rotate(-5deg);
}

.brand-text {
  max-width: 14ch;
  font-size: clamp(1rem, 3vw, 1.35rem);
  line-height: .86;
  letter-spacing: .03em;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .9rem;
  text-transform: uppercase;
}

.main-nav a,
.mobile-nav a {
  padding: .55rem .7rem;
  text-decoration: none;
  border: 2px solid transparent;
}

.main-nav a:hover,
.mobile-nav a:hover {
  color: var(--white);
  background: var(--ink);
  border-color: var(--ink);
}

.nav-cta {
  color: var(--ink);
  background: var(--green);
  border: 2px solid var(--ink) !important;
  box-shadow: 3px 3px 0 var(--ink);
  transform: rotate(-2deg);
}

.nav-toggle {
  display: none;
  border: 3px solid var(--ink);
  background: var(--yellow);
  font: inherit;
  font-size: 1.15rem;
  box-shadow: 3px 3px 0 var(--ink);
}

.mobile-nav {
  display: none;
  width: min(1180px, calc(100% - 24px));
  margin: .75rem auto 0;
  padding: .65rem;
  color: var(--ink);
  background: var(--dirty-paper);
  border: var(--fat-border);
  box-shadow: var(--shadow);
}

.section-slab,
.intro,
.modes,
.manifesto,
.join {
  width: min(1180px, calc(100% - 24px));
  margin-inline: auto;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr);
  gap: clamp(1rem, 4vw, 3rem);
  align-items: center;
  margin-top: clamp(2rem, 7vw, 5.5rem);
  padding: clamp(1rem, 4vw, 3rem);
  background:
    linear-gradient(120deg, rgba(7,7,7,.92), rgba(7,7,7,.68)),
    repeating-linear-gradient(-12deg, rgba(255,255,255,.06) 0 2px, transparent 2px 14px);
  border: 6px solid var(--white);
  outline: 4px solid var(--ink);
  box-shadow: 14px 14px 0 var(--cyan), 20px 20px 0 var(--ink);
  transform: rotate(-.7deg);
}

.hero-copy { transform: rotate(.7deg); }

.eyebrow {
  display: inline-block;
  margin: 0 0 1rem;
  padding: .32rem .5rem .22rem;
  color: var(--ink);
  background: var(--yellow);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .78rem;
}

h1,
h2,
h3,
p { margin-top: 0; }

h1 {
  max-width: 11ch;
  margin-bottom: 1rem;
  color: var(--white);
  font-size: clamp(4rem, 12vw, 9.3rem);
  line-height: .71;
  letter-spacing: -.055em;
  text-transform: uppercase;
  text-shadow: 5px 5px 0 var(--red), 9px 9px 0 var(--ink);
}

.graffiti-tag,
.graffiti-callout {
  position: relative;
  display: inline;
  padding: .04em .12em .08em;
  color: var(--white);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  -webkit-text-stroke: 2px var(--ink);
  paint-order: stroke fill;
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.02));
}

.graffiti-tag::before,
.graffiti-callout::before {
  content: "";
  position: absolute;
  left: -.18em;
  right: -.18em;
  bottom: .06em;
  height: .42em;
  background: rgba(20,184,255,.95);
  z-index: -1;
  transform: rotate(-1.5deg);
  filter: saturate(1.1);
}

.graffiti-tag::after,
.graffiti-callout::after {
  content: "";
  position: absolute;
  left: -.1em;
  right: -.28em;
  top: .18em;
  bottom: -.02em;
  background: rgba(227,39,25,.92);
  z-index: -2;
  transform: rotate(1.7deg);
}

.graffiti-tag {
  text-shadow: 3px 3px 0 var(--ink), 7px 7px 0 var(--red), 11px 11px 0 rgba(0,0,0,.85);
}

.graffiti-callout {
  line-height: .84;
  text-shadow: 2px 2px 0 var(--ink), 5px 5px 0 rgba(0,0,0,.35);
}

.mode-title-pop {
  display: inline;
  padding: .04em .16em .08em;
  color: var(--ink);
  background: var(--orange);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  -webkit-text-stroke: 1px var(--ink);
  paint-order: stroke fill;
  text-shadow:
    3px 3px 0 var(--cyan),
    6px 6px 0 var(--red);
  box-shadow:
    8px 8px 0 var(--ink),
    -5px -5px 0 var(--green);
}

.host-title-pop {
  display: inline;
  padding: .04em .16em .08em;
  color: var(--white);
  background: var(--red);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  -webkit-text-stroke: 2px var(--ink);
  paint-order: stroke fill;
  text-shadow:
    3px 3px 0 var(--ink),
    6px 6px 0 var(--cyan);
  box-shadow:
    8px 8px 0 var(--ink),
    -5px -5px 0 var(--yellow);
}

.join-title-pop {
  display: inline;
  padding: .04em .16em .08em;
  color: var(--ink);
  background: var(--green);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  -webkit-text-stroke: 1px var(--ink);
  paint-order: stroke fill;
  text-shadow:
    3px 3px 0 var(--yellow),
    6px 6px 0 var(--red);
  box-shadow:
    8px 8px 0 var(--ink),
    -5px -5px 0 var(--cyan);
}

.spray-light::before {
  background: rgba(255,196,0,.98);
}

.spray-light::after {
  background: rgba(20,184,255,.92);
}

.tagline {
  display: inline-block;
  margin-bottom: 1rem;
  padding: .55rem .75rem;
  color: var(--ink);
  background: var(--green);
  border: var(--fat-border);
  box-shadow: 6px 6px 0 var(--red);
  font-size: clamp(1rem, 2vw, 1.35rem);
  transform: rotate(-2deg);
}

.tagline strong {
  color: var(--red);
  text-shadow: 1px 1px 0 var(--ink);
}

.hero-text {
  max-width: 48rem;
  color: #eee4d0;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  line-height: 1.35;
}

.hero-actions,
.form-row {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  align-items: center;
}

.button,
.signup-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: .75rem 1rem .65rem;
  border: var(--fat-border);
  box-shadow: 6px 6px 0 var(--ink);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", system-ui, sans-serif;
  font-weight: 950;
  line-height: 1;
  transition: transform .15s ease, box-shadow .15s ease;
}

.button:hover,
.signup-form button:hover {
  transform: translate(3px, 3px) rotate(-1deg);
  box-shadow: 3px 3px 0 var(--ink);
}

.primary,
.signup-form button { color: var(--white); background: var(--red); }
.secondary { color: var(--ink); background: var(--cyan); }

.hero-art {
  position: relative;
  justify-self: center;
  isolation: isolate;
  transform: rotate(2deg);
}

.hero-art::before {
  content: "";
  position: absolute;
  inset: 8% -1% 0 6%;
  z-index: -1;
  background: var(--orange);
  clip-path: polygon(8% 15%, 100% 4%, 89% 88%, 13% 100%);
  opacity: .94;
  transform: rotate(-8deg);
}

.hero-art img {
  width: min(530px, 100%);
  filter: drop-shadow(14px 18px 0 rgba(0,0,0,.72));
}

.tape {
  position: absolute;
  z-index: 3;
  width: 120px;
  height: 42px;
  background: rgba(255, 242, 214, .77);
  border: 3px solid rgba(7,7,7,.75);
  background-image: repeating-linear-gradient(45deg, transparent 0 8px, rgba(0,0,0,.12) 8px 10px);
}

.tape-a { right: 8%; top: 8%; transform: rotate(18deg); }

.warning-card {
  position: absolute;
  right: 2%;
  bottom: 0%;
  padding: .6rem .7rem;
  color: var(--ink);
  background: var(--yellow);
  border: var(--fat-border);
  box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(-9deg);
}

.warning-card span,
.warning-card strong { display: block; }
.warning-card span { font-size: .7rem; letter-spacing: .12em; }
.warning-card strong { color: var(--red); font-size: 1.6rem; line-height: .9; }

.rip-strip {
  display: flex;
  justify-content: center;
  gap: .3rem;
  width: 110%;
  margin: 5rem 0 3rem -5%;
  padding: .7rem;
  color: var(--ink);
  background: var(--white);
  border-block: 5px solid var(--ink);
  transform: rotate(1.3deg);
  overflow: hidden;
}

.rip-strip span {
  flex: 0 0 auto;
  padding: .3rem .8rem .2rem;
  background: var(--ink);
  color: var(--white);
  clip-path: polygon(0 15%, 100% 0, 96% 100%, 5% 88%);
}

.intro {
  display: grid;
  grid-template-columns: 1.5fr .75fr .75fr;
  gap: 1rem;
  margin-bottom: 5rem;
}

.card,
.step,
.mode-card,
.join-card,
.host-board {
  color: var(--ink);
  background: var(--paper);
  border: var(--fat-border);
  box-shadow: var(--shadow);
}

.card { padding: clamp(1rem, 3vw, 2rem); }

.big-card { transform: rotate(-.8deg); }
.big-card h2,
.section-title h2,
.host-copy h2,
.manifesto h2,
.join-card h2 {
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: .78;
  letter-spacing: -.04em;
  text-transform: uppercase;
}

.big-card h2,
.section-title h2 {
  margin-bottom: .45rem;
}

.big-card p,
.step p,
.mode-card p,
.host-copy p,
.manifesto p,
.join-card p,
.site-footer p {
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 1.08rem;
  line-height: 1.35;
}

.stat-card {
  display: grid;
  place-items: center;
  text-align: center;
  background: var(--cyan);
  transform: rotate(2.5deg);
}

.stat-card.skewed {
  background: var(--orange);
  transform: rotate(-3deg);
}

.stat-number {
  display: block;
  color: var(--red);
  font-size: clamp(4rem, 10vw, 7rem);
  line-height: .8;
  text-shadow: 3px 3px 0 var(--ink);
}

.stat-label {
  max-width: 10ch;
  text-transform: uppercase;
}

.how,
.host {
  padding: clamp(1rem, 4vw, 2.4rem);
  margin-bottom: 5rem;
  background: var(--bruise);
  border: 5px dashed var(--cyan);
  box-shadow: 10px 10px 0 var(--ink), -8px -8px 0 var(--red);
}

.section-title {
  max-width: 760px;
  margin-bottom: 2rem;
}

.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.step {
  min-height: 250px;
  padding: 1.2rem;
  background:
    linear-gradient(var(--paper), var(--paper)),
    repeating-linear-gradient(90deg, transparent 0 6px, rgba(0,0,0,.18) 6px 9px);
  transform: rotate(-1deg);
}

.step:nth-child(2) { transform: rotate(1.2deg); background: var(--dirty-paper); }
.step:nth-child(3) { transform: rotate(-2.2deg); background: var(--green); }

.step-number {
  display: inline-block;
  margin-bottom: 1rem;
  color: var(--red);
  font-size: 3.6rem;
  line-height: .8;
  text-shadow: 2px 2px 0 var(--ink);
}

.step h3,
.mode-card h3 {
  font-size: 2rem;
  line-height: .85;
  text-transform: uppercase;
}

.modes { margin-bottom: 5rem; }

.sideways-title {
  margin-left: auto;
  transform: rotate(.8deg);
}

.mode-wall {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
}

.mode-card {
  position: relative;
  min-height: 300px;
  padding: 1.1rem 1.1rem 4.8rem;
  overflow: hidden;
  transform: rotate(-2deg);
}

.mode-card::after {
  content: "";
  position: absolute;
  inset: auto -20% -18% auto;
  width: 11rem;
  aspect-ratio: 1;
  background: rgba(0,0,0,.12);
  border-radius: 50%;
}

.mode-card:nth-child(even) { transform: rotate(2deg); margin-top: 2rem; }
.mode-card.hot { background: var(--red); color: var(--white); }
.mode-card.gross { background: var(--green); }
.mode-card.blue { background: var(--cyan); }
.mode-card.scratch { background: var(--dirty-paper); }
.mode-card.zombie {
  color: var(--white);
  background:
    radial-gradient(circle at 18% 12%, rgba(167,255,47,.34), transparent 4.5rem),
    repeating-linear-gradient(-18deg, rgba(0,0,0,.18) 0 8px, transparent 8px 18px),
    #41121b;
}
.mode-card.zombie h3 {
  color: var(--green);
  text-shadow: 2px 2px 0 var(--ink), 4px 4px 0 var(--red);
}
.mode-card.zombie p { color: #fff4df; }

.mode-card span {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  display: inline-block;
  padding: .4rem .5rem;
  color: var(--white);
  background: var(--ink);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.host {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .75fr);
  gap: 1.4rem;
  align-items: center;
  background:
    radial-gradient(circle at 100% 0, rgba(255,100,0,.27), transparent 17rem),
    var(--sludge);
}

.host-board {
  padding: 1rem;
  background: #101010;
  color: var(--white);
  border-color: var(--white);
  box-shadow: 10px 10px 0 var(--orange);
  transform: rotate(2deg);
}

.board-top,
.player-row {
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  align-items: center;
  padding: .75rem;
  border: 3px solid currentColor;
}

.board-top {
  margin-bottom: .65rem;
  color: var(--green);
}

.player-row {
  margin-top: .55rem;
  font-family: "Arial Narrow", Arial, sans-serif;
  background: rgba(255,255,255,.06);
}

.player-row.alive b { color: var(--green); }
.player-row.dead b { color: var(--red); }
.player-row.danger b { color: var(--yellow); }

.manifesto {
  margin-bottom: 5rem;
  padding: clamp(1rem, 5vw, 3rem);
  color: var(--ink);
  background:
    linear-gradient(90deg, rgba(255,255,255,.6), rgba(255,255,255,.18)),
    var(--orange);
  border: 6px solid var(--ink);
  box-shadow: 12px 12px 0 var(--red), 18px 18px 0 var(--ink);
  transform: rotate(-1deg);
}

.manifesto p {
  max-width: 800px;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.join {
  margin-bottom: 4rem;
}

.join-card {
  max-width: 840px;
  margin-inline: auto;
  padding: clamp(1rem, 5vw, 3rem);
  background: var(--paper);
  transform: rotate(.8deg);
}

.join-copy {
  position: relative;
  top:4px;
  z-index: 2;
  display: block;
  clear: both;
  margin: 1.25rem 0 1.5rem;
  max-width: 100ch;
}

.signup-form label {
  display: block;
  margin-bottom: .35rem;
  text-transform: uppercase;
}

.signup-form input {
  flex: 1 1 270px;
  min-height: 50px;
  padding: .75rem .85rem;
  color: var(--ink);
  background: var(--white);
  border: var(--fat-border);
  font: 1rem Arial, sans-serif;
  box-shadow: inset 4px 4px 0 rgba(0,0,0,.12);
}

.signup-form button {
  font: inherit;
  cursor: pointer;
}

.form-note {
  min-height: 1.4em;
  margin-top: .8rem;
  color: var(--red);
  font-family: "Arial Narrow", Arial, sans-serif;
  font-weight: 700;
}

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  width: min(1180px, calc(100% - 24px));
  margin: 0 auto 2rem;
  padding: 1rem;
  color: var(--ink);
  background: var(--dirty-paper);
  border: var(--fat-border);
  box-shadow: 7px 7px 0 var(--ink);
}

.site-footer p { margin: 0; }
.site-footer a { text-transform: uppercase; }

.site-footer {
  position: relative;
}

.secret-qr {
  position: absolute;
  right: 1rem;
  bottom: 0.65rem;
  z-index: 20;
}

.secret-qr summary {
  width: 14px;
  height: 14px;
  display: grid;
  place-items: center;
  list-style: none;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.18);
  font-size: 1.4rem;
  line-height: 1;
  user-select: none;
  transform: rotate(-8deg);
}

.secret-qr summary::-webkit-details-marker {
  display: none;
}

.secret-qr summary:hover,
.secret-qr[open] summary {
  color: rgba(255, 255, 255, 0.75);
}

.secret-qr-card {
  position: absolute;
  right: 0;
  bottom: 1.7rem;
  width: 150px;
  padding: 0.55rem;
  background: #f7f7f7;
  border: 3px solid #061018;
  box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.45);
  transform: rotate(2deg);
}

.secret-qr-card span {
  display: block;
  margin-bottom: 0.35rem;
  color: #061018;
  font-size: 0.7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
}

.secret-qr-card img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 1100px) {
  .mode-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .main-nav { display: none; }
  .nav-toggle { display: inline-grid; place-items: center; }
  .mobile-nav.open { display: grid; gap: .35rem; }
  .hero,
  .host,
  .intro,
  .steps,
  .mode-wall {
    grid-template-columns: 1fr;
  }
  .hero { margin-top: 2rem; }
  .hero-art { order: -1; }
  .stat-card,
  .stat-card.skewed,
  .mode-card:nth-child(even) { margin-top: 0; }
}

@media (max-width: 560px) {
  .ticker { height: 30px; }
  .site-header { top: 30px; }
  .brand-text { max-width: 10ch; }
  h1 { font-size: clamp(3.2rem, 18vw, 5rem); }
  .hero,
  .how,
  .host { box-shadow: 7px 7px 0 var(--cyan), 12px 12px 0 var(--ink); }
  .rip-strip { justify-content: flex-start; overflow-x: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}


/* =========================================================
   Phase 6A — Seamless player account portal
   ========================================================= */

[hidden] { display: none !important; }

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
  min-width: 0;
}

.account-shell {
  position: relative;
  flex: 0 0 auto;
}

.account-button {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 43px;
  max-width: 190px;
  padding: .28rem .58rem .24rem .35rem;
  color: var(--white);
  background: var(--ink);
  border: 3px solid var(--ink);
  box-shadow: 3px 3px 0 var(--red);
  font: inherit;
  font-size: .78rem;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transform: rotate(1deg);
}

.account-button:hover,
.account-button:focus-visible {
  color: var(--ink);
  background: var(--cyan);
  outline: 3px solid var(--red);
  outline-offset: 2px;
}

.account-button .portal-avatar-surface {
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  object-fit: cover;
  background-color: var(--cyan);
  border: 2px solid currentColor;
  border-radius: 50%;
}

.account-button #accountButtonLabel {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-button.signed-in {
  color: var(--ink);
  background: var(--green);
}

.account-menu {
  position: absolute;
  top: calc(100% + .65rem);
  right: 0;
  z-index: 50;
  width: min(270px, calc(100vw - 30px));
  padding: .55rem;
  color: var(--ink);
  background: var(--paper);
  border: var(--fat-border);
  box-shadow: 8px 8px 0 var(--ink), 12px 12px 0 var(--cyan);
  transform: rotate(-.8deg);
}

.account-menu::before {
  content: "";
  position: absolute;
  top: -10px;
  right: 30px;
  width: 18px;
  height: 18px;
  background: var(--paper);
  border-left: 4px solid var(--ink);
  border-top: 4px solid var(--ink);
  transform: rotate(45deg);
}

.account-menu-heading {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .2rem;
  margin-bottom: .5rem;
  padding: .6rem;
  color: var(--white);
  background: var(--bruise);
  border: 3px solid var(--ink);
}

.account-menu-heading strong,
.account-menu-heading span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-menu-heading span {
  color: var(--cyan);
  font-family: Arial, sans-serif;
  font-size: .76rem;
}

.account-menu button {
  display: block;
  width: 100%;
  padding: .65rem .7rem .55rem;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-bottom: 2px solid rgba(7,7,7,.18);
  font: inherit;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}

.account-menu button:hover,
.account-menu button:focus-visible {
  color: var(--white);
  background: var(--ink);
  outline: 0;
}

.account-menu .account-menu-signout {
  margin-top: .35rem;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
}

.portal-dialog {
  width: min(980px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  padding: 0;
  overflow: visible;
  color: var(--ink);
  background: transparent;
  border: 0;
}

.portal-dialog::backdrop {
  background: rgba(0,0,0,.82);
  backdrop-filter: blur(4px);
}

.portal-window {
  max-height: calc(100dvh - 24px);
  overflow: auto;
  background:
    linear-gradient(rgba(243,234,214,.96), rgba(243,234,214,.96)),
    repeating-linear-gradient(-14deg, rgba(0,0,0,.08) 0 4px, transparent 4px 14px);
  border: 5px solid var(--ink);
  box-shadow: 12px 12px 0 var(--red), -8px -8px 0 var(--cyan);
}

.portal-window-header {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem .85rem;
  color: var(--white);
  background:
    repeating-linear-gradient(-14deg, rgba(255,255,255,.06) 0 7px, transparent 7px 15px),
    var(--bruise);
  border-bottom: 5px solid var(--ink);
}

.portal-window-header h2 {
  margin: .15rem 0 0;
  color: var(--white);
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: .8;
  text-transform: uppercase;
  text-shadow: 3px 3px 0 var(--red), 6px 6px 0 var(--ink);
}

.portal-kicker {
  color: var(--green);
  font-size: .76rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.portal-close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  padding: 0 0 .18rem;
  color: var(--ink);
  background: var(--yellow);
  border: 4px solid var(--ink);
  box-shadow: 4px 4px 0 var(--red);
  font: inherit;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  transform: rotate(4deg);
}

.portal-close:hover,
.portal-close:focus-visible {
  color: var(--white);
  background: var(--red);
  outline: 3px solid var(--cyan);
}

.portal-notice {
  margin: 1rem 1rem 0;
  padding: .75rem .85rem;
  color: var(--ink);
  background: var(--yellow);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  font-family: Arial, sans-serif;
  font-weight: 700;
}

.portal-notice[data-tone="error"] {
  color: var(--white);
  background: var(--red);
}

.portal-notice[data-tone="success"] {
  background: var(--green);
}

.portal-setup,
#portalSignedOut {
  max-width: 640px;
  margin: 0 auto;
  padding: clamp(1rem, 4vw, 2rem);
}

.portal-setup h3,
.portal-section-heading h3 {
  margin-bottom: .35rem;
  font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: .85;
  text-transform: uppercase;
}

.portal-setup p,
.portal-small,
.portal-record p,
.portal-history-row p,
.portal-redeem-result,
.portal-compatibility {
  font-family: Arial, sans-serif;
}

.portal-auth-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .45rem;
  margin-bottom: 1rem;
}

.portal-auth-tabs button,
.portal-sidebar > button {
  padding: .72rem .65rem .62rem;
  color: var(--ink);
  background: var(--dirty-paper);
  border: 3px solid var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  font: inherit;
  font-size: .83rem;
  text-transform: uppercase;
  cursor: pointer;
}

.portal-auth-tabs button.active,
.portal-sidebar > button.active,
.portal-auth-tabs button:hover,
.portal-sidebar > button:hover {
  color: var(--white);
  background: var(--red);
}

.portal-form {
  display: grid;
  gap: .9rem;
  padding: clamp(1rem, 4vw, 1.6rem);
  background: var(--paper);
  border: var(--fat-border);
  box-shadow: 7px 7px 0 var(--ink);
}

.portal-form label {
  display: grid;
  gap: .35rem;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.portal-form input,
.portal-form select {
  width: 100%;
  min-height: 48px;
  padding: .7rem .75rem;
  color: var(--ink);
  background: var(--white);
  border: 3px solid var(--ink);
  border-radius: 0;
  box-shadow: inset 3px 3px 0 rgba(0,0,0,.1);
  font: 1rem Arial, sans-serif;
}

.portal-form input:focus,
.portal-form select:focus {
  outline: 4px solid var(--cyan);
  outline-offset: 1px;
}

.portal-checkbox {
  grid-template-columns: auto 1fr;
  align-items: center;
  text-transform: none !important;
  font-family: Arial, sans-serif;
  letter-spacing: 0 !important;
}

.portal-checkbox input {
  width: 22px;
  min-height: 22px;
  margin: 0;
  accent-color: var(--red);
}

.portal-primary,
.portal-secondary,
.portal-small-button {
  min-height: 45px;
  padding: .72rem .9rem .62rem;
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  font: inherit;
  text-transform: uppercase;
  cursor: pointer;
}

.portal-primary {
  color: var(--white);
  background: var(--red);
}

.portal-secondary,
.portal-small-button {
  color: var(--ink);
  background: var(--cyan);
}

.portal-primary:hover,
.portal-secondary:hover,
.portal-small-button:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}

.portal-primary:disabled,
.portal-secondary:disabled,
.portal-small-button:disabled {
  opacity: .58;
  cursor: wait;
}

.portal-small {
  margin: 0;
  color: #3a3429;
  font-size: .88rem;
  line-height: 1.4;
}

.portal-account-deletion-card {
  display: grid;
  gap: .55rem;
  padding: .85rem;
  color: var(--ink);
  background: #ffe0e0;
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--red);
}

.portal-account-deletion-card strong {
  text-transform: uppercase;
}

.portal-account-deletion-card p {
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: .9rem;
  line-height: 1.4;
}

.portal-settings-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  color: var(--white);
  background: var(--red);
  text-decoration: none;
}

.portal-signed-in {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  min-height: 540px;
}

.portal-sidebar {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: 1rem;
  color: var(--white);
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 11px),
    var(--bruise);
  border-right: 5px solid var(--ink);
}

.portal-sidebar > button {
  width: 100%;
  text-align: left;
}

.portal-user-card {
  display: grid;
  justify-items: start;
  gap: .4rem;
  margin-bottom: .55rem;
  padding: .75rem;
  color: var(--ink);
  background: var(--green);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--red);
  transform: rotate(-1deg);
}

.portal-user-card .portal-avatar-surface {
  width: 72px;
  height: 72px;
  object-fit: cover;
  background-color: var(--cyan);
  border: 4px solid var(--ink);
  border-radius: 50%;
}

.portal-user-card strong {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#portalAccountVerified {
  padding: .24rem .4rem .18rem;
  color: var(--white);
  background: var(--red);
  border: 2px solid var(--ink);
  font-size: .7rem;
  text-transform: uppercase;
}

#portalAccountVerified[data-verified="true"] {
  color: var(--ink);
  background: var(--cyan);
}

.portal-content {
  min-width: 0;
  padding: clamp(1rem, 4vw, 2rem);
}

.portal-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.portal-section-heading span {
  display: block;
  margin-bottom: .2rem;
  color: var(--red);
  font-size: .76rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}


.portal-avatar-surface {
  display: block;
  background-color: var(--cyan);
  background-repeat: no-repeat;
}

.portal-profile-current-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .85rem;
  background: var(--dirty-paper);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--cyan);
}

.portal-profile-current-row strong {
  display: block;
  margin-bottom: .3rem;
  font-size: 1.05rem;
  text-transform: uppercase;
}

.portal-avatar-picker-section {
  min-width: 0;
}

.portal-avatar-picker-heading {
  margin-bottom: .55rem;
}

.portal-avatar-picker-heading h4 {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1;
  text-transform: uppercase;
}

.portal-avatar-grid {
  display: grid;
  grid-template-columns: repeat(10, minmax(44px, 1fr));
  gap: .45rem;
  max-height: 300px;
  overflow-y: auto;
  padding: .7rem;
  background: var(--bruise);
  border: 4px solid var(--ink);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.07);
}

.portal-avatar-option {
  aspect-ratio: 1;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  background: var(--cyan);
  border: 3px solid var(--ink);
  border-radius: 50%;
  cursor: pointer;
}

.portal-avatar-option:hover,
.portal-avatar-option:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 1px;
  transform: rotate(-4deg) scale(1.05);
}

.portal-avatar-option.selected {
  outline: 4px solid var(--red);
  outline-offset: 2px;
  box-shadow: 0 0 0 3px var(--yellow);
}

.portal-avatar-option .portal-avatar-surface {
  width: 100%;
  height: 100%;
}

.portal-settings-form {
  margin: 1rem 0;
}

.portal-profile-preview {
  display: flex;
  justify-content: center;
}

.portal-profile-preview .portal-avatar-surface {
  width: 110px;
  height: 110px;
  object-fit: cover;
  background-color: var(--cyan);
  border: 5px solid var(--ink);
  box-shadow: 6px 6px 0 var(--red);
  border-radius: 50%;
  transform: rotate(-2deg);
}

.portal-compatibility {
  margin-bottom: 1rem;
  padding: .75rem;
  background: var(--yellow);
  border: 3px solid var(--ink);
}

.portal-record-list {
  display: grid;
  gap: .75rem;
}

.portal-record,
.portal-history-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem;
  background: var(--white);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
}

.portal-record.inactive {
  opacity: .72;
  background: var(--dirty-paper);
}

.portal-record h4,
.portal-history-row h4 {
  margin: .2rem 0 .25rem;
  font-size: 1.3rem;
  line-height: 1;
  text-transform: uppercase;
}

.portal-record p,
.portal-history-row p {
  margin: 0;
  font-size: .9rem;
}

.portal-record-type {
  color: var(--red);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.portal-status-pill {
  flex: 0 0 auto;
  padding: .32rem .5rem .25rem;
  color: var(--ink);
  background: var(--green);
  border: 2px solid var(--ink);
  font-size: .7rem;
  text-transform: uppercase;
}

.portal-record.inactive .portal-status-pill {
  color: var(--white);
  background: var(--red);
}

.portal-loading,
.portal-empty {
  display: grid;
  gap: .25rem;
  padding: 1.1rem;
  background: var(--dirty-paper);
  border: 3px dashed var(--ink);
  font-family: Arial, sans-serif;
}

.portal-redeem-form input {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-weight: 700;
}

.portal-redeem-result {
  display: grid;
  gap: .35rem;
  margin-top: 1rem;
  padding: 1rem;
  color: var(--ink);
  background: var(--green);
  border: 4px solid var(--ink);
  box-shadow: 5px 5px 0 var(--ink);
}

.portal-redeem-result[data-tone="error"] {
  color: var(--white);
  background: var(--red);
}

.portal-redeem-result small {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.portal-account-facts {
  display: grid;
  gap: .6rem;
  margin: 0 0 1rem;
}

.portal-account-facts div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: .75rem;
  padding: .75rem;
  background: var(--white);
  border: 3px solid var(--ink);
}

.portal-account-facts dt {
  color: var(--red);
  text-transform: uppercase;
}

.portal-account-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.portal-settings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: 1rem;
}

.portal-hidden-account-data {
  display: none;
}

@media (max-width: 1050px) {
  .account-button {
    max-width: 142px;
  }

  .account-button #accountButtonLabel {
    max-width: 90px;
  }
}

@media (max-width: 900px) {
  .header-actions {
    margin-left: auto;
  }

  .portal-signed-in {
    grid-template-columns: 1fr;
  }

  .portal-sidebar {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-right: 0;
    border-bottom: 5px solid var(--ink);
  }

  .portal-user-card {
    grid-column: 1 / -1;
    grid-template-columns: auto 1fr;
    align-items: center;
  }

  #portalAccountVerified {
    grid-column: 2;
  }

  .portal-sidebar > button {
    padding-inline: .35rem;
    text-align: center;
  }
}

@media (max-width: 680px) {
  .brand-text {
    display: none;
  }

  .site-header {
    gap: .45rem;
  }

  .account-button {
    max-width: 122px;
  }

  .account-button #accountButtonLabel {
    max-width: 72px;
  }

  .portal-auth-tabs {
    grid-template-columns: 1fr;
  }

  .portal-sidebar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-sidebar > button:last-child {
    grid-column: 1 / -1;
  }

  .portal-section-heading,
  .portal-record,
  .portal-history-row {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-status-pill {
    align-self: flex-start;
  }

  .portal-account-facts div {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
}

@media (max-width: 700px) {
  .portal-avatar-grid {
    grid-template-columns: repeat(6, minmax(40px, 1fr));
  }
}

@media (max-width: 440px) {
  .portal-avatar-grid {
    grid-template-columns: repeat(4, minmax(42px, 1fr));
  }

  .portal-profile-current-row {
    align-items: flex-start;
  }

  .site-header {
    width: calc(100% - 12px);
    padding: .5rem;
  }

  .brand-mark {
    width: 42px;
  }

  .account-button {
    width: 42px;
    padding: .25rem;
    box-shadow: 2px 2px 0 var(--red);
  }

  .account-button #accountButtonLabel {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
  }

  .account-button .portal-avatar-surface {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  .nav-toggle {
    width: 42px;
    min-height: 42px;
  }

  .portal-dialog {
    width: calc(100% - 10px);
    max-height: calc(100dvh - 10px);
  }

  .portal-window {
    max-height: calc(100dvh - 10px);
    box-shadow: 6px 6px 0 var(--red), -4px -4px 0 var(--cyan);
  }

  .portal-window-header {
    padding: .8rem;
  }

  .portal-content {
    padding: .8rem;
  }
}


/* === Phase 6A.4.1 profile stats + trophies readability pass === */
:root {
  --portal-readable-font: Arial, Helvetica, system-ui, sans-serif;
  --portal-readable-heavy-font: "Arial Black", "Arial Narrow", Arial, Helvetica, system-ui, sans-serif;
}

.portal-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 0.8rem;
}

.portal-stat-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.8rem;
  align-items: center;
  min-height: 96px;
  padding: 0.9rem;
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: 18px 8px 18px 8px;
  background:
    radial-gradient(circle at top left, rgba(255, 241, 92, 0.24), transparent 38%),
    linear-gradient(135deg, rgba(10, 10, 14, 0.96), rgba(37, 14, 31, 0.94));
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.portal-stat-card::after {
  content: attr(data-tone);
  position: absolute;
  right: -0.6rem;
  bottom: 0.15rem;
  font-size: 0.7rem;
  font-weight: 1000;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transform: rotate(-8deg);
  color: rgba(255, 255, 255, 0.12);
}

.portal-stat-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 2px solid #111;
  border-radius: 14px 6px 14px 6px;
  background: #f3ff2d;
  color: #111;
  font-size: 1.35rem;
  box-shadow: 4px 4px 0 #111;
}

.portal-stat-card strong {
  display: block;
  font-family: var(--portal-readable-heavy-font);
  font-size: clamp(1.4rem, 4vw, 2.25rem);
  line-height: 1;
  color: #fff;
  letter-spacing: 0.01em;
  text-shadow: 2px 2px 0 #000, 0 2px 8px rgba(0, 0, 0, 0.75);
}

.portal-stat-card span:last-child {
  display: block;
  margin-top: 0.3rem;
  color: #f7f4ec;
  font-family: var(--portal-readable-font);
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-shadow: 0 2px 3px rgba(0, 0, 0, 0.85);
}

.portal-trophy-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.portal-trophy-summary > div {
  padding: 0.8rem;
  border: 2px solid #111;
  border-radius: 14px 5px 14px 5px;
  background: linear-gradient(135deg, #f3ff2d, #ff2ba0);
  color: #111;
  box-shadow: 5px 5px 0 #111;
}

.portal-trophy-summary strong,
.portal-trophy-summary span {
  display: block;
}

.portal-trophy-summary strong {
  font-size: 1.9rem;
  line-height: 1;
}

.portal-trophy-summary span {
  font-size: 0.72rem;
  font-weight: 1000;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.portal-trophy-section + .portal-trophy-section {
  margin-top: 1.25rem;
}

.portal-trophy-subheading {
  margin-bottom: 0.7rem;
}

.portal-trophy-subheading h4 {
  margin: 0.1rem 0 0;
  font-size: 1.2rem;
}

.portal-trophy-list {
  display: grid;
  gap: 0.8rem;
}

.portal-trophy-card {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.9rem;
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px 8px 20px 8px;
  background:
    linear-gradient(90deg, rgba(255, 43, 160, 0.2), transparent 38%),
    radial-gradient(circle at top left, rgba(243, 255, 45, 0.2), transparent 34%),
    rgba(9, 9, 12, 0.95);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.portal-trophy-card.earned {
  border-color: rgba(243, 255, 45, 0.75);
}

.portal-trophy-card.locked {
  filter: grayscale(0.9);
  opacity: 0.72;
  background:
    repeating-linear-gradient(-35deg, rgba(255,255,255,0.04) 0 8px, transparent 8px 16px),
    rgba(12, 12, 16, 0.94);
}

.portal-trophy-medal {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 2px solid #111;
  border-radius: 18px 7px 18px 7px;
  background: linear-gradient(135deg, #f3ff2d, #fff8a8);
  color: #111;
  box-shadow: 5px 5px 0 #111;
  overflow: hidden;
}

.portal-trophy-card.locked .portal-trophy-medal {
  background: linear-gradient(135deg, #777, #bbb);
}

.portal-trophy-emoji {
  font-size: 1.7rem;
  line-height: 1;
}

.portal-trophy-image {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}

.portal-trophy-copy h4 {
  margin: 0.1rem 0 0.22rem;
  color: #fff;
  font-family: var(--portal-readable-heavy-font);
  font-size: 1.06rem;
  line-height: 1.08;
  letter-spacing: 0.015em;
  text-shadow: 2px 2px 0 #000, 0 2px 7px rgba(0, 0, 0, 0.9);
}

.portal-trophy-copy p {
  margin: 0;
  color: #f7f4ec;
  font-family: var(--portal-readable-font);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: 0.005em;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.92);
}

.portal-trophy-card.locked .portal-trophy-copy h4,
.portal-trophy-card.locked .portal-trophy-copy p {
  color: #e8e8e8;
}

.portal-trophy-progress {
  position: relative;
  margin-top: 0.55rem;
  min-height: 22px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.55);
}

.portal-trophy-progress::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--progress-percent, 0%);
  max-width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #f3ff2d, #b7ff32 58%, #5be05b);
  box-shadow: 0 0 12px rgba(243, 255, 45, 0.4);
}

.portal-trophy-progress span {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 2px 0 2px 0.34rem;
  padding: 0.14rem 0.55rem;
  border-radius: 999px;
  background: rgba(243, 255, 45, 0.96);
  color: #111;
  font-family: var(--portal-readable-heavy-font);
  font-size: 0.7rem;
  font-weight: 1000;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.38);
}

@media (max-width: 720px) {
  .portal-trophy-summary {
    grid-template-columns: 1fr;
  }

  .portal-trophy-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .portal-trophy-card .portal-status-pill {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

/* Phase 33I — public cached games map */
.panic-map {
  position: relative;
  display: grid;
  grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr);
  gap: clamp(1rem, 4vw, 2.5rem);
  align-items: stretch;
  margin-top: clamp(2rem, 6vw, 4rem);
  padding: clamp(1rem, 4vw, 2rem);
  color: var(--ink);
  background:
    linear-gradient(145deg, rgba(255,196,0,.94), rgba(255,242,214,.9) 46%, rgba(20,184,255,.82)),
    repeating-linear-gradient(-10deg, rgba(7,7,7,.08) 0 3px, transparent 3px 15px);
  border: 6px solid var(--ink);
  box-shadow: 12px 12px 0 var(--red), -8px -8px 0 var(--cyan);
  transform: rotate(-.25deg);
  overflow: hidden;
}

.panic-map::before {
  content: none;
}

.panic-map-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.panic-map-title {
  margin: .25rem 0 .9rem;
  max-width: 11ch;
  font-size: clamp(2.3rem, 7vw, 5rem);
  line-height: .82;
  text-transform: uppercase;
  color: var(--ink);
  text-shadow: 4px 4px 0 var(--orange), -3px -2px 0 var(--cyan);
}

.panic-map-copy p:last-child {
  max-width: 34rem;
  margin: 0;
  font-family: system-ui, sans-serif;
  font-weight: 900;
  line-height: 1.45;
}

.panic-map-board {
  position: relative;
  display: grid;
  gap: .9rem;
  min-width: 0;
  z-index: 1;
}

.panic-map-number {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: .65rem 1rem;
  align-items: end;
  padding: .7rem .85rem;
  color: var(--white);
  background: var(--ink);
  border: 4px solid var(--white);
  box-shadow: 6px 6px 0 var(--cyan-dark);
}

.panic-map-number span {
  color: var(--green);
  font-size: .95rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.panic-map-number strong {
  font-size: clamp(2.4rem, 8vw, 5.8rem);
  line-height: .78;
  color: var(--yellow);
  text-shadow: 4px 4px 0 var(--red);
}

.panic-map-number em {
  max-width: 20ch;
  color: var(--bone);
  font-family: system-ui, sans-serif;
  font-size: .78rem;
  font-style: normal;
  font-weight: 900;
  text-align: right;
}

.public-map {
  position: relative;
  min-height: clamp(300px, 44vw, 500px);
  overflow: hidden;
  isolation: isolate;
  background: #111827;
  border: 5px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
}

.public-map::before {
  content: "PUBLIC CACHE";
  position: absolute;
  top: .9rem;
  right: -3rem;
  padding: .35rem 3.5rem;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
  transform: rotate(12deg);
  letter-spacing: .12em;
  font-size: .82rem;
  box-shadow: 4px 4px 0 var(--ink);
  z-index: 5;
  pointer-events: none;
}

.public-map::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
  background:
    radial-gradient(circle at 50% 45%, transparent 35%, rgba(7,7,7,.45)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 1px, transparent 1px 9px);
  mix-blend-mode: multiply;
}

.public-map-tiles,
.public-map-markers {
  position: absolute;
  inset: 0;
}

.public-map-tile {
  position: absolute;
  width: 256px;
  height: 256px;
  image-rendering: auto;
}

.public-map-marker {
  position: absolute;
  z-index: 6;
  min-width: 116px;
  max-width: 150px;
  padding: .38rem .45rem .34rem;
  color: var(--ink);
  background: var(--green);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  transform: translate(-50%, -100%) rotate(-2deg);
  text-align: left;
}

.public-map-marker:nth-child(2n) {
  background: var(--yellow);
  transform: translate(-50%, -100%) rotate(2deg);
}

.public-map-marker:nth-child(3n) {
  background: var(--cyan);
}

.public-map-marker span {
  display: block;
  color: var(--red);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.public-map-marker strong {
  display: block;
  font-size: 1.35rem;
  line-height: .9;
}

.public-map-marker em {
  display: block;
  margin-top: .14rem;
  overflow: hidden;
  font-size: .78rem;
  font-style: normal;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.public-map-empty,
.public-map-credit {
  position: absolute;
  z-index: 7;
  color: var(--white);
  background: rgba(7,7,7,.84);
  border: 2px solid rgba(255,255,255,.45);
}

.public-map-empty {
  left: 1rem;
  top: 1rem;
  max-width: 18rem;
  padding: .8rem;
  font-family: system-ui, sans-serif;
  font-weight: 900;
}

.public-map-credit {
  right: .45rem;
  bottom: .45rem;
  padding: .22rem .36rem;
  font-family: system-ui, sans-serif;
  font-size: .68rem;
}

.public-map-credit a { color: var(--yellow); }

.panic-map-status {
  margin: 0;
  padding: .45rem .7rem;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  font-family: system-ui, sans-serif;
  font-size: .82rem;
  font-weight: 900;
}

@media (max-width: 820px) {
  .panic-map {
    grid-template-columns: 1fr;
  }

  .panic-map-title {
    max-width: none;
  }

  .panic-map-number {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .panic-map-number em {
    max-width: none;
    text-align: left;
  }
}

/* Phase 33I.1 — restored FAQ + Beta pages */
.main-nav {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.main-nav a,
.mobile-nav a {
  white-space: nowrap;
}

.page-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr);
  gap: clamp(1.25rem, 4vw, 3rem);
  align-items: center;
  margin-top: clamp(2rem, 5vw, 4rem);
  overflow: hidden;
}

.page-hero::after {
  content: "";
  position: absolute;
  inset: auto -6rem -8rem auto;
  width: 22rem;
  aspect-ratio: 1;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,43,214,.35), transparent 65%);
  pointer-events: none;
}

.page-hero-copy {
  position: relative;
  z-index: 1;
}

.faq-stamp,
.beta-badge {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  min-height: 18rem;
  color: var(--ink);
  background:
    repeating-linear-gradient(-12deg, rgba(7,7,7,.08) 0 8px, transparent 8px 18px),
    var(--yellow);
  border: 7px solid var(--ink);
  box-shadow: 12px 12px 0 var(--ink);
  text-align: center;
  transform: rotate(4deg);
}

.faq-stamp strong {
  font-size: clamp(7rem, 16vw, 13rem);
  line-height: .7;
  color: var(--red);
  text-shadow: 5px 5px 0 var(--ink);
}

.faq-stamp span,
.beta-badge strong,
.beta-badge span {
  display: block;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.beta-badge {
  background:
    radial-gradient(circle at 25% 18%, rgba(255,255,255,.35), transparent 24%),
    linear-gradient(135deg, var(--green), var(--cyan));
  transform: rotate(-3deg);
}

.beta-badge span {
  padding: .35rem .75rem;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
  box-shadow: 5px 5px 0 var(--ink);
  font-size: clamp(2rem, 7vw, 5rem);
  line-height: .9;
}

.beta-badge strong {
  margin-top: 1rem;
  font-size: clamp(1.1rem, 3vw, 1.8rem);
}

.faq-section,
.beta-layout {
  width: min(1180px, calc(100% - 32px));
  margin: clamp(2rem, 6vw, 4rem) auto;
}

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

.faq-card {
  color: var(--ink);
  border: 5px solid var(--ink);
  box-shadow: 7px 7px 0 var(--ink);
  transform: rotate(var(--tilt, -1deg));
  overflow: hidden;
}

.faq-card:nth-child(2n) { --tilt: 1deg; }
.faq-card:nth-child(3n) { --tilt: -2deg; }

.faq-card summary {
  cursor: pointer;
  padding: 1rem;
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  line-height: .95;
  list-style: none;
  text-transform: uppercase;
}

.faq-card summary::-webkit-details-marker { display: none; }

.faq-card summary::after {
  content: "+";
  float: right;
  display: inline-grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  margin-left: .5rem;
  color: var(--white);
  background: var(--ink);
  border-radius: 999px;
}

.faq-card[open] summary::after { content: "−"; }

.faq-card p {
  margin: 0;
  padding: 0 1rem 1rem;
  font-family: system-ui, sans-serif;
  font-weight: 800;
  line-height: 1.45;
}

.faq-hot { background: #ff6b2f; }
.faq-blue { background: #31c4ff; }
.faq-green { background: #a7ff2f; }
.faq-pink { background: #ff4fd8; }
.faq-yellow { background: #ffc400; }
.faq-purple { background: #b47cff; }
.faq-orange { background: #ff8c1a; }
.faq-lime { background: #d7ff39; }
.faq-red { background: #ff4a3d; }

.beta-title-block p:last-child {
  max-width: 66ch;
  margin: .25rem 0 0;
  font-family: system-ui, sans-serif;
  font-weight: 800;
  color: var(--bone);
}

.download-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}

.download-card,
.qr-card,
.beta-notes {
  color: var(--ink);
  background: var(--paper);
  border: 5px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
}

.download-card {
  padding: 1.25rem;
  min-height: 16rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}

.download-android { background: linear-gradient(135deg, #a7ff2f, #f3ead6); }
.download-host,
.download-windows { background: linear-gradient(135deg, #14b8ff, #f3ead6); }
.download-discord { background: linear-gradient(135deg, #ff4fd8, #f3ead6); }

.download-kicker {
  display: inline-block;
  padding: .25rem .5rem;
  color: var(--white);
  background: var(--ink);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.download-card h3,
.qr-card h3 {
  margin: .8rem 0 .35rem;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  line-height: .85;
  text-transform: uppercase;
}

.download-card p,
.qr-card p,
.beta-notes li {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  line-height: 1.45;
}

.download-card a[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .8;
}

.qr-downloads {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.qr-card {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem;
}

.fake-qr {
  position: relative;
  width: 150px;
  aspect-ratio: 1;
  background:
    linear-gradient(90deg, var(--ink) 12px, transparent 12px 24px, var(--ink) 24px 36px, transparent 36px 48px, var(--ink) 48px 60px, transparent 60px 72px, var(--ink) 72px 84px, transparent 84px 96px, var(--ink) 96px 108px, transparent 108px 120px, var(--ink) 120px),
    linear-gradient(var(--ink) 12px, transparent 12px 24px, var(--ink) 24px 36px, transparent 36px 48px, var(--ink) 48px 60px, transparent 60px 72px, var(--ink) 72px 84px, transparent 84px 96px, var(--ink) 96px 108px, transparent 108px 120px, var(--ink) 120px),
    var(--white);
  background-blend-mode: multiply;
  border: 5px solid var(--ink);
}

.fake-qr span {
  position: absolute;
  width: 34px;
  height: 34px;
  background: var(--white);
  border: 9px solid var(--ink);
}

.fake-qr span:nth-child(1) { left: 10px; top: 10px; }
.fake-qr span:nth-child(2) { right: 10px; top: 10px; }
.fake-qr span:nth-child(3) { left: 10px; bottom: 10px; }
.fake-qr span:nth-child(4) { right: 36px; bottom: 36px; width: 22px; height: 22px; border-width: 6px; }

.qr-alt { filter: hue-rotate(120deg); }

.beta-signup {
  margin-top: clamp(2rem, 5vw, 4rem);
}

.beta-notes {
  display: grid;
  grid-template-columns: minmax(220px, .55fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  margin-bottom: clamp(2rem, 6vw, 4rem);
  background: linear-gradient(135deg, var(--yellow), var(--paper));
}

.beta-notes ul {
  margin: 0;
  padding-left: 1.2rem;
}

@media (max-width: 980px) {
  .page-hero,
  .faq-grid,
  .download-grid,
  .qr-downloads,
  .beta-notes {
    grid-template-columns: 1fr;
  }

  .faq-stamp,
  .beta-badge {
    min-height: 12rem;
  }

  .qr-card {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .fake-qr {
    width: 120px;
  }
}

@media (max-width: 620px) {
  .qr-card {
    grid-template-columns: 1fr;
  }

  .fake-qr {
    width: 150px;
  }
}


/* Phase 33I.2 — visual recovery for FAQ + Beta pages */
.faq-hero-redux,
.beta-hero-redux {
  min-height: clamp(460px, 62vw, 650px);
}

.faq-hero-redux {
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 78, 202, 0.42), transparent 30%),
    radial-gradient(circle at 86% 16%, rgba(255, 200, 60, 0.34), transparent 24%),
    radial-gradient(circle at 88% 88%, rgba(182, 91, 255, 0.34), transparent 28%),
    linear-gradient(130deg, rgba(20, 184, 255, 0.22), transparent 34%),
    linear-gradient(180deg, rgba(255, 248, 238, 0.98), rgba(255, 240, 224, 0.94));
}

.beta-hero-redux {
  background:
    linear-gradient(135deg, rgba(255,79,216,.18), transparent 34%),
    linear-gradient(315deg, rgba(20,184,255,.22), transparent 36%),
    linear-gradient(180deg, rgba(7,7,7,.18), rgba(7,7,7,.06)),
    var(--paper);
}

.faq-hero-redux .graffiti-tag,
.beta-hero-redux .graffiti-tag {
  max-width: 10ch;
  text-shadow:
    5px 5px 0 var(--ink),
    10px 10px 0 rgba(255,43,214,.45),
    -4px -3px 0 rgba(20,184,255,.55);
}

.faq-poster-stack,
.beta-pass-stack {
  position: relative;
  min-height: 24rem;
  z-index: 1;
}

.faq-poster-card,
.beta-pass {
  position: absolute;
  inset: 50% auto auto 50%;
  display: grid;
  place-items: center;
  width: min(92%, 25rem);
  min-height: 15rem;
  color: var(--ink);
  border: 7px solid var(--ink);
  box-shadow: 12px 12px 0 var(--ink);
  text-align: center;
  text-transform: uppercase;
}

.poster-card-back {
  background: var(--cyan);
  transform: translate(-55%, -48%) rotate(-10deg);
}

.poster-card-mid {
  background: var(--red);
  color: var(--white);
  transform: translate(-46%, -52%) rotate(8deg);
}

.poster-card-front {
  gap: .5rem;
  padding: 1.25rem;
  background:
    repeating-linear-gradient(-12deg, rgba(7,7,7,.08) 0 10px, transparent 10px 22px),
    var(--yellow);
  transform: translate(-50%, -50%) rotate(-2deg);
}

.poster-card-front strong {
  color: var(--red);
  font-size: clamp(8rem, 18vw, 14rem);
  line-height: .65;
  text-shadow: 6px 6px 0 var(--ink);
}

.poster-card-front span {
  max-width: 13ch;
  font-size: clamp(1.1rem, 3vw, 1.7rem);
  line-height: .85;
}

.faq-title-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
}

.faq-title-note {
  max-width: 25rem;
  margin: 0;
  padding: .75rem .9rem;
  color: var(--ink);
  background: var(--green);
  border: 4px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
  font-family: system-ui, sans-serif;
  font-weight: 900;
  transform: rotate(1.5deg);
}

.faq-card-wall {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1rem;
  align-items: start;
}

.faq-ticket {
  grid-column: span 4;
  align-self: start;
  height: max-content;
  color: var(--ink);
  border: 5px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  transform: rotate(var(--tilt, -1deg));
  transition: transform .16s ease, box-shadow .16s ease;
}

.faq-ticket:nth-child(2n) { --tilt: 1.2deg; }
.faq-ticket:nth-child(3n) { --tilt: -2deg; }
.faq-ticket:nth-child(4n) { --tilt: 2deg; }
.faq-ticket:nth-child(5n) { grid-column: span 5; }
.faq-ticket:nth-child(6n) { grid-column: span 7; }

.faq-ticket:hover,
.faq-ticket[open] {
  transform: rotate(0deg) translate(-2px, -2px);
  box-shadow: 11px 11px 0 var(--ink);
}

.faq-ticket summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: center;
  cursor: pointer;
  padding: .9rem;
  list-style: none;
  background: rgba(255,255,255,.38);
  border-bottom: 4px solid var(--ink);
}

.faq-ticket summary::-webkit-details-marker { display: none; }

.faq-ticket summary span {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  color: var(--white);
  background: var(--ink);
  border-radius: 999px;
  font-size: .9rem;
}

.faq-ticket summary strong {
  font-size: clamp(1.1rem, 2.2vw, 1.5rem);
  line-height: .88;
  text-transform: uppercase;
}

.faq-ticket summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
}

.faq-ticket[open] summary::after { content: "−"; }

.faq-ticket p {
  margin: 0;
  padding: 1rem 1rem 1.1rem;
  font-family: system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.45;
}

.faq-color-pink { background: #ff4fd8; }
.faq-color-cyan { background: #14b8ff; }
.faq-color-lime { background: #a7ff2f; }
.faq-color-yellow { background: #ffc400; }
.faq-color-orange { background: #ff8c1a; }
.faq-color-purple { background: #b47cff; }
.faq-color-blue { background: #31c4ff; }
.faq-color-green { background: #72ff79; }
.faq-color-red { background: #ff4a3d; }

.faq-safety-strip {
  display: grid;
  grid-template-columns: minmax(220px, .55fr) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
  color: var(--ink);
  background:
    linear-gradient(135deg, rgba(255,196,0,.82), rgba(255,79,216,.35)),
    var(--paper);
}

.faq-safety-strip p:last-child {
  margin: 0;
  font-family: system-ui, sans-serif;
  font-size: clamp(1rem, 2vw, 1.2rem);
  font-weight: 900;
  line-height: 1.45;
}

.beta-pass-back {
  background: var(--cyan);
  transform: translate(-55%, -50%) rotate(9deg);
}

.beta-pass-front {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
  padding: 1.2rem;
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.35), transparent 25%),
    linear-gradient(135deg, var(--green), var(--yellow) 52%, var(--orange));
  transform: translate(-48%, -48%) rotate(-4deg);
}

.beta-pass-front span {
  color: var(--white);
  background: var(--red);
  border: 5px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
  font-size: clamp(3.3rem, 9vw, 6.7rem);
  line-height: .8;
}

.beta-pass-front strong {
  font-size: clamp(1.15rem, 3vw, 2.1rem);
  line-height: .86;
}

.beta-command-board {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .8fr);
  gap: 1rem;
  align-items: stretch;
}

.beta-main-download {
  position: relative;
  min-height: 25rem;
  padding: clamp(1.2rem, 3vw, 2rem);
  color: var(--ink);
  background:
    radial-gradient(circle at 84% 18%, rgba(255,255,255,.45), transparent 18%),
    repeating-linear-gradient(-10deg, rgba(7,7,7,.08) 0 8px, transparent 8px 18px),
    var(--green);
  border: 7px solid var(--ink);
  box-shadow: 11px 11px 0 var(--ink);
  transform: rotate(-1deg);
}

.beta-main-download::after {
  content: "PHONE TAG PANIC FILE";
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  padding: .45rem .65rem;
  color: var(--white);
  background: var(--ink);
  letter-spacing: .08em;
  transform: rotate(-3deg);
}

.beta-main-download h3 {
  max-width: 8ch;
  margin: 1rem 0 .5rem;
  font-size: clamp(3.2rem, 8vw, 6.2rem);
  line-height: .78;
  text-transform: uppercase;
}

.beta-main-download p {
  max-width: 34rem;
  font-family: system-ui, sans-serif;
  font-size: 1.08rem;
  font-weight: 900;
  line-height: 1.45;
}

.beta-side-downloads {
  display: grid;
  gap: 1rem;
}

.beta-side-downloads .download-card {
  min-height: 0;
  transform: rotate(1.2deg);
}

.beta-side-downloads .download-card:nth-child(2) {
  transform: rotate(-1.3deg);
}

.beta-side-downloads .download-card:nth-child(3) {
  transform: rotate(.8deg);
}

.qr-recall {
  margin-top: 1.25rem;
}

.qr-card-big {
  min-height: 13rem;
  background: linear-gradient(135deg, var(--cyan), var(--paper));
}

.qr-card-discord {
  background: linear-gradient(135deg, #ff4fd8, var(--paper));
}

.qr-card-big h3 {
  font-size: clamp(2rem, 5vw, 3.3rem);
}

.beta-signup-redux {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .38fr);
  gap: 1rem;
  align-items: stretch;
}

.beta-signup-card {
  min-height: 100%;
}

.beta-checklist {
  padding: 1.2rem;
  color: var(--ink);
  background: var(--yellow);
  border: 5px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  transform: rotate(2deg);
}

.beta-checklist h3 {
  margin: 0 0 .8rem;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: .85;
  text-transform: uppercase;
}

.beta-checklist ul {
  margin: 0;
  padding-left: 1.2rem;
  font-family: system-ui, sans-serif;
  font-weight: 900;
  line-height: 1.55;
}

.beta-notes-redux {
  color: var(--ink);
  background:
    linear-gradient(135deg, var(--yellow), var(--paper) 54%, rgba(20,184,255,.35));
}

@media (max-width: 980px) {
  .faq-title-row,
  .faq-safety-strip,
  .beta-command-board,
  .beta-signup-redux {
    grid-template-columns: 1fr;
    display: grid;
  }

  .faq-card-wall {
    grid-template-columns: 1fr;
  }

  .faq-ticket,
  .faq-ticket:nth-child(5n),
  .faq-ticket:nth-child(6n) {
    grid-column: auto;
  }

  .faq-poster-stack,
  .beta-pass-stack {
    min-height: 18rem;
  }

  .faq-poster-card,
  .beta-pass {
    width: min(92%, 21rem);
    min-height: 12rem;
  }
}

@media (max-width: 620px) {
  .faq-ticket summary {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .faq-ticket summary::after {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .beta-main-download h3 {
    font-size: clamp(2.8rem, 18vw, 4.2rem);
  }
}


/* Phase 39B.3 — Tester onboarding and Discord beta setup */
.beta-launch-hero {
  align-items: center;
}

.beta-start,
.beta-discord,
.beta-reporting {
  margin-top: 2rem;
}

.beta-step-grid,
.discord-board,
.bug-template-grid {
  display: grid;
  gap: 1rem;
}

.beta-step-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.beta-step-card,
.discord-column,
.bug-template-card {
  color: var(--ink);
  background: var(--paper);
  border: var(--fat-border);
  box-shadow: 6px 6px 0 var(--ink);
  padding: 1rem;
}

.beta-step-card span {
  display: inline-grid;
  place-items: center;
  width: 2.6rem;
  height: 2.3rem;
  margin-bottom: .65rem;
  color: var(--white);
  background: var(--ink);
  border: 3px solid var(--ink);
  box-shadow: 3px 3px 0 rgba(0,0,0,.25);
  transform: rotate(-4deg);
}

.beta-step-card h3,
.discord-column h3,
.bug-template-card h3 {
  margin: 0 0 .5rem;
  font-size: 1.35rem;
  text-transform: uppercase;
}

.beta-step-card p,
.discord-column li,
.bug-template-card li,
.download-note {
  font-family: system-ui, sans-serif;
  line-height: 1.45;
}

.beta-step-one { background: #ffec6a; transform: rotate(-1.2deg); }
.beta-step-two { background: #9ef4ff; transform: rotate(.9deg); }
.beta-step-three { background: #b7ff64; transform: rotate(-.6deg); }
.beta-step-four { background: #ff9bdc; transform: rotate(1.1deg); }

.beta-command-board-live .beta-main-download {
  min-height: 100%;
}

.download-note {
  display: block;
  margin-top: .75rem;
  color: rgba(7,7,7,.72);
  font-size: .82rem;
}

.qr-real {
  width: 150px;
  min-width: 150px;
  height: 150px;
  padding: .5rem;
  background: var(--white);
  border: 4px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
}

.discord-board {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.discord-column:nth-child(1) { background: #f7e36d; }
.discord-column:nth-child(2) { background: #8ef6e4; }
.discord-column:nth-child(3) { background: #ff96c7; }
.discord-column:nth-child(4) { background: #b7ff64; }

.discord-column ul,
.warning-card-lite ul,
.beta-notes ul {
  margin: 0;
  padding-left: 1.1rem;
}

.discord-column li + li,
.warning-card-lite li + li,
.beta-notes li + li {
  margin-top: .45rem;
}

.bug-template-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
}

.bug-template-card pre {
  overflow-x: auto;
  margin: .75rem 0 0;
  padding: 1rem;
  color: var(--white);
  background: var(--ink);
  border: 3px solid var(--ink);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.12);
  white-space: pre-wrap;
}

.bug-template-card code {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: .9rem;
  line-height: 1.45;
}

.warning-card-lite {
  background: #ffc0a8;
}

.bug-button-reference {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: .9rem 0 0;
  padding: .7rem .8rem;
  background: rgba(255,255,255,.42);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 rgba(0,0,0,.22);
}

.bug-button-reference img {
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  object-fit: contain;
  background: #2d0b1b;
  border: 3px solid var(--ink);
  padding: .2rem;
}

.bug-button-reference figcaption {
  margin: 0;
  font-family: system-ui, sans-serif;
  font-size: .95rem;
  font-weight: 900;
  line-height: 1.35;
}

.beta-step-card .bug-button-reference,
.guide-panel .bug-button-reference,
.faq-ticket .bug-button-reference,
.bug-template-card .bug-button-reference {
  max-width: 100%;
}

@media (max-width: 980px) {
  .beta-step-grid,
  .discord-board,
  .bug-template-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 680px) {
  .beta-step-grid,
  .discord-board,
  .bug-template-grid {
    grid-template-columns: 1fr;
  }

  .bug-button-reference {
    align-items: flex-start;
  }

  .bug-button-reference img {
    width: 46px;
    height: 46px;
  }

  .qr-real {
    width: 128px;
    min-width: 128px;
    height: 128px;
  }
}


/* Phase 39B.3.2 Tester Guides */
.guide-hero {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  gap: 2rem;
  align-items: center;
}

.guide-hero-shot,
.guide-shot-stack figure,
.mode-shot-grid figure {
  margin: 0;
  background: rgba(15, 8, 20, .86);
  border: 3px solid rgba(255, 255, 255, .78);
  box-shadow: 7px 7px 0 rgba(0, 0, 0, .85);
  padding: .65rem;
}

.guide-hero-shot img,
.guide-shot-stack img,
.mode-shot-grid img {
  display: block;
  width: 100%;
  height: auto;
  border: 2px solid rgba(255, 255, 255, .2);
  background: #050506;
}

.guide-hero-shot figcaption,
.guide-shot-stack figcaption,
.mode-shot-grid figcaption {
  margin-top: .55rem;
  font-size: .86rem;
  line-height: 1.35;
  color: #fff1d8;
}

.guide-card-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
}

.guide-card,
.guide-panel,
.guide-callout,
.guide-missing-shot {
  border: 3px solid #16080c;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, .75);
  padding: 1rem;
  color: #170608;
}

.guide-card span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.2rem;
  padding: .25rem .45rem;
  margin-bottom: .65rem;
  background: #170608;
  color: #fff;
  font-weight: 900;
}

.guide-card h3,
.guide-panel h3 {
  margin: .1rem 0 .45rem;
}

.guide-card p,
.guide-panel p,
.guide-panel li,
.guide-step-list li {
  line-height: 1.45;
}

.guide-card-lime { background: #36f28a; }
.guide-card-pink { background: #ff3aa6; }
.guide-card-gold { background: #ffe84d; }
.guide-card-cyan { background: #35d7ff; }
.guide-card-red { background: #ff6b4a; }

.guide-two-column {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 1.4rem;
  align-items: start;
}

.guide-steps,
.guide-panel {
  background: rgba(255, 239, 214, .94);
}

.guide-step-list {
  margin: 0;
  padding-left: 1.25rem;
}

.guide-step-list.compact li,
.guide-step-list li {
  margin-bottom: .55rem;
}

.guide-shot-stack {
  display: grid;
  gap: 1rem;
}

.guide-callout,
.guide-missing-shot {
  margin-top: 1rem;
  background: #fff0a8;
}

.host-callout { background: #b9f7ff; }
.safety-callout { background: #ffe15d; }

.guide-redeem-grid,
.guide-windows-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mode-shot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.mode-shot-grid figure:nth-child(1) { border-color: #ff4058; }
.mode-shot-grid figure:nth-child(2) { border-color: #ff4058; }
.mode-shot-grid figure:nth-child(3) { border-color: #27ddff; }
.mode-shot-grid figure:nth-child(4) { border-color: #e0932f; }
.mode-shot-grid figure:nth-child(5) { border-color: #ffd45a; }
.mode-shot-grid figure:nth-child(6) { border-color: #ff4f86; }

@media (max-width: 1100px) {
  .guide-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .guide-redeem-grid,
  .guide-windows-grid,
  .mode-shot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .guide-hero,
  .guide-two-column {
    grid-template-columns: 1fr;
  }
  .guide-card-grid,
  .guide-redeem-grid,
  .guide-windows-grid,
  .mode-shot-grid {
    grid-template-columns: 1fr;
  }
}

/* Phase 39B.3.3 Guide Contrast Fix
   Keep guide instruction cards readable on light paper panels. */
.guide-steps,
.guide-panel,
.guide-callout,
.guide-missing-shot {
  color: #170608;
  text-shadow: none;
}

.guide-steps {
  background: #fff1d2;
  border: 3px solid #16080c;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, .75);
  padding: 1rem 1.1rem;
}

.guide-steps p,
.guide-steps li,
.guide-panel p,
.guide-panel li,
.guide-callout p,
.guide-callout li,
.guide-missing-shot p,
.guide-missing-shot li {
  color: #170608;
  text-shadow: none;
}

.guide-steps strong,
.guide-panel strong,
.guide-callout strong,
.guide-missing-shot strong {
  color: #000;
  font-weight: 950;
}

.guide-step-list li::marker,
.guide-panel li::marker,
.guide-callout li::marker,
.guide-missing-shot li::marker {
  color: #000;
  font-weight: 950;
}

.guide-callout,
.guide-missing-shot {
  background: #ffe15d;
  border-color: #16080c;
}

.host-callout {
  background: #b9f7ff;
}

.safety-callout {
  background: #ffe15d;
}


/* Phase 39B.4A — Legal / compliance pages */
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem .85rem;
  margin: .35rem auto .15rem;
}

.footer-legal a {
  color: #fff3b0;
  font-weight: 900;
  text-decoration: none;
  border-bottom: 2px solid rgba(255, 243, 176, .75);
}

.footer-legal a:hover,
.footer-legal a:focus-visible {
  color: #ffffff;
  border-bottom-color: #ffffff;
}

.legal-hero {
  align-items: center;
}

.legal-alert-card {
  background: #fff1d2;
  color: #140509;
  border: 5px solid #140509;
  box-shadow: 10px 10px 0 rgba(0, 0, 0, .75);
  padding: 1.1rem;
  transform: rotate(2deg);
  min-width: min(310px, 100%);
  max-width: 360px;
}

.legal-alert-card span {
  display: inline-block;
  background: #140509;
  color: #fff1d2;
  font-weight: 950;
  letter-spacing: .12em;
  padding: .25rem .45rem;
  margin-bottom: .65rem;
}

.legal-alert-card strong {
  display: block;
  font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
  font-size: clamp(2.25rem, 5vw, 4.4rem);
  line-height: .88;
  letter-spacing: .02em;
}

.legal-alert-card em {
  display: block;
  margin-top: .75rem;
  font-weight: 900;
  font-style: normal;
}

.privacy-alert-card {
  background: #c8fff4;
}

.delete-alert-card {
  background: #ffd0eb;
}

.legal-page {
  color: #fff8e8;
}

.legal-updated {
  max-width: 72ch;
  font-weight: 800;
}

.legal-warning-panel,
.legal-contact-panel,
.legal-panel,
.legal-card,
.legal-step-card,
.legal-link-card {
  color: #150608;
  text-shadow: none;
}

.legal-warning-panel {
  background: #ffe45c;
  border: 4px solid #150608;
  box-shadow: 8px 8px 0 rgba(0, 0, 0, .75);
  padding: 1rem 1.15rem;
  margin: 1rem 0 1.25rem;
}

.legal-warning-panel h3,
.legal-contact-panel h3,
.legal-panel h3,
.legal-card h3,
.legal-step-card h3 {
  color: #000;
  margin-top: 0;
}

.legal-warning-panel p,
.legal-warning-panel li,
.legal-contact-panel p,
.legal-panel p,
.legal-panel li,
.legal-card p,
.legal-step-card p {
  color: #150608;
  font-weight: 750;
}

.legal-card-grid,
.legal-two-column,
.legal-steps,
.legal-link-cards {
  display: grid;
  gap: 1rem;
}

.legal-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.legal-card,
.legal-panel,
.legal-step-card,
.legal-contact-panel {
  background: #fff1d2;
  border: 3px solid #150608;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, .65);
  padding: 1rem;
}

.legal-card:nth-child(4n + 1),
.legal-step-card:nth-child(4n + 1) { background: #c8fff4; }
.legal-card:nth-child(4n + 2),
.legal-step-card:nth-child(4n + 2) { background: #ffd0eb; }
.legal-card:nth-child(4n + 3),
.legal-step-card:nth-child(4n + 3) { background: #d9ff89; }
.legal-card:nth-child(4n + 4),
.legal-step-card:nth-child(4n + 4) { background: #fff1d2; }

.legal-two-column {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  margin-top: 1rem;
}

.legal-steps {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  margin: 1rem 0;
}

.legal-step-card span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background: #150608;
  color: #fff1d2;
  font-weight: 950;
  margin-bottom: .4rem;
}

.legal-contact-panel {
  margin-top: 1rem;
  background: #d9ff89;
}

.legal-contact-panel a,
.legal-panel a,
.legal-step-card a,
.legal-warning-panel a {
  color: #000;
  font-weight: 950;
}

.delete-template {
  white-space: pre-wrap;
  overflow-x: auto;
  background: #140509;
  color: #fff1d2;
  border: 3px solid #000;
  padding: 1rem;
  font-weight: 850;
}

.legal-beta-links {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 1.25fr);
  gap: 1.2rem;
  align-items: start;
}

.legal-link-cards {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.legal-link-card {
  display: block;
  background: #fff1d2;
  border: 3px solid #150608;
  box-shadow: 5px 5px 0 rgba(0, 0, 0, .7);
  padding: .9rem;
  text-decoration: none;
}

.legal-link-card:nth-child(2) { background: #c8fff4; }
.legal-link-card:nth-child(3) { background: #ffd0eb; }

.legal-link-card strong,
.legal-link-card span {
  display: block;
  color: #150608;
}

.legal-link-card strong {
  font-size: 1.05rem;
  font-weight: 950;
  margin-bottom: .3rem;
}

.legal-link-card span {
  font-weight: 750;
}

.legal-link-card:hover,
.legal-link-card:focus-visible {
  transform: translate(-2px, -2px);
  box-shadow: 8px 8px 0 rgba(0, 0, 0, .75);
}

@media (max-width: 760px) {
  .legal-beta-links {
    grid-template-columns: 1fr;
  }

  .legal-alert-card {
    transform: none;
  }
}

/* Phase 39B.4A.1 — Footer legal link contrast fix */
.site-footer .footer-legal {
  width: 100%;
  justify-content: center;
  align-items: center;
  gap: .45rem .65rem;
}

.site-footer .footer-legal a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: .28rem .55rem .22rem;
  color: #140509;
  background: #fff1d2;
  border: 3px solid #140509;
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, .65);
  text-decoration: none;
  text-shadow: none;
  letter-spacing: .02em;
}

.site-footer .footer-legal a:nth-child(2) {
  background: #d9ff89;
}

.site-footer .footer-legal a:nth-child(3) {
  background: #c8fff4;
}

.site-footer .footer-legal a:hover,
.site-footer .footer-legal a:focus-visible {
  color: #000;
  background: #ffffff;
  border-color: #000;
  box-shadow: 5px 5px 0 rgba(0, 0, 0, .8);
  outline: 3px solid #ff2b92;
  outline-offset: 3px;
}

/* Phase 39B.4A.2 — Legal document readability fix
   The legal/safety/account pages need plain, readable policy styling, not the main display font. */
.legal-doc-page .legal-hero,
.legal-doc-page .legal-page,
.legal-doc-page .legal-hero *,
.legal-doc-page .legal-page * {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: normal !important;
}

.legal-doc-page .legal-hero,
.legal-doc-page .legal-page {
  line-height: 1.55 !important;
}

.legal-doc-page .legal-hero .eyebrow,
.legal-doc-page .legal-page .eyebrow {
  color: #ffe45c !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}

.legal-doc-page .legal-hero .graffiti-tag,
.legal-doc-page .legal-page .graffiti-callout,
.legal-doc-page .legal-page h1,
.legal-doc-page .legal-page h2 {
  color: #ffffff !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  text-transform: none !important;
}

.legal-doc-page .legal-hero .hero-text,
.legal-doc-page .legal-page .section-title p,
.legal-doc-page .legal-page .legal-updated {
  color: #fff8e8 !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  max-width: 80ch;
}

.legal-doc-page .legal-warning-panel,
.legal-doc-page .legal-contact-panel,
.legal-doc-page .legal-panel,
.legal-doc-page .legal-card,
.legal-doc-page .legal-step-card,
.legal-doc-page .legal-link-card {
  background: #f8f3e3 !important;
  color: #111111 !important;
  border: 4px solid #111111 !important;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, .85) !important;
  line-height: 1.55 !important;
}

.legal-doc-page .legal-warning-panel {
  background: #ffe86a !important;
}

.legal-doc-page .legal-contact-panel {
  background: #e8f7c3 !important;
}

.legal-doc-page .legal-card:nth-child(4n + 1),
.legal-doc-page .legal-step-card:nth-child(4n + 1) { background: #e1fbf4 !important; }
.legal-doc-page .legal-card:nth-child(4n + 2),
.legal-doc-page .legal-step-card:nth-child(4n + 2) { background: #f7deed !important; }
.legal-doc-page .legal-card:nth-child(4n + 3),
.legal-doc-page .legal-step-card:nth-child(4n + 3) { background: #ecfac8 !important; }
.legal-doc-page .legal-card:nth-child(4n + 4),
.legal-doc-page .legal-step-card:nth-child(4n + 4) { background: #f8f3e3 !important; }

.legal-doc-page .legal-warning-panel h3,
.legal-doc-page .legal-contact-panel h3,
.legal-doc-page .legal-panel h3,
.legal-doc-page .legal-card h3,
.legal-doc-page .legal-step-card h3,
.legal-doc-page .legal-link-card strong {
  color: #111111 !important;
  font-size: 1.12rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  margin-top: 0 !important;
}

.legal-doc-page .legal-warning-panel p,
.legal-doc-page .legal-warning-panel li,
.legal-doc-page .legal-contact-panel p,
.legal-doc-page .legal-contact-panel li,
.legal-doc-page .legal-panel p,
.legal-doc-page .legal-panel li,
.legal-doc-page .legal-card p,
.legal-doc-page .legal-card li,
.legal-doc-page .legal-step-card p,
.legal-doc-page .legal-step-card li,
.legal-doc-page .legal-link-card span {
  color: #181818 !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  text-transform: none !important;
}

.legal-doc-page .legal-warning-panel strong,
.legal-doc-page .legal-contact-panel strong,
.legal-doc-page .legal-panel strong,
.legal-doc-page .legal-card strong,
.legal-doc-page .legal-step-card strong {
  color: #000000 !important;
  font-weight: 800 !important;
}

.legal-doc-page .legal-contact-panel a,
.legal-doc-page .legal-panel a,
.legal-doc-page .legal-step-card a,
.legal-doc-page .legal-warning-panel a,
.legal-doc-page .legal-card a {
  color: #0645ad !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

.legal-doc-page .legal-step-card span {
  background: #111111 !important;
  color: #ffffff !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.legal-doc-page .delete-template,
.legal-doc-page .delete-template *,
.legal-doc-page pre,
.legal-doc-page pre * {
  font-family: Consolas, "Courier New", monospace !important;
  text-shadow: none !important;
  letter-spacing: normal !important;
}

.legal-doc-page .delete-template,
.legal-doc-page pre {
  background: #111111 !important;
  color: #ffffff !important;
  border: 4px solid #000000 !important;
  padding: 1rem !important;
  font-size: .95rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
}

.legal-doc-page .delete-template code,
.legal-doc-page pre code {
  color: #ffffff !important;
  font-size: .95rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
}

.legal-doc-page .legal-alert-card,
.legal-doc-page .legal-alert-card * {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
}

.legal-doc-page .legal-alert-card strong {
  color: #111111 !important;
  font-size: clamp(1.8rem, 4vw, 3.3rem) !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

.legal-doc-page .button {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-weight: 800 !important;
  text-shadow: none !important;
}

@media (max-width: 760px) {
  .legal-doc-page .legal-warning-panel p,
  .legal-doc-page .legal-contact-panel p,
  .legal-doc-page .legal-panel p,
  .legal-doc-page .legal-card p,
  .legal-doc-page .legal-step-card p,
  .legal-doc-page .legal-warning-panel li,
  .legal-doc-page .legal-contact-panel li,
  .legal-doc-page .legal-panel li,
  .legal-doc-page .legal-card li,
  .legal-doc-page .legal-step-card li {
    font-size: .98rem !important;
  }

  .legal-doc-page .legal-card,
  .legal-doc-page .legal-panel,
  .legal-doc-page .legal-step-card,
  .legal-doc-page .legal-contact-panel,
  .legal-doc-page .legal-warning-panel {
    box-shadow: 4px 4px 0 rgba(0, 0, 0, .85) !important;
  }
}

/* Phase 39B.4A.3 Guide Content Quick Pass
   Keep guides simple, readable, and reusable for Discord. */
.guide-doc-page .guide-simple-panel,
.guide-doc-page .guide-steps,
.guide-doc-page .guide-panel,
.guide-doc-page .guide-callout,
.guide-doc-page .guide-missing-shot,
.guide-doc-page .mode-shot-grid figcaption,
.guide-doc-page .guide-shot-stack figcaption {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  text-shadow: none;
}

.guide-doc-page .guide-simple-panel,
.guide-doc-page .guide-steps,
.guide-doc-page .guide-panel {
  background: #fff6df;
  color: #15100d;
}

.guide-doc-page .guide-simple-panel h3,
.guide-doc-page .guide-simple-panel h4,
.guide-doc-page .guide-steps h3,
.guide-doc-page .guide-panel h3,
.guide-doc-page .guide-panel h4 {
  color: #111;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.15;
  text-shadow: none;
  text-transform: none;
}

.guide-doc-page .guide-simple-panel p,
.guide-doc-page .guide-simple-panel li,
.guide-doc-page .guide-steps p,
.guide-doc-page .guide-steps li,
.guide-doc-page .guide-panel p,
.guide-doc-page .guide-panel li,
.guide-doc-page .guide-callout,
.guide-doc-page .guide-callout p,
.guide-doc-page .guide-missing-shot {
  color: #15100d;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: 0;
  text-shadow: none;
  text-transform: none;
}

.guide-doc-page .guide-card p,
.guide-doc-page .guide-card li {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 700;
  line-height: 1.45;
  text-shadow: none;
  text-transform: none;
}

.guide-doc-page .guide-card h3 {
  line-height: 1.05;
}

.guide-doc-page .guide-mode-groups {
  display: grid;
  gap: 1.25rem;
}

.guide-doc-page .guide-mode-group {
  display: grid;
  gap: 1rem;
}

.guide-doc-page .guide-mode-group > h3 {
  display: inline-block;
  width: fit-content;
  margin: 0;
  padding: .55rem .8rem;
  background: #170608;
  color: #fff6df;
  border: 3px solid #fff6df;
  box-shadow: 5px 5px 0 rgba(0,0,0,.75);
}

.guide-doc-page .guide-settings-grid,
.guide-doc-page .guide-mode-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.guide-doc-page .guide-card-grid-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.guide-doc-page .guide-card a,
.guide-doc-page .guide-panel a,
.guide-doc-page .guide-steps a {
  color: #002b77;
  text-decoration: underline;
  font-weight: 900;
}

@media (max-width: 1100px) {
  .guide-doc-page .guide-settings-grid,
  .guide-doc-page .guide-mode-grid,
  .guide-doc-page .guide-card-grid-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .guide-doc-page .guide-settings-grid,
  .guide-doc-page .guide-mode-grid,
  .guide-doc-page .guide-card-grid-five {
    grid-template-columns: 1fr;
  }
}

/* Phase 39B.4A.6 — Quick visual heading readability pass
   Keeps the punk/poster feel, but calms oversized layered headings so content is easier to scan. */
body:not(.legal-doc-page) h1 {
  max-width: min(100%, 18ch);
  font-size: clamp(2.45rem, 7vw, 5.6rem);
  line-height: .96;
  letter-spacing: -.028em;
  text-shadow: 2px 2px 0 rgba(7, 7, 7, .95);
}

body:not(.legal-doc-page) .page-hero h1,
body:not(.legal-doc-page) .guide-hero h1 {
  max-width: min(100%, 18ch);
  font-size: clamp(2.35rem, 6.6vw, 5rem);
  line-height: .98;
}

body:not(.legal-doc-page) .big-card h2,
body:not(.legal-doc-page) .section-title h2,
body:not(.legal-doc-page) .host-copy h2,
body:not(.legal-doc-page) .manifesto h2,
body:not(.legal-doc-page) .join-card h2 {
  max-width: min(100%, 20ch);
  font-size: clamp(1.85rem, 4.2vw, 3.65rem);
  line-height: 1.02;
  letter-spacing: -.018em;
}

body:not(.legal-doc-page) .graffiti-tag,
body:not(.legal-doc-page) .graffiti-callout {
  display: inline;
  padding: .03em .1em .06em;
  color: var(--white);
  background: linear-gradient(180deg, rgba(0, 0, 0, .34), rgba(0, 0, 0, .1));
  -webkit-text-stroke: 1px rgba(7, 7, 7, .88);
  paint-order: stroke fill;
  text-shadow: 2px 2px 0 rgba(7, 7, 7, .95) !important;
  box-shadow: none;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

body:not(.legal-doc-page) .graffiti-tag::before,
body:not(.legal-doc-page) .graffiti-tag::after,
body:not(.legal-doc-page) .graffiti-callout::before,
body:not(.legal-doc-page) .graffiti-callout::after {
  display: none !important;
}

body:not(.legal-doc-page) .mode-title-pop,
body:not(.legal-doc-page) .join-title-pop {
  display: inline-block;
  max-width: min(100%, 20ch);
  padding: .08em .14em .1em;
  color: var(--white);
  background: rgba(7, 7, 7, .78);
  border-left: 6px solid var(--yellow);
  -webkit-text-stroke: 0;
  paint-order: normal;
  box-shadow: 5px 5px 0 rgba(0, 0, 0, .65);
  text-shadow: 2px 2px 0 rgba(0, 0, 0, .88) !important;
  line-height: 1.02;
}

body:not(.legal-doc-page) .section-title {
  max-width: 820px;
}

body:not(.legal-doc-page) .section-title p,
body:not(.legal-doc-page) .hero-text,
body:not(.legal-doc-page) .page-hero p {
  text-shadow: 1px 1px 0 rgba(0, 0, 0, .72);
}

/* Guide pages need the clearest version because they are instructional. */
.guide-doc-page .page-hero.section-slab,
.guide-doc-page .guide-section.section-slab,
.guide-doc-page .guide-quick.section-slab {
  overflow: visible;
}

.guide-doc-page .page-hero h1.graffiti-tag {
  font-size: clamp(2.25rem, 6vw, 4.6rem);
  max-width: min(100%, 16ch);
}

.guide-doc-page .section-title h2.graffiti-callout {
  font-size: clamp(1.75rem, 3.5vw, 3rem);
  max-width: min(100%, 18ch);
}

.guide-doc-page .section-title p,
.guide-doc-page .hero-text {
  max-width: 72ch;
}

@media (max-width: 720px) {
  body:not(.legal-doc-page) h1,
  body:not(.legal-doc-page) .page-hero h1,
  body:not(.legal-doc-page) .guide-hero h1 {
    font-size: clamp(2.05rem, 10vw, 3.35rem);
    line-height: 1;
  }

  body:not(.legal-doc-page) .big-card h2,
  body:not(.legal-doc-page) .section-title h2,
  body:not(.legal-doc-page) .host-copy h2,
  body:not(.legal-doc-page) .manifesto h2,
  body:not(.legal-doc-page) .join-card h2 {
    font-size: clamp(1.65rem, 8vw, 2.7rem);
    line-height: 1.05;
  }

  body:not(.legal-doc-page) .graffiti-tag,
  body:not(.legal-doc-page) .graffiti-callout,
  body:not(.legal-doc-page) .mode-title-pop,
  body:not(.legal-doc-page) .join-title-pop {
    text-shadow: 1.5px 1.5px 0 rgba(7, 7, 7, .95) !important;
  }
}

/* =========================================================
   Phase 39B.4A.7 — Background Static Readability Pass
   Tone down the site-wide static/noise layer so it adds texture
   without sitting on top of readable content.
   ========================================================= */

body {
  background:
    radial-gradient(circle at 12% 20%, rgba(255, 100, 0, .14), transparent 24rem),
    radial-gradient(circle at 82% 16%, rgba(20, 184, 255, .12), transparent 22rem),
    linear-gradient(135deg, #070707 0%, #111111 48%, #070707 100%);
}

body::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .016) 1px, transparent 1px);
  opacity: .62;
  mask-image: radial-gradient(circle at center, black, transparent 70%);
}

.noise {
  opacity: .065;
  z-index: 0;
  mix-blend-mode: screen;
  animation-duration: 2.4s;
}

body > *:not(.noise):not(.spray) {
  position: relative;
  z-index: 1;
}

.spray {
  opacity: .16;
  filter: blur(88px);
}

.section-slab,
.page-hero,
.guide-hero,
.beta-layout,
.join-card,
.portal-window {
  position: relative;
}

@media (prefers-reduced-motion: reduce) {
  .noise {
    animation: none;
  }
}

/* Phase 39B.4A.8 — Subtle Static Restore
   Restore the background texture so it is visible again, but keep it behind readable page content. */

/* =========================================================
   Phase 39B.4A.9 — High Contrast Guardrail
   Keep the punk style, but prevent white/stroked display text
   from landing on pale cards where it strains the eyes.
   ========================================================= */

body:not(.legal-doc-page) .card,
body:not(.legal-doc-page) .step,
body:not(.legal-doc-page) .mode-card:not(.hot):not(.zombie),
body:not(.legal-doc-page) .join-card,
body:not(.legal-doc-page) .host-board,
body:not(.legal-doc-page) .manifesto,
body:not(.legal-doc-page) .beta-step-card,
body:not(.legal-doc-page) .discord-column,
body:not(.legal-doc-page) .bug-template-card,
body:not(.legal-doc-page) .download-card,
body:not(.legal-doc-page) .qr-card,
body:not(.legal-doc-page) .beta-checklist,
body:not(.legal-doc-page) .guide-card,
body:not(.legal-doc-page) .guide-panel,
body:not(.legal-doc-page) .guide-steps,
body:not(.legal-doc-page) .guide-callout,
body:not(.legal-doc-page) .guide-missing-shot,
body:not(.legal-doc-page) .host-callout,
body:not(.legal-doc-page) .safety-callout {
  color: #111111;
}

body:not(.legal-doc-page) .card h1,
body:not(.legal-doc-page) .card h2,
body:not(.legal-doc-page) .card h3,
body:not(.legal-doc-page) .step h3,
body:not(.legal-doc-page) .mode-card:not(.hot):not(.zombie) h3,
body:not(.legal-doc-page) .join-card h2,
body:not(.legal-doc-page) .host-board h2,
body:not(.legal-doc-page) .host-board h3,
body:not(.legal-doc-page) .manifesto h2,
body:not(.legal-doc-page) .beta-step-card h3,
body:not(.legal-doc-page) .discord-column h3,
body:not(.legal-doc-page) .bug-template-card h3,
body:not(.legal-doc-page) .download-card h3,
body:not(.legal-doc-page) .qr-card h3,
body:not(.legal-doc-page) .guide-card h3,
body:not(.legal-doc-page) .guide-panel h3,
body:not(.legal-doc-page) .guide-callout h3,
body:not(.legal-doc-page) .guide-missing-shot h3 {
  color: #0b0b0b !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: none !important;
}

body:not(.legal-doc-page) .card .graffiti-tag,
body:not(.legal-doc-page) .card .graffiti-callout,
body:not(.legal-doc-page) .join-card .graffiti-tag,
body:not(.legal-doc-page) .join-card .graffiti-callout,
body:not(.legal-doc-page) .manifesto .graffiti-tag,
body:not(.legal-doc-page) .manifesto .graffiti-callout,
body:not(.legal-doc-page) .host-board .graffiti-tag,
body:not(.legal-doc-page) .host-board .graffiti-callout,
body:not(.legal-doc-page) .guide-card .graffiti-tag,
body:not(.legal-doc-page) .guide-card .graffiti-callout,
body:not(.legal-doc-page) .guide-panel .graffiti-tag,
body:not(.legal-doc-page) .guide-panel .graffiti-callout,
body:not(.legal-doc-page) .guide-callout .graffiti-tag,
body:not(.legal-doc-page) .guide-callout .graffiti-callout,
body:not(.legal-doc-page) .guide-missing-shot .graffiti-tag,
body:not(.legal-doc-page) .guide-missing-shot .graffiti-callout {
  display: inline;
  color: #0b0b0b !important;
  background:
    linear-gradient(transparent 62%, rgba(255, 196, 0, .52) 62%, rgba(255, 196, 0, .52) 88%, transparent 88%) !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: none !important;
  box-shadow: none !important;
  line-height: 1.04;
  letter-spacing: -.018em;
}

body:not(.legal-doc-page) .card .graffiti-tag::before,
body:not(.legal-doc-page) .card .graffiti-tag::after,
body:not(.legal-doc-page) .card .graffiti-callout::before,
body:not(.legal-doc-page) .card .graffiti-callout::after,
body:not(.legal-doc-page) .join-card .graffiti-tag::before,
body:not(.legal-doc-page) .join-card .graffiti-tag::after,
body:not(.legal-doc-page) .join-card .graffiti-callout::before,
body:not(.legal-doc-page) .join-card .graffiti-callout::after,
body:not(.legal-doc-page) .manifesto .graffiti-tag::before,
body:not(.legal-doc-page) .manifesto .graffiti-tag::after,
body:not(.legal-doc-page) .manifesto .graffiti-callout::before,
body:not(.legal-doc-page) .manifesto .graffiti-callout::after,
body:not(.legal-doc-page) .host-board .graffiti-tag::before,
body:not(.legal-doc-page) .host-board .graffiti-tag::after,
body:not(.legal-doc-page) .host-board .graffiti-callout::before,
body:not(.legal-doc-page) .host-board .graffiti-callout::after,
body:not(.legal-doc-page) .guide-card .graffiti-tag::before,
body:not(.legal-doc-page) .guide-card .graffiti-tag::after,
body:not(.legal-doc-page) .guide-card .graffiti-callout::before,
body:not(.legal-doc-page) .guide-card .graffiti-callout::after,
body:not(.legal-doc-page) .guide-panel .graffiti-tag::before,
body:not(.legal-doc-page) .guide-panel .graffiti-tag::after,
body:not(.legal-doc-page) .guide-panel .graffiti-callout::before,
body:not(.legal-doc-page) .guide-panel .graffiti-callout::after,
body:not(.legal-doc-page) .guide-callout .graffiti-tag::before,
body:not(.legal-doc-page) .guide-callout .graffiti-tag::after,
body:not(.legal-doc-page) .guide-callout .graffiti-callout::before,
body:not(.legal-doc-page) .guide-callout .graffiti-callout::after,
body:not(.legal-doc-page) .guide-missing-shot .graffiti-tag::before,
body:not(.legal-doc-page) .guide-missing-shot .graffiti-tag::after,
body:not(.legal-doc-page) .guide-missing-shot .graffiti-callout::before,
body:not(.legal-doc-page) .guide-missing-shot .graffiti-callout::after {
  display: none !important;
}

body:not(.legal-doc-page) .card p,
body:not(.legal-doc-page) .card li,
body:not(.legal-doc-page) .step p,
body:not(.legal-doc-page) .mode-card:not(.hot):not(.zombie) p,
body:not(.legal-doc-page) .join-card p,
body:not(.legal-doc-page) .host-board p,
body:not(.legal-doc-page) .manifesto p,
body:not(.legal-doc-page) .beta-step-card p,
body:not(.legal-doc-page) .discord-column li,
body:not(.legal-doc-page) .bug-template-card li,
body:not(.legal-doc-page) .download-card p,
body:not(.legal-doc-page) .qr-card p,
body:not(.legal-doc-page) .guide-card p,
body:not(.legal-doc-page) .guide-panel p,
body:not(.legal-doc-page) .guide-panel li,
body:not(.legal-doc-page) .guide-steps p,
body:not(.legal-doc-page) .guide-steps li,
body:not(.legal-doc-page) .guide-callout p,
body:not(.legal-doc-page) .guide-callout li,
body:not(.legal-doc-page) .guide-missing-shot p,
body:not(.legal-doc-page) .guide-missing-shot li {
  color: #171717 !important;
  text-shadow: none !important;
}

/* Keep dark cards dark, but make their text clean and readable. */
body:not(.legal-doc-page) .mode-card.hot,
body:not(.legal-doc-page) .mode-card.zombie,
body:not(.legal-doc-page) .guide-hero-shot,
body:not(.legal-doc-page) .guide-shot-stack figure,
body:not(.legal-doc-page) .mode-shot-grid figure {
  color: #fff4df;
}

body:not(.legal-doc-page) .mode-card.hot h3,
body:not(.legal-doc-page) .mode-card.zombie h3 {
  color: #ffffff !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: 2px 2px 0 rgba(0, 0, 0, .85) !important;
}

@media (max-width: 720px) {
  body:not(.legal-doc-page) .card .graffiti-tag,
  body:not(.legal-doc-page) .card .graffiti-callout,
  body:not(.legal-doc-page) .join-card .graffiti-tag,
  body:not(.legal-doc-page) .join-card .graffiti-callout,
  body:not(.legal-doc-page) .manifesto .graffiti-tag,
  body:not(.legal-doc-page) .manifesto .graffiti-callout,
  body:not(.legal-doc-page) .host-board .graffiti-tag,
  body:not(.legal-doc-page) .host-board .graffiti-callout {
    line-height: 1.08;
  }
}

/* Phase 39B.4A.10 — Ticker readability pass
   Keep the moving punk banner, but make the copy readable at a glance. */
.ticker {
  height: 34px !important;
  background:
    linear-gradient(180deg, rgba(255, 213, 74, .16), rgba(255, 213, 74, .05)),
    #08090d !important;
  border-top: 2px solid #ffd54a !important;
  border-bottom: 2px solid #00d7ff !important;
  box-shadow:
    0 4px 0 #000,
    0 0 10px rgba(0, 215, 255, .16) !important;
}

.ticker::before {
  background: linear-gradient(90deg, #08090d 0%, rgba(8, 9, 13, .72) 46%, transparent 100%) !important;
}

.ticker::after {
  background: linear-gradient(270deg, #08090d 0%, rgba(8, 9, 13, .72) 46%, transparent 100%) !important;
}

.ticker-track {
  animation-duration: 34s !important;
}

.ticker-track span {
  padding: 4px 2.6rem 0 0 !important;
  color: #fff4cf !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: .88rem !important;
  font-weight: 900 !important;
  letter-spacing: .055em !important;
  line-height: 1 !important;
  text-shadow:
    1px 1px 0 #000,
    0 0 4px rgba(255, 213, 74, .25) !important;
  -webkit-text-stroke: 0 !important;
}

@media (max-width: 720px) {
  .ticker {
    height: 32px !important;
  }

  .ticker-track span {
    font-size: .8rem !important;
    letter-spacing: .035em !important;
    padding-top: 5px !important;
  }

  .site-header {
    top: 32px !important;
  }
}

/* =========================================================
   Phase 39B.4A.11 — Body Text Readability Pass
   Keep the punk display headings, but make normal reading text
   use clear fonts, reliable contrast, and calmer spacing.
   ========================================================= */

body:not(.legal-doc-page) main p,
body:not(.legal-doc-page) main li,
body:not(.legal-doc-page) main dd,
body:not(.legal-doc-page) main dt,
body:not(.legal-doc-page) main figcaption,
body:not(.legal-doc-page) main label,
body:not(.legal-doc-page) main input,
body:not(.legal-doc-page) main textarea,
body:not(.legal-doc-page) main select,
body:not(.legal-doc-page) footer p {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  letter-spacing: 0 !important;
  line-height: 1.55 !important;
  text-transform: none !important;
}

/* Default readable text on dark/textured sections. */
body:not(.legal-doc-page) main p,
body:not(.legal-doc-page) main li,
body:not(.legal-doc-page) .hero-text,
body:not(.legal-doc-page) .section-title p,
body:not(.legal-doc-page) .page-hero p,
body:not(.legal-doc-page) .host-copy p,
body:not(.legal-doc-page) .manifesto p,
body:not(.legal-doc-page) .panic-copy p,
body:not(.legal-doc-page) .beta-title-block p {
  color: #fff1d8 !important;
  font-size: clamp(1rem, 1.4vw, 1.12rem) !important;
  font-weight: 650 !important;
  text-shadow: 0 2px 3px rgba(0, 0, 0, .88) !important;
}

/* Light cards must stay dark text, no glow, no display-font strain. */
body:not(.legal-doc-page) .card p,
body:not(.legal-doc-page) .card li,
body:not(.legal-doc-page) .step p,
body:not(.legal-doc-page) .step li,
body:not(.legal-doc-page) .mode-card:not(.hot):not(.zombie) p,
body:not(.legal-doc-page) .mode-card:not(.hot):not(.zombie) li,
body:not(.legal-doc-page) .join-card p,
body:not(.legal-doc-page) .join-card li,
body:not(.legal-doc-page) .host-board p,
body:not(.legal-doc-page) .host-board li,
body:not(.legal-doc-page) .download-card p,
body:not(.legal-doc-page) .download-card li,
body:not(.legal-doc-page) .qr-card p,
body:not(.legal-doc-page) .qr-card li,
body:not(.legal-doc-page) .beta-step-card p,
body:not(.legal-doc-page) .beta-step-card li,
body:not(.legal-doc-page) .bug-template-card p,
body:not(.legal-doc-page) .bug-template-card li,
body:not(.legal-doc-page) .discord-column p,
body:not(.legal-doc-page) .discord-column li,
body:not(.legal-doc-page) .guide-card p,
body:not(.legal-doc-page) .guide-card li,
body:not(.legal-doc-page) .guide-panel p,
body:not(.legal-doc-page) .guide-panel li,
body:not(.legal-doc-page) .guide-steps p,
body:not(.legal-doc-page) .guide-steps li,
body:not(.legal-doc-page) .guide-callout p,
body:not(.legal-doc-page) .guide-callout li,
body:not(.legal-doc-page) .guide-missing-shot p,
body:not(.legal-doc-page) .guide-missing-shot li,
body:not(.legal-doc-page) .faq-card p,
body:not(.legal-doc-page) .faq-card li,
body:not(.legal-doc-page) .beta-checklist li,
body:not(.legal-doc-page) .safety-callout p,
body:not(.legal-doc-page) .safety-callout li {
  color: #151515 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: clamp(1rem, 1.25vw, 1.08rem) !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  text-shadow: none !important;
}

/* Dark cards can still be dramatic, but body copy should be clean. */
body:not(.legal-doc-page) .mode-card.hot p,
body:not(.legal-doc-page) .mode-card.hot li,
body:not(.legal-doc-page) .mode-card.zombie p,
body:not(.legal-doc-page) .mode-card.zombie li,
body:not(.legal-doc-page) .guide-shot-stack figcaption,
body:not(.legal-doc-page) .mode-shot-grid figcaption,
body:not(.legal-doc-page) .warning-card-lite p,
body:not(.legal-doc-page) .warning-card-lite li {
  color: #fff4df !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-weight: 650 !important;
  line-height: 1.5 !important;
  text-shadow: 0 2px 3px rgba(0, 0, 0, .85) !important;
}

/* High-contrast heading guardrail for pale cards, including the intro card shown on the home page. */
body:not(.legal-doc-page) .card h1,
body:not(.legal-doc-page) .card h2,
body:not(.legal-doc-page) .card h3,
body:not(.legal-doc-page) .big-card h2,
body:not(.legal-doc-page) .step h3,
body:not(.legal-doc-page) .join-card h2,
body:not(.legal-doc-page) .host-board h2,
body:not(.legal-doc-page) .host-board h3,
body:not(.legal-doc-page) .download-card h3,
body:not(.legal-doc-page) .qr-card h3,
body:not(.legal-doc-page) .beta-step-card h3,
body:not(.legal-doc-page) .bug-template-card h3,
body:not(.legal-doc-page) .discord-column h3,
body:not(.legal-doc-page) .guide-card h3,
body:not(.legal-doc-page) .guide-panel h3,
body:not(.legal-doc-page) .guide-steps h3,
body:not(.legal-doc-page) .faq-card summary {
  color: #080808 !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: none !important;
}

body:not(.legal-doc-page) .card .graffiti-tag,
body:not(.legal-doc-page) .card .graffiti-callout,
body:not(.legal-doc-page) .big-card .graffiti-tag,
body:not(.legal-doc-page) .big-card .graffiti-callout,
body:not(.legal-doc-page) .join-card .graffiti-tag,
body:not(.legal-doc-page) .join-card .graffiti-callout,
body:not(.legal-doc-page) .host-board .graffiti-tag,
body:not(.legal-doc-page) .host-board .graffiti-callout {
  color: #080808 !important;
  background:
    linear-gradient(transparent 68%, rgba(255, 196, 0, .45) 68%, rgba(255, 196, 0, .45) 90%, transparent 90%) !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

body:not(.legal-doc-page) .card .graffiti-tag::before,
body:not(.legal-doc-page) .card .graffiti-tag::after,
body:not(.legal-doc-page) .card .graffiti-callout::before,
body:not(.legal-doc-page) .card .graffiti-callout::after,
body:not(.legal-doc-page) .big-card .graffiti-tag::before,
body:not(.legal-doc-page) .big-card .graffiti-tag::after,
body:not(.legal-doc-page) .big-card .graffiti-callout::before,
body:not(.legal-doc-page) .big-card .graffiti-callout::after,
body:not(.legal-doc-page) .join-card .graffiti-tag::before,
body:not(.legal-doc-page) .join-card .graffiti-tag::after,
body:not(.legal-doc-page) .join-card .graffiti-callout::before,
body:not(.legal-doc-page) .join-card .graffiti-callout::after,
body:not(.legal-doc-page) .host-board .graffiti-tag::before,
body:not(.legal-doc-page) .host-board .graffiti-tag::after,
body:not(.legal-doc-page) .host-board .graffiti-callout::before,
body:not(.legal-doc-page) .host-board .graffiti-callout::after {
  display: none !important;
}

/* Make long paragraphs easier to scan without turning the site into a plain document. */
body:not(.legal-doc-page) .section-title p,
body:not(.legal-doc-page) .hero-text,
body:not(.legal-doc-page) .page-hero p,
body:not(.legal-doc-page) .guide-section > p,
body:not(.legal-doc-page) .guide-simple-panel p,
body:not(.legal-doc-page) .guide-panel p {
  max-width: 72ch;
}

body:not(.legal-doc-page) strong,
body:not(.legal-doc-page) b {
  font-weight: 850;
}

@media (max-width: 720px) {
  body:not(.legal-doc-page) main p,
  body:not(.legal-doc-page) main li {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
}

/* Phase 39B.4A.12 — Compact footer pass
   Keep the legal links readable without turning the footer into a large card.
   Preserve the hidden secret QR details button. */
.site-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .35rem .85rem;
  padding: .45rem 1.45rem .45rem .7rem;
  margin: 0 auto 1.1rem;
  min-height: 0;
}

.site-footer p {
  margin: 0;
  font: 600 .86rem/1.25 Arial, Helvetica, sans-serif;
  color: #140509;
  text-shadow: none;
}

.site-footer > a[href="#top"] {
  margin: 0;
  color: #140509;
  font: 900 .72rem/1 Arial, Helvetica, sans-serif;
  letter-spacing: .04em;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-shadow: none;
  white-space: nowrap;
}

.site-footer .footer-legal {
  width: auto;
  margin: 0;
  gap: .28rem;
  justify-content: center;
  align-items: center;
}

.site-footer .footer-legal a {
  min-height: 24px;
  padding: .12rem .34rem .1rem;
  border-width: 2px;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .65);
  font-size: .72rem;
  line-height: 1;
  letter-spacing: .02em;
}

.site-footer .footer-legal a:hover,
.site-footer .footer-legal a:focus-visible {
  box-shadow: 3px 3px 0 rgba(0, 0, 0, .78);
  transform: translate(-1px, -1px);
}

.site-footer .secret-qr {
  right: .35rem;
  bottom: .22rem;
}

.site-footer .secret-qr summary {
  width: 10px;
  height: 10px;
  color: rgba(20, 5, 9, .18);
  font-size: 1rem;
}

.site-footer .secret-qr summary:hover,
.site-footer .secret-qr[open] summary {
  color: rgba(20, 5, 9, .65);
}

@media (max-width: 820px) {
  .site-footer {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: .38rem;
    padding: .55rem 1.4rem .5rem .7rem;
  }

  .site-footer p {
    font-size: .8rem;
  }

  .site-footer .footer-legal {
    order: 2;
  }

  .site-footer > a[href="#top"] {
    order: 3;
  }
}

/* =========================================================
   Phase 39B.4A.13 — Legal Page Contrast Pass
   Legal/safety/privacy/account text must be calm, readable, and high contrast.
   Override any remaining punk/display styles inside legal pages.
   ========================================================= */

body.legal-doc-page,
.legal-page,
.legal-hero {
  color: #111111 !important;
}

body.legal-doc-page .legal-page,
body.legal-doc-page .legal-hero,
.legal-page,
.legal-hero {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}

body.legal-doc-page .legal-page *,
body.legal-doc-page .legal-hero *,
.legal-page *,
.legal-hero * {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
}

body.legal-doc-page .legal-hero .graffiti-tag,
body.legal-doc-page .legal-page .graffiti-callout,
body.legal-doc-page .legal-page h1,
body.legal-doc-page .legal-page h2,
.legal-hero .graffiti-tag,
.legal-page .graffiti-callout,
.legal-page h1,
.legal-page h2 {
  color: #ffffff !important;
  background: none !important;
  box-shadow: none !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  text-transform: none !important;
  text-shadow: 0 2px 3px rgba(0, 0, 0, .75) !important;
}

body.legal-doc-page .legal-hero .graffiti-tag::before,
body.legal-doc-page .legal-hero .graffiti-tag::after,
body.legal-doc-page .legal-page .graffiti-callout::before,
body.legal-doc-page .legal-page .graffiti-callout::after,
.legal-hero .graffiti-tag::before,
.legal-hero .graffiti-tag::after,
.legal-page .graffiti-callout::before,
.legal-page .graffiti-callout::after {
  display: none !important;
}

body.legal-doc-page .legal-warning-panel,
body.legal-doc-page .legal-contact-panel,
body.legal-doc-page .legal-panel,
body.legal-doc-page .legal-card,
body.legal-doc-page .legal-step-card,
body.legal-doc-page .legal-link-card,
.legal-warning-panel,
.legal-contact-panel,
.legal-panel,
.legal-card,
.legal-step-card,
.legal-link-card {
  background: #fff7df !important;
  color: #111111 !important;
  border: 3px solid #111111 !important;
  box-shadow: 5px 5px 0 rgba(0, 0, 0, .72) !important;
  line-height: 1.5 !important;
}

body.legal-doc-page .legal-warning-panel,
.legal-warning-panel {
  background: #ffe86d !important;
}

body.legal-doc-page .legal-contact-panel,
.legal-contact-panel {
  background: #f5f0dd !important;
}

body.legal-doc-page .legal-card:nth-child(4n + 1),
body.legal-doc-page .legal-step-card:nth-child(4n + 1),
body.legal-doc-page .legal-card:nth-child(4n + 2),
body.legal-doc-page .legal-step-card:nth-child(4n + 2),
body.legal-doc-page .legal-card:nth-child(4n + 3),
body.legal-doc-page .legal-step-card:nth-child(4n + 3),
body.legal-doc-page .legal-card:nth-child(4n + 4),
body.legal-doc-page .legal-step-card:nth-child(4n + 4),
.legal-card:nth-child(4n + 1),
.legal-step-card:nth-child(4n + 1),
.legal-card:nth-child(4n + 2),
.legal-step-card:nth-child(4n + 2),
.legal-card:nth-child(4n + 3),
.legal-step-card:nth-child(4n + 3),
.legal-card:nth-child(4n + 4),
.legal-step-card:nth-child(4n + 4) {
  background: #fff7df !important;
}

body.legal-doc-page .legal-warning-panel h3,
body.legal-doc-page .legal-contact-panel h3,
body.legal-doc-page .legal-panel h3,
body.legal-doc-page .legal-card h3,
body.legal-doc-page .legal-step-card h3,
body.legal-doc-page .legal-link-card strong,
.legal-warning-panel h3,
.legal-contact-panel h3,
.legal-panel h3,
.legal-card h3,
.legal-step-card h3,
.legal-link-card strong {
  color: #080808 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: clamp(1rem, 1.5vw, 1.18rem) !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  margin: 0 0 .7rem !important;
  text-shadow: none !important;
}

body.legal-doc-page .legal-warning-panel p,
body.legal-doc-page .legal-warning-panel li,
body.legal-doc-page .legal-contact-panel p,
body.legal-doc-page .legal-contact-panel li,
body.legal-doc-page .legal-panel p,
body.legal-doc-page .legal-panel li,
body.legal-doc-page .legal-card p,
body.legal-doc-page .legal-card li,
body.legal-doc-page .legal-step-card p,
body.legal-doc-page .legal-step-card li,
body.legal-doc-page .legal-link-card span,
.legal-warning-panel p,
.legal-warning-panel li,
.legal-contact-panel p,
.legal-contact-panel li,
.legal-panel p,
.legal-panel li,
.legal-card p,
.legal-card li,
.legal-step-card p,
.legal-step-card li,
.legal-link-card span {
  color: #181818 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: clamp(.98rem, 1.15vw, 1.05rem) !important;
  font-weight: 550 !important;
  line-height: 1.55 !important;
  text-transform: none !important;
  text-shadow: none !important;
}

body.legal-doc-page .legal-warning-panel li::marker,
body.legal-doc-page .legal-contact-panel li::marker,
body.legal-doc-page .legal-panel li::marker,
body.legal-doc-page .legal-card li::marker,
body.legal-doc-page .legal-step-card li::marker,
.legal-warning-panel li::marker,
.legal-contact-panel li::marker,
.legal-panel li::marker,
.legal-card li::marker,
.legal-step-card li::marker {
  color: #111111 !important;
}

body.legal-doc-page .legal-warning-panel strong,
body.legal-doc-page .legal-contact-panel strong,
body.legal-doc-page .legal-panel strong,
body.legal-doc-page .legal-card strong,
body.legal-doc-page .legal-step-card strong,
.legal-warning-panel strong,
.legal-contact-panel strong,
.legal-panel strong,
.legal-card strong,
.legal-step-card strong {
  color: #000000 !important;
  font-weight: 850 !important;
}

@media (max-width: 760px) {
  body.legal-doc-page .legal-warning-panel,
  body.legal-doc-page .legal-contact-panel,
  body.legal-doc-page .legal-panel,
  body.legal-doc-page .legal-card,
  body.legal-doc-page .legal-step-card,
  .legal-warning-panel,
  .legal-contact-panel,
  .legal-panel,
  .legal-card,
  .legal-step-card {
    box-shadow: 3px 3px 0 rgba(0, 0, 0, .72) !important;
  }
}

/* Phase 39B.4A.14 — Public copy cleanup + continuous ticker fix
   Keep the ticker visible, readable, and seamless across wide pages. */
.ticker-track {
  width: max-content !important;
  min-width: 0 !important;
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  animation-name: crawlLoop !important;
  animation-duration: 48s !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  will-change: transform;
}

.ticker-track span {
  flex: 0 0 auto !important;
  min-width: max-content !important;
  padding-right: 3rem !important;
}

@keyframes crawlLoop {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .ticker-track {
    animation-duration: 0s !important;
    transform: none !important;
  }
}

/* =========================================================
   Phase 39B.4A.15 — Light Surface Readability Guardrail
   Final quick-readability catch for pale/gradient content surfaces
   that were still inheriting white text and heavy shadows.
   ========================================================= */

/* Public panic map copy sits on a pale yellow/blue gradient, so it must be dark. */
body:not(.legal-doc-page) .panic-map-copy,
body:not(.legal-doc-page) .panic-map-copy p,
body:not(.legal-doc-page) .panic-map-copy li,
body:not(.legal-doc-page) .panic-map-copy .eyebrow,
body:not(.legal-doc-page) .panic-map-status {
  color: #111111 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}

body:not(.legal-doc-page) .panic-map-title {
  color: #080808 !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: 2px 2px 0 rgba(255, 119, 32, .72) !important;
}

body:not(.legal-doc-page) .panic-map-copy p:not(.eyebrow),
body:not(.legal-doc-page) .panic-map-status {
  font-size: clamp(1rem, 1.25vw, 1.08rem) !important;
  font-weight: 650 !important;
  line-height: 1.5 !important;
}

/* Beta/tester note panels use light gradients. Do not allow white shadowed text on them. */
body:not(.legal-doc-page) .beta-notes,
body:not(.legal-doc-page) .beta-notes p,
body:not(.legal-doc-page) .beta-notes li,
body:not(.legal-doc-page) .beta-notes strong,
body:not(.legal-doc-page) .beta-notes b,
body:not(.legal-doc-page) .legal-beta-links,
body:not(.legal-doc-page) .legal-beta-links p,
body:not(.legal-doc-page) .legal-beta-links li,
body:not(.legal-doc-page) .legal-beta-links strong,
body:not(.legal-doc-page) .legal-beta-links b {
  color: #111111 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}

body:not(.legal-doc-page) .beta-notes h2,
body:not(.legal-doc-page) .beta-notes h3,
body:not(.legal-doc-page) .legal-beta-links h2,
body:not(.legal-doc-page) .legal-beta-links h3 {
  color: #080808 !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: none !important;
  background: none !important;
  box-shadow: none !important;
}

body:not(.legal-doc-page) .beta-notes .graffiti-callout::before,
body:not(.legal-doc-page) .beta-notes .graffiti-callout::after,
body:not(.legal-doc-page) .legal-beta-links .graffiti-callout::before,
body:not(.legal-doc-page) .legal-beta-links .graffiti-callout::after {
  display: none !important;
}

body:not(.legal-doc-page) .beta-notes li,
body:not(.legal-doc-page) .legal-beta-links p,
body:not(.legal-doc-page) .legal-beta-links li {
  font-size: clamp(1rem, 1.2vw, 1.08rem) !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
}

/* Guide warning/simple panels are pale cards even when they carry warning-card-lite. */
body:not(.legal-doc-page) .guide-simple-panel,
body:not(.legal-doc-page) .guide-simple-panel p,
body:not(.legal-doc-page) .guide-simple-panel li,
body:not(.legal-doc-page) .guide-simple-panel strong,
body:not(.legal-doc-page) .guide-simple-panel b,
body:not(.legal-doc-page) .guide-simple-panel.warning-card-lite,
body:not(.legal-doc-page) .guide-simple-panel.warning-card-lite p,
body:not(.legal-doc-page) .guide-simple-panel.warning-card-lite li,
body:not(.legal-doc-page) .guide-simple-panel.warning-card-lite strong,
body:not(.legal-doc-page) .guide-simple-panel.warning-card-lite b {
  color: #111111 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
}

body:not(.legal-doc-page) .guide-simple-panel h3,
body:not(.legal-doc-page) .guide-simple-panel.warning-card-lite h3 {
  color: #080808 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
}

body:not(.legal-doc-page) .guide-simple-panel p,
body:not(.legal-doc-page) .guide-simple-panel li {
  font-size: clamp(1rem, 1.2vw, 1.08rem) !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
}

body:not(.legal-doc-page) .guide-simple-panel li::marker,
body:not(.legal-doc-page) .beta-notes li::marker,
body:not(.legal-doc-page) .legal-beta-links li::marker {
  color: #111111 !important;
}

/* Generic safety net for known pale card classes that may appear on future guide/beta edits. */
body:not(.legal-doc-page) .guide-card[class*="guide-card-"] p,
body:not(.legal-doc-page) .guide-card[class*="guide-card-"] li,
body:not(.legal-doc-page) .beta-step-card p,
body:not(.legal-doc-page) .beta-step-card li,
body:not(.legal-doc-page) .download-card p,
body:not(.legal-doc-page) .download-card li,
body:not(.legal-doc-page) .qr-card p,
body:not(.legal-doc-page) .qr-card li,
body:not(.legal-doc-page) .faq-card p,
body:not(.legal-doc-page) .faq-card li,
body:not(.legal-doc-page) .faq-card summary,
body:not(.legal-doc-page) .faq-card summary strong {
  color: #111111 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  text-shadow: none !important;
}

/* Phase 39C.1A — Account deletion request + menu stacking fix */
.site-header {
  z-index: 1200 !important;
}

.account-shell {
  position: relative;
  z-index: 1250;
}

.account-menu {
  z-index: 1300 !important;
  pointer-events: auto;
}

.mobile-nav.open {
  position: relative;
  z-index: 1100;
}

.portal-delete-form {
  gap: .7rem;
}

.portal-delete-form label:not(.portal-checkbox) {
  color: var(--ink);
}

.portal-delete-form input[name="confirmPhrase"] {
  text-transform: uppercase;
  letter-spacing: .08em;
}

.portal-delete-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}

.portal-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: .72rem .95rem .62rem;
  color: var(--white);
  background: var(--red);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  font: inherit;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
}

.portal-danger:hover,
.portal-danger:focus-visible {
  color: var(--ink);
  background: var(--yellow);
  outline: 3px solid var(--red);
  outline-offset: 2px;
}

.portal-danger:disabled {
  opacity: .58;
  cursor: wait;
}

.portal-delete-request-status {
  padding: .7rem .8rem;
  font-family: Arial, sans-serif;
  font-size: .92rem;
  line-height: 1.4;
  background: #fff4bf;
  border: 3px solid var(--ink);
}

.portal-delete-request-status[data-tone="success"] {
  background: #d5ffd0;
}

.portal-delete-request-status[data-tone="error"] {
  color: var(--white);
  background: var(--red);
}

/* Phase 39C.1B — Account menu display-name readability
   Keep the dropdown punk-dark, but make the signed-in player's name plain,
   crisp, and high contrast over the dark menu heading. */
.account-menu-heading {
  background: #10131d !important;
}

.account-menu-heading strong,
.account-menu-heading #portalAccountSummary {
  color: #ffffff !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: .98rem !important;
  font-weight: 900 !important;
  line-height: 1.18 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  text-shadow: 0 1px 0 #000000 !important;
  -webkit-text-stroke: 0 transparent !important;
  paint-order: normal !important;
}

.account-menu-heading span,
.account-menu-heading #portalAccountEmail {
  color: #8feaff !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 transparent !important;
}

/* =========================================================
   Phase 40B.1 — Beta QR Label Contrast Hotfix
   The Phase 39 readability guardrail forced paragraph text dark,
   which accidentally overrode the dark-background download labels
   inside QR cards. Keep those labels light on dark.
   ========================================================= */
body:not(.legal-doc-page) .download-kicker,
body:not(.legal-doc-page) .qr-card .download-kicker,
body:not(.legal-doc-page) .download-card .download-kicker,
body:not(.legal-doc-page) p.download-kicker,
body:not(.legal-doc-page) span.download-kicker {
  color: #ffffff !important;
  background: #0b0b0b !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-weight: 900 !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 transparent !important;
  paint-order: normal !important;
}

/* =========================================================
   Phase 40C.1 — FAQ Safety Strip Readability Hotfix
   The FAQ safety strip used the graffiti heading treatment in a
   narrow column, which made the title stack and overlap. Keep the
   warning visible, but make it read like a normal safety note.
   ========================================================= */
body:not(.legal-doc-page) .faq-safety-strip {
  grid-template-columns: minmax(260px, .62fr) minmax(0, 1fr);
  align-items: start;
}

body:not(.legal-doc-page) .faq-safety-strip .eyebrow {
  margin-bottom: .55rem;
  color: #080808 !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 transparent !important;
}

body:not(.legal-doc-page) .faq-safety-strip .graffiti-callout,
body:not(.legal-doc-page) .faq-safety-strip h2.graffiti-callout {
  display: block;
  max-width: 18ch;
  margin: 0;
  padding: 0;
  color: #080808 !important;
  background: transparent !important;
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  line-height: .98;
  letter-spacing: -.02em;
  -webkit-text-stroke: 0 transparent !important;
  paint-order: normal !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

body:not(.legal-doc-page) .faq-safety-strip .graffiti-callout::before,
body:not(.legal-doc-page) .faq-safety-strip .graffiti-callout::after {
  display: none !important;
}

body:not(.legal-doc-page) .faq-safety-strip p:last-child {
  color: #151515 !important;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: clamp(1rem, 1.45vw, 1.16rem) !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 transparent !important;
  paint-order: normal !important;
}

@media (max-width: 760px) {
  body:not(.legal-doc-page) .faq-safety-strip {
    grid-template-columns: 1fr;
  }

  body:not(.legal-doc-page) .faq-safety-strip .graffiti-callout,
  body:not(.legal-doc-page) .faq-safety-strip h2.graffiti-callout {
    max-width: 100%;
  }
}


/* =========================================================
   Phase 40C.3 — Beta card title contrast + access request modal
   Keep the beta CTA readable and give non-Discord testers a path.
   ========================================================= */
body:not(.legal-doc-page) .join-card .join-title-pop {
  display: inline;
  max-width: none;
  color: #080808 !important;
  background:
    linear-gradient(transparent 58%, rgba(255, 196, 0, .7) 58%, rgba(255, 196, 0, .7) 92%, transparent 92%) !important;
  border-left: 0;
  -webkit-text-stroke: 0 !important;
  paint-order: normal !important;
  text-shadow: none !important;
  box-shadow: none !important;
  line-height: 1.04;
}

.beta-request-dialog {
  width: min(92vw, 620px);
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 0;
}

.beta-request-dialog::backdrop {
  background: rgba(0, 0, 0, .72);
  backdrop-filter: blur(3px);
}

.beta-request-modal {
  display: grid;
  gap: .85rem;
  padding: clamp(1rem, 3vw, 1.5rem);
  color: #080808;
  background: var(--paper);
  border: var(--fat-border);
  box-shadow: 12px 12px 0 rgba(0, 0, 0, .82);
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  transform: rotate(-.7deg);
}

.modal-heading-row {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  justify-content: space-between;
}

.beta-request-modal h2 {
  margin: .1rem 0 0;
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: .9;
  text-transform: uppercase;
}

.beta-request-help,
.beta-request-status {
  margin: 0;
  font-weight: 800;
  line-height: 1.45;
}

.beta-request-modal label {
  display: grid;
  gap: .35rem;
  font-weight: 950;
  text-transform: uppercase;
}

.beta-request-modal label span {
  font-weight: 800;
  text-transform: none;
}

.beta-request-modal input,
.beta-request-modal textarea {
  width: 100%;
  padding: .75rem .8rem;
  color: #080808;
  background: #fff8e6;
  border: 4px solid var(--ink);
  font: 700 1rem Arial, "Helvetica Neue", Helvetica, sans-serif;
}

.beta-request-modal textarea {
  resize: vertical;
}

.modal-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.modal-icon-button {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  flex: 0 0 auto;
  color: var(--white);
  background: var(--red);
  border: 4px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  font-size: 1.6rem;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
}

.modal-icon-button:hover,
.modal-icon-button:focus-visible {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}

/* =========================================================
   Phase 40C.4 — PHP beta access request submit
   Static beta access modal posts through Web3Forms.
   ========================================================= */
.form-trap {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.beta-request-modal button[disabled] {
  cursor: wait;
  opacity: .72;
}

.beta-request-status[data-tone="success"] {
  color: #145c19;
}

.beta-request-status[data-tone="error"] {
  color: #9a1d14;
}

.beta-request-status[data-tone="working"] {
  color: #503a00;
}

/* =========================================================
   Phase 40C.5 — Beta request modal scrollbar cleanup
   Prevent desktop browsers from showing useless dialog scrollbars.
   ========================================================= */
.beta-request-dialog {
  max-width: calc(100vw - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow: visible;
}

.beta-request-modal {
  box-sizing: border-box;
  max-height: calc(100dvh - 2rem);
  overflow-x: hidden;
  overflow-y: auto;
  transform: none;
}

.beta-request-modal h2 {
  font-size: clamp(1.75rem, 4.6vw, 2.6rem);
  line-height: .95;
}

.beta-request-modal textarea {
  min-height: 7rem;
}

@media (min-height: 680px) {
  .beta-request-modal {
    overflow-y: visible;
  }
}

@media (max-width: 560px) {
  .beta-request-dialog {
    width: min(94vw, 620px);
    max-width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem);
  }

  .beta-request-modal {
    max-height: calc(100dvh - 1rem);
    padding: 1rem;
  }
}

/* =========================================================
   Phase 40C.6 — Beta request modal text readability hotfix
   Keep the modal copy crisp on the light paper background.
   ========================================================= */
.beta-request-modal,
.beta-request-modal h2,
.beta-request-modal p,
.beta-request-modal strong,
.beta-request-modal label,
.beta-request-modal span,
.beta-request-modal input,
.beta-request-modal textarea,
.beta-request-modal .beta-request-help,
.beta-request-modal .beta-request-status {
  color: #080808 !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 transparent !important;
  paint-order: normal !important;
}

.beta-request-modal .beta-request-help,
.beta-request-modal .beta-request-status {
  padding: .55rem .65rem;
  background: rgba(255, 248, 230, .92);
  border-left: 5px solid var(--yellow);
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.38;
}

.beta-request-modal .beta-request-status:empty {
  display: none;
}

.beta-request-modal .beta-request-status[data-tone="success"] {
  color: #145c19 !important;
  background: #e6ffdf;
  border-left-color: #23a52a;
}

.beta-request-modal .beta-request-status[data-tone="error"] {
  color: #8b1a12 !important;
  background: #ffe1da;
  border-left-color: var(--red);
}

.beta-request-modal .beta-request-status[data-tone="working"] {
  color: #4a3300 !important;
  background: #fff0bb;
  border-left-color: var(--yellow);
}


/* =========================================================
   Phase 40C.22 — Beta request modal viewport-center hotfix
   Treat the dialog as a fixed viewport overlay so it opens in
   the center of the user's current screen position, not the
   top of the document.
   ========================================================= */
html.beta-request-modal-open,
html.beta-request-modal-open body {
  overflow: hidden;
}

.beta-request-dialog[open] {
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  max-height: none !important;
  margin: 0 !important;
  padding: clamp(.75rem, 2vw, 1.25rem) !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 0 !important;
  transform: none !important;
  box-sizing: border-box;
}

.beta-request-dialog[open] .beta-request-modal {
  width: min(92vw, 620px);
  max-height: calc(100dvh - 2rem);
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0;
}

/* =========================================================
   Phase 40C.14 — Sticky navbar behavior
   Let the header live in its normal spot first, then catch
   the top of the browser window while scrolling.
   ========================================================= */
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1800 !important;
}

.mobile-nav.open {
  position: sticky !important;
  top: 72px !important;
  z-index: 1700 !important;
}

main [id] {
  scroll-margin-top: 96px;
}

@media (max-width: 560px) {
  .mobile-nav.open {
    top: 64px !important;
  }

  main [id] {
    scroll-margin-top: 86px;
  }
}
