/* ============================================================
   ETHEREON — Design System (Green Cyberpunk)
   ============================================================ */
:root{
  color-scheme: dark;

  /* Surfaces */
  --bg-0:#020806;
  --bg-1:#040c08;
  --bg-2:#07120c;
  --bg-3:#0c1e14;
  --surface-0:rgba(255,255,255,.025);
  --surface-1:rgba(94,255,159,.04);
  --surface-2:rgba(94,255,159,.07);
  --surface-3:rgba(94,255,159,.10);

  /* Text */
  --text-0:#e8fff0;
  --text-1:rgba(232,255,240,.82);
  --text-2:rgba(232,255,240,.58);
  --text-3:rgba(232,255,240,.38);
  --text-invert:#001a0d;

  /* Greens (Ethereum-inspired but neon) */
  --g-0:#d1ffe4;
  --g-1:#5eff9f;
  --g-2:#00ff88;
  --g-3:#00cc66;
  --g-4:#009944;
  --g-5:#006633;
  --g-6:#003d20;
  --g-7:#001a0d;

  /* Accents */
  --cyan:#5fe9ff;
  --gold:#ffe066;

  /* Borders + ring */
  --border-0:rgba(94,255,159,.10);
  --border-1:rgba(0,255,136,.24);
  --border-2:rgba(0,255,136,.40);
  --ring:rgba(0,255,136,.45);

  /* Shadows + glow */
  --shadow-1:0 12px 32px rgba(0,0,0,.55);
  --shadow-2:0 22px 70px rgba(0,0,0,.7);
  --glow-1:0 0 24px rgba(0,255,136,.18);
  --glow-2:0 0 50px rgba(0,255,136,.30);
  --glow-3:0 0 90px rgba(0,255,136,.45);

  /* Radii + spacing */
  --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:24px; --r-2xl:32px;
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px;
  --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px;

  /* Fonts */
  --font-display:'Space Grotesk', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --font-body:'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --header-h:72px;
}

/* Reset */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg-0);
  color:var(--text-1);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  min-height:100vh;
}

/* Layered backdrop: glow + grid + scanlines + noise */
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(1100px circle at 12% 0%, rgba(0,255,136,.10), transparent 55%),
    radial-gradient(900px circle at 90% 12%, rgba(94,255,159,.06), transparent 55%),
    radial-gradient(900px circle at 50% 120%, rgba(0,204,102,.05), transparent 55%);
}
body::after{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(rgba(0,255,136,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,255,136,.035) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 50% 30%, black 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%, black 30%, transparent 80%);
  opacity:.55;
}
.scanline-overlay{
  position:fixed;inset:0;pointer-events:none;z-index:1;
  background:repeating-linear-gradient(0deg, transparent 0, transparent 3px, rgba(0,255,136,.018) 3px, rgba(0,255,136,.018) 4px);
  mix-blend-mode:screen;
  opacity:.6;
}
main, header, footer, section{position:relative; z-index:2;}

::selection{background:rgba(0,255,136,.30); color:var(--text-0);}
:focus-visible{outline:none; box-shadow:0 0 0 3px var(--ring); border-radius:8px;}

/* Typography */
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  color:var(--text-0);
  letter-spacing:-.02em;
  line-height:1.18;
  margin:0 0 var(--s-4);
  font-weight:600;
}
h1{font-size:clamp(2.4rem, 5vw, 4.2rem); font-weight:700;}
h2{font-size:clamp(1.85rem, 3.2vw, 2.65rem);}
h3{font-size:clamp(1.2rem, 1.7vw, 1.5rem);}
h4{font-size:1.1rem;}
p{margin:0 0 var(--s-4); color:var(--text-1);}
a{color:var(--g-2); text-decoration:none; transition:color .18s ease;}
a:hover{color:var(--g-1);}
ul,ol{margin:0 0 var(--s-4); padding-left:1.25rem; color:var(--text-1);}
li{margin-bottom:.4rem;}
code{font-family:var(--font-mono); font-size:.9em; background:rgba(0,255,136,.08); color:var(--g-1); padding:1px 6px; border-radius:6px; border:1px solid rgba(0,255,136,.18);}
pre{
  font-family:var(--font-mono);
  background:linear-gradient(180deg, #021008, #04140b);
  border:1px solid rgba(0,255,136,.22);
  border-radius:var(--r-md);
  padding:var(--s-4);
  overflow:auto;
  font-size:.875rem;
  line-height:1.65;
  margin:0 0 var(--s-4);
  color:var(--g-1);
  box-shadow:inset 0 0 24px rgba(0,255,136,.06);
}
pre code{background:transparent; border:none; padding:0; color:inherit;}
img{max-width:100%; display:block;}

/* Container */
.container{width:100%; max-width:1240px; margin:0 auto; padding:0 20px;}
@media (min-width:768px){.container{padding:0 28px;}}
@media (min-width:1024px){.container{padding:0 40px;}}

/* Eyebrow */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:.72rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.22em;
  color:var(--g-2); background:rgba(0,255,136,.08);
  border:1px solid rgba(0,255,136,.26);
  padding:6px 12px; border-radius:999px;
}
.eyebrow.gold{color:var(--gold); background:rgba(255,224,102,.08); border-color:rgba(255,224,102,.30);}
.eyebrow.cyan{color:var(--cyan); background:rgba(95,233,255,.08); border-color:rgba(95,233,255,.30);}
.eyebrow i{font-size:.8rem;}

