/* ─── Reset ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* ─── Tokens ─────────────────────────────────────────────── */
:root{
  --bg:       #0A0A0F;
  --surface:  #12121A;
  --surface2: #17172200;
  --border:   #1E1E2E;
  --border2:  #2A2A3E;
  --accent:   #6366F1;
  --accent2:  #22D3EE;
  --diamond:  #0EA5E9;
  --super:    #22C55E;
  --fire:     #F97316;
  --text1:    #F1F5F9;
  --text2:    #94A3B8;
  --text3:    #64748B;

  --font-display: 'Space Grotesk', sans-serif;
  --font-body:    'Inter', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;

  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;

  --max: 1200px;
  --gutter: clamp(20px, 5vw, 80px);
}

/* ─── Scroll Reveal Animations ─────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* ─── Base ───────────────────────────────────────────────── */
body{
  background:var(--bg);
  color:var(--text1);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ─── Layout Utilities ───────────────────────────────────── */
.container{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
}
.section{
  padding:clamp(64px,10vw,120px) 0;
}
.section + .section{
  border-top:1px solid var(--border);
}

/* ─── Typography ─────────────────────────────────────────── */
.eyebrow{
  font-family:var(--font-mono);
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent2);
  display:inline-block;
  margin-bottom:16px;
}
h1{
  font-family:var(--font-display);
  font-size:clamp(2.4rem,5.5vw,4.5rem);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-0.03em;
  color:var(--text1);
}
h2{
  font-family:var(--font-display);
  font-size:clamp(1.7rem,3.5vw,2.8rem);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-0.025em;
  color:var(--text1);
  margin-bottom:16px;
}
h3{
  font-family:var(--font-display);
  font-size:1.15rem;
  font-weight:600;
  color:var(--text1);
  margin-bottom:8px;
}
p{
  color:var(--text2);
  line-height:1.7;
}
.lead{
  font-size:clamp(1rem,2vw,1.2rem);
  color:var(--text2);
  max-width:56ch;
  line-height:1.65;
}

/* ─── Buttons ────────────────────────────────────────────── */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-display);
  font-size:0.95rem;
  font-weight:600;
  border-radius:10px;
  padding:13px 26px;
  cursor:pointer;
  border:none;
  transition:all 0.18s ease;
  text-decoration:none;
}
.btn-primary{
  background:var(--accent);
  color:#fff;
  box-shadow:0 0 32px rgba(99,102,241,0.35);
}
.btn-primary:hover{
  background:#5254d4;
  box-shadow:0 0 48px rgba(99,102,241,0.5);
  transform:translateY(-1px);
}
.btn-ghost{
  background:transparent;
  color:var(--text2);
  border:1px solid var(--border2);
}
.btn-ghost:hover{
  color:var(--text1);
  border-color:var(--accent);
  background:rgba(99,102,241,0.06);
}

/* ─── NAV ────────────────────────────────────────────────── */
nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  background:rgba(10,10,15,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.nav-logo{
  font-family:var(--font-display);
  font-size:1.25rem;
  font-weight:700;
  color:var(--text1);
  display:flex;
  align-items:center;
  gap:9px;
}
.nav-logo-img{
  height:28px;
  width:auto;
  display:block;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:28px;
  list-style:none;
}
.nav-links a{
  font-size:0.88rem;
  font-weight:500;
  color:var(--text2);
  transition:color 0.15s;
}
.nav-links a:hover{color:var(--text1)}

/* Mobile burger button */
.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 20px;
  height: 16px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 101;
}
.nav-burger span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--text1);
  transition: transform 0.25s, opacity 0.25s;
  border-radius: 2px;
}
.nav-burger.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.nav-burger.is-open span:nth-child(2) {
  opacity: 0;
}
.nav-burger.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.nav-cta{
  display:flex;
  align-items:center;
  gap:12px;
}

