/* =========================================================================
   Tourivers Portfolio — custom effects layer
   Holds only what Tailwind utilities cannot express inline:
   glassmorphism, glow shadows, keyframes/guards, focus ring, @supports
   fallbacks, skip-link, tap-target sizing. (Design: Design System)
   ========================================================================= */

/* ---- Web fonts (display + body) ------------------------------------------ */
/* NOTE: Fonts are loaded via <link> tags in HTML <head> for better render
   performance. Do NOT re-add @import here. */

/* ---- Tailwind-absent fallback (Req 1.11) --------------------------------- */
/* If the CDN never applies utilities, the page is still dark + readable. */
html, body {
  background-color: #05070D;
  color: #E6EDF7;
  font-family: Inter, system-ui, sans-serif;
}
* { -webkit-tap-highlight-color: transparent; }

body { margin: 0; }

/* Smooth in-page anchor scrolling baseline; JS handles offset/timing */
html { scroll-behavior: smooth; }

/* ---- Glassmorphism surface (Req 2.3) ------------------------------------- */
.glass {
  background: rgba(255, 255, 255, 0.06);            /* 10-40% fill range   */
  border: 1px solid rgba(255, 255, 255, 0.14);      /* 10-30% border       */
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);                       /* 8-24px range        */
}
.glass-strong {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  -webkit-backdrop-filter: blur(22px);
  backdrop-filter: blur(22px);
}

/* Fallback when backdrop-filter is unsupported (Req 2.9): 60-90% opaque so
   overlaid text keeps >= 4.5:1 contrast. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass        { background: rgba(10, 15, 28, 0.82); border-color: rgba(255,255,255,0.22); }
  .glass-strong { background: rgba(10, 15, 28, 0.9);  border-color: rgba(255,255,255,0.24); }
}

/* ---- Glow effects (accent palette only, Req 2.2) ------------------------- */
.glow-cyan   { box-shadow: 0 0 12px rgba(34,211,238,.45), 0 0 32px rgba(34,211,238,.22); }
.glow-blue   { box-shadow: 0 0 12px rgba(59,130,246,.45), 0 0 32px rgba(59,130,246,.22); }
.glow-purple { box-shadow: 0 0 12px rgba(168,85,247,.45), 0 0 32px rgba(168,85,247,.22); }
.text-glow   { text-shadow: 0 0 18px rgba(34,211,238,.55), 0 0 42px rgba(59,130,246,.35); }

/* Gradient border card (Req 9.2) */
.glow-border {
  position: relative;
  border: 1px solid transparent;
  background:
    linear-gradient(#0A0F1C, #0A0F1C) padding-box,
    linear-gradient(135deg, #22D3EE, #3B82F6, #A855F7) border-box;
}

/* Reusable gradient text */
.gradient-text {
  background: linear-gradient(120deg, #22D3EE, #3B82F6, #A855F7);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---- Hero animated background (essential, exempt from motion guards) ----- */
.hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}
.hero-bg::before {
  content: "";
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(40% 50% at 20% 30%, rgba(34,211,238,0.22), transparent 60%),
    radial-gradient(45% 55% at 80% 25%, rgba(168,85,247,0.20), transparent 60%),
    radial-gradient(50% 60% at 60% 80%, rgba(59,130,246,0.18), transparent 60%);
  background-size: 200% 200%;
  animation: gradient-pan 18s ease infinite;
}
.hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(34,211,238,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,211,238,0.06) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 40%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, #000 40%, transparent 100%);
}

/* Floating accent blobs used on inner pages for depth */
.bg-blob {
  position: absolute;
  border-radius: 9999px;
  filter: blur(80px);
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
}

/* ---- Scroll reveal initial/visible states (reveal.js toggles .is-visible) */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ---- Typing caret -------------------------------------------------------- */
.type-caret::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1em;
  margin-left: 2px;
  background: #22D3EE;
  vertical-align: -0.1em;
  animation: pulse-glow 1s steps(1) infinite;
}

/* ---- Reduced-motion + global motion guards (Req 2.7, 14.4, 14.5) --------- */
/* Hero background is the sole exception (Req 2.8, 4.7). */
@media (prefers-reduced-motion: reduce) {
  *:not(.hero-bg):not(.hero-bg *),
  *:not(.hero-bg):not(.hero-bg *)::before,
  *:not(.hero-bg):not(.hero-bg *)::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
}
html[data-motion="off"] *:not(.hero-bg):not(.hero-bg *) {
  animation: none !important;
  transition: none !important;
}
html[data-motion="off"] .reveal { opacity: 1 !important; transform: none !important; }

/* ---- Focus indicator (Req 15.8) ------------------------------------------ */
:focus-visible {
  outline: 2px solid #22D3EE;
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---- Skip link (Req 15) -------------------------------------------------- */
.skip-link {
  position: absolute;
  left: 0; top: 0;
  transform: translateY(-120%);
  background: #22D3EE;
  color: #05070D;
  padding: 0.5rem 1rem;
  font-weight: 600;
  z-index: 100;
  transition: transform 0.2s ease;
}
.skip-link:focus { transform: translateY(0); }

/* ---- Mobile tap targets (Req 13.6) --------------------------------------- */
@media (max-width: 767px) {
  a[data-nav], button, .tap-target,
  .btn, input[type="submit"] {
    min-height: 44px;
    min-width: 44px;
  }
  body { font-size: 16px; } /* Req 13.5 floor */
}

/* ---- Shared button base -------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: 0.75rem;
  font-weight: 600;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.btn:hover { transform: translateY(-2px); }
.w-full { width: 100%; }

/* Card hover lift used by content cards */
.card-hover { transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }
.card-hover:hover { transform: translateY(-6px); }

/* =========================================================================
   ACCENT CUSTOM PROPERTIES — let social chips theme via --chip-accent
   ========================================================================= */
:root {
  --accent-cyan: #22D3EE;
  --accent-blue: #3B82F6;
  --accent-purple: #A855F7;

  /* Header signature palette — "neon orchid": indigo → cyan → magenta */
  --hd-bg: #08060F;
  --hd-bg-scrolled: #050409;
  --hd-c1: #6D5BFF;   /* electric indigo */
  --hd-c2: #2DE2E6;   /* neon cyan       */
  --hd-c3: #FF4D9D;   /* orchid magenta  */
  --hd-ink: #F2F0FF;  /* primary text    */
  --hd-mut: #9A96B2;  /* muted text (contrast-safe) */
  --hd-font: "Chakra Petch", "Space Grotesk", system-ui, sans-serif;
}

/* =========================================================================
   SITE HEADER SYSTEM — bold angular esports HUD (solid bar · cut-corner shapes)
   ========================================================================= */

/* ---- 1. Announcement strip ----------------------------------------------- */
.site-announce {
  position: relative;
  z-index: 51;
  background: var(--hd-bg);
  border-bottom: 1px solid rgba(45, 226, 230, 0.16);
  overflow: hidden;
  transition: opacity 0.3s ease, transform 0.3s ease, max-height 0.3s ease;
  max-height: 60px;
}
.site-announce.is-dismissed { opacity: 0; transform: translateY(-100%); max-height: 0; }
.site-announce__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-block: 0.45rem;
}
.announce__text {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.4rem 0.6rem;
  margin: 0;
  font-family: var(--hd-font);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #C2CCE3;
}
.announce__emoji { font-size: 0.95rem; }
.announce__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--hd-font);
  font-weight: 700;
  color: var(--hd-c1);
  white-space: nowrap;
}
.announce__cta svg { transition: transform 0.25s ease; }
.announce__cta:hover { color: var(--hd-c2); }
.announce__cta:hover svg { transform: translateX(3px); }
.announce__close {
  position: absolute;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  color: #8A95A8;
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease;
}
.announce__close:hover { color: #E6EDF7; background: rgba(255, 255, 255, 0.08); }
@media (max-width: 640px) {
  .announce__close { position: static; flex: none; }
  .site-announce__inner { justify-content: space-between; gap: 0.5rem; }
  .announce__text { justify-content: flex-start; text-align: left; }
}

/* ---- 2. Sticky solid HUD bar --------------------------------------------- */
@keyframes hd-aurora-pan {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
@keyframes hd-mark-spin {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(109, 91, 255, 0.55)); }
  50% { filter: drop-shadow(0 0 16px rgba(45, 226, 230, 0.85)); }
}
@keyframes hd-ring-rotate { to { transform: rotate(360deg); } }
@keyframes hd-cta-border { to { background-position: 200% 50%; } }
@keyframes hd-orbit { to { transform: rotate(360deg); } }
@keyframes hd-live { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.5; } }
@keyframes hd-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--hd-bg);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
/* Aurora sheen wash drifting across the bar */
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg,
    transparent 0%,
    rgba(109, 91, 255, 0.10) 25%,
    rgba(45, 226, 230, 0.08) 50%,
    rgba(255, 77, 157, 0.06) 70%,
    transparent 100%);
  background-size: 200% 100%;
  animation: hd-aurora-pan 16s linear infinite;
  pointer-events: none;
}
/* Animated aurora accent line under the bar */
.site-header::after {
  content: "";
  position: absolute;
  left: 0; bottom: -1px;
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, var(--hd-c1), var(--hd-c2), var(--hd-c3), var(--hd-c1));
  background-size: 300% 100%;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
  animation: gradient-pan 8s linear infinite;
}
.site-header.is-scrolled {
  background: var(--hd-bg-scrolled);
  box-shadow: 0 12px 44px rgba(0, 0, 0, 0.7);
}
.site-header.is-scrolled::after { transform: scaleX(1); }

/* Bar: brand pinned left, nav + actions grouped on the right */
.site-header__bar {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  height: 72px;
  transition: height 0.3s ease;
}
.site-header.is-scrolled .site-header__bar { height: 64px; }
.brand { margin-right: auto; }

/* Brand: circular power badge + TOURIVERS / ESPORTS ARENA (compact, fluid) */
.brand {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 0.4rem + 0.7vw, 0.7rem);
  font-family: var(--hd-font);
  min-width: 0;
}
/* Circular badge with gradient ring + glowing bolt */
.brand__circle {
  position: relative;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(34px, 28px + 2vw, 42px);
  height: clamp(34px, 28px + 2vw, 42px);
  border-radius: 50%;
  border: 1.5px solid transparent;
  background:
    radial-gradient(circle at 50% 35%, #14102A, var(--hd-bg)) padding-box,
    linear-gradient(120deg, var(--hd-c1), var(--hd-c2) 45%, var(--hd-c3), var(--hd-c1)) border-box;
  background-size: 100% 100%, 220% 100%;
  box-shadow: 0 4px 14px rgba(109, 91, 255, 0.32), inset 0 0 10px rgba(45, 226, 230, 0.16);
  animation: hd-cta-border 6s linear infinite;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}
.brand__circle-core {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--hd-c2);
  filter: drop-shadow(0 0 5px rgba(45, 226, 230, 0.6));
  transition: color 0.3s ease, transform 0.3s ease;
}
.brand__circle-core svg { width: clamp(16px, 13px + 1vw, 20px); height: auto; }
.brand:hover .brand__circle { transform: scale(1.06); box-shadow: 0 6px 20px rgba(255, 77, 157, 0.42), inset 0 0 12px rgba(45, 226, 230, 0.24); }
.brand:hover .brand__circle-core { color: var(--hd-c3); transform: scale(1.1); }

/* Wordmark + tagline */
.brand__name { display: inline-flex; flex-direction: column; justify-content: center; line-height: 1.04; min-width: 0; }
.brand__word {
  font-family: var(--hd-font);
  font-size: clamp(1.02rem, 0.85rem + 0.95vw, 1.32rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hd-ink);
  white-space: nowrap;
}
.brand__word b {
  font-weight: 700;
  background: linear-gradient(110deg, var(--hd-c2), var(--hd-c1) 45%, var(--hd-c3), var(--hd-c2));
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: hd-cta-border 6s linear infinite;
  text-shadow: 0 0 20px rgba(45, 226, 230, 0.28);
}
.brand__tag {
  margin-top: 1px;
  font-family: var(--hd-font);
  font-size: clamp(0.44rem, 0.36rem + 0.32vw, 0.54rem);
  font-weight: 600;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  text-transform: uppercase;
  color: var(--hd-mut);
  white-space: nowrap;
  transition: color 0.3s ease;
}
.brand:hover .brand__tag { color: var(--hd-c2); }
@media (max-width: 400px) { .brand__tag { display: none; } }