/* Section rhythm */
.section{padding:var(--s-8) 0;}
@media (min-width:1024px){.section{padding:var(--s-9) 0;}}
.section-header{text-align:center; max-width:780px; margin:0 auto var(--s-7);}
.section-header .eyebrow{margin-bottom:var(--s-4);}
.section-header p{color:var(--text-2); font-size:1.05rem;}

/* Gradient text */
.text-gradient{
  background:linear-gradient(110deg, var(--g-0) 0%, var(--g-1) 30%, var(--g-2) 55%, var(--g-3) 80%, var(--g-1) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  display:inline-block;
}

/* Divider */
.divider-strip{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(94,255,159,.4), rgba(0,255,136,.6), rgba(94,255,159,.4), transparent);
}

/* Utilities */
.text-center{text-align:center;}
.mono{font-family:var(--font-mono);}
.muted{color:var(--text-2);}
.green-text{color:var(--g-2);}
.visually-hidden{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* ============================================================
   NAVIGATION
   ============================================================ */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--header-h);
  background:rgba(2,8,6,.78);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--border-0);
  transition:background-color .24s ease, border-color .24s ease, box-shadow .24s ease;
}
.site-nav.scrolled{
  background:rgba(2,8,6,.92);
  border-bottom-color:rgba(0,255,136,.22);
  box-shadow:0 6px 24px rgba(0,0,0,.55);
}
.nav-inner{
  max-width:1240px; margin:0 auto; height:100%;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 20px; gap:var(--s-5);
}
@media (min-width:768px){.nav-inner{padding:0 28px;}}
@media (min-width:1024px){.nav-inner{padding:0 40px;}}

.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--text-0); font-weight:700;}
.brand-mark{
  width:38px; height:38px; border-radius:10px;
  background:linear-gradient(135deg, rgba(0,255,136,.22), rgba(0,204,102,.10));
  border:1px solid rgba(0,255,136,.40);
  display:grid; place-items:center; color:var(--g-1);
  box-shadow:inset 0 0 14px rgba(0,255,136,.20), 0 0 16px rgba(0,255,136,.20);
  position:relative; overflow:hidden;
}
.brand-mark svg{width:24px; height:24px; filter:drop-shadow(0 0 4px rgba(0,255,136,.7));}
.brand-text{font-family:var(--font-display); font-weight:700; letter-spacing:.04em; font-size:1.08rem;}
.brand-text .accent{color:var(--g-2);}

.nav-links{list-style:none; display:flex; gap:var(--s-3); margin:0; padding:0; align-items:center;}
.nav-links a{
  color:var(--text-1); font-size:.94rem; padding:8px 12px; border-radius:8px;
  position:relative; transition:color .18s ease, background-color .18s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:12px; right:12px; bottom:4px;
  height:2px; background:var(--g-2);
  transform:scaleX(0); transform-origin:left;
  transition:transform .24s ease; border-radius:2px;
}
.nav-links a:hover{color:var(--text-0);}
.nav-links a:hover::after, .nav-links a.active::after{transform:scaleX(1);}
.nav-links a.active{color:var(--text-0);}

.nav-actions{display:flex; align-items:center; gap:10px;}
.nav-toggle{display:none; background:transparent; border:1px solid var(--border-0); color:var(--text-0); width:42px; height:42px; border-radius:10px; align-items:center; justify-content:center; cursor:pointer;}

@media (max-width:1100px){
  .nav-links, .nav-actions .nav-cta-text{display:none;}
  .nav-toggle{display:inline-flex;}
}

.mobile-drawer{
  position:fixed; inset:var(--header-h) 0 0 0;
  background:rgba(2,8,6,.97);
  backdrop-filter:blur(18px); z-index:99;
  transform:translateX(100%); transition:transform .3s ease;
  display:flex; flex-direction:column; padding:var(--s-6) 24px; gap:var(--s-3);
  overflow:auto;
}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer a{
  color:var(--text-0); font-size:1.1rem; padding:14px 16px;
  border:1px solid var(--border-0); border-radius:14px;
  background:var(--surface-0);
  transition:border-color .18s ease, background-color .18s ease;
}
.mobile-drawer a:hover{border-color:var(--border-1); background:var(--surface-1);}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  border-radius:14px; padding:13px 20px;
  text-decoration:none; cursor:pointer; border:1px solid transparent;
  transition:background-color .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease;
  user-select:none; white-space:nowrap; position:relative; overflow:hidden;
}
.btn:focus-visible{box-shadow:0 0 0 3px var(--ring);}
.btn i{font-size:.95em;}