/* ─── HERO ───────────────────────────────────────────────── */
#hero{
  padding:calc(64px + clamp(64px,10vw,100px)) 0 clamp(64px,10vw,100px);
  position:relative;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(99,102,241,0.1);
  border:1px solid rgba(99,102,241,0.3);
  border-radius:999px;
  padding:6px 14px;
  font-family:var(--font-mono);
  font-size:0.72rem;
  color:var(--accent);
  letter-spacing:0.06em;
  margin-bottom:24px;
}
.hero-title{
  margin-bottom:24px;
}
.hero-title .accent-text{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-ctas{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:36px;
}
.hero-trust{
  margin-top:20px;
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center;
}
.trust-item{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:0.82rem;
  color:var(--text3);
}
.trust-item svg{
  color:var(--super);
}

/* ─── Radar SVG (hero visual) ────────────────────────────── */
.hero-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.radar-wrap{
  position:relative;
  width:420px;
  height:420px;
  max-width:100%;
}
.radar-svg{
  width:100%;
  height:100%;
}
/* Mock alert card floating over radar */
.alert-card{
  position:absolute;
  bottom:30px;
  left:-30px;
  background:var(--surface);
  border:1px solid var(--border2);
  border-left:3px solid var(--diamond);
  border-radius:var(--r-md);
  padding:14px 18px;
  width:230px;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  animation:float 6s ease-in-out infinite;
  -webkit-animation:float 6s ease-in-out infinite;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
@-webkit-keyframes float{
  0%,100%{-webkit-transform:translateY(0) translateZ(0)}
  50%{-webkit-transform:translateY(-8px) translateZ(0)}
}
@keyframes float{
  0%,100%{transform:translateY(0) translateZ(0)}
  50%{transform:translateY(-8px) translateZ(0)}
}
.alert-card-header{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}
.alert-badge{
  font-family:var(--font-mono);
  font-size:0.65rem;
  font-weight:500;
  letter-spacing:0.08em;
  color:var(--diamond);
  background:rgba(14,165,233,0.12);
  border-radius:4px;
  padding:2px 8px;
}
.alert-card-title{
  font-family:var(--font-display);
  font-size:0.8rem;
  font-weight:600;
  color:var(--text1);
  line-height:1.3;
  margin-bottom:8px;
}
.alert-metrics{
  display:flex;
  gap:14px;
}
.alert-metric{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.alert-metric-label{
  font-family:var(--font-mono);
  font-size:0.6rem;
  color:var(--text3);
  letter-spacing:0.06em;
}
.alert-metric-value{
  font-family:var(--font-mono);
  font-size:0.82rem;
  font-weight:500;
  color:var(--accent2);
}
.score-mini{
  position:absolute;
  top:20px;
  right:-20px;
  background:var(--surface);
  border:1px solid var(--border2);
  border-radius:var(--r-md);
  padding:14px 18px;
  text-align:center;
  animation:float 5.5s ease-in-out infinite reverse;
}
.score-number{
  font-family:var(--font-display);
  font-size:2rem;
  font-weight:700;
  color:var(--super);
  line-height:1;
}
.score-label{
  font-family:var(--font-mono);
  font-size:0.62rem;
  color:var(--text3);
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-top:4px;
}
.score-verdict{
  font-size:0.72rem;
  color:var(--super);
  font-family:var(--font-mono);
  margin-top:6px;
}

/* Background glow */
#hero::before{
  content:'';
  position:absolute;
  top:-200px;
  right:-100px;
  width:700px;
  height:700px;
  background:radial-gradient(ellipse at center,rgba(99,102,241,0.12) 0%,transparent 70%);
  pointer-events:none;
}
.bg-reactive {
  position: relative;
}
.bg-reactive::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  pointer-events: none;
  background: radial-gradient(800px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(99,102,241,0.06), transparent 40%);
  transition: opacity 0.5s;
  z-index: 0;
  border-radius: inherit;
}
.bg-reactive > * {
  position: relative;
  z-index: 1;
}

/* ─── PROBLEM/SOLUTION ───────────────────────────────────── */
.ps-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:start;
}
.ps-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:36px;
}
.ps-card-problem{
  border-top:2px solid #EF4444;
}
.ps-card-solution{
  border-top:2px solid var(--super);
}
.ps-icon{
  width:40px;
  height:40px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
  font-size:1.3rem;
}
.ps-icon-problem{background:rgba(239,68,68,0.1)}
.ps-icon-solution{background:rgba(34,197,94,0.1)}
.ps-list{
  list-style:none;
  margin-top:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ps-list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:0.9rem;
  color:var(--text2);
}
.ps-list .mark{
  flex-shrink:0;
  width:18px;
  height:18px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0.6rem;
  margin-top:2px;
}
.ps-card-problem .mark{background:rgba(239,68,68,0.15);color:#EF4444}
.ps-card-solution .mark{background:rgba(34,197,94,0.15);color:var(--super)}

/* ─── MODULES ────────────────────────────────────────────── */
.modules-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:56px;
}
.module-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:28px;
  transition:border-color 0.2s,transform 0.2s;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.module-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:2px;
  background:var(--card-accent,var(--accent));
  opacity:0;
  transition:opacity 0.2s;
}
.module-card:hover{
  border-color:var(--card-accent,var(--accent));
  transform:translateY(-3px);
}
.module-card:hover::before{opacity:1}
.module-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  background:var(--card-bg,rgba(99,102,241,0.12));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4rem;
  margin-bottom:18px;
}
.module-card p{
  font-size:0.875rem;
  margin-top:8px;
  line-height:1.6;
  flex-grow:1;
}
.module-tag{
  display:inline-table;
  align-self:flex-start;
  font-family:var(--font-mono);
  font-size:0.62rem;
  letter-spacing:0.08em;
  padding:3px 8px;
  border-radius:4px;
  color:var(--card-accent,var(--accent));
  background:var(--card-bg,rgba(99,102,241,0.1));
  margin-top:16px;
}

/* ─── SECONDARY MODULES STRIP ────────────────────────────── */
.strip-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  margin-top:40px;
}
.strip-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:20px;
  transition:border-color 0.2s;
}
.strip-card:hover{border-color:var(--border2)}
.strip-card.soon{
  opacity:0.65;
  border-style:dashed;
}
.strip-card.soon:hover{opacity:0.9;border-color:var(--fire)}
.strip-icon{font-size:1.3rem;margin-bottom:10px}
.strip-card h3{font-size:0.875rem;font-weight:600;margin-bottom:6px}
.strip-card p{font-size:0.78rem;color:var(--text3)}

/* ─── Coming-soon module cards ─────────────────────────── */
.module-card.soon{
  opacity:0.75;
  border-style:dashed;
}
.module-card.soon:hover{
  opacity:1;
  border-color:var(--card-accent,var(--fire));
}
.module-card.soon .module-icon{filter:grayscale(0.45)}
.soon-badge{
  position:absolute;
  top:12px;
  right:12px;
  font-family:var(--font-mono);
  font-size:0.6rem;
  font-weight:500;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--fire);
  background:rgba(249,115,22,0.12);
  border:1px solid rgba(249,115,22,0.25);
  border-radius:999px;
  padding:3px 9px;
}

/* ─── Monitoring mini-cards ────────────────────────────── */
.monitor-card .strip-icon{font-size:1.2rem}
.monitor-card h3{font-size:0.85rem}