/* Desktop nav — hidden below 1024px (desktop layout is never shrunk) */
.site-nav { display: none; }
@media (min-width: 1024px) { .site-nav { display: block; } }
.nav-list {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  list-style: none;
  margin: 0; padding: 0;
}
.nav-item { position: relative; }

/* Uppercase HUD nav links — corner brackets ignite on hover (like Login) */
.nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.6rem 1.05rem;
  font-family: var(--hd-font);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--hd-mut);
  background: transparent;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.2s ease;
}
/* two igniting corner brackets (top-left + bottom-right) */
.nav-link::before,
.nav-link::after {
  content: "";
  position: absolute;
  width: 9px; height: 9px;
  border-color: var(--hd-c2);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, width 0.22s ease, height 0.22s ease;
}
.nav-link::before { left: 2px; top: 4px; border-left: 1.5px solid; border-top: 1.5px solid; }
.nav-link::after  { right: 2px; bottom: 4px; border-right: 1.5px solid; border-bottom: 1.5px solid; }
.nav-link:hover { color: var(--hd-ink); }
.nav-link:hover::before,
.nav-link:hover::after,
.nav-item--menu:hover .nav-link--menu::before,
.nav-item--menu:hover .nav-link--menu::after,
.nav-link--menu[aria-expanded="true"]::before,
.nav-link--menu[aria-expanded="true"]::after { opacity: 0.9; width: 13px; height: 13px; }
.nav-caret { opacity: 0.65; transition: transform 0.25s ease; }

/* ACTIVE TAB — flowing gradient-border chip with dark core (like the CTA) */
.nav-link[aria-current="page"] {
  color: var(--hd-ink);
  padding-left: 1.5rem;
  border: 1.5px solid transparent;
  text-shadow: 0 0 10px rgba(45, 226, 230, 0.45);
  background:
    linear-gradient(var(--hd-bg), var(--hd-bg)) padding-box,
    linear-gradient(120deg, var(--hd-c1), var(--hd-c2) 45%, var(--hd-c3), var(--hd-c1)) border-box;
  background-size: 100% 100%, 200% 100%;
  clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);
  box-shadow: 0 0 18px rgba(109, 91, 255, 0.45);
  animation: hd-cta-border 6s linear infinite;
}
/* hide hover brackets on the active tab */
.nav-link[aria-current="page"]::before { content: none; }
/* pulsing lime status dot, left of the label */
.nav-link[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0.6rem; top: 50%;
  transform: translateY(-50%);
  width: 5px; height: 5px;
  border: 0;
  border-radius: 9999px;
  opacity: 1;
  background: var(--hd-c3);
  box-shadow: 0 0 8px var(--hd-c3);
  animation: pulse-glow 2.4s ease-in-out infinite;
}

/* Vertical divider between nav and actions */
.site-nav { position: relative; }
.site-nav::after {
  content: "";
  position: absolute;
  right: -0.75rem; top: 50%;
  transform: translateY(-50%);
  width: 1px; height: 24px;
  background: linear-gradient(180deg, transparent, rgba(45, 226, 230, 0.45), transparent);
}

/* ---- Desktop mega-menu — aurora policies panel -------------------------- */
.mega {
  position: absolute;
  right: 0;
  top: calc(100% + 16px);
  width: max-content;
  max-width: min(94vw, 600px);
  transform: translateY(8px) scale(0.98);
  transform-origin: top right;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(109, 91, 255, 0.2), transparent 60%),
    radial-gradient(120% 100% at 0% 0%, rgba(45, 226, 230, 0.13), transparent 55%),
    #0D0A1A;
  border: 1px solid rgba(109, 91, 255, 0.3);
  border-radius: 14px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}
.mega__inner { position: relative; padding: clamp(1.1rem, 1.4vw, 1.4rem); }
/* top aurora hairline */
.mega__inner::before {
  content: "";
  position: absolute;
  left: clamp(1.1rem, 1.4vw, 1.4rem); right: clamp(1.1rem, 1.4vw, 1.4rem); top: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--hd-c1), var(--hd-c2), var(--hd-c3));
  border-radius: 2px;
}
/* Bridge the hover gap between trigger and panel */
.mega::after { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }

.nav-item--menu:hover .mega,
.nav-item--menu:focus-within .mega,
.nav-link--menu[aria-expanded="true"] + .mega {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(0) scale(1);
}
.nav-item--menu:hover .nav-caret,
.nav-link--menu[aria-expanded="true"] .nav-caret { transform: rotate(180deg); }

.mega__lead { margin-bottom: 1rem; padding-bottom: 0.9rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.mega__lead-title {
  margin: 0;
  font-family: var(--hd-font);
  font-weight: 700; font-size: 1.05rem;
  text-transform: uppercase; letter-spacing: 0.08em;
  background: linear-gradient(100deg, var(--hd-c2), var(--hd-c1));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.mega__lead-desc { margin: 0.3rem 0 0; font-size: 0.84rem; color: var(--hd-mut); }
.mega__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 1.6vw, 1.75rem); }
.mega__col { min-width: 0; }
.mega__col + .mega__col { padding-left: clamp(1rem, 1.6vw, 1.75rem); border-left: 1px solid rgba(255, 255, 255, 0.07); }
/* Narrower desktops (1024–1180px): stack the two policy columns to avoid cramping */
@media (min-width: 1024px) and (max-width: 1180px) {
  .mega { max-width: min(94vw, 360px); }
  .mega__cols { grid-template-columns: 1fr; gap: 0.5rem; }
  .mega__col + .mega__col { padding-left: 0; border-left: 0; padding-top: 0.75rem; border-top: 1px solid rgba(255, 255, 255, 0.07); }
}
.mega__col-title {
  margin: 0 0 0.6rem;
  font-family: var(--hd-font);
  font-size: 0.66rem; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--hd-c2);
}
.mega__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.mega-link {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.6rem 0.65rem;
  border-radius: 10px;
  transition: background 0.2s ease, transform 0.2s ease;
}
.mega-link:hover { background: rgba(109, 91, 255, 0.16); transform: translateX(3px); }
.mega-link__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 36px; height: 36px;
  color: var(--hd-c2);
  background: rgba(45, 226, 230, 0.1);
  border: 1px solid rgba(45, 226, 230, 0.2);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  transition: color 0.2s ease, background 0.2s ease, transform 0.3s ease;
}
.mega-link:hover .mega-link__icon { color: var(--hd-c3); background: rgba(255, 77, 157, 0.14); transform: rotate(20deg); }
.mega-link__body { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.mega-link__title { font-family: var(--hd-font); font-weight: 600; font-size: 0.88rem; letter-spacing: 0.02em; color: var(--hd-ink); }
.mega-link__desc { font-size: 0.78rem; line-height: 1.4; color: var(--hd-mut); }

/* ---- Header actions: login + primary CTA + burger ----------------------- */
.site-header__actions { display: flex; align-items: center; gap: 1rem; }
.header-login {
  display: none;
  position: relative;
  padding: 0.55rem 1rem;
  font-family: var(--hd-font);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--hd-ink);
  white-space: nowrap;
  transition: color 0.2s ease, background 0.2s ease;
}
/* corner brackets that ignite on hover */
.header-login::before,
.header-login::after {
  content: "";
  position: absolute;
  width: 8px; height: 8px;
  border-color: var(--hd-c2);
  opacity: 0.35;
  transition: opacity 0.2s ease, width 0.2s ease, height 0.2s ease;
}
.header-login::before { left: 0; top: 0; border-left: 1.5px solid; border-top: 1.5px solid; }
.header-login::after { right: 0; bottom: 0; border-right: 1.5px solid; border-bottom: 1.5px solid; }
.header-login:hover { color: var(--hd-c2); }
.header-login:hover::before,
.header-login:hover::after { opacity: 1; width: 12px; height: 12px; }

/* Animated gradient-border CTA with dark core */
.header-cta {
  display: none;
  position: relative;
  padding: 0.72rem 1.45rem;
  background: linear-gradient(120deg, var(--hd-c1), var(--hd-c2) 45%, var(--hd-c3), var(--hd-c1));
  background-size: 200% 100%;
  color: var(--hd-ink);
  font-family: var(--hd-font);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  clip-path: polygon(11px 0, 100% 0, 100% calc(100% - 11px), calc(100% - 11px) 100%, 0 100%, 0 11px);
  box-shadow: 0 0 22px rgba(109, 91, 255, 0.35);
  animation: hd-cta-border 6s linear infinite;
  transition: box-shadow 0.25s ease, transform 0.2s ease;
}
/* dark glass core leaves only a glowing animated border visible */
.header-cta::after {
  content: "";
  position: absolute;
  inset: 1.5px;
  background: var(--hd-bg);
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  z-index: 0;
}
.header-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.4) 50%, transparent 70%);
  transform: translateX(-130%);
  transition: transform 0.6s ease;
}
.header-cta > * { position: relative; z-index: 1; }
.header-cta:hover {
  box-shadow: 0 0 34px rgba(45, 226, 230, 0.55);
  transform: translateY(-2px);
}
.header-cta:hover::before { transform: translateX(130%); }
.header-cta svg { transition: transform 0.25s ease; }
.header-cta:hover svg { transform: translateX(3px); }
@media (min-width: 1024px) {
  .header-login, .header-cta { display: inline-flex; align-items: center; gap: 0.45rem; }
}

/* Angular hamburger (mobile/tablet only) */
.nav-burger {
  position: relative;
  width: 44px; height: 44px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: rgba(45, 226, 230, 0.08);
  border: 1px solid rgba(45, 226, 230, 0.28);
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
  cursor: pointer;
}
.nav-burger span {
  width: 20px; height: 2px;
  background: var(--hd-ink);
  transition: transform 0.3s ease, opacity 0.2s ease;
}
.nav-burger:hover span { background: var(--hd-c2); }
.nav-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 1024px) { .nav-burger { display: none; } }

/* =========================================================================
   MOBILE DRAWER — smooth row navigation (80% width)
   ========================================================================= */
.drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 59;
  background: rgba(3, 5, 11, 0.66);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.drawer-overlay.is-open { opacity: 1; visibility: visible; }
@media (min-width: 1024px) { .drawer-overlay { display: none; } }

#mobile-drawer {
  position: fixed;
  top: 0; left: 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  width: 80%;
  height: 100%;
  overflow: hidden;
  background:
    radial-gradient(85% 35% at 0% 0%, rgba(34, 211, 238, 0.1), transparent 60%),
    radial-gradient(80% 35% at 100% 100%, rgba(168, 85, 247, 0.1), transparent 60%),
    #0A0F1C;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 24px 0 70px rgba(0, 0, 0, 0.55);
  transform: translateX(-100%);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
