/* ============================================================
   NEXORA GRID — Design System
   Display: Space Grotesk / Body: Inter / Data: IBM Plex Mono
   ============================================================ */

:root{
  --navy: #081B4A;
  --navy-2: #0B2361;
  --accent: #7B61FF;
  --accent-dark: #5A4CFF;
  --violet-soft: #EDE9FF;
  --bg: #FAFAFC;
  --text: #1D2233;
  --muted: rgba(29,34,51,.62);
  --muted-2: rgba(29,34,51,.42);
  --success: #16B87A;
  --line: rgba(29,34,51,.10);
  --line-dark: rgba(255,255,255,.12);
  --white: #ffffff;

  --radius-card: 24px;
  --radius-btn: 14px;
  --container: 1440px;
  --content: 1280px;
  --section-y: 120px;

  --ease: cubic-bezier(.16,.8,.24,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter', sans-serif;
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }

::selection{ background:var(--accent); color:#fff; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}

/* ---------- type ---------- */
h1,h2,h3,h4{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.05;
  color:var(--navy);
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:500;
}
.eyebrow::before{
  content:'';
  width:7px; height:7px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px rgba(123,97,255,.18);
}
.eyebrow.light{ color:#B9AEFF; }
.eyebrow.light::before{ background:#B9AEFF; box-shadow:0 0 0 4px rgba(185,174,255,.18); }

.hero-h1{ font-size:76px; }
.h1{ font-size:56px; }
.h2{ font-size:44px; }
.h3{ font-size:28px; }
.lede{ font-size:20px; color:var(--muted); line-height:1.65; font-weight:400; }
.body-sm{ font-size:15px; color:var(--muted); }
.mono{ font-family:'IBM Plex Mono', monospace; }

@media (max-width:1100px){
  .hero-h1{ font-size:56px; }
  .h1{ font-size:40px; }
  .h2{ font-size:32px; }
  .h3{ font-size:22px; }
}
@media (max-width:640px){
  .hero-h1{ font-size:40px; }
  .h1{ font-size:32px; }
  .h2{ font-size:26px; }
  body{ font-size:16px; }
}

/* ---------- layout ---------- */
.wrap{ max-width:var(--container); margin:0 auto; padding:0 48px; }
.content{ max-width:var(--content); margin:0 auto; padding:0 48px; }
@media (max-width:900px){ .wrap,.content{ padding:0 24px; } }

.section{ padding:var(--section-y) 0; position:relative; }
.section-tight{ padding:80px 0; }
@media (max-width:900px){
  .section{ padding:72px 0; }
  .section-tight{ padding:56px 0; }
}
.section.on-light{ background:var(--bg); }
.section.on-lavender{ background:linear-gradient(180deg,#F3F1FF, #EDE9FF 60%, #F3F1FF); }
.section.on-navy{ background:var(--navy); color:#fff; }
.section.on-navy h1, .section.on-navy h2, .section.on-navy h3{ color:#fff; }
.section.on-navy .lede{ color:rgba(255,255,255,.68); }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr; gap:40px; } }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 26px;
  border-radius:var(--radius-btn);
  font-size:16px; font-weight:500;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg, var(--accent), var(--accent-dark));
  color:#fff;
  box-shadow:0 1px 2px rgba(8,27,74,.06), 0 8px 24px -8px rgba(123,97,255,.55);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 28px -6px rgba(123,97,255,.6); }
.btn-outline{
  background:transparent;
  border:1.5px solid rgba(29,34,51,.16);
  color:var(--text);
}
.btn-outline:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.on-navy .btn-outline{ border-color:rgba(255,255,255,.22); color:#fff; }
.on-navy .btn-outline:hover{ border-color:#B9AEFF; color:#B9AEFF; }
.btn-ghost{ color:var(--navy); font-weight:500; display:inline-flex; align-items:center; gap:6px; }
.btn-ghost svg{ transition:transform .3s var(--ease); }
.btn-ghost:hover svg{ transform:translateX(4px); }
.btn-sm{ padding:10px 18px; font-size:14px; }

/* ---------- nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:20px 0;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(250,250,252,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  padding:14px 0;
}
.nav-row{ display:flex; align-items:center; justify-content:space-between; gap:32px; }
.logo{ display:flex; align-items:center; gap:10px; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:19px; color:var(--navy); letter-spacing:-0.01em; }
.logo .mark{ width:30px; height:30px; }
.nav-links{ display:flex; align-items:center; gap:4px; }
.nav-item{ position:relative; }
.nav-link{
  display:flex; align-items:center; gap:5px;
  padding:10px 16px; border-radius:10px;
  font-size:15px; font-weight:500; color:var(--text);
  transition:background .25s var(--ease), color .25s var(--ease);
}
.nav-link:hover{ background:rgba(123,97,255,.08); color:var(--accent-dark); }
.nav-link svg{ transition:transform .3s var(--ease); width:14px; height:14px; opacity:.6; }
.nav-item:hover .nav-link svg{ transform:rotate(180deg); }
.nav-actions{ display:flex; align-items:center; gap:12px; }

.mega{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(6px);
  width:560px; background:#fff; border-radius:20px; border:1px solid var(--line);
  box-shadow:0 24px 48px -16px rgba(8,27,74,.18);
  padding:20px; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
  display:grid; grid-template-columns:1fr 1fr; gap:4px;
}
.nav-item:hover .mega{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.mega-item{ display:flex; gap:14px; padding:14px; border-radius:14px; transition:background .2s; }
.mega-item:hover{ background:var(--violet-soft); }
.mega-ico{ width:38px; height:38px; border-radius:10px; background:var(--violet-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--accent); }
.mega-item:hover .mega-ico{ background:#fff; }
.mega-item h4{ font-size:14.5px; font-weight:600; color:var(--navy); margin-bottom:3px; font-family:'Inter',sans-serif; letter-spacing:0; }
.mega-item p{ font-size:12.5px; color:var(--muted); line-height:1.4; }

.mobile-toggle{ display:none; width:40px; height:40px; align-items:center; justify-content:center; border-radius:10px; }
@media (max-width:1080px){
  .nav-links{ display:none; }
  .nav-actions .btn-outline{ display:none; }
  .mobile-toggle{ display:flex; }
}

.mobile-drawer{
  position:fixed; inset:0; z-index:200; background:var(--navy);
  transform:translateX(100%); transition:transform .5s var(--ease);
  display:flex; flex-direction:column; padding:24px;
}
.mobile-drawer.open{ transform:translateX(0); }
.mobile-drawer .drawer-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:40px; }
.mobile-drawer .logo{ color:#fff; }
.mobile-drawer a{ font-family:'Space Grotesk',sans-serif; font-size:28px; color:#fff; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.mobile-drawer .btn{ margin-top:24px; width:100%; }
.close-drawer{ width:40px;height:40px; border-radius:10px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#fff; }

/* ---------- hero grid visualization (signature element) ---------- */
.hero{
  padding:190px 0 100px;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(60% 50% at 82% 8%, rgba(123,97,255,.16), transparent 60%),
    var(--bg);
}
.hero-bg-grid{
  position:absolute; inset:0; z-index:0; opacity:.55; pointer-events:none;
  background-image:
    linear-gradient(rgba(8,27,74,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8,27,74,.05) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(180deg, black, transparent 85%);
}
.hero-inner{ position:relative; z-index:2; }
.hero-top{ max-width:760px; }
.hero-stat-strip{
  display:flex; gap:0; margin-top:64px;
  border-top:1px solid var(--line); padding-top:28px;
  flex-wrap:wrap; row-gap:20px;
}
.hero-stat{ flex:1; min-width:150px; padding-right:24px; }
.hero-stat .num{ font-family:'Space Grotesk',sans-serif; font-size:30px; font-weight:600; color:var(--navy); }
.hero-stat .lbl{ font-size:13.5px; color:var(--muted); margin-top:4px; }

.hero-visual{ margin-top:72px; position:relative; }
.grid-map-frame{
  border-radius:var(--radius-card);
  border:1px solid var(--line);
  background:linear-gradient(180deg,#0C2564 0%, #081B4A 60%, #061539 100%);
  box-shadow:0 40px 90px -30px rgba(8,27,74,.45);
  overflow:hidden;
  position:relative;
}
.grid-map-topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px; border-bottom:1px solid rgba(255,255,255,.08);
}
.gm-dots{ display:flex; gap:7px; }
.gm-dots span{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.18); }
.gm-tag{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:rgba(255,255,255,.55); display:flex; align-items:center; gap:8px; }
.gm-tag .live{ width:7px; height:7px; border-radius:50%; background:var(--success); box-shadow:0 0 0 4px rgba(22,184,122,.22); animation:pulse-dot 1.8s infinite; }
@keyframes pulse-dot{ 0%,100%{opacity:1;} 50%{opacity:.35;} }

.grid-svg{ width:100%; height:auto; display:block; }
.gm-node{ fill:#B9AEFF; }
.gm-node-core{ fill:#7B61FF; }
.gm-line{ stroke:rgba(185,174,255,.28); stroke-width:1.2; fill:none; }
.gm-pulse{ fill:#EDE9FF; filter:drop-shadow(0 0 6px rgba(237,233,255,.9)); }

/* ---------- logo strip ---------- */
.logo-strip-label{ text-align:center; font-size:13.5px; color:var(--muted-2); font-family:'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; margin-bottom:40px; }
.marquee{ overflow:hidden; position:relative; mask-image:linear-gradient(90deg, transparent, black 10%, black 90%, transparent); }
.marquee-track{ display:flex; gap:72px; width:max-content; animation:scroll-left 32s linear infinite; align-items:center; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
@keyframes scroll-left{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
.marq-logo{ font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:21px; color:var(--muted-2); white-space:nowrap; display:flex; align-items:center; gap:9px; opacity:.75; transition:opacity .3s; }
.marq-logo:hover{ opacity:1; color:var(--navy); }
.marq-logo .dot{ width:7px;height:7px;border-radius:2px; background:var(--accent); }

/* ---------- section headers ---------- */
.section-head{ max-width:640px; margin-bottom:64px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ margin-top:16px; }
.section-head .lede{ margin-top:18px; }

/* ---------- node/product cards ---------- */
.node-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:1080px){ .node-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .node-grid{ grid-template-columns:1fr; } }

.node-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-card);
  padding:32px; display:flex; flex-direction:column; gap:18px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.node-card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -24px rgba(8,27,74,.18); border-color:rgba(123,97,255,.35); }
.node-id{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--accent); letter-spacing:.08em; }
.node-ico{ width:46px; height:46px; border-radius:12px; background:var(--violet-soft); display:flex; align-items:center; justify-content:center; color:var(--accent); }
.node-card h3{ font-size:20px; }
.node-card p{ color:var(--muted); font-size:15px; line-height:1.55; }
.node-card .tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:6px; }
.node-tag{ font-family:'IBM Plex Mono',monospace; font-size:11px; padding:5px 10px; border-radius:8px; background:var(--bg); border:1px solid var(--line); color:var(--muted); }

/* ---------- industries (photo cards) ---------- */
.industry-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .industry-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .industry-grid{ grid-template-columns:1fr; } }
.industry-cell{
  position:relative; border-radius:20px; overflow:hidden; isolation:isolate;
  min-height:260px; display:flex; flex-direction:column; justify-content:flex-end;
  padding:26px; background:var(--navy);
  box-shadow:0 20px 44px -22px rgba(8,27,74,.35);
}
.industry-cell img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  transition:transform .6s var(--ease);
}
.industry-cell::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(8,27,74,.15) 0%, rgba(8,27,74,.55) 55%, rgba(6,20,55,.92) 100%);
  transition:background .4s var(--ease);
}
.industry-cell:hover img{ transform:scale(1.06); }
.industry-cell:hover::before{ background:linear-gradient(180deg, rgba(123,97,255,.18) 0%, rgba(8,27,74,.6) 55%, rgba(6,20,55,.94) 100%); }
.industry-cell .n{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:rgba(255,255,255,.55); }
.industry-cell h4{ font-family:'Space Grotesk',sans-serif; font-size:19px; margin:10px 0 6px; color:#fff; }
.industry-cell p{ font-size:14px; color:rgba(255,255,255,.72); line-height:1.5; }

/* ---------- generic photo tiles (image_split / about imagery) ---------- */
.img-split{ display:grid; grid-template-columns:1.1fr .9fr; gap:20px; }
@media (max-width:800px){ .img-split{ grid-template-columns:1fr; } }
.photo-tile{
  position:relative; border-radius:var(--radius-card); overflow:hidden; isolation:isolate;
  min-height:360px; display:flex; align-items:flex-end; padding:32px;
  box-shadow:0 30px 60px -28px rgba(8,27,74,.35);
}
.photo-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.photo-tile::before{ content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(8,27,74,.05) 0%, rgba(8,27,74,.75) 100%); }
.photo-tile .tag{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.06em; color:#fff; background:rgba(255,255,255,.14); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.25); padding:7px 14px; border-radius:100px; display:inline-flex; align-items:center; gap:8px; }
.photo-tile .tag .dot{ width:6px;height:6px;border-radius:50%; background:var(--success); }
@media (max-width:800px){ .photo-tile{ min-height:280px; } }

.photo-frame{ position:relative; border-radius:var(--radius-card); overflow:hidden; box-shadow:0 30px 70px -32px rgba(8,27,74,.3); }
.photo-frame img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- feature split w/ dashboard mock ---------- */
.feat-list{ margin-top:32px; display:flex; flex-direction:column; gap:0; }
.feat-row{ display:flex; gap:18px; padding:22px 0; border-top:1px solid var(--line); }
.feat-row:last-child{ border-bottom:1px solid var(--line); }
.feat-ico{ width:38px; height:38px; border-radius:10px; background:var(--violet-soft); color:var(--accent); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.feat-row h4{ font-family:'Inter',sans-serif; font-size:16.5px; font-weight:600; color:var(--navy); margin-bottom:4px; }
.feat-row p{ font-size:14.5px; color:var(--muted); }

.dash-mock{
  border-radius:20px; background:#fff; border:1px solid var(--line);
  box-shadow:0 30px 70px -30px rgba(8,27,74,.22);
  overflow:hidden;
}
.dash-topbar{ display:flex; align-items:center; gap:8px; padding:14px 18px; border-bottom:1px solid var(--line); }
.dash-topbar span{ width:8px;height:8px;border-radius:50%; background:var(--line); }
.dash-body{ padding:22px; }
.dash-row{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px dashed var(--line); }
.dash-row:last-child{ border-bottom:none; }
.dash-row .k{ font-size:13.5px; color:var(--muted); }
.dash-row .v{ font-family:'IBM Plex Mono',monospace; font-size:14px; color:var(--navy); font-weight:500; }
.dash-bar{ height:6px; border-radius:4px; background:var(--violet-soft); overflow:hidden; width:88px; }
.dash-bar i{ display:block; height:100%; background:linear-gradient(90deg,var(--accent),var(--accent-dark)); border-radius:4px; }
.badge-ok{ font-family:'IBM Plex Mono',monospace; font-size:11px; background:rgba(22,184,122,.12); color:var(--success); padding:4px 9px; border-radius:7px; }

/* ---------- audience tabs ---------- */
.aud-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:40px; }
.aud-tab{ padding:12px 20px; border-radius:12px; border:1px solid var(--line); font-size:14.5px; font-weight:500; color:var(--muted); transition:all .3s var(--ease); }
.aud-tab.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.aud-panel{ display:none; }
.aud-panel.active{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:900px){ .aud-panel.active{ grid-template-columns:1fr; gap:32px; } }
.aud-panel .checklist{ margin-top:24px; display:flex; flex-direction:column; gap:14px; }
.aud-panel .checklist li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--text); }
.aud-panel .checklist svg{ flex-shrink:0; margin-top:2px; color:var(--success); }

/* ---------- stats / impact ---------- */
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.08); border-radius:24px; overflow:hidden; border:1px solid rgba(255,255,255,.08); }
@media (max-width:900px){ .stat-grid{ grid-template-columns:1fr 1fr; } }
.stat-cell{ background:var(--navy); padding:44px 32px; }
.stat-cell .big{ font-family:'Space Grotesk',sans-serif; font-size:48px; font-weight:600; color:#fff; }
.stat-cell .big span{ color:var(--accent); }
.stat-cell .lbl{ font-size:14px; color:rgba(255,255,255,.55); margin-top:10px; }

/* ---------- CTA banner ---------- */
.cta-banner{
  border-radius:32px;
  background:linear-gradient(120deg,#7B61FF, #5A4CFF 55%, #3E2FD9);
  padding:80px 64px;
  text-align:center;
  position:relative; overflow:hidden;
  color:#fff;
}
.cta-banner::before{
  content:''; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(60% 100% at 50% 0%, black, transparent 80%);
}
.cta-banner > *{ position:relative; z-index:2; }
.cta-banner h2{ color:#fff; }
.cta-banner p{ color:rgba(255,255,255,.82); margin-top:14px; max-width:560px; margin-left:auto; margin-right:auto; }
.cta-actions{ display:flex; gap:14px; justify-content:center; margin-top:36px; flex-wrap:wrap; }
.cta-banner .btn-outline{ border-color:rgba(255,255,255,.4); color:#fff; }
.cta-banner .btn-outline:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.cta-banner .btn-primary{ background:#fff; color:var(--accent-dark); box-shadow:0 8px 24px -8px rgba(0,0,0,.25); }
.cta-banner .btn-primary:hover{ background:#fff; }

@media (max-width:640px){ .cta-banner{ padding:56px 28px; border-radius:24px; } }

/* ---------- footer ---------- */
.footer{ background:var(--navy); color:#fff; padding:88px 0 32px; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:40px; padding-bottom:64px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:1080px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .footer-top{ grid-template-columns:1fr; } }
.footer-col h5{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:18px; }
.footer-col a{ display:block; font-size:15px; color:rgba(255,255,255,.72); padding:7px 0; transition:color .25s; }
.footer-col a:hover{ color:#fff; }
.footer-brand p{ color:rgba(255,255,255,.6); font-size:15px; margin:18px 0 26px; max-width:280px; }
.footer-form{ display:flex; gap:0; max-width:320px; border:1px solid rgba(255,255,255,.16); border-radius:12px; overflow:hidden; }
.footer-form input{ flex:1; background:transparent; border:none; padding:13px 16px; color:#fff; font-size:14px; }
.footer-form input::placeholder{ color:rgba(255,255,255,.4); }
.footer-form button{ padding:13px 18px; background:var(--accent); color:#fff; display:flex; align-items:center; }
.footer-form button:hover{ background:var(--accent-dark); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:28px; flex-wrap:wrap; gap:16px; }
.footer-bottom p{ font-size:13.5px; color:rgba(255,255,255,.45); }
.socials{ display:flex; gap:10px; }
.socials a{ width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.7); transition:all .25s; }
.socials a:hover{ background:var(--accent); color:#fff; }

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(28px); }

/* ---------- misc pages ---------- */
.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--muted-2); margin-bottom:24px; }
.breadcrumb a:hover{ color:var(--accent); }

.pill{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); padding:8px 16px; border-radius:100px; font-size:13.5px; color:rgba(255,255,255,.8); }

.integration-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:40px; }
.integration-chip{ display:flex; align-items:center; gap:10px; padding:12px 18px; border-radius:100px; border:1px solid var(--line); background:#fff; font-size:14px; font-weight:500; color:var(--text); transition:all .3s var(--ease); }
.integration-chip:hover{ border-color:var(--accent); transform:translateY(-3px); box-shadow:0 12px 24px -12px rgba(123,97,255,.4); }
.integration-chip .dot{ width:8px;height:8px;border-radius:50%; background:var(--success); }

.timeline{ position:relative; padding-left:40px; }
.timeline::before{ content:''; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:var(--line); }
.tl-item{ position:relative; padding-bottom:56px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:''; position:absolute; left:-40px; top:4px; width:11px; height:11px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 5px var(--violet-soft); }
.tl-item .yr{ font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent); margin-bottom:8px; display:block; }
.tl-item h4{ font-size:20px; margin-bottom:8px; }
.tl-item p{ color:var(--muted); max-width:520px; }

.principle-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:900px){ .principle-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .principle-grid{ grid-template-columns:1fr; } }
.principle-card{ padding:32px; border-radius:20px; background:#fff; border:1px solid var(--line); }
.principle-card .n{ font-family:'Space Grotesk',sans-serif; font-size:32px; color:var(--violet-soft); -webkit-text-stroke:1.5px var(--accent); font-weight:700; }
.principle-card h4{ font-size:18px; margin:14px 0 8px; }
.principle-card p{ font-size:14.5px; color:var(--muted); }

/* contact page */
.contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:72px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:48px; } }
.form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-card); padding:40px; box-shadow:0 30px 70px -40px rgba(8,27,74,.18); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:560px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:8px; margin-top:20px; }
.field label{ font-size:13.5px; font-weight:500; color:var(--navy); }
.field label .req{ color:var(--accent); }
.field input, .field select, .field textarea{
  padding:13px 16px; border-radius:12px; border:1.5px solid var(--line);
  font-family:'Inter',sans-serif; font-size:14.5px; color:var(--text); background:var(--bg);
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--accent); background:#fff; }
.field textarea{ resize:vertical; min-height:110px; }
.contact-support{ margin-top:48px; padding:28px; border-radius:18px; background:var(--violet-soft); }
.contact-support a{ color:var(--accent-dark); font-weight:500; text-decoration:underline; text-underline-offset:3px; }
.contact-info-row{ display:flex; gap:16px; align-items:flex-start; padding:20px 0; border-top:1px solid var(--line); }
.contact-info-row:first-of-type{ border-top:none; }
.contact-info-row .ico{ width:40px;height:40px; border-radius:10px; background:var(--violet-soft); color:var(--accent); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-info-row h4{ font-size:15.5px; font-family:'Inter',sans-serif; color:var(--navy); margin-bottom:3px;}
.contact-info-row p{ font-size:14px; color:var(--muted); }

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--accent); outline-offset:2px;
}