/* ─── HOW IT WORKS (SPLIT GRID & SIMULATOR) ──────────────── */
.how-it-works-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.steps-flow{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.step-card{
  display:flex;
  align-items:flex-start;
  gap:20px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:24px;
  transition:all 0.25s ease;
  cursor:pointer;
  position:relative;
  overflow:hidden;
}
.step-card::before{
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:4px;
  background:var(--accent);
  opacity:0;
  transition:opacity 0.22s ease;
}
.step-card:hover,
.step-card.is-active{
  border-color:var(--accent);
  transform:translateX(4px);
  box-shadow:0 10px 30px rgba(99,102,241,0.08);
}
.step-card:hover::before,
.step-card.is-active::before{
  opacity:1;
}
.step-card-num{
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(99,102,241,0.1);
  border:1px solid rgba(99,102,241,0.25);
  font-family:var(--font-display);
  font-size:1.1rem;
  font-weight:700;
  color:var(--accent);
  flex-shrink:0;
  transition:all 0.25s ease;
}
.step-card.is-active .step-card-num{
  background:var(--accent);
  color:#fff;
  transform:scale(1.08);
}
.step-card-body h3{
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:600;
  color:var(--text1);
  margin-bottom:6px;
}
.step-card-body p{
  font-size:0.8rem;
  line-height:1.6;
  color:var(--text2);
}

/* Simulator styling */
.simulator-wrapper{
  perspective:1000px;
}
.simulator-card{
  background:#09090D;
  border:1px solid var(--border2);
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,0.5);
  transform:rotateX(2deg) rotateY(-4deg);
  transition:transform 0.4s ease;
}
.simulator-card:hover{
  transform:rotateX(0deg) rotateY(0deg);
}
.simulator-header{
  background:rgba(255,255,255,0.02);
  border-bottom:1px solid var(--border2);
  padding:12px 18px;
  display:flex;
  align-items:center;
  gap:6px;
}
.simulator-dot{
  width:10px;
  height:10px;
  border-radius:50%;
}
.simulator-dot.red{background:#EF4444}
.simulator-dot.yellow{background:#F59E0B}
.simulator-dot.green{background:#10B981}
.simulator-title{
  font-family:var(--font-mono);
  font-size:0.65rem;
  color:var(--text3);
  margin-left:8px;
  letter-spacing:0.05em;
}
.simulator-body{
  padding:24px;
  min-height:280px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.sim-stage{
  display:none;
}
.sim-stage.active{
  display:block;
  animation:fadeInSim 0.35s ease forwards;
}
@keyframes fadeInSim{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

/* Stage 1 triggers */
.sim-input-box{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:0.85rem;
  margin-bottom:18px;
}
.sim-input-prompt{color:var(--accent2)}
.sim-input-text{color:var(--text1)}
.sim-loading-bar{
  width:100%;
  height:4px;
  background:rgba(255,255,255,0.04);
  border-radius:2px;
  overflow:hidden;
  margin-bottom:12px;
}
.sim-loading-progress{
  width:0;
  height:100%;
  background:var(--accent);
  transition:width 2.2s cubic-bezier(0.1, 0.8, 0.25, 1);
}
.sim-stage.active .sim-loading-progress{
  width:100%;
}
.sim-subtext{
  font-family:var(--font-mono);
  font-size:0.72rem;
  color:var(--text3);
}

/* Stage 2 triggers */
.sim-wave-item{
  background:rgba(255,255,255,0.02);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:12px 16px;
  margin-bottom:10px;
  opacity:0;
  transform:translateY(10px);
  transition:all 0.35s ease;
}
.sim-stage.active #sim-wave-1{opacity:1;transform:translateY(0);transition-delay:0.3s}
.sim-stage.active #sim-wave-2{opacity:1;transform:translateY(0);transition-delay:1.1s}
.sim-stage.active #sim-wave-3{opacity:1;transform:translateY(0);transition-delay:1.9s}

.sim-wave-header{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
.sim-wave-header strong{
  font-family:var(--font-display);
  font-size:0.82rem;
  color:var(--text1);
}
.sim-wave-data{
  display:flex;
  gap:16px;
  font-family:var(--font-mono);
  font-size:0.7rem;
  color:var(--text3);
}

/* Stage 3 triggers */
.sim-plan-title{
  font-family:var(--font-display);
  font-size:0.85rem;
  font-weight:700;
  color:var(--fire);
  letter-spacing:0.08em;
  margin-bottom:14px;
}
.sim-plan-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:20px;
}
.sim-plan-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.sim-plan-num{
  display:flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:rgba(249,115,22,0.12);
  border:1px solid rgba(249,115,22,0.25);
  font-family:var(--font-mono);
  font-size:0.7rem;
  font-weight:600;
  color:var(--fire);
  flex-shrink:0;
}
.sim-plan-list strong{
  display:block;
  font-family:var(--font-display);
  font-size:0.82rem;
  color:var(--text1);
  margin-bottom:2px;
}
.sim-plan-list p{
  font-size:0.75rem;
  line-height:1.5;
  color:var(--text2);
}
.sim-restart-btn{
  background:transparent;
  border:1px solid var(--border2);
  color:var(--text2);
  border-radius:8px;
  padding:8px 16px;
  font-family:var(--font-mono);
  font-size:0.7rem;
  cursor:pointer;
  transition:all 0.18s ease;
  align-self:flex-start;
}
.sim-restart-btn:hover{
  border-color:var(--accent);
  color:var(--text1);
  background:rgba(99,102,241,0.06);
}

@media(max-width:900px){
  .how-it-works-grid{
    grid-template-columns:1fr;
    gap:32px;
  }
}

/* ─── PRICING ────────────────────────────────────────────── */
.billing-toggle-container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  margin-bottom: 24px;
}
.billing-label {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text3);
  transition: color 0.2s;
  cursor: pointer;
  user-select: none;
}
.billing-label.active {
  color: var(--text1);
}
.billing-toggle-btn {
  width: 48px;
  height: 26px;
  border-radius: 13px;
  background: var(--border2);
  border: 1px solid var(--border);
  position: relative;
  cursor: pointer;
  padding: 0;
  transition: background 0.25s;
}
.billing-toggle-btn:hover {
  border-color: var(--accent);
}
.billing-toggle-dot {
  position: absolute;
  top: 2px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), background 0.25s;
}
.billing-toggle-container.yearly .billing-toggle-btn {
  background: var(--accent);
}
.billing-toggle-container.yearly .billing-toggle-dot {
  transform: translateX(22px);
}
.discount-badge {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--super);
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.25);
  border-radius: 999px;
  padding: 2px 8px;
  margin-left: 4px;
}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:56px;
  align-items:stretch;
}
.pricing-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-xl);
  padding:32px;
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
}
.pricing-card.featured{
  border-color:var(--accent);
  background:linear-gradient(160deg,rgba(99,102,241,0.08) 0%,var(--surface) 60%);
}
.pricing-card .feature-list{
  flex:1 1 auto;
}
.pricing-card .btn{
  margin-top:auto;
  width:100%;
  justify-content:center;
}
.pricing-card.featured{
  border-color:var(--accent);
  background:linear-gradient(160deg,rgba(99,102,241,0.08) 0%,var(--surface) 60%);
}
.pricing-featured-badge{
  position:absolute;
  top:-12px;
  left:50%;
  transform:translateX(-50%);
  background:var(--accent);
  color:#fff;
  font-family:var(--font-mono);
  font-size:0.65rem;
  letter-spacing:0.1em;
  padding:4px 14px;
  border-radius:999px;
  white-space:nowrap;
  text-transform:uppercase;
}
.plan-name{
  font-family:var(--font-display);
  font-size:1.05rem;
  font-weight:600;
  color:var(--text1);
  margin-bottom:6px;
}
.plan-price{
  font-family:var(--font-display);
  font-size:2.8rem;
  font-weight:700;
  color:var(--text1);
  line-height:1;
  margin:16px 0 4px;
}
.plan-price sup{
  font-size:1.2rem;
  vertical-align:super;
  font-weight:500;
  color:var(--text2);
}
.plan-period{
  font-size:0.82rem;
  color:var(--text3);
  margin-bottom:8px;
}
.plan-tokens{
  font-family:var(--font-mono);
  font-size:0.8rem;
  color:var(--accent2);
  background:rgba(34,211,238,0.08);
  border-radius:6px;
  padding:4px 10px;
  display:inline-block;
  margin:12px 0 20px;
}
.plan-divider{
  border:none;
  border-top:1px solid var(--border);
  margin:20px 0;
}
.feature-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:28px;
}
.feature-list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:0.86rem;
  color:var(--text2);
}
.feat-check{
  flex-shrink:0;
  width:16px;
  height:16px;
  border-radius:4px;
  background:rgba(34,197,94,0.15);
  color:var(--super);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0.6rem;
  margin-top:2px;
}
.feat-dash{
  flex-shrink:0;
  width:16px;
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text3);
  font-size:0.7rem;
  margin-top:2px;
}
.plan-note{
  font-size:0.76rem;
  color:var(--text3);
  text-align:center;
  margin-top:12px;
}