#mobile-drawer.is-open { transform: translateX(0); }
body.drawer-open { overflow: hidden; }
@media (min-width: 1024px) { #mobile-drawer { display: none; } }

.drawer__glow {
  position: absolute;
  top: 0; bottom: 0; right: 0;
  width: 2px;
  background: linear-gradient(180deg, transparent, #22D3EE, #A855F7, transparent);
  opacity: 0.5;
  pointer-events: none;
}

/* ---- Head ---------------------------------------------------------------- */
.drawer__head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.4rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.drawer__close {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: 10px;
  color: #A7B2C7;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.drawer__close:hover { color: #E6EDF7; background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.18); }

/* ---- Scroll body --------------------------------------------------------- */
.drawer__nav {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 1.4rem 1.1rem;
}
.drawer__nav::-webkit-scrollbar { width: 4px; }
.drawer__nav::-webkit-scrollbar-track { background: transparent; }
.drawer__nav::-webkit-scrollbar-thumb { background: rgba(34, 211, 238, 0.25); border-radius: 4px; }

.drawer__eyebrow {
  display: block;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #5C6880;
  margin: 0 0 0.75rem 0.5rem;
}
.drawer__eyebrow--mt { margin-top: 1.6rem; }

/* ---- Primary nav: smooth full-width rows --------------------------------- */
.dnav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.dnav__item { display: block; }

.dnav__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.95rem;
  width: 100%;
  padding: 0.85rem 1rem;
  border: 0;
  border-radius: 0.85rem;
  background: transparent;
  color: #C4CEDF;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 1.02rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}
.dnav__link:hover { color: #E6EDF7; background: rgba(255, 255, 255, 0.05); transform: translateX(4px); }
.dnav__link[aria-current="page"] {
  color: #E6EDF7;
  background: linear-gradient(90deg, rgba(34, 211, 238, 0.16), rgba(168, 85, 247, 0.06));
}
.dnav__link[aria-current="page"]::before {
  content: "";
  position: absolute;
  left: 0; top: 50%; transform: translateY(-50%);
  width: 3px; height: 58%;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, #22D3EE, #A855F7);
}

/* squircle icon badge */
.dnav__num {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 12px;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  color: #22D3EE;
  background: rgba(34, 211, 238, 0.1);
  border: 1px solid rgba(34, 211, 238, 0.22);
  transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease, transform 0.3s ease;
}
.dnav__link:hover .dnav__num,
.dnav__link[aria-current="page"] .dnav__num {
  color: #05070D;
  background: linear-gradient(135deg, #22D3EE, #3B82F6);
  border-color: transparent;
  transform: rotate(-6deg);
}
.dnav__label { flex: 1; min-width: 0; }

.dnav__arrow {
  flex: none;
  opacity: 0;
  transform: translateX(-6px);
  color: #22D3EE;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.dnav__link:hover .dnav__arrow { opacity: 1; transform: translateX(0); }

.dnav__chev {
  flex: none;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  color: #7C8AA5;
  transition: transform 0.3s ease, color 0.2s ease;
}
.dnav__link--acc[aria-expanded="true"] .dnav__chev { transform: rotate(180deg); color: #A855F7; }

/* ---- Accordion sub-panel ------------------------------------------------- */
.dsub__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.32s ease;
}
.dsub__panel.is-open { max-height: 540px; }
.dsub__list {
  list-style: none;
  margin: 0.25rem 0 0.5rem 1.9rem;
  padding: 0 0 0 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}
.dsub__link {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.6rem 0.7rem;
  border-radius: 0.65rem;
  color: #A7B2C7;
  font-size: 0.92rem;
  transition: color 0.2s ease, background 0.2s ease;
}
.dsub__link:hover { color: #E6EDF7; background: rgba(168, 85, 247, 0.1); }
.dsub__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  border-radius: 9px;
  color: #7C8AA5;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.dsub__link:hover .dsub__icon { color: #A855F7; border-color: rgba(168, 85, 247, 0.35); }

/* ---- Quick-link chips ---------------------------------------------------- */
.dchips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.dchip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 600;
  color: #C4CEDF;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.dchip::before {
  content: "";
  width: 6px; height: 6px; border-radius: 50%;
  background: linear-gradient(135deg, #22D3EE, #A855F7);
  transition: box-shadow 0.2s ease;
}
.dchip:hover { color: #fff; background: rgba(34, 211, 238, 0.1); border-color: rgba(34, 211, 238, 0.35); transform: translateY(-2px); }
.dchip:hover::before { box-shadow: 0 0 8px rgba(34, 211, 238, 0.8); }

/* ---- Foot --------------------------------------------------------------- */
.drawer__foot {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.2rem 1.4rem 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.015);
}
.drawer__cta-row { display: flex; gap: 0.65rem; }
.drawer__btn {
  position: relative;
  overflow: hidden;
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1rem;
  border-radius: 0.85rem;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  border: 1px solid transparent;
  transition: transform 0.2s ease, box-shadow 0.25s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.drawer__btn--ghost { background: rgba(255, 255, 255, 0.05); color: #E6EDF7; border-color: rgba(255, 255, 255, 0.14); }
.drawer__btn--ghost:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(34, 211, 238, 0.4); color: #22D3EE; transform: translateY(-2px); }
.drawer__btn--solid { background: linear-gradient(135deg, #22D3EE, #3B82F6); color: #05070D; box-shadow: 0 6px 18px rgba(34, 211, 238, 0.35); }
.drawer__btn--solid::after {
  content: "";
  position: absolute; top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.45), transparent);
  transform: skewX(-18deg);
  transition: left 0.6s ease;
}
.drawer__btn--solid:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(59, 130, 246, 0.55); }
.drawer__btn--solid:hover::after { left: 130%; }

.drawer__socials { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.drawer__socials .social-chip {
  width: 42px; height: 42px;
  border-radius: 12px;
  color: #C4CEDF;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.drawer__socials .social-chip:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--chip-accent, #22D3EE), #3B82F6);
  border-color: transparent;
  transform: translateY(-3px);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--chip-accent, #22D3EE) 40%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .drawer__socials .social-chip:hover { box-shadow: 0 8px 18px rgba(34, 211, 238, 0.4); }
}
.drawer__contact { margin: 0; font-size: 0.8rem; color: #7C8AA5; letter-spacing: 0.02em; }

/* ---- Staggered entrance --------------------------------------------------- */
#mobile-drawer .dnav > li,
#mobile-drawer .drawer__eyebrow,
#mobile-drawer .dchips,
#mobile-drawer .drawer__foot {
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
#mobile-drawer.is-open .dnav > li,
#mobile-drawer.is-open .drawer__eyebrow,
#mobile-drawer.is-open .dchips,
#mobile-drawer.is-open .drawer__foot { opacity: 1; transform: translateX(0); }
#mobile-drawer.is-open .drawer__eyebrow { transition-delay: 0.05s; }
#mobile-drawer.is-open .dnav > li:nth-child(1) { transition-delay: 0.08s; }
#mobile-drawer.is-open .dnav > li:nth-child(2) { transition-delay: 0.12s; }
#mobile-drawer.is-open .dnav > li:nth-child(3) { transition-delay: 0.16s; }
#mobile-drawer.is-open .dnav > li:nth-child(4) { transition-delay: 0.2s; }
#mobile-drawer.is-open .dnav > li:nth-child(5) { transition-delay: 0.24s; }
#mobile-drawer.is-open .dchips { transition-delay: 0.27s; }
#mobile-drawer.is-open .drawer__foot { transition-delay: 0.3s; }

@media (prefers-reduced-motion: reduce) {
  #mobile-drawer,
  #mobile-drawer .dnav > li,
  #mobile-drawer .drawer__eyebrow,
  #mobile-drawer .dchips,
  #mobile-drawer .drawer__foot { transition: none; transform: none; }
  .dchip:hover, .drawer__btn:hover { transform: none; }
}

@media (max-width: 400px) {
  #mobile-drawer { width: 92%; }
  .drawer__cta-row { flex-direction: column; }
}

/* =========================================================================
   SOCIAL CHIPS — themeable glowing icon buttons (header drawer + footer)
   ========================================================================= */
.social-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(38px, 9vw, 44px);
  height: clamp(38px, 9vw, 44px);
  border-radius: 0.75rem;
  color: #A7B2C7;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.social-chip--sm { width: 40px; height: 40px; }
.footer-socials .social-chip svg { width: 58%; height: 58%; }.social-chip:hover {
  color: var(--chip-accent, #22D3EE);
  border-color: color-mix(in srgb, var(--chip-accent, #22D3EE) 50%, transparent);
  background: color-mix(in srgb, var(--chip-accent, #22D3EE) 12%, transparent);
  transform: translateY(-3px);
  box-shadow: 0 0 14px color-mix(in srgb, var(--chip-accent, #22D3EE) 45%, transparent);
}
/* Fallback for browsers without color-mix */
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .social-chip:hover { color: #22D3EE; border-color: rgba(34,211,238,.5); box-shadow: 0 0 14px rgba(34,211,238,.45); }
}

/* =========================================================================
   SITE FOOTER — gradient glow line, CTA band, brand block, columns
   ========================================================================= */
.site-footer {
  position: relative;
  margin-top: clamp(3rem, 8vw, 5rem);
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(10, 15, 28, 0) 0%, rgba(10, 15, 28, 0.6) 18%, rgba(7, 11, 22, 0.9) 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.site-footer__glowline {
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, transparent, #22D3EE, #3B82F6, #A855F7, transparent);
  opacity: 0.7;
  box-shadow: 0 0 16px rgba(34, 211, 238, 0.4);
}
/* Ambient radial glow behind the footer content */
.site-footer__aura {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(45% 60% at 10% 0%, rgba(34, 211, 238, 0.12), transparent 70%),
    radial-gradient(50% 55% at 92% 10%, rgba(168, 85, 247, 0.10), transparent 70%);
}
.site-footer__inner { position: relative; z-index: 1; padding-block: clamp(2rem, 6vw, 3rem); }
.site-footer__bottom { position: relative; z-index: 1; }

/* ---- Full-width CTA ribbon ----------------------------------------------- */
.footer-ribbon {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  padding: clamp(1.25rem, 4vw, 1.75rem);
  border-radius: 1rem;
  margin-bottom: clamp(2rem, 6vw, 2.5rem);
  background:
    linear-gradient(135deg, rgba(34, 211, 238, 0.12), rgba(168, 85, 247, 0.12)),
    rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.10);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.footer-ribbon__copy { min-width: 0; }
.footer-ribbon__title {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.15rem, 4vw, 1.5rem);
  font-weight: 700;
  color: #E6EDF7;
  margin: 0;
  line-height: 1.25;
}
.footer-ribbon__sub { margin: 0.35rem 0 0; color: #A7B2C7; line-height: 1.55; font-size: 0.92rem; }
.footer-ribbon__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  flex: none;
  width: 100%;
  padding: 0.75rem 1.5rem;
  border-radius: 0.7rem;
  font-weight: 600;
  color: #05070D;
  background: linear-gradient(135deg, #22D3EE, #3B82F6);
  box-shadow: 0 0 16px rgba(34, 211, 238, 0.4);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.footer-ribbon__btn svg { transition: transform 0.25s ease; }
.footer-ribbon__btn:hover { transform: translateY(-2px); box-shadow: 0 0 26px rgba(59, 130, 246, 0.6); }
.footer-ribbon__btn:hover svg { transform: translateX(4px); }
@media (min-width: 480px) { .footer-ribbon__btn { width: auto; } }
@media (min-width: 760px) {
  .footer-ribbon { flex-direction: row; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.75rem 2.25rem; }
}

/* ---- Main: brand + link columns ----------------------------------------- */
.footer-main { display: grid; gap: 2rem; }
@media (min-width: 760px) { .footer-main { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }
@media (min-width: 1040px) { .footer-main { grid-template-columns: 1.3fr 2fr; gap: 4rem; } }

/* ---- Brand block --------------------------------------------------------- */
.footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.footer-logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.footer-logo__halo {
  position: absolute;
  inset: -40% -20%;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(closest-side, rgba(34, 211, 238, 0.35), rgba(168, 85, 247, 0.18), transparent 75%);
  filter: blur(14px);
  opacity: 0.6;
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.footer-logo__img {
  position: relative;
  z-index: 1;
  height: clamp(40px, 10vw, 48px);
  width: auto;
  max-width: 100%;
  object-fit: contain;
  filter: drop-shadow(0 6px 18px rgba(5, 7, 13, 0.6));
  transition: filter 0.35s ease;
}
.footer-logo:hover { transform: translateY(-3px); }
.footer-logo:hover .footer-logo__halo { opacity: 1; transform: scale(1.08); }
.footer-logo:hover .footer-logo__img { filter: drop-shadow(0 0 22px rgba(34, 211, 238, 0.5)); }
@media (prefers-reduced-motion: reduce) {
  .footer-logo, .footer-logo:hover { transform: none; }
}
.footer-brand__desc {
  margin: 0;
  max-width: 34rem;
  color: #A7B2C7;
  line-height: 1.65;
  font-size: clamp(0.88rem, 2.5vw, 0.95rem);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  overflow: hidden;
}
.footer-brand__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.footer-meta-line {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.88rem;
  color: #C4CEDF;
  transition: color 0.2s ease;
}
.footer-meta-line svg { color: #22D3EE; flex: none; }
.footer-meta-line--muted { color: #A7B2C7; }
.footer-meta-line--muted svg { color: #A855F7; }
a.footer-meta-line:hover { color: #22D3EE; }

/* ---- Link columns (collapsible <details> on mobile) --------------------- */
.footer-cols { display: grid; grid-template-columns: 1fr; gap: 0.25rem; }
@media (min-width: 640px) { .footer-cols { grid-template-columns: repeat(3, 1fr); gap: clamp(1.25rem, 3vw, 2rem); align-items: start; } }

.footer-col { border-bottom: 1px solid rgba(255, 255, 255, 0.07); }
.footer-col__title {
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer;
  list-style: none;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #E6EDF7;
  padding: 0.9rem 0;
  position: relative;
}
.footer-col__title::-webkit-details-marker { display: none; }
.footer-col__chev { display: inline-flex; color: #7C8AA5; transition: transform 0.3s ease; }
.footer-col[open] .footer-col__chev { transform: rotate(180deg); }
.footer-col__list {
  list-style: none; margin: 0; padding: 0 0 1rem;
  display: flex; flex-direction: column; gap: 0.6rem;
}
.footer-link {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.9rem;
  color: #A7B2C7;
  transition: color 0.2s ease, transform 0.2s ease;
}
.footer-link__dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: rgba(167, 178, 199, 0.4);
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.footer-link:hover { color: #22D3EE; transform: translateX(4px); }
.footer-link:hover .footer-link__dot {
  background: #22D3EE;
  box-shadow: 0 0 8px rgba(34, 211, 238, 0.7);
  transform: scale(1.3);
}

/* On wider screens: static columns, no accordion affordance, gradient underline */
@media (min-width: 640px) {
  .footer-col { border-bottom: 0; }
  .footer-col__title {
    cursor: default;
    padding: 0 0 0.55rem;
    margin-bottom: 0.9rem;
  }
  .footer-col__chev { display: none; }
  .footer-col__title::after {
    content: ""; position: absolute; left: 0; bottom: 0;
    width: 24px; height: 2px; border-radius: 2px;
    background: linear-gradient(90deg, #22D3EE, #A855F7);
  }
  .footer-col__list { padding: 0; }
}

/* ---- Bottom bar ---------------------------------------------------------- */
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, 0.06); }
.site-footer__bottom-inner {
  display: flex; flex-direction: column; gap: 1rem;
  align-items: center; justify-content: space-between;
  padding-block: clamp(1rem, 3vw, 1.25rem);
  font-size: clamp(0.8rem, 2.5vw, 0.88rem);
  color: #A7B2C7;
  text-align: center;
}
.site-footer__legal { margin: 0; text-transform: uppercase; }
.footer-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(0.45rem, 2vw, 0.6rem); }
@media (min-width: 700px) {
  .site-footer__bottom-inner { flex-direction: row; text-align: left; gap: 1.25rem; }
  .footer-socials { justify-content: flex-end; }
}

/* =========================================================================
   BACK-TO-TOP — glowing floating control
   ========================================================================= */
.back-to-top {
  position: fixed;
  bottom: 1.5rem; right: 1.5rem;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  border-radius: 9999px;
  color: #05070D;
  background: linear-gradient(135deg, #22D3EE, #3B82F6);
  border: 0;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.9);
  box-shadow: 0 0 18px rgba(34, 211, 238, 0.5);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, box-shadow 0.3s ease;
}
.back-to-top:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 0 26px rgba(168, 85, 247, 0.6); }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }

/* ---- FAQ / accordion ----------------------------------------------------- */
.accordion-item .accordion-body,
[data-accordion-item] .accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.accordion-item.is-open .accordion-body,
[data-accordion-item].is-open .accordion-body { max-height: 1000px; }
.accordion-item .accordion-icon,
[data-accordion-item] .accordion-icon { transition: transform 0.3s ease; }
.accordion-item.is-open .accordion-icon,
[data-accordion-item].is-open .accordion-icon { transform: rotate(45deg); }

/* FAQ enhancements: hover, open state, category headings */
[data-accordion-item] {
  position: relative;
  overflow: hidden;
  transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}
/* Animated left accent spine — grows when the item opens */
[data-accordion-item]::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  transform: scaleY(0);
  transform-origin: center;
  background: linear-gradient(180deg, #22D3EE, #3B82F6, #A855F7);
  transition: transform 0.35s ease;
}
[data-accordion-item].is-open::before { transform: scaleY(1); }
[data-accordion-item] [data-accordion-trigger] { cursor: pointer; transition: color 0.2s ease; }
[data-accordion-item] [data-accordion-trigger]:hover { color: #22D3EE; }
[data-accordion-item]:hover { border-color: rgba(34, 211, 238, 0.22); }
[data-accordion-item].is-open {
  border: 1px solid rgba(34, 211, 238, 0.3);
  background: rgba(34, 211, 238, 0.04);
  box-shadow: 0 14px 38px rgba(5, 7, 13, 0.4);
}
/* Round morphing toggle icon */
.accordion-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; flex: none;
  border-radius: 50%;
  background: rgba(34, 211, 238, 0.1);
  border: 1px solid rgba(34, 211, 238, 0.22);
  transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}
[data-accordion-item].is-open .accordion-icon {
  background: linear-gradient(135deg, #22D3EE, #3B82F6);
  border-color: transparent;
  color: #05070D !important;
  transform: rotate(45deg);
}

/* Category heading */
.faq-cat {
  display: flex; align-items: center; gap: 0.65rem;
  margin: clamp(1.75rem, 4vw, 2.5rem) 0 clamp(0.85rem, 2vw, 1.1rem);
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(0.78rem, 2.2vw, 0.85rem);
  font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: #22D3EE;
}
.faq-cat::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(34,211,238,0.3), transparent); }
.faq-cat__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 10px; font-size: 1.05rem;
  background: rgba(34, 211, 238, 0.1); border: 1px solid rgba(34, 211, 238, 0.25);
  box-shadow: 0 0 14px rgba(34, 211, 238, 0.18);
}

/* FAQ hero stat strip */
.faq-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(0.6rem, 2vw, 1rem);
  margin-top: clamp(1.25rem, 3vw, 1.75rem);
}
.faq-stat {
  text-align: center;
  padding: clamp(0.9rem, 2.5vw, 1.3rem) 0.6rem;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: transform 0.25s ease, border-color 0.25s ease;
}
.faq-stat:hover { transform: translateY(-3px); border-color: rgba(34, 211, 238, 0.3); }
.faq-stat__v { font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.1rem, 4vw, 1.5rem); font-weight: 700; line-height: 1; }
.faq-stat__k { margin-top: 0.4rem; font-size: clamp(0.7rem, 2vw, 0.8rem); color: #A7B2C7; line-height: 1.4; }
@media (prefers-reduced-motion: reduce) {
  .faq-stat:hover { transform: none; }
}

/* ---- Black List — "coming soon" security teaser ------------------------- */
.bl-hero {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: clamp(2rem, 6vw, 3.5rem) clamp(1.2rem, 4vw, 2.5rem);
  border-radius: 1.5rem;
  border: 1px solid transparent;
  background:
    radial-gradient(120% 120% at 50% 0%, rgba(168, 85, 247, 0.14), transparent 60%),
    linear-gradient(rgba(10, 15, 28, 0.85), rgba(10, 15, 28, 0.85)) padding-box,
    linear-gradient(135deg, rgba(248, 113, 113, 0.5), rgba(168, 85, 247, 0.45) 50%, rgba(34, 211, 238, 0.5)) border-box;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.bl-hero__scan {
  position: absolute; left: 0; right: 0; top: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(34, 211, 238, 0.8), transparent);
  box-shadow: 0 0 16px rgba(34, 211, 238, 0.6);
  animation: bl-scan 4s ease-in-out infinite;
}
@keyframes bl-scan {
  0%, 100% { transform: translateY(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  50% { transform: translateY(clamp(140px, 30vw, 240px)); }
}
.bl-hero__badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.4rem 0.95rem; border-radius: 999px;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: #A855F7; background: rgba(168, 85, 247, 0.12); border: 1px solid rgba(168, 85, 247, 0.3);
}
.bl-hero__badge .dot { width: 7px; height: 7px; border-radius: 50%; background: #A855F7; box-shadow: 0 0 8px #A855F7; animation: pulse-glow 1.6s ease-in-out infinite; }
.bl-shield {
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(80px, 18vw, 110px); height: clamp(80px, 18vw, 110px);
  margin: clamp(1.2rem, 3vw, 1.75rem) 0;
  border-radius: 28px;
  color: #22D3EE;
  background: rgba(34, 211, 238, 0.08);
  border: 1px solid rgba(34, 211, 238, 0.3);
  box-shadow: 0 0 30px rgba(34, 211, 238, 0.25), inset 0 0 20px rgba(34, 211, 238, 0.1);
}
.bl-shield svg { width: 52%; height: 52%; }
.bl-shield::after {
  content: ""; position: absolute; inset: -6px; border-radius: 32px;
  border: 1px solid rgba(34, 211, 238, 0.2);
  animation: bl-ring 2.8s ease-in-out infinite;
}
@keyframes bl-ring { 0%,100% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0; transform: scale(1.12); } }
.bl-hero__title { margin: 0; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.6rem, 5vw, 2.6rem); font-weight: 700; line-height: 1.1; color: #E6EDF7; }
.bl-hero__sub { margin: clamp(0.8rem, 2vw, 1.1rem) auto 0; max-width: 42ch; color: #A7B2C7; line-height: 1.6; font-size: clamp(0.92rem, 2.5vw, 1.02rem); }

.bl-progress { margin-top: clamp(1.5rem, 4vw, 2rem); max-width: 28rem; margin-inline: auto; text-align: left; }
.bl-progress__top { display: flex; justify-content: space-between; font-size: 0.85rem; color: #A7B2C7; margin-bottom: 0.5rem; }
.bl-progress__top b { color: #22D3EE; font-family: "Space Grotesk", system-ui, sans-serif; }
.bl-progress__track { height: 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.bl-progress__fill {
  height: 100%; border-radius: 999px; width: 65%;
  background: linear-gradient(90deg, #22D3EE, #3B82F6, #A855F7);
  background-size: 200% 100%;
  box-shadow: 0 0 14px rgba(34, 211, 238, 0.5);
  animation: gradient-pan 6s ease infinite;
}

.bl-teaser { display: flex; flex-direction: column; gap: 0.7rem; }
.bl-entry {
  display: flex; align-items: center; gap: clamp(0.7rem, 2vw, 1rem);
  padding: clamp(0.85rem, 2.5vw, 1.1rem) clamp(1rem, 3vw, 1.35rem);
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.bl-entry__avatar {
  flex: none; width: clamp(36px, 8vw, 44px); height: clamp(36px, 8vw, 44px);
  border-radius: 50%;
  background: repeating-linear-gradient(45deg, rgba(248,113,113,0.18) 0 6px, rgba(248,113,113,0.08) 6px 12px);
  border: 1px solid rgba(248, 113, 113, 0.25);
}
.bl-entry__bars { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.bl-entry__bar { height: 9px; border-radius: 5px; background: rgba(255, 255, 255, 0.08); }
.bl-entry__bar--redact { background: repeating-linear-gradient(90deg, rgba(255,255,255,0.14) 0 14px, transparent 14px 22px); }
.bl-entry__bar.w40 { width: 40%; } .bl-entry__bar.w60 { width: 60%; } .bl-entry__bar.w30 { width: 30%; }
.bl-entry__tag {
  flex: none; padding: 0.3rem 0.7rem; border-radius: 999px;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: #F87171; background: rgba(248, 113, 113, 0.12); border: 1px solid rgba(248, 113, 113, 0.28);
}
.bl-teaser__lock {
  margin-top: 0.4rem; text-align: center; font-size: 0.84rem; color: #7C8AA5;
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
}
.bl-teaser__lock svg { width: 15px; height: 15px; }

.bl-road { display: grid; grid-template-columns: 1fr; gap: clamp(0.75rem, 2vw, 1rem); }
@media (min-width: 760px) { .bl-road { grid-template-columns: repeat(2, 1fr); } }
.bl-step {
  display: flex; gap: 0.85rem; align-items: flex-start;
  padding: clamp(1rem, 2.8vw, 1.35rem);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.bl-step__ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: clamp(38px, 8vw, 44px); height: clamp(38px, 8vw, 44px); border-radius: 11px;
  color: #22D3EE; background: rgba(34, 211, 238, 0.1); border: 1px solid rgba(34, 211, 238, 0.25);
}
.bl-step__ico svg { width: 20px; height: 20px; }
.bl-step__title { margin: 0 0 0.25rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(0.98rem, 2.6vw, 1.08rem); font-weight: 600; color: #E6EDF7; }
.bl-step__text { margin: 0; color: #A7B2C7; font-size: clamp(0.85rem, 2.4vw, 0.9rem); line-height: 1.55; }

@media (prefers-reduced-motion: reduce) {
  .bl-hero__scan, .bl-shield::after, .bl-progress__fill, .bl-hero__badge .dot { animation: none; }
}

/* ---- Terms (alt) — numbered cards with ghost watermark ------------------ */
.tc-grid { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.25rem); }
@media (min-width: 820px) { .tc-grid { grid-template-columns: repeat(2, 1fr); } }
.tc-card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: clamp(1.35rem, 3vw, 1.85rem);
  border-radius: 1.2rem;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
/* top gradient bar */
.tc-card::after {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  transform: scaleX(0); transform-origin: left;
  background: linear-gradient(90deg, var(--cc, #22D3EE), transparent);
  transition: transform 0.4s ease;
}
.tc-card:hover {
  transform: translateY(-5px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 42%, transparent);
  box-shadow: 0 20px 48px rgba(5, 7, 13, 0.45);
}
.tc-card:hover::after { transform: scaleX(1); }
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .tc-card:hover { border-color: rgba(34, 211, 238, 0.42); }
}
/* giant faded watermark number */
.tc-card__ghost {
  position: absolute;
  top: clamp(-0.3rem, 1vw, 0.3rem); right: clamp(0.4rem, 2vw, 1rem);
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(3rem, 9vw, 4.5rem);
  font-weight: 700; line-height: 1; letter-spacing: -0.04em;
  color: color-mix(in srgb, var(--cc, #22D3EE) 14%, transparent);
  pointer-events: none; -webkit-user-select: none; user-select: none;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .tc-card__ghost { color: rgba(34, 211, 238, 0.14); }
}
.tc-card__ico {
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(44px, 9vw, 52px); height: clamp(44px, 9vw, 52px);
  border-radius: 13px; font-size: clamp(1.3rem, 3.5vw, 1.6rem); line-height: 1;
  margin-bottom: 0.9rem;
  background: color-mix(in srgb, var(--cc, #22D3EE) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 30%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .tc-card__ico { background: rgba(34, 211, 238, 0.15); border-color: rgba(34, 211, 238, 0.3); }
}
.tc-card__title { position: relative; z-index: 1; margin: 0 0 0.55rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.05rem, 2.8vw, 1.2rem); font-weight: 600; color: #E6EDF7; line-height: 1.25; }
.tc-card__body { position: relative; z-index: 1; color: #A7B2C7; }
.tc-card__body p { margin: 0 0 0.7rem; font-size: clamp(0.88rem, 2.5vw, 0.94rem); line-height: 1.65; }
.tc-card__body p:last-child { margin-bottom: 0; }
.tc-card__body strong { color: #E6EDF7; }
.tc-card__body a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }
.tc-card__body a:hover { color: #67E8F9; }
.tc-card__body ul { list-style: none; margin: 0 0 0.7rem; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.tc-card__body ul li { position: relative; padding-left: 1.3rem; font-size: clamp(0.85rem, 2.4vw, 0.9rem); line-height: 1.55; }
.tc-card__body ul li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; border-radius: 50%; background: var(--cc, #22D3EE); }
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .tc-card__body ul li::before { background: #22D3EE; }
}
@media (prefers-reduced-motion: reduce) {
  .tc-card:hover { transform: none; }
}

/* ---- Battle TourIVers format page --------------------------------------- */
.bt-equation {
  display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center;
  gap: clamp(0.5rem, 2vw, 0.9rem);
  margin-top: clamp(1.25rem, 3vw, 1.75rem);
}
.bt-eq {
  flex: 1 1 130px; min-width: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: clamp(1rem, 3vw, 1.4rem) 0.8rem;
  border-radius: 1rem;
  text-align: center;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.bt-eq__v { font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.4rem, 5vw, 2.1rem); font-weight: 700; line-height: 1; }
.bt-eq__k { margin-top: 0.4rem; font-size: clamp(0.7rem, 2vw, 0.8rem); color: #A7B2C7; letter-spacing: 0.04em; }
.bt-eq__op {
  display: flex; align-items: center; justify-content: center; flex: none;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.2rem, 4vw, 1.8rem); font-weight: 700; color: #5C6880;
}

.bt-flow { display: flex; flex-direction: column; gap: clamp(0.6rem, 2vw, 0.9rem); }
.bt-flow__step {
  position: relative;
  display: flex; align-items: flex-start; gap: clamp(0.9rem, 3vw, 1.3rem);
  padding: clamp(1.1rem, 3vw, 1.5rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.bt-flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: calc(clamp(0.9rem, 3vw, 1.3rem) + clamp(19px, 4.5vw, 23px));
  bottom: calc(-1 * clamp(0.6rem, 2vw, 0.9rem) - 1px);
  width: 2px; height: clamp(0.6rem, 2vw, 0.9rem);
  background: linear-gradient(180deg, var(--cc, #22D3EE), transparent);
}
.bt-flow__num {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(38px, 9vw, 46px); height: clamp(38px, 9vw, 46px);
  border-radius: 12px;
  font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(0.9rem, 2.6vw, 1.05rem); font-weight: 700;
  color: #05070D; background: linear-gradient(135deg, var(--cc, #22D3EE), #3B82F6);
  box-shadow: 0 0 14px color-mix(in srgb, var(--cc, #22D3EE) 35%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .bt-flow__num { box-shadow: 0 0 14px rgba(34, 211, 238, 0.35); }
}
.bt-flow__title { margin: 0 0 0.3rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1rem, 2.8vw, 1.15rem); font-weight: 600; color: #E6EDF7; }
.bt-flow__text { margin: 0; color: #A7B2C7; font-size: clamp(0.88rem, 2.5vw, 0.94rem); line-height: 1.6; }

.bt-stages { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.25rem); }
@media (min-width: 820px) { .bt-stages { grid-template-columns: 1fr 1fr; } }
.bt-stage {
  position: relative; overflow: hidden;
  padding: clamp(1.4rem, 3.5vw, 2rem);
  border-radius: 1.25rem;
  background: linear-gradient(160deg, color-mix(in srgb, var(--cc, #22D3EE) 9%, transparent), rgba(255, 255, 255, 0.015));
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 22%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .bt-stage { background: rgba(255, 255, 255, 0.03); border-color: rgba(34, 211, 238, 0.22); }
}
.bt-stage__tag {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--cc, #22D3EE); margin-bottom: 0.6rem;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .bt-stage__tag { color: #22D3EE; }
}
.bt-stage__title { margin: 0 0 0.6rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.15rem, 3.2vw, 1.45rem); font-weight: 700; color: #E6EDF7; line-height: 1.2; }
.bt-stage__text { margin: 0 0 0.9rem; color: #A7B2C7; font-size: clamp(0.88rem, 2.5vw, 0.94rem); line-height: 1.65; }
.bt-stage ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
.bt-stage ul li { position: relative; padding-left: 1.4rem; color: #A7B2C7; font-size: clamp(0.86rem, 2.4vw, 0.92rem); line-height: 1.55; }
.bt-stage ul li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; border-radius: 50%; background: var(--cc, #22D3EE); }
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .bt-stage ul li::before { background: #22D3EE; }
}
.bt-stage ul li strong { color: #E6EDF7; }

.bt-callout {
  display: flex; gap: clamp(0.9rem, 3vw, 1.3rem); align-items: flex-start;
  padding: clamp(1.3rem, 3.5vw, 1.85rem);
  border-radius: 1.2rem;
  background: rgba(251, 191, 36, 0.05);
  border: 1px solid rgba(251, 191, 36, 0.26);
}
.bt-callout__ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: clamp(44px, 9vw, 54px); height: clamp(44px, 9vw, 54px); border-radius: 14px;
  color: #FBBF24; background: rgba(251, 191, 36, 0.12); border: 1px solid rgba(251, 191, 36, 0.3);
}
.bt-callout__ico svg { width: 24px; height: 24px; }
.bt-callout__title { margin: 0 0 0.3rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1rem, 2.8vw, 1.15rem); font-weight: 600; color: #E6EDF7; }
.bt-callout__text { margin: 0; color: #A7B2C7; font-size: clamp(0.88rem, 2.5vw, 0.94rem); line-height: 1.6; }

/* ---- Long-form article prose (legal pages, about, formats) --------------- */
.prose-tg { color: #A7B2C7; }
.prose-tg p { margin: 0 0 1.25rem; line-height: 1.7; }
.prose-tg h2 { color: #E6EDF7; font-family: "Space Grotesk", system-ui, sans-serif; font-size: 1.5rem; font-weight: 600; margin: 2.25rem 0 1rem; }
.prose-tg h3 { color: #E6EDF7; font-family: "Space Grotesk", system-ui, sans-serif; font-size: 1.25rem; font-weight: 600; margin: 1.75rem 0 0.75rem; }
.prose-tg strong { color: #E6EDF7; }
.prose-tg a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }
.prose-tg a:hover { color: #67E8F9; }
.prose-tg ul { margin: 0 0 1.25rem; padding-left: 1.25rem; list-style: none; }
.prose-tg ul li { position: relative; margin: 0 0 0.6rem; padding-left: 1.25rem; line-height: 1.7; }
.prose-tg ul li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: 7px; height: 7px; border-radius: 9999px; background: linear-gradient(135deg, #22D3EE, #A855F7); }
.prose-tg ul ul { margin: 0.75rem 0 0.75rem; }

/* =========================================================================
   COMPONENT LAYER — reusable, semantic building blocks
   Built on the design tokens. Use these in pages instead of repeating long
   utility strings. Pages should read like content, not CSS.
   ========================================================================= */

/* ---- Layout primitives --------------------------------------------------- */
.container-tg { margin-inline: auto; max-width: 72rem; padding-inline: 1rem; }
@media (min-width: 640px) { .container-tg { padding-inline: 2rem; } }

.section { position: relative; padding-block: 4rem; }
@media (min-width: 640px) { .section { padding-block: 6rem; } }
.section-tight { position: relative; padding-block: 3rem; }

/* Decorative ambient blobs wrapper (keeps content above) */
.section-ambient > *:not(.bg-blob) { position: relative; z-index: 1; }

/* ---- Eyebrow + headings -------------------------------------------------- */
.eyebrow {
  font-family: "Space Grotesk", system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  font-size: 0.875rem;
  color: #22D3EE;
}
.section-heading {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 1.2;
  color: #E6EDF7;
}
@media (min-width: 640px) { .section-heading { font-size: 2.25rem; } }

/* ---- Community rows (About: "four communities") ------------------------- */
.community-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.75rem, 2vw, 1.1rem);
}
@media (min-width: 700px) { .community-list { grid-template-columns: repeat(2, 1fr); } }

.community-row {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  gap: clamp(0.85rem, 2.5vw, 1.25rem);
  padding: clamp(1.05rem, 3vw, 1.6rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
/* Left accent bar that lights up per-card via --cc */
.community-row::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  transform: scaleY(0.25);
  transform-origin: top;
  background: linear-gradient(180deg, var(--cc, #22D3EE), transparent);
  transition: transform 0.4s ease;
}
.community-row:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 40%, transparent);
  background: color-mix(in srgb, var(--cc, #22D3EE) 6%, rgba(255, 255, 255, 0.03));
  box-shadow: 0 18px 44px rgba(5, 7, 13, 0.42);
}
.community-row:hover::before { transform: scaleY(1); }
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .community-row:hover { border-color: rgba(34, 211, 238, 0.4); }
}

.community-row__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(46px, 11vw, 56px);
  height: clamp(46px, 11vw, 56px);
  border-radius: 14px;
  font-size: clamp(1.4rem, 4vw, 1.8rem);
  line-height: 1;
  background: color-mix(in srgb, var(--cc, #22D3EE) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 28%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .community-row__icon { background: rgba(34, 211, 238, 0.14); border-color: rgba(34, 211, 238, 0.28); }
}
.community-row__body { min-width: 0; flex: 1; }
.community-row__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}
.community-row__title {
  margin: 0;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.1rem, 3vw, 1.25rem);
  font-weight: 600;
  color: #E6EDF7;
}
.community-row__no {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: color-mix(in srgb, var(--cc, #22D3EE) 70%, #A7B2C7);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .community-row__no { color: #A7B2C7; }
}
.community-row__text {
  margin: 0;
  color: #A7B2C7;
  font-size: clamp(0.88rem, 2.5vw, 0.92rem);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .community-row:hover { transform: none; }
}
/* Partnership & format pages reuse community rows but show full text (no clamp) */
[data-page="partnership-policy"] .community-row__text,
[data-page="format-battle-tourivers"] .community-row__text {
  display: block;
  -webkit-line-clamp: none;
  line-clamp: none;
  overflow: visible;
}

/* ---- Versus grid (Community: scene today vs TourIVers way) --------------- */
.versus-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.85rem, 2vw, 1.25rem);
}
@media (min-width: 760px) { .versus-grid { grid-template-columns: 1fr 1fr; } }

.versus-card {
  position: relative;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.versus-card--bad { border-color: rgba(248, 113, 113, 0.20); background: rgba(248, 113, 113, 0.04); }
.versus-card--good { border-color: rgba(34, 211, 238, 0.22); background: rgba(34, 211, 238, 0.05); }
.versus-tag {
  display: inline-flex;
  align-items: center;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #F87171;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: rgba(248, 113, 113, 0.12);
  margin-bottom: 1rem;
}
.versus-tag--good { color: #22D3EE; background: rgba(34, 211, 238, 0.12); }
.versus-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.versus-list li {
  position: relative;
  padding-left: 1.6rem;
  color: #A7B2C7;
  font-size: clamp(0.9rem, 2.5vw, 0.95rem);
  line-height: 1.55;
}
.versus-list li::before {
  content: "✕";
  position: absolute; left: 0; top: 0;
  color: #F87171;
  font-weight: 700;
}
.versus-list--good li::before { content: "✓"; color: #22D3EE; }

/* ---- Journey timeline (Community: from unknown to unmistakable) ---------- */
.journey {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.85rem, 2vw, 1.25rem);
}
@media (min-width: 620px) { .journey { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .journey { grid-template-columns: repeat(4, 1fr); } }

.journey-step {
  position: relative;
  padding: clamp(1.25rem, 3vw, 1.6rem);
  border-radius: 1.1rem;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.journey-step:hover {
  transform: translateY(-5px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 45%, transparent);
  box-shadow: 0 18px 44px rgba(5, 7, 13, 0.42);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .journey-step:hover { border-color: rgba(34, 211, 238, 0.45); }
}
.journey-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border-radius: 12px;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--cc, #22D3EE);
  background: color-mix(in srgb, var(--cc, #22D3EE) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 30%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .journey-dot { color: #22D3EE; background: rgba(34, 211, 238, 0.14); border-color: rgba(34, 211, 238, 0.3); }
}
.journey-title {
  margin: 1rem 0 0;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.1rem, 3vw, 1.25rem);
  font-weight: 600;
  color: #E6EDF7;
}
.journey-text {
  margin: 0.5rem 0 0;
  color: #A7B2C7;
  font-size: clamp(0.88rem, 2.5vw, 0.92rem);
  line-height: 1.6;
}
@media (prefers-reduced-motion: reduce) {
  .journey-step:hover { transform: none; }
}

/* ---- Privacy / trust page ------------------------------------------------ */
/* Trust pledge banner */
.trust-banner {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  gap: clamp(1rem, 3vw, 1.5rem);
  padding: clamp(1.35rem, 4vw, 2rem);
  border-radius: 1.25rem;
  border: 1px solid transparent;
  background:
    linear-gradient(rgba(10, 15, 28, 0.85), rgba(10, 15, 28, 0.85)) padding-box,
    linear-gradient(120deg, rgba(34, 211, 238, 0.55), rgba(59, 130, 246, 0.45) 45%, rgba(168, 85, 247, 0.55)) border-box;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.trust-banner__shield {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(56px, 12vw, 72px);
  height: clamp(56px, 12vw, 72px);
  border-radius: 18px;
  color: #22D3EE;
  background: rgba(34, 211, 238, 0.10);
  border: 1px solid rgba(34, 211, 238, 0.30);
  box-shadow: 0 0 22px rgba(34, 211, 238, 0.25);
}
.trust-banner__shield svg { width: 55%; height: 55%; }
.trust-banner__title { margin: 0; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.15rem, 3.5vw, 1.5rem); font-weight: 700; color: #E6EDF7; line-height: 1.2; }
.trust-banner__text { margin: 0.4rem 0 0; color: #A7B2C7; line-height: 1.6; font-size: clamp(0.9rem, 2.5vw, 0.98rem); }

/* Quick promise pills */
.trust-pills { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  font-size: clamp(0.8rem, 2.5vw, 0.88rem);
  font-weight: 600;
  color: #C4CEDF;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
}
.trust-pill svg { width: 16px; height: 16px; color: #22D3EE; flex: none; }

/* Numbered policy cards with side accent */
.policy-grid { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.25rem); }
@media (min-width: 760px) { .policy-grid { grid-template-columns: repeat(2, 1fr); } }

.policy-card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: clamp(1.25rem, 3vw, 1.6rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.policy-card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  transform: scaleY(0.3);
  transform-origin: top;
  background: linear-gradient(180deg, var(--cc, #22D3EE), transparent);
  transition: transform 0.4s ease;
}
.policy-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 40%, transparent);
  box-shadow: 0 18px 44px rgba(5, 7, 13, 0.42);
}
.policy-card:hover::before { transform: scaleY(1); }
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .policy-card:hover { border-color: rgba(34, 211, 238, 0.4); }
}
.policy-card__head { display: flex; align-items: center; gap: 0.85rem; margin-bottom: 0.85rem; }
.policy-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(42px, 9vw, 50px);
  height: clamp(42px, 9vw, 50px);
  border-radius: 13px;
  font-size: clamp(1.2rem, 3.5vw, 1.5rem);
  line-height: 1;
  background: color-mix(in srgb, var(--cc, #22D3EE) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 28%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .policy-card__icon { background: rgba(34, 211, 238, 0.14); border-color: rgba(34, 211, 238, 0.28); }
}
.policy-card__no {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: color-mix(in srgb, var(--cc, #22D3EE) 70%, #A7B2C7);
  margin-left: auto;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .policy-card__no { color: #A7B2C7; }
}
.policy-card__title { margin: 0; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.05rem, 3vw, 1.2rem); font-weight: 600; color: #E6EDF7; }
.policy-card__text { margin: 0; color: #A7B2C7; font-size: clamp(0.88rem, 2.5vw, 0.94rem); line-height: 1.65; }
.policy-card__text strong { color: #E6EDF7; }
.policy-card__text a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }
.policy-card__text a:hover { color: #67E8F9; }
@media (prefers-reduced-motion: reduce) {
  .policy-card:hover { transform: none; }
}

/* ---- Terms page — vertical numbered timeline ---------------------------- */
.terms-timeline {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2.5vw, 1.5rem);
  padding-left: clamp(2.75rem, 7vw, 3.5rem);
}
/* The vertical spine */
.terms-timeline::before {
  content: "";
  position: absolute;
  left: clamp(1.05rem, 3vw, 1.4rem);
  top: 0.5rem;
  bottom: 0.5rem;
  width: 2px;
  background: linear-gradient(180deg, #22D3EE, #3B82F6 45%, #A855F7, rgba(168, 85, 247, 0.1));
  border-radius: 2px;
}
.terms-item {
  position: relative;
  padding: clamp(1.2rem, 3vw, 1.6rem) clamp(1.2rem, 3vw, 1.75rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
/* Numbered node sitting on the spine */
.terms-item__node {
  position: absolute;
  left: calc(clamp(2.75rem, 7vw, 3.5rem) * -1 + clamp(1.05rem, 3vw, 1.4rem) + 1px);
  top: clamp(1.2rem, 3vw, 1.6rem);
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(34px, 8vw, 42px);
  height: clamp(34px, 8vw, 42px);
  border-radius: 50%;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(0.82rem, 2.5vw, 0.95rem);
  font-weight: 700;
  color: var(--cc, #22D3EE);
  background: #0A0F1C;
  border: 2px solid color-mix(in srgb, var(--cc, #22D3EE) 60%, transparent);
  box-shadow: 0 0 14px color-mix(in srgb, var(--cc, #22D3EE) 35%, transparent);
  z-index: 1;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .terms-item__node { border-color: rgba(34, 211, 238, 0.6); }
}
/* Connector tick from spine to card */
.terms-item::before {
  content: "";
  position: absolute;
  left: calc(clamp(1.2rem, 3vw, 1.75rem) * -1);
  top: calc(clamp(1.2rem, 3vw, 1.6rem) + clamp(17px, 4vw, 21px));
  width: clamp(0.7rem, 2vw, 1.1rem);
  height: 2px;
  background: color-mix(in srgb, var(--cc, #22D3EE) 50%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .terms-item::before { background: rgba(34, 211, 238, 0.5); }
}
.terms-item:hover {
  transform: translateX(4px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 42%, transparent);
  background: color-mix(in srgb, var(--cc, #22D3EE) 5%, rgba(255, 255, 255, 0.03));
  box-shadow: 0 16px 40px rgba(5, 7, 13, 0.4);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .terms-item:hover { border-color: rgba(34, 211, 238, 0.42); }
}
.terms-item__head { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 0.7rem; }
.terms-item__ico { font-size: clamp(1.15rem, 3vw, 1.4rem); line-height: 1; }
.terms-item__title {
  margin: 0;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.05rem, 3vw, 1.25rem);
  font-weight: 600;
  color: #E6EDF7;
}
.terms-item__text { margin: 0; color: #A7B2C7; font-size: clamp(0.88rem, 2.5vw, 0.95rem); line-height: 1.65; }
.terms-item__text strong { color: #E6EDF7; }
.terms-item__text a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }
.terms-item__text a:hover { color: #67E8F9; }
@media (prefers-reduced-motion: reduce) {
  .terms-item:hover { transform: none; }
}

/* ---- Refund page — eligibility split + step flow ------------------------ */
.refund-compare {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.85rem, 2vw, 1.25rem);
}
@media (min-width: 760px) { .refund-compare { grid-template-columns: 1fr 1fr; } }

.refund-panel {
  position: relative;
  overflow: hidden;
  padding: clamp(1.35rem, 3.5vw, 1.85rem);
  border-radius: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.refund-panel--yes { border-color: rgba(52, 211, 153, 0.28); background: rgba(52, 211, 153, 0.05); }
.refund-panel--no { border-color: rgba(248, 113, 113, 0.26); background: rgba(248, 113, 113, 0.05); }
.refund-panel__head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.1rem; }
.refund-panel__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(40px, 9vw, 48px);
  height: clamp(40px, 9vw, 48px);
  border-radius: 13px;
}
.refund-panel--yes .refund-panel__badge { color: #34D399; background: rgba(52, 211, 153, 0.12); border: 1px solid rgba(52, 211, 153, 0.3); }
.refund-panel--no .refund-panel__badge { color: #F87171; background: rgba(248, 113, 113, 0.12); border: 1px solid rgba(248, 113, 113, 0.3); }
.refund-panel__badge svg { width: 22px; height: 22px; }
.refund-panel__title { margin: 0; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.05rem, 3vw, 1.25rem); font-weight: 700; color: #E6EDF7; line-height: 1.2; }
.refund-panel__sub { margin: 0.15rem 0 0; font-size: clamp(0.78rem, 2.2vw, 0.84rem); color: #A7B2C7; }
.refund-cases { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.refund-cases li {
  position: relative;
  padding-left: 1.7rem;
  color: #C4CEDF;
  font-size: clamp(0.88rem, 2.5vw, 0.94rem);
  line-height: 1.55;
}
.refund-cases li::before {
  position: absolute;
  left: 0; top: 0.05em;
  font-weight: 700;
}
.refund-panel--yes .refund-cases li::before { content: "✓"; color: #34D399; }
.refund-panel--no .refund-cases li::before { content: "✕"; color: #F87171; }

/* Horizontal numbered step flow */
.refund-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.85rem, 2vw, 1.25rem);
  counter-reset: step;
}
@media (min-width: 680px) { .refund-steps { grid-template-columns: repeat(3, 1fr); } }
.refund-step {
  position: relative;
  padding: clamp(1.3rem, 3vw, 1.7rem);
  border-radius: 1.1rem;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.refund-step:hover { transform: translateY(-4px); border-color: rgba(34, 211, 238, 0.4); box-shadow: 0 16px 40px rgba(5, 7, 13, 0.4); }
.refund-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  margin-bottom: 0.9rem;
  border-radius: 12px;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #05070D;
  background: linear-gradient(135deg, #22D3EE, #3B82F6);
  box-shadow: 0 0 16px rgba(34, 211, 238, 0.4);
}
.refund-step__title { margin: 0 0 0.4rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1rem, 2.8vw, 1.15rem); font-weight: 600; color: #E6EDF7; }
.refund-step__text { margin: 0; color: #A7B2C7; font-size: clamp(0.86rem, 2.5vw, 0.92rem); line-height: 1.6; }
.refund-step__text a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }

/* Info stat cards (processing time / fees) */
.refund-info { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.25rem); }
@media (min-width: 620px) { .refund-info { grid-template-columns: 1fr 1fr; } }
.refund-info__card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: clamp(1.3rem, 3vw, 1.7rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.refund-info__ico {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(44px, 9vw, 52px); height: clamp(44px, 9vw, 52px);
  border-radius: 13px;
  color: #22D3EE;
  background: rgba(34, 211, 238, 0.10);
  border: 1px solid rgba(34, 211, 238, 0.28);
}
.refund-info__ico svg { width: 24px; height: 24px; }
.refund-info__val { font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.1rem, 3vw, 1.35rem); font-weight: 700; color: #E6EDF7; line-height: 1.15; }
.refund-info__label { margin: 0.3rem 0 0; color: #A7B2C7; font-size: clamp(0.84rem, 2.4vw, 0.9rem); line-height: 1.5; }
@media (prefers-reduced-motion: reduce) {
  .refund-step:hover { transform: none; }
}

/* ---- Partnership page — alternating index blocks ------------------------ */
.partner-list { display: flex; flex-direction: column; gap: clamp(1rem, 2.5vw, 1.5rem); }
.partner-block {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 3vw, 1.5rem);
  align-items: center;
  padding: clamp(1.35rem, 3.5vw, 2rem);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
@media (min-width: 820px) {
  .partner-block { grid-template-columns: clamp(120px, 18vw, 200px) 1fr; gap: clamp(1.5rem, 4vw, 3rem); }
  .partner-block--flip { grid-template-columns: 1fr clamp(120px, 18vw, 200px); }
  .partner-block--flip .partner-block__aside { order: 2; }
}
.partner-block:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 40%, transparent);
  box-shadow: 0 20px 48px rgba(5, 7, 13, 0.42);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .partner-block:hover { border-color: rgba(34, 211, 238, 0.4); }
}
/* soft glow blob keyed to accent */
.partner-block__aside {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.partner-block__num {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(2.6rem, 9vw, 4.5rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.04em;
  background: linear-gradient(150deg, var(--cc, #22D3EE), rgba(255, 255, 255, 0.18));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.partner-block__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(48px, 11vw, 60px);
  height: clamp(48px, 11vw, 60px);
  border-radius: 16px;
  font-size: clamp(1.5rem, 4vw, 2rem);
  line-height: 1;
  background: color-mix(in srgb, var(--cc, #22D3EE) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 28%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .partner-block__ico { background: rgba(34, 211, 238, 0.14); border-color: rgba(34, 211, 238, 0.28); }
}
.partner-block__title {
  margin: 0 0 0.6rem;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.15rem, 3.2vw, 1.4rem);
  font-weight: 700;
  color: #E6EDF7;
  line-height: 1.2;
}
.partner-block__intro { margin: 0 0 0.9rem; color: #C4CEDF; font-size: clamp(0.9rem, 2.5vw, 0.98rem); line-height: 1.6; }
.partner-points { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.partner-points li {
  position: relative;
  padding-left: 1.6rem;
  color: #A7B2C7;
  font-size: clamp(0.88rem, 2.5vw, 0.94rem);
  line-height: 1.6;
}
.partner-points li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.55em;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--cc, #22D3EE);
  box-shadow: 0 0 8px color-mix(in srgb, var(--cc, #22D3EE) 60%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .partner-points li::before { box-shadow: 0 0 8px rgba(34, 211, 238, 0.6); }
}
.partner-points li strong { color: #E6EDF7; }
.partner-block__body a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }
.partner-block__body a:hover { color: #67E8F9; }
@media (prefers-reduced-motion: reduce) {
  .partner-block:hover { transform: none; }
}

/* Apply step strip */
.apply-flow { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.25rem); }
@media (min-width: 600px) { .apply-flow { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) { .apply-flow { grid-template-columns: repeat(4, 1fr); } }
.apply-step {
  position: relative;
  padding: clamp(1.2rem, 3vw, 1.6rem);
  border-radius: 1.1rem;
  background: linear-gradient(160deg, rgba(34, 211, 238, 0.07), rgba(168, 85, 247, 0.05));
  border: 1px solid rgba(255, 255, 255, 0.09);
}
.apply-step__num {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.18em;
  text-transform: uppercase; color: #22D3EE; margin-bottom: 0.6rem;
}
.apply-step__title { margin: 0 0 0.35rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1rem, 2.8vw, 1.1rem); font-weight: 600; color: #E6EDF7; }
.apply-step__text { margin: 0; color: #A7B2C7; font-size: clamp(0.85rem, 2.4vw, 0.9rem); line-height: 1.55; }
.apply-step__text a { color: #22D3EE; text-decoration: underline; text-underline-offset: 3px; }

/* ---- Copyright Notice page — bento grid + prohibited strip -------------- */
.ip-bento { display: grid; grid-template-columns: 1fr; gap: clamp(0.7rem, 2vw, 1rem); }
@media (min-width: 560px) { .ip-bento { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .ip-bento { grid-template-columns: repeat(3, 1fr); } }
/* Featured tile spans the full width of the first row so nothing is wasted */
@media (min-width: 560px) { .ip-tile--hero { grid-column: 1 / -1; } }
@media (min-width: 1000px) { .ip-tile--hero { grid-column: span 2; } }

.ip-tile {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: clamp(1.3rem, 3vw, 1.75rem);
  border-radius: 1.25rem;
  background:
    radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--cc, #22D3EE) 12%, transparent), transparent 55%),
    rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .ip-tile { background: rgba(255, 255, 255, 0.03); }
}
.ip-tile:hover {
  transform: translateY(-5px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 42%, transparent);
  box-shadow: 0 20px 48px rgba(5, 7, 13, 0.45);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .ip-tile:hover { border-color: rgba(34, 211, 238, 0.42); }
}
/* big faded watermark number */
.ip-tile__no {
  position: absolute;
  top: clamp(0.5rem, 2vw, 0.9rem);
  right: clamp(0.7rem, 2.5vw, 1.2rem);
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(2.4rem, 7vw, 3.4rem);
  font-weight: 700;
  line-height: 1;
  color: color-mix(in srgb, var(--cc, #22D3EE) 16%, transparent);
  pointer-events: none;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .ip-tile__no { color: rgba(34, 211, 238, 0.16); }
}
.ip-tile__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(46px, 10vw, 56px); height: clamp(46px, 10vw, 56px);
  border-radius: 15px;
  font-size: clamp(1.4rem, 4vw, 1.8rem); line-height: 1;
  margin-bottom: 1rem;
  background: color-mix(in srgb, var(--cc, #22D3EE) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 30%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .ip-tile__ico { background: rgba(34, 211, 238, 0.16); border-color: rgba(34, 211, 238, 0.3); }
}
.ip-tile__title { margin: 0 0 0.5rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.05rem, 2.8vw, 1.25rem); font-weight: 600; color: #E6EDF7; line-height: 1.2; }
.ip-tile--hero .ip-tile__title { font-size: clamp(1.3rem, 3.5vw, 1.7rem); }
.ip-tile__text { margin: 0 0 1rem; color: #A7B2C7; font-size: clamp(0.88rem, 2.4vw, 0.94rem); line-height: 1.6; }
.ip-tile__tags { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: auto; }
.ip-tile__tag {
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: clamp(0.74rem, 2.1vw, 0.82rem);
  color: #C4CEDF;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.09);
}
@media (prefers-reduced-motion: reduce) {
  .ip-tile:hover { transform: none; }
}

/* Prohibited — sleek dark strip with red index */
.ban-strip {
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid rgba(248, 113, 113, 0.22);
  background: rgba(248, 113, 113, 0.04);
}
.ban-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(0.9rem, 3vw, 1.4rem);
  align-items: center;
  padding: clamp(1.05rem, 3vw, 1.45rem) clamp(1.1rem, 3.5vw, 1.75rem);
  transition: background 0.25s ease;
}
.ban-row + .ban-row { border-top: 1px solid rgba(248, 113, 113, 0.14); }
.ban-row:hover { background: rgba(248, 113, 113, 0.07); }
.ban-row__mark {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: clamp(38px, 8vw, 46px); height: clamp(38px, 8vw, 46px);
  border-radius: 12px; color: #F87171;
  background: rgba(248, 113, 113, 0.12); border: 1px solid rgba(248, 113, 113, 0.3);
}
.ban-row__mark svg { width: 20px; height: 20px; }
.ban-row__title { margin: 0 0 0.2rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(0.98rem, 2.6vw, 1.12rem); font-weight: 600; color: #E6EDF7; }
.ban-row__text { margin: 0; color: #A7B2C7; font-size: clamp(0.85rem, 2.4vw, 0.91rem); line-height: 1.55; }

/* ---- Disclaimers page — premium layout ---------------------------------- */
.notice-banner {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  gap: clamp(0.9rem, 3vw, 1.4rem);
  padding: clamp(1.4rem, 4vw, 2.1rem);
  border-radius: 1.25rem;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(251, 191, 36, 0.14), transparent 55%),
    rgba(251, 191, 36, 0.05);
  border: 1px solid rgba(251, 191, 36, 0.28);
}
.notice-banner__ico {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: clamp(48px, 11vw, 62px); height: clamp(48px, 11vw, 62px);
  border-radius: 16px; color: #FBBF24;
  background: rgba(251, 191, 36, 0.12); border: 1px solid rgba(251, 191, 36, 0.32);
  box-shadow: 0 0 20px rgba(251, 191, 36, 0.2);
}
.notice-banner__ico svg { width: 55%; height: 55%; }
.notice-banner__title { margin: 0; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.15rem, 3.2vw, 1.45rem); font-weight: 700; color: #E6EDF7; line-height: 1.2; }
.notice-banner__text { margin: 0.4rem 0 0; color: #A7B2C7; line-height: 1.6; font-size: clamp(0.9rem, 2.5vw, 0.98rem); }

/* Quick-summary chips */
.disc-tldr { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.disc-tldr__chip {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  font-size: clamp(0.8rem, 2.4vw, 0.88rem);
  font-weight: 600;
  color: #C4CEDF;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
}
.disc-tldr__chip svg { width: 15px; height: 15px; color: #FBBF24; flex: none; }

/* Detailed disclaimer cards */
.disc-list { display: flex; flex-direction: column; gap: clamp(0.85rem, 2vw, 1.25rem); }
.disc-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.9rem, 2.5vw, 1.4rem);
  padding: clamp(1.3rem, 3.2vw, 1.85rem);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 3px solid color-mix(in srgb, var(--cc, #22D3EE) 65%, transparent);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .disc-card { border-left-color: #22D3EE; }
}
@media (min-width: 760px) {
  .disc-card { grid-template-columns: auto 1fr; align-items: start; }
}
.disc-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 42%, transparent);
  border-left-color: var(--cc, #22D3EE);
  box-shadow: 0 18px 44px rgba(5, 7, 13, 0.42);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .disc-card:hover { border-color: rgba(34, 211, 238, 0.42); }
}
.disc-card__aside { display: flex; align-items: center; gap: 0.85rem; }
.disc-card__no {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(1.5rem, 5vw, 2.2rem);
  font-weight: 700; line-height: 1; letter-spacing: -0.03em;
  background: linear-gradient(150deg, var(--cc, #22D3EE), rgba(255, 255, 255, 0.25));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.disc-card__ico {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: clamp(44px, 9vw, 52px); height: clamp(44px, 9vw, 52px);
  border-radius: 14px; font-size: clamp(1.3rem, 3.5vw, 1.6rem); line-height: 1;
  background: color-mix(in srgb, var(--cc, #22D3EE) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 28%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .disc-card__ico { background: rgba(34, 211, 238, 0.14); border-color: rgba(34, 211, 238, 0.28); }
}
.disc-card__title { margin: 0 0 0.5rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.1rem, 3vw, 1.3rem); font-weight: 600; color: #E6EDF7; line-height: 1.2; }
.disc-card__text { margin: 0; color: #A7B2C7; font-size: clamp(0.9rem, 2.5vw, 0.96rem); line-height: 1.65; }
.disc-card__text strong { color: #E6EDF7; }
/* "What this means for you" callout */
.disc-card__means {
  margin-top: 0.95rem;
  display: flex;
  gap: 0.6rem;
  padding: 0.75rem 0.95rem;
  border-radius: 0.7rem;
  background: color-mix(in srgb, var(--cc, #22D3EE) 8%, rgba(255, 255, 255, 0.02));
  border: 1px dashed color-mix(in srgb, var(--cc, #22D3EE) 35%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .disc-card__means { background: rgba(34, 211, 238, 0.08); border-color: rgba(34, 211, 238, 0.35); }
}
.disc-card__means-tag {
  flex: none;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--cc, #22D3EE);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .disc-card__means-tag { color: #22D3EE; }
}
.disc-card__means-text { margin: 0; color: #C4CEDF; font-size: clamp(0.84rem, 2.3vw, 0.9rem); line-height: 1.55; }
@media (prefers-reduced-motion: reduce) {
  .disc-card:hover { transform: none; }
}

/* ---- Sponsor a Tournament page ------------------------------------------ */
/* Pitch hero stat strip */
.spon-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: clamp(1.25rem, 3vw, 1.75rem);
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1rem;
  overflow: hidden;
}
.spon-stat { background: rgba(10, 15, 28, 0.7); padding: clamp(1rem, 3vw, 1.5rem) 0.8rem; text-align: center; transition: background 0.25s ease; }
.spon-stat:hover { background: rgba(34, 211, 238, 0.06); }
.spon-stat__v { font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.15rem, 4vw, 1.7rem); font-weight: 700; line-height: 1; }
.spon-stat__k { margin-top: 0.4rem; font-size: clamp(0.72rem, 2vw, 0.82rem); color: #A7B2C7; line-height: 1.4; }

/* Included features grid */
.spon-incl { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.1rem); }
@media (min-width: 600px) { .spon-incl { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .spon-incl { grid-template-columns: repeat(3, 1fr); } }
.spon-feat {
  position: relative;
  overflow: hidden;
  padding: clamp(1.25rem, 3vw, 1.6rem);
  border-radius: 1.1rem;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
  border: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.spon-feat:hover {
  transform: translateY(-5px);
  border-color: color-mix(in srgb, var(--cc, #22D3EE) 42%, transparent);
  box-shadow: 0 18px 44px rgba(5, 7, 13, 0.42);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .spon-feat:hover { border-color: rgba(34, 211, 238, 0.42); }
}
.spon-feat__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: clamp(46px, 10vw, 54px); height: clamp(46px, 10vw, 54px);
  border-radius: 14px; font-size: clamp(1.4rem, 4vw, 1.7rem); line-height: 1;
  margin-bottom: 0.9rem;
  background: color-mix(in srgb, var(--cc, #22D3EE) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--cc, #22D3EE) 30%, transparent);
}
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
  .spon-feat__ico { background: rgba(34, 211, 238, 0.15); border-color: rgba(34, 211, 238, 0.3); }
}
.spon-feat__title { margin: 0 0 0.45rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1rem, 2.8vw, 1.15rem); font-weight: 600; color: #E6EDF7; line-height: 1.25; }
.spon-feat__text { margin: 0; color: #A7B2C7; font-size: clamp(0.86rem, 2.4vw, 0.92rem); line-height: 1.6; }

/* Process steps with connecting flow */
.spon-steps { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 2vw, 1.25rem); counter-reset: spon; }
@media (min-width: 760px) { .spon-steps { grid-template-columns: repeat(3, 1fr); } }
.spon-step {
  position: relative;
  padding: clamp(1.3rem, 3vw, 1.7rem);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.spon-step__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin-bottom: 0.9rem;
  border-radius: 50%;
  font-family: "Space Grotesk", system-ui, sans-serif; font-size: 1.05rem; font-weight: 700;
  color: #05070D; background: linear-gradient(135deg, #22D3EE, #3B82F6);
  box-shadow: 0 0 16px rgba(34, 211, 238, 0.4);
}
.spon-step__title { margin: 0 0 0.4rem; font-family: "Space Grotesk", system-ui, sans-serif; font-size: clamp(1.02rem, 2.8vw, 1.15rem); font-weight: 600; color: #E6EDF7; }
.spon-step__text { margin: 0; color: #A7B2C7; font-size: clamp(0.86rem, 2.4vw, 0.92rem); line-height: 1.6; }

/* ---- Buttons (use `.btn` base + a modifier) ------------------------------ */
.btn-primary {
  background: #22D3EE;
  color: #05070D;
  box-shadow: 0 0 12px rgba(34,211,238,.45), 0 0 32px rgba(34,211,238,.22);
}
.btn-primary:hover { background: rgba(34,211,238,.9); }

.btn-secondary {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  color: #E6EDF7;
  -webkit-backdrop-filter: blur(22px);
  backdrop-filter: blur(22px);
}
.btn-secondary:hover { box-shadow: 0 0 12px rgba(168,85,247,.45), 0 0 32px rgba(168,85,247,.22); }

.btn-ghost { background: transparent; color: #E6EDF7; border: 1px solid rgba(255,255,255,0.16); }
.btn-ghost:hover { border-color: rgba(34,211,238,.6); color: #22D3EE; }

/* ---- Cards --------------------------------------------------------------- */
/* Base glass card with hover lift; pair with a `hover:glow-*` if desired. */
.card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-radius: 1.25rem;
  padding: 2rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.card:hover { transform: translateY(-6px); }

/* Gradient-border feature card */
.card-feature {
  position: relative;
  border: 1px solid transparent;
  border-radius: 1.25rem;
  padding: 2rem;
  background:
    linear-gradient(#0A0F1C, #0A0F1C) padding-box,
    linear-gradient(135deg, #22D3EE, #3B82F6, #A855F7) border-box;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.card-feature:hover { transform: translateY(-6px); }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .card { background: rgba(10,15,28,0.82); border-color: rgba(255,255,255,0.22); }
}

/* ---- Pills / badges ------------------------------------------------------ */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
  color: #A7B2C7;
}
.pill-cyan { background: rgba(34,211,238,.1); color: #22D3EE; border-color: transparent; }
.pill-blue { background: rgba(59,130,246,.1); color: #3B82F6; border-color: transparent; }
.pill-purple { background: rgba(168,85,247,.1); color: #A855F7; border-color: transparent; }

/* ---- Numbered step badge (community/format/guild rule cards) ------------- */
.step-badge {
  display: inline-flex;
  height: 2.25rem;
  width: 2.25rem;
  flex: none;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-weight: 700;
}

/* ---- Page hero (breadcrumb header, auto-generated by page-hero.js) ------- */
.page-hero { position: relative; overflow: hidden; }
.page-hero__inner { position: relative; z-index: 10; }

/* ===== Spotlight variant: top light cone, dotted texture, curved edge ===== */
.page-hero--spotlight {
  padding-block: clamp(2rem, 5vw, 3rem) clamp(1rem, 2.5vw, 1.75rem);
}
.page-hero--spotlight .page-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Dotted texture, faded toward edges */
.page-hero__dots {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.10) 1px, transparent 1.4px);
  background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(ellipse 75% 70% at 50% 35%, #000 35%, transparent 80%);
  mask-image: radial-gradient(ellipse 75% 70% at 50% 35%, #000 35%, transparent 80%);
  opacity: 0.6;
}

/* Spotlight cone descending from top-center */
.page-hero__spot {
  position: absolute;
  top: -10%; left: 50%;
  transform: translateX(-50%);
  width: min(900px, 120%);
  height: 130%;
  z-index: 1;
  pointer-events: none;
  background: conic-gradient(from 180deg at 50% 0%,
    transparent 0deg,
    rgba(34, 211, 238, 0.14) 12deg,
    rgba(59, 130, 246, 0.16) 50deg,
    rgba(168, 85, 247, 0.14) 88deg,
    transparent 100deg);
  -webkit-mask-image: linear-gradient(180deg, #000 10%, transparent 85%);
  mask-image: linear-gradient(180deg, #000 10%, transparent 85%);
  filter: blur(6px);
  animation: page-hero-spot 8s ease-in-out infinite;
}
@keyframes page-hero-spot {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}

/* Concave curved bottom edge that blends into the page */
.page-hero__edge {
  position: absolute;
  left: -10%; right: -10%; bottom: -1px;
  height: clamp(40px, 7vw, 80px);
  z-index: 2;
  pointer-events: none;
  background: #05070D;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -1px 0 rgba(34, 211, 238, 0.18) inset;
}

/* Breadcrumb */
.page-hero__nav { margin-bottom: clamp(0.85rem, 3vw, 1.2rem); }
.breadcrumb {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: clamp(0.8rem, 2.5vw, 0.9rem);
  color: #8C97AD;
}
.breadcrumb a { color: #A7B2C7; transition: color 0.2s ease; }
.breadcrumb a:hover { color: #22D3EE; }
.breadcrumb__sep { display: inline-flex; color: #4E596F; }
.breadcrumb .is-current { color: #E6EDF7; font-weight: 500; }

/* Optional eyebrow */
.page-hero__eyebrow {
  display: block;
  margin-bottom: 0.7rem;
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-size: clamp(0.68rem, 2vw, 0.74rem);
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #22D3EE;
}

/* Title — matches site text-h1 (cap 3rem), scales down on small screens */
.page-hero__title {
  margin: 0;
  font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #E6EDF7;
}

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

/* Screen-reader only (accessible but visually hidden) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
