:root{
  --bg:#06111F;--bg2:#0D1F35;--surface:#112840;
  --accent:#00D4C8;--accent2:#7B4FE0;--accent3:#00D4C8;--glow:#0096B4;
  --text:#E8F4F8;--muted:#7A9BB5;
  --font-head:'Fraunces',Georgia,serif;
  --font-body:'Cabinet Grotesk','Inter',sans-serif;
  --font-mono:'DM Mono',monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent2);}

/* Custom cursor */
#cursor-dot,#cursor-ring{
  position:fixed;border-radius:50%;pointer-events:none;
  z-index:99999;transition:opacity .3s;mix-blend-mode:screen;
}
#cursor-dot{width:8px;height:8px;background:linear-gradient(135deg,#00D4C8,#00D4AA);top:-4px;left:-4px;}
#cursor-ring{
  width:32px;height:32px;border:1.5px solid rgba(0,212,200,0.3);
  top:-16px;left:-16px;transition:transform .15s ease, border-color .2s;
}
@media(hover:none){#cursor-dot,#cursor-ring{display:none;}}

/* Keyframe library */
@keyframes gridFloat{0%,100%{background-position:0 0}50%{background-position:30px 30px}}
@keyframes orbFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
@keyframes ringPulse{0%{transform:scale(.8);opacity:.8}100%{transform:scale(2.5);opacity:0}}
@keyframes ecgScroll{0%{stroke-dashoffset:2000}100%{stroke-dashoffset:0}}
@keyframes tickerMove{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes revealChar{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes cardReveal{from{opacity:0.85;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes glassIn{from{opacity:0.85;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}

/* Reveal classes — min opacity 0.85 */
.reveal{opacity:0.85;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* Glassmorphism card */
.glass{
  background:rgba(17,40,64,.65);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(0,212,200,.2);
  border-radius:16px;
}

/* Buttons */
.btn-primary{
  display:inline-block;padding:14px 28px;
  background:var(--accent3);color:#fff;
  border-radius:8px;font-family:var(--font-body);
  font-weight:700;font-size:.95rem;letter-spacing:.02em;
  transition:background .2s,transform .2s;border:none;cursor:pointer;
}
.btn-primary:hover{background:#00AEA4;color:#fff;transform:translateY(-2px);}
.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;background:transparent;
  border:1.5px solid var(--accent);color:var(--accent);
  border-radius:8px;font-family:var(--font-body);
  font-weight:600;font-size:.95rem;
  transition:background .2s,color .2s,transform .2s;cursor:pointer;
}
.btn-ghost:hover{background:var(--accent);color:var(--bg);transform:translateY(-2px);}

/* Dark article cards */
.article-card{
  background:var(--surface);border:1px solid rgba(0,212,200,.12);
  border-radius:16px;overflow:hidden;
  transition:transform .3s,box-shadow .3s;
}
.article-card:hover{transform:translateY(-6px);box-shadow:0 20px 60px rgba(0,212,200,.12);}

/* Scrollbar */
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--bg2);}
::-webkit-scrollbar-thumb{background:var(--accent3);border-radius:3px;}