/* ─── SOCIAL PROOF ───────────────────────────────────────── */
.testimonials-grid{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  padding-bottom:24px;
  gap:20px;
  margin-top:48px;
}
.testimonials-grid::-webkit-scrollbar{height:6px}
.testimonials-grid::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}
.testi-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:28px;
  min-width:320px;
  flex:0 0 calc(33.333% - 14px);
  scroll-snap-align:start;
}
.testi-quote{
  font-size:0.9rem;
  color:var(--text2);
  line-height:1.7;
  margin-bottom:20px;
  font-style:italic;
}
.testi-quote::before{
  content:'"';
  font-family:var(--font-display);
  font-size:2rem;
  color:var(--accent);
  line-height:0.8;
  display:block;
  margin-bottom:8px;
  font-style:normal;
}
.testi-author{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.testi-name{
  font-family:var(--font-display);
  font-size:0.875rem;
  font-weight:600;
  color:var(--text1);
}
.testi-role{
  font-size:0.78rem;
  color:var(--text3);
}

/* ─── TECH STRIP ─────────────────────────────────────────── */
.tech-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:48px;
}
.tech-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:22px;
}
.tech-label{
  font-family:var(--font-mono);
  font-size:0.65rem;
  letter-spacing:0.1em;
  color:var(--text3);
  text-transform:uppercase;
  margin-bottom:10px;
}
.tech-items{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.tech-tag{
  font-family:var(--font-mono);
  font-size:0.72rem;
  color:var(--text2);
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border2);
  border-radius:5px;
  padding:3px 9px;
}

/* ─── FAQ ────────────────────────────────────────────────── */
.faq-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:48px;
}
.faq-item{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:24px;
}
.faq-q{
  font-family:var(--font-display);
  font-size:0.95rem;
  font-weight:600;
  color:var(--text1);
  margin-bottom:10px;
}
.faq-a{
  font-size:0.875rem;
  color:var(--text2);
  line-height:1.65;
}

/* ─── CTA BAND ───────────────────────────────────────────── */
.cta-band{
  background:linear-gradient(135deg,rgba(99,102,241,0.15) 0%,rgba(34,211,238,0.05) 100%);
  border:1px solid rgba(99,102,241,0.25);
  border-radius:var(--r-xl);
  padding:clamp(48px,7vw,80px);
  text-align:center;
  margin:clamp(48px,8vw,96px) 0;
  position:relative;
  overflow:hidden;
  z-index: 1; /* Ensure cta-band acts as positioning context above its pseudo-elements if needed */
}
.cta-band::before{
  content:'';
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:400px;height:400px;
  background:radial-gradient(ellipse,rgba(99,102,241,0.12) 0%,transparent 70%);
  pointer-events:none;
  z-index: -1;
}
.cta-band h2{margin-bottom:16px}
.cta-band .lead{margin:0 auto 36px}
.cta-sub{
  font-size:0.82rem;
  color:var(--text3);
  margin-top:16px;
}