.btn-primary{
  background:linear-gradient(135deg, var(--g-1), var(--g-2));
  color:var(--text-invert); border-color:rgba(0,0,0,.08);
  box-shadow:0 12px 32px rgba(0,255,136,.30), inset 0 1px 0 rgba(255,255,255,.25);
}
.btn-primary:hover{
  background:linear-gradient(135deg, var(--g-0), var(--g-1));
  box-shadow:0 18px 50px rgba(0,255,136,.45), inset 0 1px 0 rgba(255,255,255,.30);
  color:var(--text-invert); transform:translateY(-1px);
}
.btn-primary:active{transform:translateY(0);}

.btn-secondary{background:transparent; color:var(--text-0); border-color:var(--border-2);}
.btn-secondary:hover{background:rgba(0,255,136,.08); border-color:rgba(0,255,136,.55); color:var(--text-0); transform:translateY(-1px);}

.btn-ghost{background:transparent; color:var(--text-1); border-color:var(--border-0);}
.btn-ghost:hover{background:var(--surface-1); color:var(--text-0); border-color:var(--border-1);}

.btn-lg{padding:16px 26px; font-size:1rem; border-radius:16px;}
.btn-sm{padding:10px 14px; font-size:.85rem; border-radius:10px;}
.btn-group{display:flex; flex-wrap:wrap; gap:12px;}

/* Magnetic glow */
.btn-magnet::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(120px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.18), transparent 50%);
  opacity:0; transition:opacity .24s ease; pointer-events:none;
}
.btn-magnet:hover::after{opacity:1;}

/* ============================================================
   CARDS
   ============================================================ */
.card{
  background:linear-gradient(180deg, var(--surface-1), var(--surface-0));
  border:1px solid var(--border-0);
  border-radius:var(--r-lg);
  padding:var(--s-5);
  box-shadow:var(--shadow-1);
  position:relative;
  transition:border-color .24s ease, transform .24s ease, box-shadow .24s ease, background-color .24s ease;
}
.card::before{
  content:""; position:absolute; inset:0; pointer-events:none; border-radius:var(--r-lg);
  background:linear-gradient(135deg, rgba(0,255,136,.04), transparent 60%);
  opacity:0; transition:opacity .24s ease;
}
.card:hover{
  border-color:rgba(0,255,136,.40);
  transform:translateY(-3px);
  box-shadow:var(--shadow-2), 0 0 30px rgba(0,255,136,.12);
}
.card:hover::before{opacity:1;}
.card-icon{
  width:54px; height:54px; border-radius:14px; display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(0,255,136,.18), rgba(0,204,102,.08));
  border:1px solid rgba(0,255,136,.32);
  color:var(--g-1); font-size:1.4rem; margin-bottom:var(--s-4);
  box-shadow:inset 0 0 14px rgba(0,255,136,.18);
}
.card h3{margin-bottom:var(--s-3);}
.card p{color:var(--text-2);}
.card ul li::marker{color:var(--g-2);}
.card .card-badge{
  position:absolute; top:16px; right:16px;
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.18em;
  color:var(--gold); background:rgba(255,224,102,.10);
  border:1px solid rgba(255,224,102,.32);
  padding:4px 10px; border-radius:999px; text-transform:uppercase;
}

/* ============================================================
   BADGES
   ============================================================ */
.badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:.7rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.16em;
  padding:5px 11px; border-radius:999px;
  border:1px solid var(--border-0); background:var(--surface-1); color:var(--text-1);
}
.badge.success{color:var(--g-2); background:rgba(0,255,136,.10); border-color:rgba(0,255,136,.34);}
.badge.gold{color:var(--gold); background:rgba(255,224,102,.10); border-color:rgba(255,224,102,.32);}
.badge.cyan{color:var(--cyan); background:rgba(95,233,255,.10); border-color:rgba(95,233,255,.32);}

