/* welcome.css — CyberAI Welcome Page
   Sophisticated modern redesign: physics canvas bg, iridescent text,
   holographic shimmer, glassmorphism nav, bento grid, scroll showcase.
   Design tokens are in design-tokens.css.
   ─────────────────────────────────────────────────────────────── */

/* ═══ 0. Reset + base ═══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  color: var(--text);
  background: #020e1a;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  overflow-x: hidden;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
html { background: #020e1a; min-height: 100vh; scroll-behavior: smooth; }
/* Offset anchored sections so the sticky topbar doesn't cover headings */
:where(#main-content, .section, .showcase, .bento-section)[id],
#features, #paths, #tools-spotlight, #services-snapshot { scroll-margin-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ═══ 1. Scrollbar ═══════════════════════════════════════════════ */
html {
  overflow-y: auto;
  scrollbar-width: auto;
  scrollbar-color: #ff8a00 #0a2739;
}
html::-webkit-scrollbar { width: 12px; }
html::-webkit-scrollbar-track { background: #0a2739; border-left: 1px solid rgba(255,138,0,.2); }
html::-webkit-scrollbar-thumb {
  background: #ff8a00;
  border-radius: 6px;
  border: 2px solid #0a2739;
  box-shadow: 0 0 12px rgba(255,138,0,.6);
  min-height: 40px;
}
html::-webkit-scrollbar-thumb:hover { background: #ff6b00; }

/* ═══ 2. CSS custom property defaults (driven by JS) ══════════════ */
:root {
  --orb-shift-x: 0px;
  --orb-shift-y: 0px;
  --hero-grad-angle: 90deg;
  --nav-blur: 0px;
  --nav-opacity: 0;
  --nav-border: 0;
  --rx: 0deg;
  --ry: 0deg;
  --glow-x: 50%;
  --glow-y: 50%;
  --mag-x: 0px;
  --mag-y: 0px;
  /* Neural hue zone (set by SectionHueDriver) */
  --neural-hue-shift: 195;
}

/* ═══ 3. Atmospheric orb background (no JS) ══════════════════════ */
#fx-canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  width: 100%;
  height: 100%;
  opacity: 0.94;
  contain: strict;
  transition: opacity 0.4s ease;
}

/* Shockwave ring overlay — CSS fallback for reduced-motion,
   also used as a visual flourish on dblclick if canvas is hidden */
@keyframes neural-shockwave-ring {
  0%   { transform: translate(-50%,-50%) scale(0.1); opacity: 0.7; }
  70%  { opacity: 0.3; }
  100% { transform: translate(-50%,-50%) scale(3.5); opacity: 0; }
}
.neural-shockwave-ring {
  position: fixed;
  border-radius: 50%;
  width: 120px;
  height: 120px;
  border: 2px solid rgba(55,192,255,0.7);
  pointer-events: none;
  z-index: 2;
  animation: neural-shockwave-ring 0.9s ease-out forwards;
}
@media (min-width: 900px) {
  #fx-canvas { opacity: 0.97; }
}

.neural-vignette {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(ellipse at center,
    transparent 35%,
    rgba(2,14,26,.45) 70%,
    rgba(2,14,26,.85) 100%);
}

.neural-hud {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.neural-hud-br {
  display: none;
}
@property --neural-scroll-v {
  syntax: '<number>';
  initial-value: 0;
  inherits: true;
}
@property --neural-section-pulse {
  syntax: '<number>';
  initial-value: 0;
  inherits: true;
}

.neural-hud-scanline {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(55,192,255,.018) 3px,
    rgba(55,192,255,.018) 4px
  );
  animation: neuralHudScan 14s linear infinite;
  animation-duration: calc(11s - 9s * min(1, var(--neural-scroll-v, 0)));
  opacity: calc(0.52 + 0.18 * min(1, var(--neural-scroll-v, 0)));
}
@keyframes neuralHudScan {
  from { transform: translateY(-8%); }
  to   { transform: translateY(8%); }
}

.neural-divider {
  position: relative;
  z-index: 2;
  max-width: 1320px;
  margin: 0 auto;
  height: 1px;
  background: linear-gradient(90deg,
    transparent,
    rgba(55,192,255,.22) 20%,
    rgba(255,138,0,.28) 50%,
    rgba(55,192,255,.22) 80%,
    transparent);
  box-shadow: 0 0 calc(22px + 22px * var(--neural-section-pulse, 0)) rgba(55,192,255,.18);
  opacity: calc(0.84 + 0.16 * var(--neural-section-pulse, 0));
  transform: scaleX(calc(1 + 0.04 * var(--neural-section-pulse, 0)));
  transition: opacity 0.6s ease, box-shadow 0.6s ease, transform 0.6s ease;
}
.neural-divider::before,
.neural-divider::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,138,0,.65);
  box-shadow: 0 0 10px rgba(255,138,0,.45);
  transform: translateY(-50%);
}
.neural-divider::before { left: 12%; }
.neural-divider::after  { right: 12%; }

.bg-orbs {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}
.bg-orbs::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: calc(0.03 + 0.02 * min(1, var(--neural-scroll-v, 0)));
  background-image:
    linear-gradient(rgba(55,192,255,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(55,192,255,.12) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse at center, black 30%, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 85%);
  animation: neural-node-glow 18s ease-in-out infinite;
}
@keyframes neural-node-glow {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(calc(1 + 0.08 * min(1, var(--neural-scroll-v, 0)))); }
}
.bg-orbs::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(55,192,255,.08) 0 1px, transparent 1px),
    radial-gradient(circle at 70% 60%, rgba(255,138,0,.06) 0 1px, transparent 1px),
    radial-gradient(circle at 45% 80%, rgba(168,85,247,.05) 0 1px, transparent 1px);
  background-size: 48px 48px, 64px 64px, 56px 56px;
}
.bg-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(64px);
  mix-blend-mode: screen;
  transform: translate(var(--orb-shift-x), var(--orb-shift-y));
}
.bg-orb--cyan {
  width: 700px; height: 700px;
  top: -180px; left: -140px;
  background: radial-gradient(circle, rgba(55,192,255,.26) 0%, transparent 70%);
  animation: orbDrift1 22s ease-in-out infinite alternate;
}
.bg-orb--orange {
  width: 500px; height: 500px;
  bottom: -80px; right: -120px;
  background: radial-gradient(circle, rgba(255,138,0,.24) 0%, transparent 70%);
  animation: orbDrift2 27s ease-in-out infinite alternate-reverse;
}
.bg-orb--purple {
  width: 380px; height: 380px;
  top: 40%; left: 25%;
  background: radial-gradient(circle, rgba(168,85,247,.19) 0%, transparent 70%);
  animation: orbDrift3 18s ease-in-out infinite alternate;
}

