/* ═══════════════════════════════════════════════════════════════════════════
   SOG — shared foundation
   ---------------------------------------------------------------------------
   Every page carried its own copy of the design system, and the copies had
   drifted: eight different :root blocks across fifteen pages, six variants of
   .btn, two nav heights. Four pages referenced variables they never defined,
   so those declarations resolved to nothing.

   This file is loaded BEFORE each page's own <style>, which means a page that
   still defines a rule inline continues to win. Nothing here overrides
   anything; it fills gaps and gives one place to change the system.

   Page-specific rules stay with their page. This is the foundation only.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Backgrounds */
  --bg-0: #0a0908;
  --bg-1: #100e0b;
  --bg-2: #16140f;
  --bg-3: #1d1a14;
  --bg-4: #25211a;
  /* Lines */
  --line: rgba(239,231,215,.07);
  --line-2: rgba(239,231,215,.13);
  --line-3: rgba(239,231,215,.22);
  /* Ink */
  --ink-0: #efe7d7;
  --ink-1: #c8bea9;
  --ink-2: #8a8273;
  --ink-3: #5a5346;
  --ink-4: #3a362e;
  /* Gold */
  --gold: #c9a961;
  --gold-soft: #a89058;
  --gold-bright: #e6c887;
  --gold-glow: rgba(201,169,97,.18);
  --gold-dim: rgba(201,169,97,0.08);
  /* Semantic */
  --success: #7c9a76;
  --danger: #b85d4e;
  --info: #8aa1b8;
  /* Type */
  --serif: 'Cormorant Garamond',Georgia,serif;
  --sans: 'DM Sans',system-ui,sans-serif;
  --mono: 'JetBrains Mono',ui-monospace,monospace;
  /* Motion */
  --ease: cubic-bezier(.22,1,.36,1);
  /* Layout */
  --nav-h: 56px;
  --footer-h: 36px;
  --gutter: 64px;
  --max-w: 1440px;
}

/* ── Pruned ─────────────────────────────────────────────────────────────────
   Twenty-six rules were removed after checking, page by page in a browser,
   which of them would newly apply somewhere. Card chrome (.card-*, .corner-*,
   .privacy-strip) belongs to the three sign-in style pages but matched elements
   on account, discover and events; .nav-right matched an element on index that
   was never styled; the universal reset would have started covering ::before
   and ::after on pages that only reset *.

   None of that is necessarily wrong — several would be improvements — but they
   are decisions to make deliberately with the page in front of you, not side
   effects of extracting a stylesheet. What remains cannot reach any page that
   did not already have an identical rule, so the only pixels that move are the
   ones fixed by the variables above.
   ────────────────────────────────────────────────────────────────────────── */

.btn-ghost:hover {
  border-color:var(--gold-soft);
  color:var(--gold);
}

.btn-primary:disabled {
  opacity:.5;
  cursor:not-allowed;
}

.btn-primary:hover {
  background:var(--gold-bright);
}

.abs-5 {
  background:repeating-linear-gradient(45deg,#1a1610 0 12px,#221d15 12px 24px);
}

.abs-6 {
  background:radial-gradient(circle at 50% 70%,#3a2f1f 0%,#14110c 70%);
}

@keyframes slideIn {
  from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}
}

::-webkit-scrollbar-track {
  background:var(--bg-1);
}

.back {
  margin-left:auto;
  font-family:var(--mono);
  font-size:9px;
  color:var(--ink-3);
  letter-spacing:.06em;
}

.back:hover {
  color:var(--gold);
}

.cb-accept {
  height: 32px;
  padding: 0 16px;
  background: var(--gold, #c9a961);
  color: #14110a;
  font-family: var(--sans, sans-serif);
  font-size: 11px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: background .15s;
}

.cb-accept:hover {
  background: var(--gold-bright, #e6c887);
}

.cb-decline {
  height: 32px;
  padding: 0 14px;
  background: transparent;
  color: var(--ink-2, #8a8273);
  font-family: var(--mono, monospace);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
  border: 1px solid rgba(239,231,215,.13);
  cursor: pointer;
  transition: color .15s;
}

.cb-decline:hover {
  color: var(--ink-0, #efe7d7);
}

.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9997;
  background: var(--bg-1, #100e0b);
  border-top: 1px solid rgba(201,169,97,.25);
  padding: 16px 36px;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  transform: translateY(100%);
  transition: transform .4s cubic-bezier(.22,1,.36,1);
}

.cookie-banner .cb-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

.cookie-banner p {
  flex: 1;
  font-size: 11px;
  color: var(--ink-2, #8a8273);
  line-height: 1.55;
  min-width: 220px;
}

.cookie-banner p a {
  color: var(--gold, #c9a961);
}

.cookie-banner.show {
  transform: translateY(0);
}

.error-msg.show {
  display:block;
}

.footer-bar span {
  font-family:var(--mono);
  font-size:8px;
  color:var(--ink-3);
}

.input.error {
  border-color:var(--danger);
}

.kv-val {
  font-size:12px;
  color:var(--ink-0);
}

.mobile-drawer a:hover, .mobile-drawer .mob-link:hover {
  color: var(--gold, #c9a961);
}

.nav-divider {
  height:24px;
  width:1px;
  background:var(--line);
  margin:0 28px;
}

.nav-item {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:500;
  letter-spacing:.03em;
  padding-bottom:2px;
  border-bottom:1px solid transparent;
  cursor:pointer;
  transition:color .15s;
  color:var(--ink-2);
}

.nav-item.active {
  color:var(--ink-0);
  border-bottom-color:var(--gold);
}

.nav-item:hover:not(.active) {
  color:var(--ink-1);
}

.nav-items {
  display:flex;
  gap:28px;
}

.panic-fixed {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9998;
  font-family: var(--mono, monospace);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #b85d4e;
  background: rgba(10,9,8,.88);
  border: 1px solid rgba(184,93,78,.3);
  padding: 7px 14px;
  cursor: pointer;
  opacity: .5;
  transition: opacity .2s;
  backdrop-filter: blur(6px);
}

.panic-fixed:hover {
  opacity: 1;
  border-color: rgba(184,93,78,.7);
}

.pw-toggle:hover {
  color:var(--gold);
}

@media (max-width: 600px) {
  .hero-headline { font-size: 48px !important; }
  .section-title { font-size: 36px !important; }
  .tiers-grid { grid-template-columns: 1fr !important; }
  .pillars { grid-template-columns: 1fr !important; }
}

@media(max-width:600px) {
  .cookie-banner { padding: 14px 20px; }
  .cookie-banner p { font-size: 10px; }
}