/* ─── FOOTER ─────────────────────────────────────────────── */
footer{
  border-top:1px solid var(--border);
  background:rgba(18,18,26,0.3);
  padding:64px 0 40px;
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:40px;
}
.footer-col-title{
  font-family:var(--font-display);
  font-size:0.9rem;
  font-weight:700;
  color:var(--text1);
  margin-bottom:18px;
}
.footer-text{
  font-size:0.78rem;
  color:var(--text3);
  line-height:1.7;
}
.footer-text a{
  color:var(--accent);
  text-decoration:underline;
  transition:color 0.15s;
}
.footer-text a:hover{color:var(--accent2)}
.footer-links-col{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer-links-col a{
  font-size:0.78rem;
  color:var(--text3);
  transition:color 0.15s;
}
.footer-links-col a:hover{color:var(--text2)}
.footer-bottom{
  border-top:1px solid var(--border);
  margin-top:40px;
  padding-top:28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
}
.footer-copyright{
  font-size:0.7rem;
  color:var(--text3);
}
.footer-secured{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--font-mono);
  font-size:0.65rem;
  color:var(--text3);
  opacity:0.75;
}
.footer-secured svg{
  color:var(--super);
}
.footer-logo-img{
  height:22px;
  width:auto;
  display:block;
  margin-bottom:10px;
}

@media(max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}

/* ─── Section header layout ──────────────────────────────── */
.section-header{
  max-width:640px;
  margin-bottom:0;
}
.section-header.centered{
  max-width:560px;
  margin:0 auto;
  text-align:center;
}
.section-header.centered .eyebrow{display:block;text-align:center}
.section-header.centered .lead{margin:0 auto}

/* ─── Anomaly classes highlight ──────────────────────────── */
.pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 10px;
  border-radius:999px;
  font-family:var(--font-mono);
  font-size:0.65rem;
  font-weight:500;
  letter-spacing:0.05em;
}
.pill-diamond{background:rgba(14,165,233,0.12);color:var(--diamond)}
.pill-super{background:rgba(34,197,94,0.12);color:var(--super)}
.pill-fire{background:rgba(249,115,22,0.12);color:var(--fire)}

/* ─── Responsive ─────────────────────────────────────────── */
@media(max-width:900px){
  .hero-grid{
    display: flex;
    flex-direction: column-reverse;
    gap: 40px;
  }
  .hero-visual{
    display: flex;
    justify-content: center;
    transform: scale(0.8); /* Slightly smaller on mobile to fit better */
  }
  .ps-grid{grid-template-columns:1fr}
  .modules-grid{grid-template-columns:1fr 1fr}
  .strip-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr;gap:32px}
  .steps::before{display:none}
  .pricing-grid{grid-template-columns:1fr}
  
  /* Stacking testimonials on mobile/tablet for perfect adaptation */
  .testimonials-grid {
    flex-direction: column;
    overflow-x: visible;
    gap: 16px;
  }
  .testi-card{
    width: 100%;
    flex: 1 1 auto;
  }

  .tech-grid{grid-template-columns:1fr 1fr}
  .faq-grid{grid-template-columns:1fr}
  
  /* Mobile menu styles */
  .nav-cta {
    margin-left: auto;
    margin-right: 20px;
  }
  .nav-burger {
    display: flex;
  }
  .nav-links {
    display: none;
    flex-direction: column;
    position: fixed;
    top: 64px;
    left: 0;
    right: 0;
    background: rgba(10, 10, 15, 0.95);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
    padding: 32px;
    gap: 24px;
    align-items: center;
    z-index: 99;
  }
  .nav-links.is-open {
    display: flex;
  }
}
@media(max-width:600px){
  .modules-grid{grid-template-columns:1fr}
  .strip-grid{grid-template-columns:1fr 1fr}
  .tech-grid{grid-template-columns:1fr}
  .nav-cta .btn-ghost{display:none}
  
  /* Make sure loader fits beautifully on small mobile screens without overflow */
  .loader-flip-card { height: 490px; }
  .loader-terminal-box { height: 150px; }
  .loader-card-body { padding: 1rem 1rem 1.5rem; }
  .loader-step-label { font-size: 0.52rem; }
}
@media(max-width:420px){
  .strip-grid{grid-template-columns:1fr}
}

/* ─── LOADER DEMO BANNER ────────────────────────────────── */
.loader-section {
  --bg-card:     rgba(24, 24, 27, 0.92);
  --bg-muted:    rgba(39, 39, 42, 0.5);
  --border-loader: rgba(63, 63, 70, 0.5);
  --text-muted-loader:  #a1a1aa;
  --primary-loader:     #6366f1;
  --primary2-loader:    #8b5cf6;
  --success-loader:     #10b981;
  --destructive-loader: #f87171;
  --terminal-bg-loader: #000000e8;
  --terminal-fg-loader: #4ade80;
  position: relative;
}
.loader-overlay-wrapper {
  position: relative;
  width: 100%;
  max-width: 100%; /* Spans full page width */
  margin: 0 auto;
  animation: loaderFadeScaleIn .35s ease forwards;
}
@keyframes loaderFadeScaleIn {
  from { opacity: 0; transform: scale(.98); }
  to   { opacity: 1; transform: scale(1); }
}