/* "Under development" big banner */
.dev-banner{
  position:relative;
  background:linear-gradient(90deg, rgba(255,224,102,.08), rgba(0,255,136,.06), rgba(255,224,102,.08));
  border-top:1px solid rgba(255,224,102,.22);
  border-bottom:1px solid rgba(255,224,102,.22);
  color:var(--text-1);
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:10px 16px;
  text-align:center;
  overflow:hidden;
}
.dev-banner i{color:var(--gold); margin:0 6px;}
.dev-banner .pulse-dot{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--gold); margin-right:8px; vertical-align:middle;
  box-shadow:0 0 0 0 rgba(255,224,102,.6);
  animation:pulseDev 2s ease-in-out infinite;
}
@keyframes pulseDev{
  0%,100%{box-shadow:0 0 0 0 rgba(255,224,102,.6);}
  50%{box-shadow:0 0 0 8px rgba(255,224,102,0);}
}

/* ============================================================
   STATS
   ============================================================ */
.stats-row{display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:18px;}
.stat{
  text-align:left; padding:20px 22px;
  border:1px solid var(--border-0); border-radius:var(--r-md);
  background:var(--surface-0);
  transition:border-color .24s ease, transform .24s ease;
}
.stat:hover{border-color:rgba(0,255,136,.30); transform:translateY(-2px);}
.stat-num{
  font-family:var(--font-display); font-weight:700; font-size:1.85rem;
  color:var(--text-0); line-height:1;
}
.stat-num .unit{color:var(--g-2); font-size:1.1rem; margin-left:4px;}
.stat-label{display:block; margin-top:8px; color:var(--text-2); font-size:.82rem; font-family:var(--font-mono); letter-spacing:.08em; text-transform:uppercase;}

/* ============================================================
   HERO (Home)
   ============================================================ */
.hero{position:relative; padding:calc(var(--header-h) + 60px) 0 var(--s-8); overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:var(--s-7); align-items:center;}
@media (max-width:1024px){.hero-grid{grid-template-columns:1fr; gap:var(--s-6);}}

.hero h1{margin-bottom:var(--s-4);}
.hero .lead{font-size:1.18rem; color:var(--text-1); max-width:580px; margin-bottom:var(--s-5);}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:var(--s-6);}
.hero-proof{display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; max-width:600px;}
@media (max-width:600px){.hero-proof{grid-template-columns:1fr;}}

.hero-visual{position:relative; display:flex; flex-direction:column; align-items:center; gap:24px;}

/* Status pill */
.status-pill{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  padding:8px 16px; border-radius:999px;
  background:rgba(255,224,102,.08);
  border:1px solid rgba(255,224,102,.32);
  color:var(--gold); margin-bottom:18px;
}
.status-pill .dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px rgba(255,224,102,.20);
  animation:pulseDot 1.8s ease-in-out infinite;
}
@keyframes pulseDot{50%{transform:scale(1.25);}}