@keyframes orbDrift1 {
  from { transform: translate(var(--orb-shift-x), var(--orb-shift-y)) scale(1); }
  to   { transform: translate(calc(var(--orb-shift-x) + 80px), calc(var(--orb-shift-y) + 60px)) scale(1.12); }
}
@keyframes orbDrift2 {
  from { transform: translate(var(--orb-shift-x), var(--orb-shift-y)) scale(1); }
  to   { transform: translate(calc(var(--orb-shift-x) - 70px), calc(var(--orb-shift-y) - 50px)) scale(1.08); }
}
@keyframes orbDrift3 {
  from { transform: translate(var(--orb-shift-x), var(--orb-shift-y)) scale(1); }
  to   { transform: translate(calc(var(--orb-shift-x) + 40px), calc(var(--orb-shift-y) - 80px)) scale(1.15); }
}

html.motion-reduced #fx-canvas {
  display: none;
}
html.motion-reduced .neural-hud-scanline {
  animation: none;
}
html.motion-reduced .bg-orbs::before {
  opacity: 1;
}
html.motion-reduced .bg-orbs::after {
  animation: none;
  opacity: 0.04;
  filter: none;
}
@media (prefers-reduced-motion: reduce) {
  #fx-canvas { display: none; }
  .neural-hud-scanline { animation: none; }
  .bg-orbs::before { opacity: 1; }
  .bg-orbs::after { animation: none; opacity: 0.04; filter: none; }
}

/* ═══ 4. Container ════════════════════════════════════════════════ */
.container {
  position: relative;
  z-index: 2;
}

/* ═══ 5. Glassmorphism sticky nav ════════════════════════════════ */
header {
  position: relative;
  z-index: 10050;
  overflow: visible;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 10000;
  backdrop-filter: blur(var(--nav-blur));
  -webkit-backdrop-filter: blur(var(--nav-blur));
  background: rgba(2,14,26, var(--nav-opacity));
  border-bottom: 1px solid rgba(255,255,255, var(--nav-border));
  transition: backdrop-filter .3s ease, background .3s ease, border-color .3s ease;
  overflow: visible;
}

/* Profile dropdown — ensure links stay above page content and receive clicks */
.topbar .actions .profile-menu {
  position: relative;
  z-index: 10001;
}
.profile-menu.open .dropdown,
.profile-menu[aria-expanded="true"] .dropdown {
  display: block;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  isolation: isolate;
}
.profile-menu .dropdown a,
.profile-menu .dropdown .profile-dropdown-link,
.profile-dropdown-panel .dropdown-item,
.profile-dropdown-panel a[role="menuitem"] {
  pointer-events: auto !important;
  cursor: pointer !important;
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: row;
  align-items: center;
  touch-action: manipulation;
}
.profile-menu .dropdown::before,
.profile-menu .dropdown::after,
.profile-menu .dropdown .dropdown-byte {
  pointer-events: none !important;
}

/* Animated nav link underlines */
.btn-nav {
  position: relative;
  overflow: hidden;
}
.btn-nav::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 2px;
  background: linear-gradient(90deg, var(--accent), var(--orange-500));
  transition: width .35s cubic-bezier(.16,1,.3,1);
  border-radius: 2px;
}
.btn-nav:hover::after,
.btn-nav.active::after { width: 100%; }
.btn-nav:focus-visible,
.btn-magnetic:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.admin-link { color: var(--orange-500, #ff8a00); font-weight: 600; }

/* ═══ 6. Hero — full viewport ════════════════════════════════════ */
.hero-full {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(60px, 8vh, 100px) clamp(16px, 4vw, 48px) clamp(40px, 5vh, 64px);
  max-width: 1320px;
  margin: 0 auto;
  gap: clamp(32px, 4vh, 52px);
}

.hero-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
@media (max-width: 900px) {
  .hero-content { grid-template-columns: 1fr; }
}

/* 6a. Hero copy */
.hero-copy { display: flex; flex-direction: column; gap: clamp(14px, 1.8vw, 22px); }

.hero-kicker {
  font-size: clamp(10px, 1.1vw, 12px);
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--accent);
  text-transform: uppercase;
  margin: 0;
}

/* Iridescent kinetic headline — always visible, animated as a whole unit */
.hero-headline {
  margin: 0;
  font-size: clamp(40px, 6.5vw, 76px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -.02em;
  text-wrap: balance;
  background: linear-gradient(
    var(--hero-grad-angle, 90deg),
    #37c0ff 0%,
    #ff8a00 38%,
    #a855f7 68%,
    #37c0ff 100%
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  transition: background .1s ease;
  /* Entrance: fade + lift. Starts immediately, not gated by JS. */
  animation: heroHeadlineIn .9s cubic-bezier(.16,1,.3,1) .08s both;
}
@keyframes heroHeadlineIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Other kinetic-headline elements (not hero) still use split-char */
.split-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(30px);
  animation: charReveal .5s cubic-bezier(.16,1,.3,1) forwards;
  transform-origin: bottom center;
}
@keyframes charReveal {
  to { opacity: 1; transform: translateY(0); }
}

.hero-lead {
  font-size: clamp(15px, 1.6vw, 19px);
  color: rgba(210, 228, 242, 0.92);
  line-height: 1.7;
  margin: 0;
  max-width: 520px;
  text-wrap: pretty;
}

.hero-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.hero-pill {
  font-size: clamp(11px, 1.1vw, 12px);
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--accent);
  padding: 5px 14px;
  background: rgba(55,192,255,.08);
  border: 1px solid rgba(55,192,255,.22);
  border-radius: 999px;
  white-space: nowrap;
}

.hero-path-label {
  font-size: clamp(12px, 1.2vw, 13px);
  color: var(--muted);
  margin: 0;
  font-weight: 500;
}

.hero-ctas {
  display: flex;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: clamp(10px, 1.4vw, 14px);
  width: 260px;
  max-width: 100%;
}

/* Magnetic button transition hook */
.btn-magnetic {
  transition: transform .2s cubic-bezier(.16,1,.3,1), box-shadow .2s ease !important;
  position: relative;
  overflow: hidden;
}
/* Shimmer sweep on hover */
.btn-magnetic::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.15) 50%, transparent 60%);
  background-size: 200% 100%;
  opacity: 0;
  transition: opacity .2s;
  pointer-events: none;
}
.btn-magnetic:hover::before {
  opacity: 1;
  animation: btnShimmer .6s ease forwards;
}
@keyframes btnShimmer {
  from { background-position: 200% 0; }
  to   { background-position: -200% 0; }
}

