/* ============================================================
   Panther Chase & Associates — design system
   Dark theme per approved Higgsfield mockup + Huly/cmcc/Cartier
   ============================================================ */

@property --angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

:root {
  --bg: #04060a;
  --bg-soft: #0a0d14;
  --card: rgba(255, 255, 255, 0.035);
  --card-solid: #0c1018;
  --line: rgba(255, 255, 255, 0.09);
  --blue: #2f7df6;
  --blue-bright: #6db1ff;
  --blue-dim: rgba(47, 125, 246, 0.16);
  --text: #eef1f7;
  --muted: #98a2b5;
  --red: #ff1f2e;
  --radius: 16px;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --nav-h: 118px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

h1, h2, h3 { font-weight: 700; letter-spacing: -0.02em; line-height: 1.12; }
h1 { font-size: clamp(2.4rem, 5.4vw, 4.2rem); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); }
h3 { font-size: 1.15rem; }

.eyebrow {
  color: var(--blue-bright);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.center { text-align: center; }
.arrow { display: inline-block; transition: transform 0.25s ease; }
a:hover .arrow, button:hover .arrow { transform: translateX(4px); }

/* ---------------- buttons ---------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.6rem;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.95rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.25s, border-color 0.25s, box-shadow 0.25s, transform 0.15s;
}
.btn-primary {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 0 24px rgba(47, 125, 246, 0.35);
}
.btn-primary:hover { background: #3f8bff; box-shadow: 0 0 40px rgba(47, 125, 246, 0.55); transform: translateY(-1px); }
.btn-ghost { color: var(--blue-bright); border-color: transparent; padding-left: 0.4rem; }
.btn-ghost:hover { color: #fff; }
.btn-outline { color: var(--blue-bright); border-color: rgba(109, 177, 255, 0.45); border-radius: 999px; }
.btn-outline:hover { border-color: var(--blue-bright); box-shadow: 0 0 18px rgba(47, 125, 246, 0.3); }
.btn-full { width: 100%; justify-content: center; }

/* ---------------- nav ---------------- */
.nav-bar {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--nav-h);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(4, 6, 10, 0.72);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s;
}
.nav-bar.scrolled { border-bottom-color: var(--line); }
.nav-inner {
  max-width: 1500px;
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding: 0 28px;
}
.brand { flex-shrink: 0; }
.brand { display: flex; align-items: center; gap: 0.8rem; margin-right: auto; }
.brand-mark { width: auto; height: 84px; flex-shrink: 0; filter: drop-shadow(0 0 10px rgba(47, 125, 246, 0.45)); }
.brand-text {
  font-weight: 800;
  letter-spacing: 0.04em;
  font-size: 1.3rem;
  line-height: 1.12;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
}
.brand-text small {
  font-weight: 600;
  font-size: 0.7rem;
  letter-spacing: 0.36em;
  color: var(--muted);
}
.nav-links { display: flex; gap: 0.15rem; }
.nav-item { position: relative; }
.nav-item > a {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.5rem 0.7rem;
  border-radius: 8px;
  font-size: 0.9rem;
  color: #c6cddb;
  white-space: nowrap;
  transition: color 0.2s, background 0.2s;
}
.nav-item > a:hover { color: #fff; background: rgba(255, 255, 255, 0.05); }
.chev { width: 9px; opacity: 0.6; transition: transform 0.2s; }
.nav-item:hover .chev { transform: rotate(180deg); }
.drop {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 230px;
  background: var(--card-solid);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.5rem;
  display: grid;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.6);
}
.nav-item:hover .drop, .nav-item:focus-within .drop { opacity: 1; visibility: visible; transform: translateY(0); }
.drop a { padding: 0.55rem 0.8rem; border-radius: 8px; font-size: 0.88rem; color: #c6cddb; }
.drop a:hover { background: var(--blue-dim); color: #fff; }
.nav-cta { margin-left: 0.5rem; font-size: 0.88rem; padding: 0.6rem 1.2rem; white-space: nowrap; }
.nav-burger { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.nav-burger span { display: block; width: 22px; height: 2px; background: #fff; margin: 5px 0; border-radius: 2px; transition: 0.25s; }

/* ---------------- hero ---------------- */
.hero {
  position: relative;
  padding: calc(var(--nav-h) + 70px) 24px 90px;
  min-height: 92vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
/* currency-rain strips in the empty gutters beside the centered content.
   Each strip stacks two shrunken copies of the video so the small, dense
   columns fill the full height. Only shown when real gutter space exists. */
.hero-rain {
  position: absolute;
  top: 0;
  bottom: 0;
  width: calc((100% - 1300px) / 2);
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.hero-rain-left { left: 0; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 55%, transparent 100%); mask-image: linear-gradient(90deg, #000 0, #000 55%, transparent 100%); }
.hero-rain-right { right: 0; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 45%, #000 100%); mask-image: linear-gradient(90deg, transparent 0, #000 45%, #000 100%); }
/* two copies overlap in the middle and cross-fade, so there's no visible seam */
.rain-vid {
  position: absolute;
  left: 0;
  width: 100%;
  height: 58%;
  object-fit: cover;
  display: block;
}
.rain-vid:first-child {
  top: 0;
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 62%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 62%, transparent 100%);
}
.rain-vid:last-child {
  bottom: 0;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 38%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 38%, #000 100%);
}
@media (max-width: 1400px) {
  .hero-rain { display: none; }
}
.hero-glow {
  position: absolute;
  width: 900px;
  height: 900px;
  right: -200px;
  top: -200px;
  z-index: 1;
  background: radial-gradient(circle, rgba(47, 125, 246, 0.16) 0%, transparent 60%);
  pointer-events: none;
}
.hero::after {
  /* faint circuit-board floor, echoing the mockup */
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 38%;
  background:
    linear-gradient(to top, rgba(47, 125, 246, 0.05), transparent 70%),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 90px),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 90px);
  transform: perspective(600px) rotateX(58deg);
  transform-origin: bottom;
  pointer-events: none;
  z-index: 1;
}
.hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 56px;
  align-items: center;
  width: 100%;
}
.hero h1 { margin-bottom: 1.4rem; text-shadow: 0 2px 24px rgba(4, 6, 10, 0.9); }
.hero .eyebrow, .hero .lede { text-shadow: 0 1px 16px rgba(4, 6, 10, 0.9); }
.lede { color: var(--muted); font-size: 1.12rem; max-width: 34rem; margin-bottom: 2.2rem; }
.hero-ctas { display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; }

/* hero dashboard (3D) */
.hero-dash { perspective: 1400px; }
.dash-panel {
  background: linear-gradient(160deg, rgba(255,255,255,0.055), rgba(255,255,255,0.015));
  border-radius: 22px;
  padding: 22px;
  transform-style: preserve-3d;
  transform: rotateY(-7deg) rotateX(4deg);
  transition: transform 0.2s ease-out;
  box-shadow: 0 40px 90px rgba(0, 0, 0, 0.6), 0 0 60px rgba(47, 125, 246, 0.08);
}
.dash-top { display: grid; grid-template-columns: 1.1fr 1.1fr 0.9fr; gap: 14px; }
.dash-card {
  background: rgba(4, 8, 14, 0.55);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.dash-label { font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.dash-big { font-size: clamp(1.6rem, 2.6vw, 2.3rem); font-weight: 800; color: var(--blue-bright); letter-spacing: -0.02em; }
.dash-sub { font-size: 0.8rem; color: var(--muted); }
.dash-line { width: 100%; height: 70px; margin-top: 4px; }
.line-stroke { stroke: var(--blue); stroke-width: 2.5; stroke-linejoin: round; filter: drop-shadow(0 0 6px rgba(47,125,246,0.8)); }
.line-dot { fill: var(--blue-bright); filter: drop-shadow(0 0 6px var(--blue-bright)); }
.dash-pill {
  margin-top: auto;
  font-size: 0.74rem;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 10px;
  width: fit-content;
}
.dash-pill .up, .dash-pill .down { color: var(--blue-bright); font-weight: 700; }
.dash-bars { display: flex; align-items: flex-end; gap: 7px; height: 74px; margin-top: 8px; }
.dash-bars span {
  flex: 1;
  height: var(--h);
  background: rgba(47, 125, 246, 0.35);
  border-radius: 3px 3px 0 0;
  animation: bar-pulse 3.2s ease-in-out infinite;
}
.dash-bars span.hot { background: linear-gradient(to top, var(--blue), var(--blue-bright)); box-shadow: 0 0 14px rgba(47,125,246,0.7); }
@keyframes bar-pulse { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.92); } }
.soc-ring {
  margin: 10px auto;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  border: 2px solid rgba(109, 177, 255, 0.65);
  box-shadow: 0 0 22px rgba(47, 125, 246, 0.45), inset 0 0 22px rgba(47, 125, 246, 0.18);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  animation: ring-breathe 4s ease-in-out infinite;
}
@keyframes ring-breathe {
  0%, 100% { box-shadow: 0 0 22px rgba(47,125,246,0.45), inset 0 0 22px rgba(47,125,246,0.18); }
  50% { box-shadow: 0 0 34px rgba(47,125,246,0.7), inset 0 0 28px rgba(47,125,246,0.28); }
}
.soc-aicpa { font-size: 0.6rem; letter-spacing: 0.22em; color: var(--muted); }
.soc-big { font-size: 1.5rem; font-weight: 800; letter-spacing: 0.04em; }
.soc-sub { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.dash-shield { text-align: center; font-size: 0.78rem; color: var(--text); margin-top: auto; }
.dash-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 16px;
  font-size: 0.78rem;
  color: var(--muted);
}
.dash-strip div { display: flex; flex-direction: column; line-height: 1.35; }
.dash-strip strong { color: var(--text); font-weight: 600; }

/* ---------------- neon traveling border (Huly-style) ---------------- */
.neon-card {
  position: relative;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.neon-card::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from var(--angle), transparent 0%, transparent 72%, var(--blue) 86%, var(--blue-bright) 92%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: border-travel 7s linear infinite;
  pointer-events: none;
}
.neon-card:nth-child(2n)::before { animation-delay: -2.4s; }
.neon-card:nth-child(3n)::before { animation-delay: -4.5s; }
@keyframes border-travel { to { --angle: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .neon-card::before { animation: none; opacity: 0.4; }
}

/* ---------------- generic sections ---------------- */
.section { padding: 96px 24px; max-width: 1280px; margin: 0 auto; }
.section-head { max-width: 720px; margin-bottom: 3rem; }
.section-sub { color: var(--muted); margin-top: 1rem; font-size: 1.05rem; }

/* trust strip */
.trust-strip { border-block: 1px solid var(--line); background: var(--bg-soft); padding: 34px 24px 26px; }
.trust-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.trust-item { display: flex; flex-direction: column; }
.trust-item strong { font-size: 1.5rem; font-weight: 800; color: var(--blue-bright); }
.trust-item span { color: var(--muted); font-size: 0.86rem; }
.trust-fine { max-width: 1280px; margin: 14px auto 0; color: #5d6678; font-size: 0.72rem; }

/* services */
.card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.service-card { padding: 30px; display: flex; flex-direction: column; gap: 0.8rem; transition: transform 0.25s, background 0.25s; }
.service-card:hover { transform: translateY(-4px); background: rgba(255, 255, 255, 0.055); }
.service-card p { color: var(--muted); font-size: 0.95rem; flex: 1; }
.card-link { color: var(--blue-bright); font-weight: 600; font-size: 0.9rem; }

/* global / currency blocks */
.global-section { overflow: hidden; }
.global-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 56px;
  align-items: center;
}
.global-copy p:not(.eyebrow) { color: var(--muted); margin: 1.2rem 0 1.8rem; }
.global-media video {
  width: 100%;
  display: block;
  border-radius: 18px;
  border: 1px solid var(--line);
  box-shadow: 0 0 70px rgba(47, 125, 246, 0.18), 0 30px 60px rgba(0, 0, 0, 0.5);
}

/* scroll-driven panther run band */
.run-track {
  position: relative;
  height: 230px;
  overflow: hidden;
}
.run-line {
  position: absolute;
  left: 0;
  right: 0;
  top: 58%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(47, 125, 246, 0.5) 18%, rgba(109, 177, 255, 0.7) 50%, rgba(47, 125, 246, 0.5) 82%, transparent);
  box-shadow: 0 0 14px rgba(47, 125, 246, 0.55);
}
.run-cat {
  position: absolute;
  left: 0;
  top: 50%;
  width: clamp(280px, 32vw, 440px);
  will-change: transform;
}
.run-cat video {
  width: 100%;
  display: block;
  /* background-removed clip: pure black bg disappears via screen blend */
  mix-blend-mode: screen;
}

/* process */
.process-rail {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  counter-reset: step;
  margin-bottom: 3rem;
}
.process-step {
  border-top: 1px solid var(--line);
  padding-top: 1.2rem;
  position: relative;
}
.process-step::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 42px;
  height: 1px;
  background: var(--blue-bright);
  box-shadow: 0 0 10px var(--blue-bright);
}
.step-num { color: var(--blue-bright); font-weight: 800; font-size: 0.85rem; letter-spacing: 0.1em; }
.process-step h3 { margin: 0.5rem 0; font-size: 1.02rem; }
.process-step p { color: var(--muted); font-size: 0.86rem; }

/* AI band */
.ai-band { padding-block: 40px; }
.ai-card { padding: 56px; text-align: center; background: radial-gradient(ellipse at 50% -30%, rgba(47, 125, 246, 0.18), transparent 60%), var(--card); }
.ai-card h2 { max-width: 48rem; margin: 0 auto 1.2rem; }
.ai-card p:not(.eyebrow) { color: var(--muted); max-width: 52rem; margin: 0 auto; }

/* fees */
.fee-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fee-card { padding: 36px 30px; text-align: center; }
.fee-rate { font-size: 3.4rem; font-weight: 800; color: var(--blue-bright); letter-spacing: -0.03em; line-height: 1; margin-bottom: 0.8rem; text-shadow: 0 0 30px rgba(47, 125, 246, 0.5); }
.fee-rate span { font-size: 1.8rem; }
.fee-card h3 { margin-bottom: 0.5rem; }
.fee-card p:last-child { color: var(--muted); font-size: 0.9rem; }

/* industries */
.ind-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ind-tile {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px;
  background: var(--card);
  transition: border-color 0.25s, background 0.25s, transform 0.25s;
}
.ind-tile:hover { border-color: rgba(109, 177, 255, 0.55); background: var(--blue-dim); transform: translateY(-3px); }
.ind-tile h3 { font-size: 1.02rem; margin-bottom: 0.4rem; }
.ind-tile p { color: var(--muted); font-size: 0.85rem; }

/* CTA + form */
.cta-section { padding-bottom: 110px; }
.cta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: stretch; }
.cta-copy { display: flex; flex-direction: column; }
/* full crystal animation fills the space below the phone, bottom-aligned to the form */
.cta-crystal {
  flex: 1 1 auto;
  min-height: 240px;
  margin-top: 1.4rem;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
}
.cta-crystal video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  display: block;
  mix-blend-mode: screen;
  -webkit-mask-image: radial-gradient(ellipse 64% 74% at 50% 58%, #000 40%, transparent 84%);
  mask-image: radial-gradient(ellipse 64% 74% at 50% 58%, #000 40%, transparent 84%);
}
@media (max-width: 1080px) {
  .cta-crystal { min-height: 300px; flex: 0 0 auto; }
}
.cta-copy p:not(.eyebrow) { color: var(--muted); margin-top: 1.2rem; }
.cta-phone a { font-size: 1.9rem; font-weight: 800; color: var(--blue-bright); text-shadow: 0 0 24px rgba(47, 125, 246, 0.5); }
.lead-form { padding: 34px; display: grid; gap: 16px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lead-form label { display: grid; gap: 6px; font-size: 0.8rem; font-weight: 600; color: var(--muted); }
.lead-form input, .lead-form textarea {
  background: rgba(4, 8, 14, 0.6);
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 11px 13px;
  color: var(--text);
  font-family: var(--font);
  font-size: 0.92rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.lead-form input:focus, .lead-form textarea:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(47, 125, 246, 0.18);
}
.form-fine { text-align: center; font-size: 0.75rem; color: #5d6678; }

/* ---------------- footer ---------------- */
.footer { border-top: 1px solid var(--line); background: var(--bg-soft); padding: 64px 24px 28px; }
.footer-grid {
  max-width: 1280px;
  margin: 0 auto 48px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
}
.footer-brand p { color: var(--muted); font-size: 0.88rem; margin-top: 1rem; max-width: 26rem; }
.footer-cred { font-size: 0.74rem !important; color: #5d6678 !important; }
.footer-col { display: grid; gap: 0.6rem; align-content: start; }
.footer-col h4 { font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.4rem; }
.footer-col a { color: #c6cddb; font-size: 0.9rem; }
.footer-col a:hover { color: var(--blue-bright); }
.footer-loc { color: #5d6678; font-size: 0.8rem; }
.footer-bottom {
  max-width: 1280px;
  margin: 0 auto;
  border-top: 1px solid var(--line);
  padding-top: 26px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.footer-legal { color: #5d6678; font-size: 0.8rem; margin-left: auto; }
.footer-links { display: flex; gap: 18px; font-size: 0.8rem; color: #5d6678; }
.footer-links a:hover { color: var(--blue-bright); }

/* ---------------- scroll reveal ---------------- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------------- inner page hero (shared by subpages) ---------------- */
.page-hero { padding: calc(var(--nav-h) + 80px) 24px 30px; max-width: 1280px; margin: 0 auto; }
.page-hero h1 { font-size: clamp(2rem, 4.4vw, 3.2rem); margin-bottom: 1.2rem; max-width: 56rem; }
.page-hero .lede { margin-bottom: 0; }
.prose { max-width: 760px; color: #c6cddb; }
.prose h2 { margin: 2.6rem 0 1rem; }
.prose p { margin-bottom: 1.1rem; color: var(--muted); }
.prose ul { margin: 0 0 1.1rem 1.2rem; color: var(--muted); }

/* ---------------- responsive ---------------- */
@media (max-width: 1080px) {
  .hero-inner, .global-grid, .cta-grid { grid-template-columns: 1fr; }
  .hero { min-height: 0; }
  .dash-panel { transform: none; }
  .process-rail { grid-template-columns: repeat(2, 1fr); }
  .ind-grid, .fee-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-inner { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1380px) {
  .nav-links, .nav-cta { display: none; }
  .nav-burger { display: block; }
  .nav-bar.open .nav-links {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: var(--nav-h);
    left: 0;
    right: 0;
    background: var(--card-solid);
    border-bottom: 1px solid var(--line);
    padding: 16px;
  }
  .nav-bar.open .drop { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding-left: 1.2rem; }
}
@media (max-width: 760px) {
  :root { --nav-h: 92px; }
  .brand-text { font-size: 1.15rem; }
  .brand-text small { font-size: 0.62rem; }
  .card-grid, .ind-grid, .fee-grid, .process-rail { grid-template-columns: 1fr; }
  .dash-top { grid-template-columns: 1fr; }
  .dash-strip { grid-template-columns: 1fr 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .ai-card { padding: 34px 24px; }
  .footer-bottom { flex-wrap: wrap; }
  .run-track { height: 130px; }
  .brand-mark { height: 60px; }
}

/* ---------------- inner-page components ---------------- */
.page-hero .eyebrow { margin-bottom: 0.8rem; }
.page-hero-meta { color: #5d6678; font-size: 0.85rem; margin-top: 1rem; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.check-list { list-style: none; margin: 1.2rem 0; display: grid; gap: 0.7rem; }
.check-list li { padding-left: 1.7rem; position: relative; color: var(--muted); }
.check-list li::before { content: '✓'; position: absolute; left: 0; color: var(--blue-bright); font-weight: 700; }
.check-list li strong { color: var(--text); }
.chip-grid { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.4rem; }
.chip { border: 1px solid var(--line); border-radius: 999px; padding: 7px 16px; font-size: 0.85rem; color: #c6cddb; background: var(--card); }
.cta-band { padding: 56px 40px; text-align: center; }
.cta-band h2 { margin-bottom: 0.8rem; }
.cta-band p { color: var(--muted); max-width: 40rem; margin: 0 auto 1.8rem; }
.cta-band .btn { margin: 0 0.5rem; }
.faq-list { max-width: 800px; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary {
  cursor: pointer; font-weight: 600; padding: 1.2rem 2rem 1.2rem 0;
  list-style: none; position: relative; font-size: 1.02rem;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; position: absolute; right: 4px; color: var(--blue-bright); font-size: 1.3rem; font-weight: 400; }
.faq-list details[open] summary::after { content: '−'; }
.faq-list details p { color: var(--muted); padding: 0 0 1.3rem; max-width: 46rem; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.post-card { padding: 28px; display: flex; flex-direction: column; gap: 0.7rem; transition: transform 0.25s; }
.post-card:hover { transform: translateY(-4px); }
.post-card .post-date { color: #5d6678; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
.post-card p { color: var(--muted); font-size: 0.92rem; flex: 1; }
.stat-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 2.5rem 0; }
.stat-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); padding: 26px; }
.stat-card strong { display: block; font-size: 2rem; font-weight: 800; color: var(--blue-bright); letter-spacing: -0.02em; }
.stat-card span { color: var(--muted); font-size: 0.85rem; }
@media (max-width: 1080px) {
  .split { grid-template-columns: 1fr; }
  .stat-cards { grid-template-columns: repeat(2, 1fr); }
  .blog-grid { grid-template-columns: 1fr; }
}

/* ---------------- portal pages ---------------- */
.portal-hero { text-align: center; }
.portal-hero .lede { margin-inline: auto; }
.portal-section { padding-top: 20px; }
.portal-grid {
  display: grid;
  grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
  gap: 56px;
  max-width: 980px;
  margin: 0 auto;
  align-items: start;
}
.portal-form { padding: 38px; }
.portal-error {
  color: #ff8d96;
  background: rgba(255, 31, 46, 0.08);
  border: 1px solid rgba(255, 31, 46, 0.3);
  border-radius: 9px;
  padding: 10px 14px;
  font-size: 0.85rem;
}
.portal-side h2 { font-size: 1.4rem; margin-bottom: 1rem; }
.portal-note { color: var(--muted); font-size: 0.9rem; margin-top: 1.2rem; }
.portal-note a { color: var(--blue-bright); }
@media (max-width: 1080px) {
  .portal-grid { grid-template-columns: 1fr; }
}

/* ---------------- page-load panther indicator ---------------- */
.panther-overlay {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle at 50% 50%, rgba(4, 6, 10, 0.62), rgba(4, 6, 10, 0.86));
  transition: opacity 0.2s ease;
}
.panther-overlay.show { opacity: 1; pointer-events: all; }
.panther-head-wrap {
  flex: 0 0 auto;
  line-height: 0;
}
.panther-head-img {
  height: 184px;
  width: auto;
  display: block;
  mix-blend-mode: screen; /* pure-black PNG background melts into the page */
  -webkit-mask-image: radial-gradient(ellipse 64% 92% at 50% 50%, #000 58%, transparent 100%);
  mask-image: radial-gradient(ellipse 64% 92% at 50% 50%, #000 58%, transparent 100%);
  animation: head-load-pulse 1.1s ease-in-out infinite;
}
/* the obelisk pulses brighter while the next page loads */
@keyframes head-load-pulse {
  0%, 100% { filter: brightness(1) drop-shadow(0 0 6px rgba(47, 125, 246, 0.5)); transform: scale(1); }
  50% { filter: brightness(1.75) saturate(1.3) drop-shadow(0 0 13px rgba(109, 177, 255, 0.95)); transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  .panther-head-img { animation: none; filter: drop-shadow(0 0 8px rgba(109, 177, 255, 0.8)); }
}

/* ---------------- collection trends infographic ---------------- */
.trends-figure { margin: 0 auto; max-width: 1000px; }
.trends-figure img {
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  box-shadow: 0 0 60px rgba(47, 125, 246, 0.18), 0 30px 60px rgba(0, 0, 0, 0.5);
}
.trends-figure figcaption {
  color: #5d6678;
  font-size: 0.78rem;
  text-align: center;
  margin-top: 0.9rem;
}

/* ---------------- hero crystal band across the top of the section ---------------- */
/* crystal band across the top of the content, stopping at the rain columns */
.hero-crystal-band {
  position: absolute;
  top: var(--nav-h);
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, 1300px); /* same clear center as the rain gutters — no overlap */
  height: 240px;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
.hero-crystal-band video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  mix-blend-mode: screen; /* dark starry bg melts into the page; crystal & city glow */
  /* fade all four edges so it blends in and never hard-cuts at the rain border */
  -webkit-mask-image:
    linear-gradient(180deg, transparent 0, #000 30%, #000 68%, transparent 100%),
    linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(180deg, transparent 0, #000 30%, #000 68%, transparent 100%),
    linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
  mask-composite: intersect;
}
@media (max-width: 760px) {
  .hero-crystal-band { height: 160px; }
}

/* ---------------- PCA monogram badge (top-right of nav) ---------------- */
.pca-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 64px;
  margin-left: 0.4rem;
  overflow: visible;
  flex-shrink: 0;
}
.pca-badge-img {
  height: 100%;
  width: auto;
  display: block;
  mix-blend-mode: screen; /* dark starfield bg melts into the nav; neon PCA glows */
}
/* left-to-right shimmer sweep, confined to the badge, only brightens the neon */
.pca-shine {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.pca-shine::before {
  content: '';
  position: absolute;
  top: -20%;
  bottom: -20%;
  width: 30%;
  left: -45%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-16deg);
  mix-blend-mode: overlay; /* shows on the bright logo, invisible over dark areas */
  animation: pca-shimmer 6s ease-in-out infinite;
}
@keyframes pca-shimmer {
  0% { left: -45%; }
  22% { left: 120%; }
  100% { left: 120%; }
}
@media (prefers-reduced-motion: reduce) {
  .pca-shine::before { animation: none; }
}
@media (max-width: 880px) {
  .pca-badge { display: none; } /* keep the small-screen header uncluttered */
}

/* ---------------- lead form success message ---------------- */
.form-success {
  border: 1px solid rgba(109, 177, 255, 0.45);
  background: var(--blue-dim);
  border-radius: var(--radius);
  padding: 38px;
  box-shadow: 0 0 40px rgba(47, 125, 246, 0.18);
}
.form-success h3 { color: var(--blue-bright); margin-bottom: 0.6rem; }
.form-success p { color: var(--text); }
.form-success a { color: var(--blue-bright); font-weight: 600; }