/* Terminal */
.terminal{
  background:linear-gradient(180deg, #02100a 0%, #06140e 100%);
  border:1px solid rgba(0,255,136,.22);
  border-radius:var(--r-lg);
  font-family:var(--font-mono); font-size:.86rem; color:var(--g-1);
  box-shadow:var(--shadow-1), inset 0 0 30px rgba(0,255,136,.05);
  overflow:hidden; position:relative; width:100%;
}
.terminal-head{display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid rgba(0,255,136,.16); background:rgba(0,255,136,.03);}
.terminal-head .dot{width:11px; height:11px; border-radius:50%; background:rgba(255,255,255,.18);}
.terminal-head .dot.r{background:#ff5c7a;} .terminal-head .dot.y{background:var(--gold);} .terminal-head .dot.g{background:var(--g-2);}
.terminal-head .t{margin-left:auto; font-size:.74rem; color:var(--text-3);}
.terminal-body{padding:18px 22px; min-height:280px; line-height:1.85;}
.terminal-body .line{display:block; white-space:pre-wrap;}
.terminal-body .prompt{color:var(--gold);}
.terminal-body .ok{color:var(--g-2);}
.terminal-body .warn{color:var(--gold);}
.terminal-body .err{color:#ff5c7a;}
.terminal-body .mut{color:var(--text-3);}
.terminal-body .cursor::after{content:"_"; color:var(--g-2); animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}

/* ============================================================
   ETHEREON 3D LOGO (HD diamond)
   ============================================================ */
.eth-stage{
  position:relative;
  width:min(440px, 100%);
  margin:0 auto;
  aspect-ratio:1/1.18;
  perspective:1600px;
  perspective-origin:50% 42%;
}
.eth-stage::after{
  content:"";
  position:absolute; inset:-40px;
  background:radial-gradient(ellipse at 50% 50%, rgba(0,255,136,.32) 0%, rgba(0,255,136,.14) 30%, transparent 70%);
  filter:blur(38px);
  pointer-events:none; z-index:-2;
  animation:ethBreathe 5s ease-in-out infinite;
}
@keyframes ethBreathe{
  0%,100%{opacity:.7; transform:scale(1);}
  50%{opacity:1; transform:scale(1.08);}
}
.eth-stage::before{
  content:"";
  position:absolute; left:50%; top:50%;
  width:130%; height:130%;
  transform:translate(-50%,-50%);
  background:radial-gradient(closest-side, rgba(0,255,136,.30), rgba(0,255,136,.10) 45%, transparent 72%);
  pointer-events:none; z-index:-1;
}

.eth-3d{
  position:absolute; inset:0;
  transform-style:preserve-3d;
  animation:ethSpin 14s linear infinite;
}
@keyframes ethSpin{
  0%{transform:rotateY(0) rotateX(8deg);}
  100%{transform:rotateY(360deg) rotateX(8deg);}
}

.eth-face{
  position:absolute; left:50%; top:50%;
  width:100%; height:100%;
  transform-origin:50% 50%;
  transform:translate(-50%,-50%);
}
.eth-face svg{width:100%; height:100%; display:block; overflow:visible; filter:drop-shadow(0 0 12px rgba(0,255,136,.45));}

.eth-face.s0{transform:translate(-50%,-50%) rotateY(0deg)   translateZ(2px);}
.eth-face.s1{transform:translate(-50%,-50%) rotateY(45deg)  translateZ(2px); opacity:.55;}
.eth-face.s2{transform:translate(-50%,-50%) rotateY(90deg)  translateZ(2px); opacity:.32;}
.eth-face.s3{transform:translate(-50%,-50%) rotateY(135deg) translateZ(2px); opacity:.42;}
.eth-face.s4{transform:translate(-50%,-50%) rotateY(180deg) translateZ(2px); opacity:.38;}
.eth-face.s5{transform:translate(-50%,-50%) rotateY(225deg) translateZ(2px); opacity:.42;}
.eth-face.s6{transform:translate(-50%,-50%) rotateY(270deg) translateZ(2px); opacity:.32;}
.eth-face.s7{transform:translate(-50%,-50%) rotateY(315deg) translateZ(2px); opacity:.55;}

.eth-halo{
  position:absolute; left:50%; top:50%;
  width:90%; height:90%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid rgba(0,255,136,.30);
  pointer-events:none;
  animation:ethHalo 8s linear infinite;
}
.eth-halo.a2{width:106%; height:106%; border-color:rgba(0,255,136,.18); animation-duration:11s; animation-direction:reverse;}
.eth-halo.a3{width:122%; height:122%; border-color:rgba(0,255,136,.10); animation-duration:16s; border-style:dashed;}
@keyframes ethHalo{to{transform:translate(-50%,-50%) rotate(360deg);}}

/* Orbiting particles */
.eth-orbit{
  position:absolute; left:50%; top:50%;
  width:100%; height:100%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation:ethHalo 12s linear infinite;
}
.eth-orbit::before, .eth-orbit::after{
  content:""; position:absolute;
  width:10px; height:10px; border-radius:50%;
  background:var(--g-1);
  box-shadow:0 0 16px var(--g-2), 0 0 32px rgba(0,255,136,.6);
}
.eth-orbit::before{left:50%; top:-3%; transform:translateX(-50%);}
.eth-orbit::after{left:50%; bottom:-3%; transform:translateX(-50%); width:7px; height:7px; background:var(--g-2);}

.eth-orbit-2{
  position:absolute; left:50%; top:50%;
  width:108%; height:108%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation:ethHalo 18s linear infinite reverse;
}
.eth-orbit-2::before, .eth-orbit-2::after{
  content:""; position:absolute; width:6px; height:6px; border-radius:50%;
  background:var(--g-0); box-shadow:0 0 14px var(--g-1);
}
.eth-orbit-2::before{left:-2%; top:50%; transform:translateY(-50%);}
.eth-orbit-2::after{right:-2%; top:50%; transform:translateY(-50%);}

/* Tech ticker */
.eth-ticker{
  margin-top:var(--s-5);
  padding:10px 22px;
  display:inline-flex; gap:22px; align-items:center;
  font-family:var(--font-mono); font-size:.78rem; color:var(--g-2);
  background:rgba(0,255,136,.06);
  border:1px solid rgba(0,255,136,.26);
  border-radius:999px;
  letter-spacing:.14em; text-transform:uppercase;
  box-shadow:inset 0 0 18px rgba(0,255,136,.10);
}
.eth-ticker .dot{
  width:8px; height:8px; border-radius:50%; background:var(--g-2);
  box-shadow:0 0 10px var(--g-2);
  animation:tickerDot 1.6s ease-in-out infinite;
}
@keyframes tickerDot{50%{opacity:.35; transform:scale(.75);}}

/* ============================================================
   PAGE HERO (other pages)
   ============================================================ */
.page-hero{
  position:relative;
  padding:calc(var(--header-h) + 60px) 0 var(--s-7);
  border-bottom:1px solid var(--border-0);
}
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(700px circle at 20% 0%, rgba(0,255,136,.10), transparent 55%),
    radial-gradient(500px circle at 80% 100%, rgba(94,255,159,.06), transparent 55%);
  pointer-events:none;
}
.page-hero-inner{position:relative; max-width:920px;}
.page-hero .eyebrow{margin-bottom:var(--s-4);}
.page-hero h1{margin-bottom:var(--s-4);}
.page-hero p{color:var(--text-1); font-size:1.08rem; max-width:720px;}

/* ============================================================
   HERO CANVAS (Three.js mount)
   ============================================================ */
.hero-canvas{
  position:absolute; inset:0; z-index:-1;
  pointer-events:none;
}

/* ============================================================
   FEATURES / SERVICES / GENERIC GRIDS
   ============================================================ */
.grid-3{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;}
@media (max-width:1024px){.grid-3{grid-template-columns:repeat(2, 1fr);}}
@media (max-width:640px){.grid-3{grid-template-columns:1fr;}}

.grid-2{display:grid; grid-template-columns:repeat(2, 1fr); gap:22px;}
@media (max-width:768px){.grid-2{grid-template-columns:1fr;}}

.grid-4{display:grid; grid-template-columns:repeat(4, 1fr); gap:18px;}
@media (max-width:1100px){.grid-4{grid-template-columns:repeat(3, 1fr);}}
@media (max-width:768px){.grid-4{grid-template-columns:repeat(2, 1fr);}}
@media (max-width:480px){.grid-4{grid-template-columns:1fr;}}

/* ============================================================
   PIPELINE / KILL-CHAIN STEPS
   ============================================================ */
.pipeline{counter-reset:step; display:grid; gap:22px; margin-top:var(--s-6);}
.pipe-step{
  position:relative;
  padding:28px 28px 28px 116px;
  background:var(--surface-0);
  border:1px solid var(--border-0);
  border-radius:var(--r-lg);
  transition:border-color .24s ease, background-color .24s ease, transform .24s ease;
}
.pipe-step:hover{border-color:rgba(0,255,136,.40); background:var(--surface-1); transform:translateY(-2px);}
.pipe-step::before{
  counter-increment:step;
  content:counter(step, decimal-leading-zero);
  position:absolute; left:24px; top:22px;
  font-family:var(--font-display); font-size:3.2rem; font-weight:700; line-height:1;
  background:linear-gradient(135deg, var(--g-1) 0%, var(--g-2) 50%, var(--g-4) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 0 32px rgba(0,255,136,.4);
}
.pipe-step h3{margin:0 0 10px; color:var(--text-0); font-size:1.12rem;}
.pipe-step p{margin:0 0 10px; color:var(--text-2); line-height:1.7;}
.pipe-step p:last-child{margin-bottom:0;}
@media (max-width:640px){
  .pipe-step{padding:24px 22px;}
  .pipe-step::before{position:static; display:block; margin-bottom:8px; font-size:2.5rem;}
}

/* ============================================================
   TIMELINE / ROADMAP
   ============================================================ */
.timeline{position:relative; max-width:880px; margin:0 auto; padding:var(--s-5) 0;}
.timeline::before{
  content:""; position:absolute; left:18px; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg, transparent, rgba(0,255,136,.4), rgba(94,255,159,.5), rgba(0,204,102,.4), transparent);
}
@media (min-width:900px){.timeline::before{left:50%; transform:translateX(-1px);}}
.t-item{position:relative; padding-left:54px; margin-bottom:var(--s-7);}
@media (min-width:900px){
  .t-item{width:50%; padding:0 var(--s-6);}
  .t-item:nth-child(odd){left:0; text-align:right; padding-right:60px;}
  .t-item:nth-child(even){left:50%; text-align:left; padding-left:60px;}
}
.t-marker{
  position:absolute; left:0; top:4px; width:38px; height:38px; border-radius:50%;
  background:var(--bg-0); border:2px solid var(--g-2);
  display:grid; place-items:center;
  font-family:var(--font-mono); font-size:.7rem; color:var(--g-1); font-weight:700;
  box-shadow:0 0 0 6px rgba(0,255,136,.10), 0 0 18px rgba(0,255,136,.30);
}
@media (min-width:900px){
  .t-item:nth-child(odd) .t-marker{left:auto; right:-19px;}
  .t-item:nth-child(even) .t-marker{left:-19px;}
}
.t-year{display:inline-block; font-family:var(--font-mono); font-size:.78rem; color:var(--g-2); text-transform:uppercase; letter-spacing:.18em; margin-bottom:8px;}
.t-content{
  background:var(--surface-0); border:1px solid var(--border-0);
  border-radius:var(--r-md); padding:20px 24px;
  transition:border-color .24s ease, background-color .24s ease;
}
.t-content:hover{border-color:rgba(0,255,136,.36); background:var(--surface-1);}
.t-content h3{margin:0 0 8px; color:var(--text-0); font-size:1.08rem;}
.t-content p{margin:0; color:var(--text-2); font-size:.92rem;}
.t-content .stat-tag{
  display:inline-block; font-family:var(--font-mono); font-size:.7rem;
  background:rgba(0,255,136,.08); border:1px solid rgba(0,255,136,.30);
  color:var(--g-2); padding:3px 10px; border-radius:999px;
  margin-top:8px; letter-spacing:.1em; text-transform:uppercase;
}

/* ============================================================
   PRICING
   ============================================================ */
.pricing-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;}
@media (max-width:900px){.pricing-grid{grid-template-columns:1fr;}}
.price-card{padding:34px 28px; display:flex; flex-direction:column; gap:14px; position:relative;}
.price-card.featured{
  border-color:rgba(0,255,136,.45);
  box-shadow:0 0 0 1px rgba(0,255,136,.20), 0 0 50px rgba(0,255,136,.18);
  background:linear-gradient(180deg, rgba(0,255,136,.06), rgba(0,204,102,.02));
}
.price-card.featured::before{
  content:"MOST POPULAR";
  position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background:linear-gradient(135deg, var(--g-2), var(--g-4));
  color:var(--text-invert); font-size:10px; font-weight:700; letter-spacing:2px;
  padding:4px 14px; border-radius:20px; box-shadow:0 8px 20px rgba(0,255,136,.35);
}
.price-card .tier-name{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--text-2);
}
.price-card .price{font-family:var(--font-display); font-size:2.8rem; font-weight:700; color:var(--text-0); line-height:1;}
.price-card .price span{font-size:1rem; color:var(--text-2); font-weight:500;}
.price-card .target{font-size:.92rem; color:var(--text-2); padding-bottom:14px; border-bottom:1px solid var(--border-0);}
.price-card ul{list-style:none; padding:0; display:flex; flex-direction:column; gap:10px; margin:var(--s-3) 0; color:var(--text-1); font-size:.92rem;}
.price-card ul li{display:flex; align-items:flex-start; gap:10px;}
.price-card ul li::before{content:"\f058"; font-family:"Font Awesome 6 Free"; font-weight:900; color:var(--g-2); margin-top:2px;}
.price-card .btn{margin-top:auto;}