/* Trust pills */
.hero-trust-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(12px, 1.2vw, 13px);
  color: rgba(200, 220, 238, 0.88);
  padding: clamp(5px,1vw,7px) clamp(10px,1.5vw,14px);
  background: rgba(12,46,68,.38);
  border: 1px solid rgba(255,138,0,.22);
  border-radius: 999px;
  transition: border-color .3s, background .3s;
}
.trust-pill:hover {
  border-color: rgba(255,138,0,.35);
  background: rgba(12,46,68,.50);
}
.trust-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--orange-500));
  box-shadow: 0 0 8px rgba(55,192,255,.6), 0 0 5px rgba(255,138,0,.4);
  flex-shrink: 0;
}

/* 6b. Hero stats strip */
.hero-stats-strip {
  display: flex;
  align-items: center;
  gap: clamp(24px, 4vw, 48px);
  justify-content: center;
  flex-wrap: wrap;
  padding: clamp(20px, 3vw, 32px) clamp(24px, 4vw, 48px);
  background: rgba(6,34,55,.45);
  border: 1px solid rgba(55,192,255,.12);
  border-radius: 20px;
  backdrop-filter: blur(12px);
}
.hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.hero-stat-val {
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 900;
  background: linear-gradient(135deg, var(--accent), var(--orange-500));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1.1;
  letter-spacing: -.02em;
}
.hero-stat-label {
  font-size: clamp(11px, 1.1vw, 12px);
  color: var(--muted);
  text-align: center;
  letter-spacing: .03em;
}
.hero-stat-div {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, transparent, rgba(55,192,255,.25), transparent);
}

/* ═══ 7. Hero demo window ════════════════════════════════════════ */
.hero-demo-window {
  background: rgba(8,28,44,.80);
  border: 1px solid rgba(55,192,255,.18);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(55,192,255,.06);
  transform-style: preserve-3d;
  transition: transform .25s cubic-bezier(.16,1,.3,1);
  will-change: transform;
  position: relative;
}
/* holographic shimmer */
.hero-demo-window::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.05) 50%, transparent 62%);
  background-size: 200% 100%;
  animation: holoSheen 4s ease infinite;
  pointer-events: none;
  border-radius: inherit;
}
@keyframes holoSheen {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.demo-chrome {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: rgba(5,20,34,.80);
  border-bottom: 1px solid rgba(55,192,255,.10);
}
.chrome-dot {
  width: 11px; height: 11px;
  border-radius: 50%;
  flex-shrink: 0;
}
.chrome-dot--red    { background: #ff5f57; }
.chrome-dot--yellow { background: #febc2e; }
.chrome-dot--green  { background: #28c840; }
.chrome-address {
  flex: 1;
  text-align: center;
  font-size: 11px;
  color: var(--muted);
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 6px;
  padding: 3px 10px;
  letter-spacing: .02em;
}

.demo-panel {
  display: none;
  padding: clamp(16px, 2vw, 24px);
  min-height: 320px;
  flex-direction: column;
  gap: 14px;
  animation: panelFadeIn .4s cubic-bezier(.16,1,.3,1) both;
}
.demo-panel.active { display: flex; }
@keyframes panelFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.demo-panel-header {
  display: flex;
  align-items: center;
  gap: 10px;
}
.demo-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(55,192,255,.15);
  color: var(--accent);
  border: 1px solid rgba(55,192,255,.3);
}
.demo-tag--purple {
  background: rgba(168,85,247,.15);
  color: #c084fc;
  border-color: rgba(168,85,247,.3);
}
.demo-tag--green {
  background: rgba(34,197,94,.13);
  color: #4ade80;
  border-color: rgba(34,197,94,.3);
}
.demo-label { font-size: 12px; color: var(--muted); }

/* Progress bar */
.demo-progress-track {
  height: 4px;
  background: rgba(255,255,255,.08);
  border-radius: 999px;
  overflow: hidden;
}
.demo-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), var(--orange-500));
  border-radius: 999px;
  transition: width 1.8s cubic-bezier(.16,1,.3,1);
  width: 0%;
}

/* Equation typewriter */
.demo-equation {
  font-family: 'Courier New', Courier, monospace;
  font-size: clamp(18px, 2.5vw, 26px);
  font-weight: 700;
  color: var(--accent);
  min-height: 1.5em;
  letter-spacing: .04em;
  text-shadow: 0 0 20px rgba(55,192,255,.5);
}

/* Course chapters */
.demo-course-chapters { display: flex; flex-direction: column; gap: 8px; }
.demo-chapter {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  font-size: 12px;
  color: var(--muted);
  transition: background .2s, border-color .2s;
}
.demo-chapter.active-chapter {
  background: rgba(55,192,255,.08);
  border-color: rgba(55,192,255,.2);
  color: var(--text);
}
.chapter-num { font-weight: 700; color: var(--accent); width: 20px; }
.chapter-title { flex: 1; }
.chapter-dur { font-size: 11px; color: var(--muted); }