/* ─── LOADER 3D FLIP & FULL WIDTH ───────────────────────── */
.loader-flip-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  perspective: 2500px;
}
.loader-flip-card {
  width: 100%;
  height: 520px;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.loader-flip-card.is-flipped {
  transform: rotateY(180deg);
}
.loader-face {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: var(--r-md);
}
.loader-face-front {
  z-index: 2;
  transform: rotateY(0deg);
}
.loader-face-back {
  transform: rotateY(180deg);
  z-index: 1;
}

/* Back Face Styling */
.loader-preview-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--surface);
  border: 1px solid var(--border-loader);
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.6);
}
.loader-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  background: rgba(39,39,42,.3);
  border-bottom: 1px solid var(--border-loader);
  flex-shrink: 0;
}
.loader-preview-hint {
  font-family: var(--font-display);
  font-size: 0.78rem;
  color: var(--text3);
}
.loader-reset-flipper-btn {
  background: transparent;
  border: 1px solid var(--border2);
  color: var(--text2);
  border-radius: 6px;
  padding: 5px 12px;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  cursor: pointer;
  transition: all 0.18s ease;
}
.loader-reset-flipper-btn:hover {
  border-color: var(--accent);
  color: var(--text1);
  background: rgba(99,102,241,0.06);
}
.loader-img-scroll-wrap {
  flex-grow: 1;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--border2) transparent;
}
.loader-preview-img {
  width: 100%;
  height: auto;
  display: block;
  cursor: zoom-in;
  transition: opacity 0.3s;
}
.loader-preview-img:hover {
  opacity: 0.92;
}

/* Expanded View Overlay */
.loader-expanded-overlay {
  position: fixed;
  inset: 0;
  background: rgba(9, 9, 11, 0.98);
  z-index: 300;
  overflow-y: auto;
  overflow-x: hidden;
  cursor: zoom-out;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.loader-expanded-overlay[hidden] {
  display: none;
}
.loader-expanded-img {
  width: 100vw;
  max-width: none;
  height: auto;
  display: block;
  background: #09090b;
}
.loader-expanded-close-hint {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(18,18,26,0.85);
  backdrop-filter: blur(8px);
  border: 1px solid var(--border2);
  border-radius: 999px;
  padding: 8px 18px;
  font-family: var(--font-display);
  font-size: 0.78rem;
  color: var(--text2);
  pointer-events: none;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: loaderPulseDot 2s infinite;
}

.loader-card {
  background: var(--bg-card);
  border: 1px solid var(--border-loader);
  border-radius: var(--r-md);
  box-shadow: 0 20px 60px rgba(0,0,0,.6), 0 0 0 1px rgba(99,102,241,.08);
  backdrop-filter: blur(16px);
  overflow: hidden;
  height: 100%;
}
.loader-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-loader);
  background: rgba(39,39,42,.2);
}
.loader-title-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .95rem;
  font-weight: 600;
  color: #fff;
}
.loader-badge {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: .2rem .6rem;
  border-radius: 9999px;
  background: rgba(99,102,241,.15);
  color: var(--primary-loader);
}
.loader-spinner {
  width: 1.1rem; height: 1.1rem;
  border: 2px solid transparent;
  border-top-color: var(--primary-loader);
  border-radius: 50%;
  animation: loaderSpin .8s linear infinite;
  flex-shrink: 0;
}
@keyframes loaderSpin { to { transform: rotate(360deg); } }

.loader-card-body {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: 1.25rem 1.25rem 2rem;
}
.loader-stepper {
  display: flex;
  width: 100%;
  align-items: flex-start;
  justify-content: space-between;
}
.loader-step {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.loader-step:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 50%; top: .75rem;
  width: 100%;
  height: 2px;
  background: rgba(63,63,70,.6);
}
.loader-step-progress-line {
  position: absolute;
  left: 0; top: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--primary-loader), var(--primary2-loader));
  transition: width .5s ease;
}
.loader-step-icon {
  position: relative;
  z-index: 1;
  width: 1.5rem; height: 1.5rem;
  border-radius: 50%;
  background: #09090b;
  display: flex; align-items: center; justify-content: center;
}
.loader-step-icon svg { width: 1.4rem; height: 1.4rem; }
.loader-step-label {
  margin-top: .4rem;
  font-size: .62rem;
  font-weight: 500;
  text-align: center;
  max-width: 90%;
  line-height: 1.3;
  transition: color .3s;
}
.loader-step.done   .loader-step-label { color: #fff; }
.loader-step.active .loader-step-label { color: var(--primary-loader); }
.loader-step.idle   .loader-step-label { color: var(--text-muted-loader); }

.loader-icon-check { color: var(--primary-loader); animation: loaderPopIn .3s ease; }
.loader-icon-spin  { color: var(--primary-loader); animation: loaderSpin .8s linear infinite; }
.loader-icon-idle  { color: rgba(161,161,170,.4); }

@keyframes loaderPopIn {
  from { transform: scale(0); }
  to   { transform: scale(1); }
}

.loader-progress-wrap { display: flex; flex-direction: column; gap: .4rem; }
.loader-progress-track {
  position: relative;
  height: 10px;
  background: rgba(39,39,42,.7);
  border-radius: 9999px;
  overflow: hidden;
  border: 1px solid rgba(63,63,70,.3);
  box-shadow: inset 0 1px 3px rgba(0,0,0,.3);
}
.loader-progress-fill {
  height: 100%;
  border-radius: 9999px;
  background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 100%);
  box-shadow: 0 0 12px rgba(99,102,241,.55), 0 0 18px rgba(139,92,246,.35);
  transition: width .35s ease;
  position: relative;
  overflow: hidden;
}
.loader-progress-fill::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.13) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: loaderShimmer 2.5s linear infinite;
}
@keyframes loaderShimmer {
  from { background-position: -200% 0; }
  to   { background-position:  200% 0; }
}
.loader-progress-dot {
  position: absolute;
  right: 0; top: 50%;
  transform: translateY(-50%);
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 8px #fff, 0 0 15px rgba(139,92,246,.9);
  animation: loaderPulseDot 1.2s ease-in-out infinite;
}
@keyframes loaderPulseDot {
  0%, 100% { opacity: 1; }
  50%       { opacity: .5; }
}
.loader-hint-text {
  min-height: 1rem;
  font-size: .65rem;
  color: rgba(161,161,170,.7);
  font-style: italic;
  text-align: center;
  transition: opacity .35s;
}
.loader-hint-text.success { color: rgba(16,185,129,.8); font-style: normal; font-weight: 500; }