/* ============================================================
   FEED / LIVE WIDGET
   ============================================================ */
.feed{background:#02100a; border:1px solid var(--border-0); border-radius:var(--r-md); margin-top:var(--s-5);}
.feed-head{display:flex; align-items:center; gap:10px; padding:12px 18px; border-bottom:1px solid var(--border-0); font-family:var(--font-mono); font-size:.8rem; color:var(--text-2); text-transform:uppercase; letter-spacing:.12em;}
.feed-head .live{margin-left:auto; display:inline-flex; align-items:center; gap:6px; color:var(--g-2);}
.feed-head .live::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--g-2); animation:tickerDot 1.2s ease-in-out infinite;}
.feed-items{max-height:240px; overflow:auto;}
.feed-item{
  display:grid; grid-template-columns:96px 110px 1fr; gap:12px;
  padding:10px 18px; border-bottom:1px dashed var(--border-0);
  font-family:var(--font-mono); font-size:.82rem; align-items:center;
}
.feed-item:last-child{border-bottom:none;}
.feed-item .t{color:var(--text-3);}
.feed-item .k{font-weight:700; letter-spacing:.1em; text-transform:uppercase; font-size:.72rem;}
.feed-item .k.scan{color:var(--g-1);}
.feed-item .k.threat{color:var(--gold);}
.feed-item .k.blocked{color:#ff5c7a;}
.feed-item .v{color:var(--text-1);}

/* ============================================================
   FORMS
   ============================================================ */
.form-field{display:flex; flex-direction:column; gap:8px; margin-bottom:var(--s-4);}
.form-field label{font-size:.875rem; color:var(--text-1); font-weight:500;}
.form-field label .req{color:var(--g-2);}
.input, .textarea, .select{
  width:100%;
  background:rgba(0,255,136,.03);
  border:1px solid rgba(0,255,136,.16);
  border-radius:12px;
  padding:12px 14px;
  color:var(--text-0); font-family:var(--font-body); font-size:.95rem;
  transition:border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.textarea{min-height:140px; resize:vertical;}
.input:focus, .textarea:focus, .select:focus{outline:none; border-color:rgba(0,255,136,.55); box-shadow:0 0 0 3px rgba(0,255,136,.18); background:rgba(0,255,136,.05);}
.input::placeholder, .textarea::placeholder{color:rgba(232,255,240,.42);}
.form-grid{display:grid; gap:16px; grid-template-columns:repeat(auto-fit, minmax(240px,1fr));}
.form-msg{padding:12px 14px; border-radius:12px; margin-bottom:var(--s-4); display:none; align-items:center; gap:10px; font-size:.9rem;}
.form-msg.show{display:flex;}
.form-msg.success{background:rgba(0,255,136,.10); border:1px solid rgba(0,255,136,.32); color:var(--g-2);}
.form-msg.error{background:rgba(255,92,122,.10); border:1px solid rgba(255,92,122,.34); color:#ff5c7a;}

/* ============================================================
   CTA BANNER
   ============================================================ */
.cta-banner{
  background:
    linear-gradient(135deg, rgba(0,255,136,.12), rgba(0,204,102,.06));
  border:1px solid rgba(0,255,136,.22);
  border-radius:var(--r-xl);
  padding:48px;
  text-align:center;
  position:relative; overflow:hidden;
}
.cta-banner::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(600px circle at 0% 0%, rgba(0,255,136,.16), transparent 50%),
    radial-gradient(400px circle at 100% 100%, rgba(94,255,159,.10), transparent 50%);
}
.cta-banner > *{position:relative;}
.cta-banner h2{margin-bottom:12px;}
.cta-banner p{max-width:600px; margin:0 auto var(--s-5); color:var(--text-1); font-size:1.05rem;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:linear-gradient(180deg, transparent, rgba(0,255,136,.03));
  border-top:1px solid var(--border-0);
  padding:var(--s-8) 0 var(--s-5);
  margin-top:var(--s-9);
}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--s-6); margin-bottom:var(--s-6);}
@media (max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr; gap:var(--s-5);}}
.footer-brand h4{font-family:var(--font-display); color:var(--text-0); margin-bottom:var(--s-3); display:flex; align-items:center; gap:10px;}
.footer-brand p{color:var(--text-2); font-size:.9rem; max-width:340px;}
.footer-col h4{color:var(--text-0); font-size:.95rem; margin-bottom:var(--s-4); font-family:var(--font-display);}
.footer-col ul{list-style:none; padding:0; margin:0;}
.footer-col li{margin-bottom:10px;}
.footer-col a{color:var(--text-2); font-size:.9rem; transition:color .18s ease;}
.footer-col a:hover{color:var(--g-2);}
.footer-social{display:flex; gap:10px; margin-top:var(--s-4);}
.footer-social a{
  width:40px; height:40px; border-radius:10px; display:grid; place-items:center;
  background:var(--surface-1); border:1px solid var(--border-0); color:var(--text-1);
  transition:border-color .18s ease, color .18s ease, background-color .18s ease;
}
.footer-social a:hover{border-color:var(--g-2); color:var(--g-2); background:rgba(0,255,136,.08);}
.footer-bottom{
  border-top:1px solid var(--border-0);
  padding-top:var(--s-5);
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:space-between; align-items:center;
  color:var(--text-3); font-size:.85rem;
}
.footer-bottom a{color:var(--text-3); margin-left:14px;}
.footer-bottom a:hover{color:var(--g-2);}