/* Chat */
.demo-chat { display: flex; flex-direction: column; gap: 10px; }
.chat-bubble {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  animation: chatSlideIn .4s cubic-bezier(.16,1,.3,1) both;
}
@keyframes chatSlideIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.chat-bubble--ai { flex-direction: row; }
.chat-bubble--user { flex-direction: row-reverse; }
.chat-avatar {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--orange-500));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  color: #020e1a;
}
.chat-bubble--ai .chat-text {
  background: rgba(55,192,255,.10);
  border: 1px solid rgba(55,192,255,.18);
  border-radius: 0 12px 12px 12px;
  padding: 8px 12px;
  font-size: 12px;
  color: var(--text);
  line-height: 1.5;
  max-width: 85%;
}
.chat-bubble--user .chat-text {
  background: rgba(255,138,0,.12);
  border: 1px solid rgba(255,138,0,.2);
  border-radius: 12px 0 12px 12px;
  padding: 8px 12px;
  font-size: 12px;
  color: var(--text);
  line-height: 1.5;
}
.chat-thinking {
  display: flex;
  align-items: center;
  gap: 5px;
  padding-left: 36px;
}
.chat-thinking span {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  animation: thinkBounce 1.2s ease-in-out infinite;
}
.chat-thinking span:nth-child(2) { animation-delay: .2s; }
.chat-thinking span:nth-child(3) { animation-delay: .4s; }
@keyframes thinkBounce {
  0%,80%,100% { transform: scale(.6); opacity: .4; }
  40%         { transform: scale(1);  opacity: 1; }
}

/* Tools grid (demo panel 3) */
.demo-tools-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.demo-tool-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 12px 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  font-size: 10px;
  color: var(--muted);
  text-align: center;
  transition: background .2s, border-color .2s, opacity .35s, transform .35s;
}
.demo-tool-card svg { width: 18px; height: 18px; color: var(--accent); }
.demo-tool-card--glow {
  background: rgba(55,192,255,.09);
  border-color: rgba(55,192,255,.28);
  color: var(--accent);
  animation: toolHighlight 2s ease infinite;
}
@keyframes toolHighlight {
  0%,100% { box-shadow: none; }
  50%      { box-shadow: 0 0 16px rgba(55,192,255,.3); }
}

/* Demo dots */
.demo-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 12px 0 4px;
}
.demo-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.2);
  cursor: pointer;
  transition: background .2s, transform .2s;
  padding: 0;
}
.demo-dot.active {
  background: var(--accent);
  transform: scale(1.3);
  box-shadow: 0 0 8px rgba(55,192,255,.6);
}
.demo-dot:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* ═══ 8. Trust band marquee ══════════════════════════════════════ */
.trust-band {
  overflow: hidden;
  padding: clamp(18px, 2.5vw, 28px) 0;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(6,34,55,.25);
  backdrop-filter: blur(6px);
  position: relative;
  z-index: 2;
}
/* fade edges */
.trust-band::before,
.trust-band::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 120px;
  z-index: 1;
  pointer-events: none;
}
.trust-band::before { left: 0; background: linear-gradient(to right, #020e1a, transparent); }
.trust-band::after  { right: 0; background: linear-gradient(to left,  #020e1a, transparent); }

.trust-band-track {
  display: flex;
  align-items: center;
  gap: 20px;
  width: max-content;
  animation: marquee 28s linear infinite;
  will-change: transform;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.trust-badge {
  font-size: clamp(12px, 1.2vw, 14px);
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
  letter-spacing: .03em;
}
.trust-sep { color: rgba(255,138,0,.45); font-weight: 700; }

/* ═══ 9. Tab showcase ════════════════════════════════════════════ */
.showcase {
  position: relative;
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(60px, 8vh, 100px) clamp(16px, 4vw, 48px);
}

/* Tab strip */
.showcase-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 48px;
  flex-wrap: wrap;
}
.showcase-tab {
  background: transparent;
  border: 1px solid rgba(55,192,255,.22);
  border-radius: 999px;
  color: var(--muted);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 9px 22px;
  transition: background .25s, color .25s, border-color .25s, box-shadow .25s;
}
.showcase-tab:hover {
  border-color: rgba(55,192,255,.5);
  color: var(--text);
}
.showcase-tab.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  box-shadow: 0 0 20px rgba(55,192,255,.3);
}
.showcase-tab:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* Two-column stage */
.showcase-stage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
  min-height: 460px;
}
@media (max-width: 900px) {
  .showcase-stage { grid-template-columns: 1fr; }
}

/* Copy column */
.showcase-copy-col { position: relative; min-height: 380px; }
.showcase-copy-item {
  position: absolute;
  top: 50%;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(-50% + 18px));
  transition: opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1);
}
.showcase-copy-item.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%);
}
@media (max-width: 900px) {
  .showcase-copy-item { position: relative; top: auto; transform: none; opacity: 1; pointer-events: auto; margin-bottom: 32px; }
}
.showcase-kicker {
  font-size: 11px; font-weight: 700; letter-spacing: .14em;
  color: var(--accent); text-transform: uppercase; margin: 0 0 14px;
}
.showcase-headline {
  font-size: clamp(32px, 5vw, 60px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -.02em;
  margin: 0 0 20px;
  text-wrap: balance;
  background: linear-gradient(135deg, var(--text), var(--muted));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.showcase-body {
  font-size: clamp(14px, 1.5vw, 17px);
  color: var(--muted);
  line-height: 1.7;
  margin: 0 0 28px;
  max-width: 440px;
}

/* Screen column */
.showcase-screen { position: relative; height: 420px; }
.showcase-panel {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1);
  transform: translateY(10px);
}
.showcase-panel.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.sc-panel-inner {
  background: rgba(8,28,44,.85);
  border: 1px solid rgba(55,192,255,.18);
  border-radius: 18px;
  overflow: hidden;
  height: 100%;
  padding: clamp(20px, 2.5vw, 30px);
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  position: relative;
}
.sc-panel-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.04) 50%, transparent 62%);
  background-size: 200% 100%;
  animation: holoSheen 5s ease infinite;
  pointer-events: none;
}