.loader-terminal-label {
  font-size: .65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted-loader);
}
.loader-terminal-box {
  font-family: 'JetBrains Mono', monospace;
  font-size: .68rem;
  background: var(--terminal-bg-loader);
  color: var(--terminal-fg-loader);
  border-radius: .375rem;
  padding: .85rem;
  height: 200px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: inset 0 2px 8px rgba(0,0,0,.4);
}
.loader-terminal-titlebar {
  display: flex; align-items: center; gap: .5rem;
  border-bottom: 1px solid rgba(74,222,128,.15);
  padding-bottom: .5rem;
  margin-bottom: .5rem;
  flex-shrink: 0;
}
.loader-dot-bar { display: flex; gap: .3rem; }
.loader-dot-bar span {
  display: block; width: .55rem; height: .55rem; border-radius: 50%;
}
.loader-dot-bar .d-r { background: rgba(239,68,68,.7); }
.loader-dot-bar .d-y { background: rgba(234,179,8,.7); }
.loader-dot-bar .d-g { background: rgba(34,197,94,.7); }
.loader-term-name { font-size: .6rem; color: rgba(74,222,128,.5); }

.loader-terminal-logs {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: .25rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(74,222,128,.2) transparent;
}
.loader-log-line {
  display: flex; gap: .5rem; align-items: flex-start;
  line-height: 1.4;
  animation: loaderLogSlide .2s ease forwards;
  opacity: 0;
}
@keyframes loaderLogSlide {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: translateX(0); }
}
.loader-log-ts { color: rgba(74,222,128,.4); flex-shrink: 0; }
.loader-log-msg { word-break: break-all; color: var(--terminal-fg-loader); }
.loader-cursor {
  display: inline-block;
  width: .5rem; height: .85em;
  background: var(--terminal-fg-loader);
  animation: loaderBlink .8s step-end infinite;
  vertical-align: text-bottom;
  margin-top: .2rem;
}
@keyframes loaderBlink { 50% { opacity: 0; } }

.loader-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  border-top: 1px solid rgba(63,63,70,.15);
  padding-top: 1rem;
  min-height: 2.5rem;
}
.loader-success-msg {
  display: flex; align-items: center; gap: .5rem;
  font-size: .75rem; font-weight: 600;
  color: var(--success-loader);
  animation: loaderFadeScaleIn .35s ease;
}
.loader-success-check {
  display: flex; align-items: center; justify-content: center;
  width: 1.2rem; height: 1.2rem;
  border-radius: 50%;
  background: rgba(16,185,129,.12);
  font-size: .7rem;
  animation: loaderPopIn .4s cubic-bezier(.34,1.56,.64,1);
}

.loader-controls {
  display: flex;
  gap: .6rem;
  justify-content: center;
  margin-top: 20px;
}
.loader-ctrl-btn {
  font-family: var(--font-display);
  font-size: .72rem; font-weight: 600;
  padding: .45rem 1rem;
  border-radius: 9999px;
  border: 1px solid var(--border-loader);
  background: rgba(24,24,27,.85);
  color: var(--text-muted-loader);
  cursor: pointer;
  transition: all .2s;
}
.loader-ctrl-btn:hover { border-color: var(--accent); color: var(--text1); background: rgba(99,102,241,.12); }
.loader-ctrl-btn.active { border-color: var(--accent); color: var(--accent); background: rgba(99,102,241,.18); }

@keyframes loaderPulseRing {
  0%, 100% { transform: scale(1);   opacity: .5; }
  50%       { transform: scale(1.2); opacity: 1;  }
}
@keyframes loaderDotPulse {
  0%, 100% { opacity: .3; }
  50%       { opacity: 1;  }
}

/* Animations */
@-webkit-keyframes radar-spin{
  from{-webkit-transform:rotate(0deg)}
  to{-webkit-transform:rotate(360deg)}
}
@keyframes radar-spin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@keyframes radar-pulse{
  0%,100%{opacity:0.4}
  50%{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms !important;transition-duration:0.01ms !important}
}

/* Legal pages additions */

/* ─── Legal page ─────────────────────────────────────────── */
.legal-page{
  padding:calc(64px + clamp(64px,10vw,100px)) 0 clamp(64px,10vw,100px);
}

.legal-header{
  border-bottom:1px solid var(--border);
  padding-bottom:32px;
  margin-bottom:48px;
}

.legal-header h1{
  font-family:var(--font-display);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:700;
  letter-spacing:-0.03em;
  margin-bottom:12px;
}

.legal-meta{
  font-family:var(--font-mono);
  font-size:0.78rem;
  color:var(--text3);
}

.legal-content h2{
  font-family:var(--font-display);
  font-size:1.35rem;
  font-weight:600;
  color:var(--text1);
  margin:48px 0 18px;
}

.legal-content h3{
  font-family:var(--font-display);
  font-size:1.05rem;
  font-weight:600;
  color:var(--text1);
  margin:28px 0 10px;
}

.legal-content p,
.legal-content li{
  color:var(--text2);
  font-size:0.95rem;
  line-height:1.75;
  margin-bottom:12px;
}

.legal-content ul,
.legal-content ol{
  margin:12px 0 18px 22px;
}

.legal-content li{margin-bottom:8px}