/* ============================================================
   SCROLL REVEAL / PRELOADER
   ============================================================ */
.reveal{opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-d1{transition-delay:.08s;} .reveal-d2{transition-delay:.16s;}
.reveal-d3{transition-delay:.24s;} .reveal-d4{transition-delay:.32s;}

.preloader{
  position:fixed; inset:0; z-index:999;
  background:var(--bg-0);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px;
  transition:opacity .5s ease, visibility .5s ease;
}
.preloader.hidden{opacity:0; visibility:hidden; pointer-events:none;}
.preloader-logo{font-family:var(--font-display); font-weight:700; letter-spacing:.3em; font-size:1.4rem; color:var(--text-0);}
.preloader-logo .accent{color:var(--g-2);}
.preloader-bar{width:240px; height:2px; background:var(--surface-2); border-radius:2px; overflow:hidden; position:relative;}
.preloader-bar::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, var(--g-2), var(--g-1), var(--g-2));
  transform:translateX(-100%); animation:loader 1.2s ease-in-out infinite;
}
@keyframes loader{50%{transform:translateX(0);} 100%{transform:translateX(100%);}}

/* Back to top */
.back-to-top{
  position:fixed; right:22px; bottom:22px; width:46px; height:46px; border-radius:50%;
  background:linear-gradient(135deg, var(--g-1), var(--g-2)); color:var(--text-invert);
  border:none; cursor:pointer; display:grid; place-items:center;
  box-shadow:0 0 30px rgba(0,255,136,.30);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:80;
}
.back-to-top.show{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{transform:translateY(-2px);}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
  .reveal{opacity:1 !important; transform:none !important;}
}