.sc-course-header, .sc-chat-header, .sc-tools-header {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600; color: var(--text);
}
.sc-badge {
  font-size: 10px; font-weight: 700; letter-spacing: .07em;
  text-transform: uppercase; padding: 3px 9px;
  border-radius: 999px;
}
.sc-badge--blue {
  background: rgba(55,192,255,.15); color: var(--accent);
  border: 1px solid rgba(55,192,255,.3);
}
.sc-badge--green {
  background: rgba(34,197,94,.13); color: #4ade80;
  border: 1px solid rgba(34,197,94,.3);
}

/* Manim circle animation */
.sc-manim-area {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sc-manim-circle {
  width: 120px; height: 120px;
  border-radius: 50%;
  border: 2px solid rgba(55,192,255,.4);
  position: absolute;
  animation: manim-spin 6s linear infinite;
}
@keyframes manim-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.sc-manim-axis--x, .sc-manim-axis--y {
  position: absolute;
  background: rgba(255,255,255,.1);
}
.sc-manim-axis--x { width: 160px; height: 1px; }
.sc-manim-axis--y { width: 1px; height: 160px; }
.sc-manim-point {
  position: absolute;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--orange-500);
  box-shadow: 0 0 12px rgba(255,138,0,.7);
  top: calc(50% - 60px);
  left: calc(50% + 60px);
  transform: translate(-50%, -50%);
  animation: manim-spin 6s linear infinite;
  transform-origin: -54px 60px;
}
.sc-manim-label {
  position: absolute;
  bottom: 10px; right: 10px;
  font-family: 'Courier New', monospace;
  font-size: 18px; font-weight: 700;
  color: var(--accent);
  text-shadow: 0 0 14px rgba(55,192,255,.6);
}
.sc-progress-row {
  display: flex; align-items: center; gap: 10px;
}
.sc-prog-label { font-size: 11px; color: var(--muted); white-space: nowrap; }
.sc-progress-track {
  flex: 1; height: 4px;
  background: rgba(255,255,255,.08); border-radius: 999px; overflow: hidden;
}
.sc-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), var(--orange-500));
  border-radius: 999px;
}
.sc-prog-pct { font-size: 11px; color: var(--accent); font-weight: 700; }

/* Chat (showcase) */
.sc-chat-log { display: flex; flex-direction: column; gap: 10px; flex: 1; overflow: hidden; }
.sc-msg {
  font-size: 13px; line-height: 1.5; padding: 9px 13px;
  border-radius: 12px; max-width: 90%;
}
.sc-msg--ai {
  background: rgba(55,192,255,.08); border: 1px solid rgba(55,192,255,.16);
  color: var(--text); border-radius: 0 12px 12px 12px;
}
.sc-msg--user {
  align-self: flex-end;
  background: rgba(255,138,0,.10); border: 1px solid rgba(255,138,0,.2);
  color: var(--text); border-radius: 12px 0 12px 12px;
}
.sc-status-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34,197,94,.7);
  flex-shrink: 0;
}
.sc-plan-badge {
  margin-left: auto;
  font-size: 10px; font-weight: 700;
  padding: 2px 8px; border-radius: 999px;
  background: rgba(168,85,247,.2); color: #c084fc;
  border: 1px solid rgba(168,85,247,.35);
}
.sc-typing-indicator {
  display: flex; align-items: center; gap: 5px; padding: 6px 13px;
}
.sc-typing-indicator span {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent);
  animation: thinkBounce 1.2s ease-in-out infinite;
}
.sc-typing-indicator span:nth-child(2) { animation-delay: .2s; }
.sc-typing-indicator span:nth-child(3) { animation-delay: .4s; }

/* Tools (showcase) */
.sc-tools-sub { font-size: 12px; color: var(--muted); }
.sc-tools-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 10px; flex: 1;
}
.sc-tool-item {
  display: flex; flex-direction: column;
  align-items: center; gap: 8px;
  padding: 16px 10px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  font-size: 12px; color: var(--muted);
  text-decoration: none;
  transition: background .2s, border-color .2s;
}
.sc-tool-item svg { width: 22px; height: 22px; color: var(--accent); }
.sc-tool-item--active {
  background: rgba(55,192,255,.10);
  border-color: rgba(55,192,255,.28);
  color: var(--accent);
  box-shadow: 0 0 14px rgba(55,192,255,.15);
}

/* ═══ 10. Bento grid ═════════════════════════════════════════════ */
.bento-section {
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(64px, 8vh, 100px) clamp(16px, 4vw, 48px);
}
.section-label {
  font-size: 11px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent);
  margin-bottom: 14px;
}
.section-headline {
  font-size: clamp(30px, 5vw, 58px);
  font-weight: 900; line-height: 1.1;
  letter-spacing: -.02em;
  margin: 0 0 clamp(32px, 5vw, 56px);
  text-wrap: balance;
  background: linear-gradient(135deg, var(--text), var(--muted));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.section-sub {
  font-size: clamp(14px, 1.5vw, 17px);
  color: var(--muted); line-height: 1.7;
  max-width: 600px;
  margin: -28px 0 48px;
  text-wrap: pretty;
}

.bento-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: auto auto;
  gap: clamp(12px, 1.5vw, 18px);
}
@media (max-width: 1100px) {
  .bento-grid { grid-template-columns: repeat(3, 1fr); }
  .bento-hero    { grid-column: span 3; grid-row: auto; }
  .bento-side-a, .bento-side-b { grid-column: span 3; }
  .bento-wide, .bento-wide-2   { grid-column: span 3; }
}
@media (max-width: 640px) {
  .bento-grid { grid-template-columns: 1fr; }
  .bento-hero, .bento-side-a, .bento-side-b,
  .bento-wide, .bento-wide-2 { grid-column: span 1; }
}

.bento-hero   { grid-column: span 4; grid-row: span 2; }
.bento-side-a { grid-column: span 2; }
.bento-side-b { grid-column: span 2; }
.bento-wide   { grid-column: span 3; }
.bento-wide-2 { grid-column: span 3; }