.legal-content a{
  color:var(--accent);
  text-decoration:underline;
}

.legal-content a:hover{color:var(--accent2)}

.legal-content strong{color:var(--text1)}

.legal-page{padding:calc(64px + clamp(64px,10vw,100px)) 0 clamp(64px,10vw,100px)}

.legal-header{border-bottom:1px solid var(--border);padding-bottom:32px;margin-bottom:48px}

.legal-header h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-0.03em;margin-bottom:12px}

.legal-meta{font-family:var(--font-mono);font-size:0.78rem;color:var(--text3)}

.legal-content h2{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin:48px 0 18px}

.legal-content h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;margin:28px 0 10px}

.legal-content p,.legal-content li{color:var(--text2);font-size:0.95rem;line-height:1.75;margin-bottom:12px}

.legal-content ul{margin:12px 0 18px 22px}

.legal-content a{color:var(--accent);text-decoration:underline}

.legal-content table{width:100%;border-collapse:collapse;margin:18px 0;font-size:0.85rem}

.legal-content th,.legal-content td{border:1px solid var(--border);padding:12px;text-align:left;color:var(--text2)}

.legal-content th{background:var(--surface);color:var(--text1);font-family:var(--font-display);font-weight:600}

/* ─── DEMO PREVIEW CARD ──────────────────────────────────── */
.demo-card .module-icon{font-size:1.3rem}
.demo-actions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:18px;
}
.demo-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:rgba(255,255,255,0.03);
  border:1px solid var(--border);
  border-radius:12px;
  padding:13px 16px;
  font-family:var(--font-display);
  font-size:0.8rem;
  font-weight:600;
  color:var(--text2);
  cursor:pointer;
  transition:border-color 0.22s ease, background 0.22s ease, color 0.22s ease, transform 0.18s ease, box-shadow 0.18s ease;
  position:relative;
  overflow:hidden;
}
.demo-btn::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:3px;
  height:100%;
  background:var(--card-accent,var(--fire));
  opacity:0;
  transition:opacity 0.22s ease;
}
.demo-btn:hover{
  border-color:var(--card-accent,var(--fire));
  background:rgba(255,255,255,0.06);
  color:var(--text1);
  transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(0,0,0,0.18);
}
.demo-btn:hover::before{opacity:1}
.demo-btn span{
  position:relative;
  z-index:1;
}

/* ─── DEMO MODAL ─────────────────────────────────────────── */
.demo-modal{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.demo-modal[hidden]{display:none}
.demo-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.92);
  backdrop-filter:blur(6px);
}
.demo-modal-content{
  position:relative;
  z-index:1;
  max-width:94vw;
  max-height:94vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow:visible;
}
.demo-modal-close,
.demo-modal-fullscreen{
  position:fixed;
  top:24px;
  width:40px;
  height:40px;
  border-radius:10px;
  background:rgba(18,18,26,0.85);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid var(--border2);
  color:var(--text2);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color 0.18s,color 0.18s;
  z-index: 202; /* Ensure always above backdrop and zoom/pan image */
}
.demo-modal-close:hover,
.demo-modal-fullscreen:hover{
  border-color:var(--accent);
  color:var(--text1);
}
.demo-modal-close{right:24px}
.demo-modal-fullscreen{right:76px}
.demo-modal-arrow{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:50%;
  background:rgba(18,18,26,0.85);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid var(--border2);
  color:var(--text2);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color 0.18s ease,color 0.18s ease,background 0.18s ease;
  z-index:202; /* Ensure always above image */
}
.demo-modal-arrow:hover{
  border-color:var(--accent);
  color:var(--text1);
  background:var(--border);
}
.demo-modal-prev{left:24px}
.demo-modal-next{right:24px}
.demo-modal-figure{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  overflow:visible;
}
.demo-modal-figure img{
  max-width:90vw;
  max-height:82vh;
  border:1px solid var(--border2);
  background:var(--surface);
  object-fit:contain;
  transform-origin:center center;
  transition:transform 0.18s ease;
  cursor:grab;
}
.demo-modal-figure img.is-zoomed{cursor:grab}
.demo-modal-figure img.is-dragging{cursor:grabbing}
.demo-modal-figure figcaption{
  font-family:var(--font-display);
  font-size:0.92rem;
  color:var(--text2);
  text-align:center;
}
.demo-modal.is-wide{
  align-items:flex-start;
  padding:0;
  overflow-y:auto;
  overflow-x:hidden;
}
.demo-modal.is-wide .demo-modal-backdrop{
  position:fixed;
}
.demo-modal.is-wide .demo-modal-content{
  max-width:100vw;
  max-height:none;
  width:100%;
  height:auto;
  padding:0;
}
.demo-modal.is-wide .demo-modal-figure{
  width:100%;
  height:auto;
  justify-content:flex-start;
  max-width:none;
  max-height:none;
}
.demo-modal.is-wide .demo-modal-figure img{
  width:100%;
  height:auto;
  max-width:none;
  max-height:none;
  border-radius:0;
  border:none;
  cursor:default;
  transform:none !important;
}
.demo-modal.is-wide .demo-modal-close{right:24px}
.demo-modal.is-wide .demo-modal-fullscreen{right:76px}
@media(max-width:900px){
  .demo-actions{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .demo-modal-close{
    top:16px; right:16px;
  }
  .demo-modal-fullscreen{
    top:16px; right:64px;
  }
  .demo-modal-arrow{
    width:36px; height:36px;
  }
  .demo-modal-prev{left:12px}
  .demo-modal-next{right:12px}
  .demo-actions{grid-template-columns:repeat(2,1fr);gap:10px}
  .demo-btn{padding:11px 13px;font-size:0.75rem}
}
@media(max-width:420px){
  .demo-actions{grid-template-columns:1fr}
}