.bento-card {
  position: relative;
  background: rgba(6,28,46,.65);
  border: 1px solid rgba(55,192,255,.12);
  border-radius: 18px;
  overflow: hidden;
  transition: border-color .3s, box-shadow .3s, transform .25s cubic-bezier(.16,1,.3,1);
  will-change: transform;
  transform-style: preserve-3d;
}
.bento-card:hover {
  border-color: rgba(55,192,255,.30);
  box-shadow: 0 0 40px rgba(55,192,255,.10), 0 12px 40px rgba(0,0,0,.4);
}
/* Holographic shimmer sweep */
.bento-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.055) 50%, transparent 62%);
  background-size: 200% 100%;
  animation: holoSheen 3.5s ease infinite;
  pointer-events: none;
  border-radius: inherit;
}
/* Cursor glow radial */
.bento-card::before {
  content: '';
  position: absolute;
  width: 220px; height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(55,192,255,.10), transparent 70%);
  left: var(--glow-x, 50%);
  top: var(--glow-y, 50%);
  transform: translate(-50%, -50%);
  pointer-events: none;
  opacity: 0;
  transition: opacity .3s;
}
.bento-card:hover::before { opacity: 1; }

.bento-card-inner {
  padding: clamp(22px, 2.5vw, 32px);
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  z-index: 1;
}
.bento-icon { width: 48px; height: 48px; flex-shrink: 0; }
.bento-icon svg { width: 100%; height: 100%; }
.bento-title {
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 800; line-height: 1.2;
  color: var(--text); margin: 0;
}
.bento-body {
  font-size: clamp(13px, 1.2vw, 14px);
  color: var(--muted); line-height: 1.6; margin: 0;
}
.bento-cta { margin-top: auto; align-self: flex-start; }

/* Feat list */
.bento-feat-list { display: flex; flex-direction: column; gap: 8px; }
.bento-feat {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--muted);
}
.bento-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--orange-500));
  flex-shrink: 0;
}

/* Hero card — two-column layout */
.bento-hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 36px);
  align-items: center;
  min-height: 100%;
}
.bento-hero-copy {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.bento-hero .bento-title {
  font-size: clamp(20px, 2vw, 26px);
}
.bento-hero .bento-body {
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.65;
}
.bento-hero .bento-cta {
  margin-top: clamp(16px, 2vw, 24px);
}
.bento-feat-list--hero {
  gap: 10px;
}
.bento-hero .bento-feat {
  padding: 14px 16px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  font-size: 14px;
  color: var(--text);
  transition: border-color .25s, background .25s;
}
.bento-hero .bento-feat:hover {
  background: rgba(55,192,255,.08);
  border-color: rgba(55,192,255,.22);
}
@media (max-width: 900px) {
  .bento-hero-inner { grid-template-columns: 1fr; }
}

/* Pricing cards (inside bento-wide) */
.bento-wide-inner { flex-direction: row; align-items: center; gap: 24px; }
@media (max-width: 640px) { .bento-wide-inner { flex-direction: column; } }
.bento-price-cards { display: flex; gap: 12px; flex-wrap: wrap; }
.bento-price-item {
  display: flex; flex-direction: column; gap: 4px;
  padding: 14px 18px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  text-align: center;
  min-width: 80px;
}
.bento-price-item--featured {
  background: rgba(55,192,255,.10);
  border-color: rgba(55,192,255,.28);
}
.price-amount {
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 900;
  background: linear-gradient(135deg, var(--accent), var(--orange-500));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.price-desc { font-size: 11px; color: var(--muted); }

/* Tools bento */
.bento-tools-inner { flex-direction: row; align-items: center; gap: 24px; }
@media (max-width: 640px) { .bento-tools-inner { flex-direction: column; } }
.bento-tool-icons { display: flex; gap: 10px; flex-wrap: wrap; }
.bento-tool-icon-item {
  width: 42px; height: 42px;
  background: rgba(55,192,255,.08);
  border: 1px solid rgba(55,192,255,.15);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.bento-tool-icon-item svg { width: 20px; height: 20px; color: var(--accent); }
.bento-kicker {
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--accent); margin: 0 0 8px;
}

/* ═══ 11. Paths cards ════════════════════════════════════════════ */
.section {
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(64px, 8vh, 100px) clamp(16px, 4vw, 48px);
}

.card-callout {
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 4px;
}
.card-callout--blue   { background: rgba(55,192,255,.07);  border-left: 3px solid var(--accent); }
.card-callout--orange { background: rgba(255,138,0,.07);   border-left: 3px solid var(--orange-500); }
.card-callout--purple { background: rgba(168,85,247,.07);  border-left: 3px solid #a855f7; }

.card-tag--blue   { background: rgba(55,192,255,.12);  color: var(--accent);    border-color: rgba(55,192,255,.25); }
.card-tag--orange { background: rgba(255,138,0,.12);   color: var(--orange-500);border-color: rgba(255,138,0,.25); }
.card-tag--purple { background: rgba(168,85,247,.12);  color: #c084fc;          border-color: rgba(168,85,247,.25); }

/* ═══ 12. Tools spotlight ════════════════════════════════════════ */
.tools-spotlight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(12px, 1.8vw, 18px);
  max-width: 1200px;
  margin: 0 auto;
}
.tool-spotlight-card {
  background: rgba(10,39,57,.55);
  border: 1px solid rgba(55,192,255,.12);
  border-radius: 14px;
  padding: clamp(18px, 2.5vw, 24px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
}
.tool-spotlight-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.05) 50%, transparent 60%);
  background-size: 200% 100%;
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
}
.tool-spotlight-card:hover {
  border-color: rgba(55,192,255,.35);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.35), 0 0 0 1px rgba(55,192,255,.1);
}
.tool-spotlight-card:hover::after {
  opacity: 1;
  animation: holoSheen .8s ease;
}
.tool-spotlight-icon {
  width: 36px; height: 36px; color: var(--accent); flex-shrink: 0;
}
.tool-spotlight-card h4 {
  margin: 0;
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 700;
  color: var(--text);
  line-height: 1.3;
}
.tool-spotlight-card p {
  margin: 0;
  font-size: clamp(11px, 1.1vw, 13px);
  color: var(--muted);
  line-height: 1.5;
  flex: 1;
}
.tool-spotlight-badge {
  display: inline-block;
  font-size: 11px; font-weight: 700; letter-spacing: .03em;
  padding: 2px 8px; border-radius: 999px; line-height: 1.6;
  width: fit-content;
}
.tsbadge-free     { background: rgba(34,197,94,.15);  color: #4ade80; border: 1px solid rgba(34,197,94,.25); }
.tsbadge-freemium { background: rgba(55,192,255,.13); color: var(--accent); border: 1px solid rgba(55,192,255,.25); }
.tsbadge-ai       { background: rgba(168,85,247,.13); color: #c084fc; border: 1px solid rgba(168,85,247,.25); }

.tools-spotlight-cta {
  text-align: center;
  margin-top: clamp(28px, 4vw, 40px);
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
}
.tools-also { font-size: 13px; color: var(--muted); }

/* ═══ 13. Services footer ════════════════════════════════════════ */
.services-footer {
  text-align: center;
  margin-top: clamp(24px, 3.5vw, 40px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.services-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.services-trust-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--muted);
  padding: 5px 14px;
  background: rgba(55,192,255,.06);
  border: 1px solid rgba(55,192,255,.15);
  border-radius: 999px;
}
.services-or { font-size: 13px; color: var(--muted); }
.link-underline {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-color: rgba(55,192,255,.4);
  transition: text-decoration-color .2s;
}
.link-underline:hover { text-decoration-color: var(--accent); }

/* ═══ 14. Scroll reveal ══════════════════════════════════════════ */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .bg-orb--cyan,
  .bg-orb--orange,
  .bg-orb--purple {
    animation: none;
  }
  .hero-headline {
    animation: none;
    opacity: 1;
    transform: none;
  }
  .hero-demo-window::after {
    animation: none;
  }
  .btn-magnetic:hover::before {
    animation: none;
    opacity: 0;
  }
  .icon-glow {
    animation: none;
  }
}

/* ═══ 15. Icon animations (from original) ════════════════════════ */
@keyframes glow-pulse {
  0%,100% { filter: drop-shadow(0 0 2px rgba(55,192,255,.4)); }
  50%      { filter: drop-shadow(0 0 8px rgba(55,192,255,.8)); }
}
@keyframes dash-anim {
  to { stroke-dashoffset: 0; }
}
.icon-glow { animation: glow-pulse 2.5s ease-in-out infinite; }
.icon-dash { stroke-dasharray: 60; stroke-dashoffset: 60; animation: dash-anim 1.2s ease forwards .3s; }

/* ═══ 16. Mobile overlay & interaction styles ════════════════════
   These selectors lived exclusively in the old welcome.css.
   CSS.css has zero coverage for any of them.
   ═══════════════════════════════════════════════════════════════ */

/* Mobile menu overlay — off-canvas slide panel, HIDDEN by default */
.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(2,14,26,0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transform: translateX(-100%);
  opacity: 0;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .3s ease;
}
.mobile-menu-overlay.active {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}

.mobile-menu-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: clamp(20px, 3vw, 32px);
  gap: 20px;
  overflow-y: auto;
}

.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(55,192,255,.12);
}

.menu-close {
  background: none;
  border: 1px solid rgba(255,255,255,.12);
  color: var(--text);
  font-size: 22px;
  cursor: pointer;
  padding: 5px 13px;
  border-radius: 8px;
  line-height: 1.4;
  transition: background .2s, border-color .2s, color .2s;
}
.menu-close:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(55,192,255,.35);
  color: var(--accent);
}

/* Mobile nav list */
.mobile-nav { flex: 1; }
.mobile-nav-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mobile-nav-link {
  display: flex;
  align-items: center;
  padding: 13px 16px;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  text-decoration: none;
  border-radius: 10px;
  letter-spacing: .01em;
  transition: background .2s, color .2s, padding-left .2s;
}
.mobile-nav-link:hover {
  background: rgba(55,192,255,.08);
  color: var(--accent);
  padding-left: 22px;
}
.mobile-nav-link.active {
  background: rgba(55,192,255,.10);
  color: var(--accent);
  border-left: 3px solid var(--accent);
}

/* Mobile actions area */
.mobile-menu-actions {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.07);
}
.mobile-cta { width: 100%; text-align: center; box-sizing: border-box; }

/* Mobile profile section (logged-in state) */
.mobile-profile-section { display: flex; flex-direction: column; gap: 10px; }
.mobile-profile-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(55,192,255,.05);
  border: 1px solid rgba(55,192,255,.12);
  border-radius: 12px;
  margin-bottom: 4px;
}
.mobile-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(55,192,255,.3);
  flex-shrink: 0;
}
.mobile-username { font-weight: 800; font-size: 15px; color: var(--text); line-height: 1.2; }
.mobile-profile-link {
  display: flex;
  align-items: center;
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  text-decoration: none;
  border-radius: 8px;
  transition: background .2s, color .2s, padding-left .2s;
}
.mobile-profile-link:hover {
  background: rgba(255,255,255,.06);
  color: var(--text);
  padding-left: 22px;
}
.mobile-profile-link.logout-link { color: #ff6b6b; }
.mobile-profile-link.logout-link:hover { background: rgba(255,107,107,.08); color: #ff8888; }

/* Hamburger toggle button */
.menu-toggle {
  display: none;
  background: none;
  border: 1px solid rgba(55,192,255,.22);
  border-radius: 8px;
  cursor: pointer;
  padding: 7px 10px;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  justify-content: center;
  transition: border-color .2s, background .2s;
}
.menu-toggle:hover {
  border-color: rgba(55,192,255,.5);
  background: rgba(55,192,255,.07);
}
.hamburger { display: flex; flex-direction: column; gap: 5px; pointer-events: none; }
.hamburger-line {
  width: 20px; height: 2px;
  background: var(--text);
  border-radius: 2px;
  display: block;
  transition: transform .25s ease, opacity .25s ease;
}

/* Quick-action floating CTA — visible after 200px scroll */
.quick-action-btn {
  position: fixed;
  bottom: 28px; left: 28px;
  z-index: 97;
  background: linear-gradient(135deg, var(--accent), var(--orange-500));
  color: #020e1a;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .04em;
  padding: 11px 22px;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 20px rgba(55,192,255,.35), 0 2px 8px rgba(0,0,0,.3);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: transform .2s ease, box-shadow .2s ease, opacity .35s ease;
}
.quick-action-btn.scrolled { opacity: 1; pointer-events: auto; transform: translateY(0); }
.quick-action-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 28px rgba(55,192,255,.5); }

/* Show hamburger at tablet/mobile breakpoint */
@media (max-width: 900px) {
  .menu-toggle { display: flex; }
}

/* ═══ 16b. Responsive layout utilities ══════════════════════════ */
@media (max-width: 768px) {
  .hero-full { padding-top: clamp(70px, 12vh, 100px); }
  .hero-stats-strip { gap: 20px; }
  .hero-stat-div { display: none; }
  .hero-ctas { width: 100%; }
  .hero-demo-window {
    max-height: min(420px, 52vh);
    overflow: hidden;
  }
}

/* ═══ 17. Skip-to-content & accessibility ════════════════════════ */
.skip-to-content {
  position: absolute;
  top: -100px;
  left: 16px;
  background: var(--accent);
  color: #020e1a;
  padding: 8px 16px;
  border-radius: 0 0 8px 8px;
  font-weight: 700;
  font-size: 14px;
  z-index: 9999;
  transition: top .2s;
  text-decoration: none;
}
.skip-to-content:focus { top: 0; }

/* ═══ 18. Polish pass — interactive & focus states ═══════════════
   Unifies hover/active feedback and guarantees a visible keyboard
   focus ring on every interactive element in the welcome page.
   ═══════════════════════════════════════════════════════════════ */

/* Consistent active-press feedback for the page's pill buttons/links */
.hero-ctas .btn:active,
.bento-cta:active,
.tools-spotlight-cta .btn:active,
.services-footer .btn:active { transform: translateY(1px) scale(.99); }

/* Unified, theme-matched focus ring for interactive elements */
.tool-spotlight-card:focus-visible,
.bento-cta:focus-visible,
.card .btn:focus-visible,
.cards-3 .btn:focus-visible,
.hero-ctas .btn:focus-visible,
.tools-spotlight-cta .btn:focus-visible,
.services-footer .btn:focus-visible,
.link-underline:focus-visible,
.demo-dot:focus-visible,
.quick-action-btn:focus-visible {
  outline: 2px solid var(--focus, #37c0ff);
  outline-offset: 3px;
  border-radius: 999px;
}
.tool-spotlight-card:focus-visible { border-radius: 14px; }

/* Tool spotlight card is an anchor — match the hover lift on keyboard focus */
.tool-spotlight-card:focus-visible {
  border-color: rgba(55,192,255,.35);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.35), 0 0 0 1px rgba(55,192,255,.1);
}

/* Demo dots: clearer affordance + hover/active state */
.demo-dot { cursor: pointer; transition: transform .2s ease, background .25s ease, box-shadow .25s ease; }
.demo-dot:hover { transform: scale(1.25); }

/* Trust pills + service chips: subtle hover lift for consistency */
.services-trust-chip { transition: border-color .25s ease, background .25s ease, transform .2s ease; }
.services-trust-chip:hover { border-color: rgba(55,192,255,.3); background: rgba(55,192,255,.1); transform: translateY(-1px); }

/* Hero pills gain the same gentle interactive feedback as trust pills */
.hero-pill { transition: border-color .25s ease, background .25s ease, transform .2s ease; }
.hero-pill:hover { border-color: rgba(55,192,255,.4); background: rgba(55,192,255,.14); transform: translateY(-1px); }

/* ═══ 19. Polish pass — contrast & legibility lifts ══════════════
   Nudges the smallest secondary text off pure --muted toward AA.
   ═══════════════════════════════════════════════════════════════ */
.price-desc,
.sc-tools-sub,
.sc-prog-label,
.tools-also,
.services-or,
.hero-stat-label,
.chapter-dur,
.bento-feat,
.trust-pill { color: rgba(196, 216, 232, .92); }

/* ═══ 20. Polish pass — extended reduced-motion coverage ═════════
   Catches the decorative loops the base block didn't cover so the
   page is fully calm for users who request reduced motion.
   ═══════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .bento-card::after,
  .tool-spotlight-card::after,
  .sc-panel-inner::after,
  .hero-demo-window .demo-panel::after,
  .trust-band-track,
  .sc-manim-circle,
  .sc-manim-point,
  .sc-typing-indicator span,
  .chat-thinking span,
  .demo-progress-fill,
  .split-char {
    animation: none !important;
  }
  .split-char { opacity: 1 !important; transform: none !important; }
  /* Keep the demo carousel readable without sliding transitions */
  .showcase-panel,
  .showcase-copy-item { transition: opacity .3s ease !important; }
}

/* ═══ 21. Polish pass — responsive refinements ═══════════════════
   Tightens layout fidelity at the existing breakpoints without
   changing structure or content.
   ═══════════════════════════════════════════════════════════════ */

/* Tablet: ease the showcase stage height + let tabs scroll if cramped */
@media (max-width: 900px) {
  .showcase-stage { min-height: 0; }
  .showcase-copy-col { min-height: 0; }
  .showcase-screen { height: clamp(340px, 64vw, 420px); }
  .showcase-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
  }
  .showcase-tabs::-webkit-scrollbar { display: none; }
  .showcase-tab { white-space: nowrap; }
}

/* Mobile: denser rhythm + comfortably tappable targets */
@media (max-width: 768px) {
  .hero-stats-strip { padding: 18px 18px; gap: 18px 22px; }
  .hero-ctas .btn { width: 100%; text-align: center; }
  .tools-spotlight-cta { flex-direction: column; gap: 10px; }
  .demo-dot { width: 12px; height: 12px; }
}

/* Small phones: keep the demo window and bento copy from feeling cramped */
@media (max-width: 480px) {
  .hero-full { padding-left: 14px; padding-right: 14px; }
  .hero-stat-val { font-size: clamp(24px, 8vw, 32px); }
  .showcase-screen { height: clamp(320px, 78vw, 400px); }
  .bento-card-inner { padding: 20px; }
  .services-trust-row { gap: 8px; }
}
