@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* ── Tokens ─────────────────────────────────────────────── */
:root {
  --bg:        #080c18;
  --bg2:       #0d1225;
  --surface:   rgba(255,255,255,0.05);
  --border:    rgba(255,255,255,0.1);
  --violet:    #7c3aed;
  --violet-l:  #9d5cff;
  --cyan:      #06b6d4;
  --cyan-l:    #22d3ee;
  --red:       #ef4444;
  --green:     #22c55e;
  --blue:      #3b82f6;
  --text:      #f1f5f9;
  --muted:     #94a3b8;
  --faint:     #334155;
  --radius:    14px;
  --radius-sm: 8px;
  --blur:      blur(16px);
  --transition: 0.25s ease;
  --shadow:    0 8px 32px rgba(0,0,0,0.4);
}

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

/* ── Background Orbs ─────────────────────────────────────── */
body::before,body::after{
  content:'';position:fixed;border-radius:50%;pointer-events:none;z-index:0;filter:blur(80px);opacity:.35;
}
body::before{width:600px;height:600px;background:radial-gradient(circle,var(--violet),transparent 70%);top:-200px;left:-200px;}
body::after{width:500px;height:500px;background:radial-gradient(circle,var(--cyan),transparent 70%);bottom:-150px;right:-150px;}

/* ── Navigation ──────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2rem;height:68px;
  background:rgba(8,12,24,0.7);backdrop-filter:var(--blur);
  border-bottom:1px solid var(--border);
  transition:background var(--transition), transform 0.3s ease;
}
.nav--hidden{transform:translateY(-100%);}
.nav__logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.25rem;background:linear-gradient(135deg,var(--violet-l),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.nav__links{display:flex;gap:0.25rem;align-items:center;}
.nav__links a{padding:0.4rem 0.85rem;border-radius:var(--radius-sm);font-size:0.875rem;font-weight:500;color:var(--muted);transition:color var(--transition),background var(--transition);}
.nav__links a:hover,.nav__links a.active{color:var(--text);background:var(--surface);}
.nav__hamburger{display:none;flex-direction:column;gap:5px;padding:0.5rem;background:none;border:none;cursor:pointer;}
.nav__hamburger span{width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform 0.3s,opacity 0.3s;}
.nav__hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav__hamburger.open span:nth-child(2){opacity:0;}
.nav__hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav__mobile{display:none;position:fixed;inset:68px 0 0;background:rgba(8,12,24,0.95);backdrop-filter:var(--blur);z-index:99;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0.5rem 1.5rem 2rem;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
.nav__mobile.open{display:flex;}
.nav__mobile a{font-size:1.1rem;font-weight:500;color:var(--muted);padding:1rem 0;border-bottom:1px solid rgba(255,255,255,0.07);transition:color var(--transition);}
.nav__mobile a:last-child{border-bottom:none;}
.nav__mobile a:hover,.nav__mobile a.active{color:var(--text);}

/* ── Layout ──────────────────────────────────────────────── */
main{padding-top:68px;}
.page-content, .page-container{padding-top:calc(130px + 4rem); padding-bottom: 4rem; padding-left: 1.5rem; padding-right: 1.5rem; max-width: 1100px; margin: 0 auto;}
.container{max-width:1100px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem;}
.section{padding:5rem 0;}

/* ── Hero ────────────────────────────────────────────────── */
.hero{min-height:calc(100vh - 68px);display:flex;align-items:center;justify-content:center;text-align:center;padding:4rem 1.5rem;position:relative;z-index:1;}
.hero__eyebrow{font-size:0.875rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:1rem;opacity:0;animation:fadeUp 0.6s 0.1s ease forwards;}
.hero__name{font-family:'Space Grotesk',sans-serif;font-size:clamp(3rem,8vw,6rem);font-weight:700;line-height:1.1;margin-bottom:1.5rem;background:linear-gradient(135deg,#fff 0%,var(--violet-l) 40%,var(--cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:0;animation:fadeUp 0.6s 0.2s ease forwards;}
.hero__tagline{font-size:clamp(1rem,2.5vw,1.35rem);color:var(--muted);max-width:600px;margin:0 auto 2.5rem;opacity:0;animation:fadeUp 0.6s 0.3s ease forwards;}
.hero__cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp 0.6s 0.4s ease forwards;}

/* ── Buttons ─────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.75rem 1.75rem;border-radius:var(--radius-sm);font-weight:600;font-size:0.95rem;transition:transform var(--transition),box-shadow var(--transition),opacity var(--transition);}
.btn:hover{transform:translateY(-2px);}
.btn--primary{background:linear-gradient(135deg,var(--violet),var(--cyan));color:#fff;box-shadow:0 4px 20px rgba(124,58,237,0.4);}
.btn--primary:hover{box-shadow:0 8px 30px rgba(124,58,237,0.6);}
.btn--ghost{background:var(--surface);border:1px solid var(--border);color:var(--text);backdrop-filter:var(--blur);}
.btn--ghost:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.2);}
.btn--sm{padding:0.5rem 1.1rem;font-size:0.825rem;}

/* ── Glass Cards ─────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);backdrop-filter:var(--blur);padding:1.75rem;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);}
.card:hover{transform:translateY(-4px);border-color:rgba(124,58,237,0.4);box-shadow:0 12px 40px rgba(124,58,237,0.15);}
.card--glow{box-shadow:0 0 0 1px rgba(124,58,237,0.2),inset 0 1px 0 rgba(255,255,255,0.07);}

/* ── Grid ────────────────────────────────────────────────── */
.grid{display:grid;gap:1.5rem;}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}

/* ── Section Headers ─────────────────────────────────────── */
.section__header, .section-header, .hero-section{margin-bottom:3rem;text-align:center;}
.hero-section h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;margin-bottom:1rem;}
.hero-section .subtitle{color:var(--muted);font-size:1.1rem;max-width:600px;margin:0 auto;}
.section__label{font-size:0.8rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:0.5rem;}
.section__title{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;margin-bottom:0.75rem;}
.section__subtitle{color:var(--muted);max-width:560px;margin:0 auto;}
.gradient-text{background:linear-gradient(135deg,var(--violet-l),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ── Timeline ────────────────────────────────────────────── */
.timeline{position:relative;padding-left:2.5rem;}
.timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--violet),var(--cyan),transparent);}
.timeline__item{position:relative;margin-bottom:2rem;}
.timeline__item::before{content:'';position:absolute;left:-2.5rem;top:1.5rem;width:12px;height:12px;border-radius:50%;background:var(--violet);border:2px solid var(--bg);box-shadow:0 0 0 3px rgba(124,58,237,0.3);transform:translateX(-5px);}

/* ── Expandable Cards ────────────────────────────────────── */
.expandable{cursor:pointer;}
.expandable__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.expandable__icon{width:28px;height:28px;border-radius:50%;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:0.75rem;color:var(--muted);transition:transform var(--transition),background var(--transition);flex-shrink:0;}
.expandable.open .expandable__icon{transform:rotate(180deg);background:rgba(124,58,237,0.2);color:var(--violet-l);}
.expandable__body{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease;}
.expandable.open .expandable__body{max-height:1200px;padding-top:1.25rem;}

/* ── Role Card ───────────────────────────────────────────── */
.role__meta{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;margin-top:0.35rem;}
.role__title{font-family:'Space Grotesk',sans-serif;font-size:1.1rem;font-weight:600;}
.role__company{font-weight:600;font-size:1.15rem;color:var(--text);}
.role__list{padding-left:1.25rem;list-style:disc;color:var(--muted);font-size:0.9rem;display:flex;flex-direction:column;gap:0.4rem;}
.role__subheading{font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--violet-l);margin:1rem 0 0.5rem;}

/* ── Badges ──────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:0.3rem;padding:0.25rem 0.75rem;border-radius:999px;font-size:0.75rem;font-weight:600;letter-spacing:0.04em;}
.badge--violet{background:rgba(124,58,237,0.15);border:1px solid rgba(124,58,237,0.3);color:var(--violet-l);}
.badge--cyan{background:rgba(6,182,212,0.12);border:1px solid rgba(6,182,212,0.3);color:var(--cyan-l);}
.badge--muted{background:rgba(148,163,184,0.1);border:1px solid rgba(148,163,184,0.2);color:var(--muted);}
.badge--red{background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.3);color:#fca5a5;}
.badge--green{background:rgba(34,197,94,0.12);border:1px solid rgba(34,197,94,0.3);color:#86efac;}
.badge--blue{background:rgba(59,130,246,0.12);border:1px solid rgba(59,130,246,0.3);color:#93c5fd;}

/* ── Skill Chips ─────────────────────────────────────────── */
.chip-group{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.75rem;}
.chip{padding:0.3rem 0.8rem;border-radius:999px;font-size:0.8rem;font-weight:500;background:var(--surface);border:1px solid var(--border);color:var(--muted);transition:color var(--transition),border-color var(--transition),background var(--transition);}
.chip:hover{color:var(--violet-l);border-color:rgba(124,58,237,0.4);background:rgba(124,58,237,0.08);}
.chip--violet{background:rgba(124,58,237,0.1);border-color:rgba(124,58,237,0.3);color:var(--violet-l);}
.chip--cyan{background:rgba(6,182,212,0.1);border-color:rgba(6,182,212,0.3);color:var(--cyan-l);}

/* ── PSI Project Cards ───────────────────────────────────── */
.psi-card{border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--border);backdrop-filter:var(--blur);transition:transform var(--transition),box-shadow var(--transition);}
.psi-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,0.4);}
.psi-card__header{padding:1.5rem;border-bottom:1px solid var(--border);}
.psi-card__title{font-family:'Space Grotesk',sans-serif;font-size:1.2rem;font-weight:700;margin-bottom:0.5rem;}
.psi-card__media{height:180px;background:linear-gradient(135deg,rgba(124,58,237,0.2),rgba(6,182,212,0.15));display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:0.875rem;border-bottom:1px solid var(--border);position:relative;overflow:hidden;}
.psi-card__media--gallery {
  cursor: pointer;
  background: var(--bg2);
}
.psi-card__media--gallery img {
  display: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.psi-card__media--gallery img.active {
  display: block;
}
.psi-card__media--gallery img.active.project-icon {
  object-fit: contain;
  padding: 2.5rem;
  background: radial-gradient(circle, rgba(124,58,237,0.15) 0%, transparent 70%);
}
.psi-card__media--gallery:hover img.active {
  transform: scale(1.05);
}
.gallery-overlay {
  position: absolute;
  inset: 0;
  background: rgba(8,12,24,0.4);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
}
.psi-card__media--gallery:hover .gallery-overlay {
  opacity: 1;
}
.gallery-overlay span {
  background: linear-gradient(135deg, var(--violet), var(--cyan));
  color: #fff;
  padding: 0.6rem 1.2rem;
  border-radius: 99px;
  font-size: 0.85rem;
  font-weight: 600;
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
  transform: translateY(10px);
  transition: transform 0.3s ease;
}
.psi-card__media--gallery:hover .gallery-overlay span {
  transform: translateY(0);
}

/* ── Lightbox ────────────────────────────────────────────── */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(8, 12, 24, 0.98);
  z-index: 2000;
  display: none;
  animation: fadeIn 0.3s ease;
}
.lightbox.active { display: flex; align-items: center; justify-content: center; }
.lightbox__close {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  font-size: 2rem;
  color: #fff;
  cursor: pointer;
  z-index: 2010;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
  transition: all 0.3s;
  backdrop-filter: blur(4px);
}
.lightbox__close:hover { background: var(--red); transform: rotate(90deg); }
.lightbox__content {
  max-width: min(1000px, 90vw);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lightbox__img-container {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 0;
}
.lightbox__img {
  max-width: 100%;
  max-height: 75vh;
  border-radius: 12px;
  box-shadow: 0 20px 80px rgba(0,0,0,0.8);
  border: 1px solid var(--border);
  object-fit: contain;
  user-select: none;
}
.lightbox__nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 64px;
  height: 64px;
  background: rgba(124,58,237,0.2);
  border: 1px solid rgba(124,58,237,0.3);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 1.5rem;
  backdrop-filter: blur(8px);
  z-index: 2005;
}
.lightbox__nav:hover { background: var(--violet); border-color: var(--violet-l); transform: translateY(-50%) scale(1.1); box-shadow: 0 0 30px rgba(124,58,237,0.4); }
.lightbox__prev { left: 2rem; }
.lightbox__next { right: 2rem; }
.lightbox__counter { 
  margin-top: 1rem;
  color: var(--muted); 
  font-size: 1rem; 
  font-weight: 500;
  letter-spacing: 0.1em;
  background: rgba(255,255,255,0.05);
  padding: 0.4rem 1rem;
  border-radius: 99px;
}

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleUp { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }

@media (max-width: 1024px) {
  .lightbox__nav { width: 48px; height: 48px; font-size: 1.2rem; }
  .lightbox__prev { left: 1rem; }
  .lightbox__next { right: 1rem; }
}
@media (max-width: 768px) {
  .lightbox__nav { top: auto; bottom: 2rem; transform: none; }
  .lightbox__nav:hover { transform: scale(1.1); }
  .lightbox__prev { left: 20%; }
  .lightbox__next { right: 20%; }
  .lightbox__img { max-height: 70vh; }
}

.psi-section{padding:1rem 1.5rem;border-bottom:1px solid var(--border);}
.psi-section:last-child{border-bottom:none;}
.psi-section__label{display:flex;align-items:center;gap:0.4rem;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.4rem;}
.psi-section__label--problem{color:#f87171;}
.psi-section__label--solution{color:#4ade80;}
.psi-section__label--impact{color:#60a5fa;}
.psi-section p{font-size:0.875rem;color:var(--muted);line-height:1.65;}
.psi-card__footer{padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;}

/* ── Chat ────────────────────────────────────────────────── */
.chat-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);backdrop-filter:var(--blur);overflow:hidden;display:flex;flex-direction:column;}
.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;min-height:320px;max-height:480px;scroll-behavior:smooth;}
.chat-messages::-webkit-scrollbar{width:4px;}
.chat-messages::-webkit-scrollbar-track{background:transparent;}
.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.bubble{max-width:80%;padding:0.85rem 1.1rem;border-radius:16px;font-size:0.9rem;line-height:1.6;animation:fadeUp 0.3s ease;}
.bubble--ai{background:rgba(124,58,237,0.12);border:1px solid rgba(124,58,237,0.25);align-self:flex-start;border-bottom-left-radius:4px;}
.bubble--user{background:linear-gradient(135deg,var(--violet),#5b21b6);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.bubble p { margin-bottom: 0.75rem; }
.bubble p:last-child { margin-bottom: 0; }
.bubble ul, .bubble ol { padding-left: 1.25rem; margin-bottom: 0.75rem; }
.bubble ul { list-style-type: disc; }
.bubble ol { list-style-type: decimal; }
.bubble ul:last-child, .bubble ol:last-child { margin-bottom: 0; }
.bubble li { margin-bottom: 0.25rem; }
.bubble li:last-child { margin-bottom: 0; }
.bubble strong { font-weight: 600; color: var(--text); }
.bubble--user strong { color: #fff; }
.bubble__label{font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.35rem;color:var(--muted);}
.chat-input-row{display:flex;gap:0.75rem;padding:1rem 1.25rem;border-top:1px solid var(--border);background:rgba(8,12,24,0.5);}
.chat-input{flex:1;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.75rem 1rem;color:var(--text);font-family:inherit;font-size:0.9rem;outline:none;transition:border-color var(--transition);}
.chat-input:focus{border-color:rgba(124,58,237,0.5);}
.chat-input::placeholder{color:var(--faint);}
.chat-send{background:linear-gradient(135deg,var(--violet),var(--cyan));color:#fff;border-radius:var(--radius-sm);padding:0.75rem 1.25rem;font-weight:600;font-size:0.875rem;transition:opacity var(--transition),transform var(--transition);display:flex;align-items:center;gap:0.4rem;}
.chat-send:hover{opacity:0.9;transform:translateY(-1px);}
.chat-send:disabled{opacity:0.4;pointer-events:none;}
.chat-disclaimer{font-size:0.75rem;color:var(--faint);text-align:center;padding:0.75rem;border-top:1px solid var(--border);}

/* ── Typing Indicator ────────────────────────────────────── */
.typing-indicator{display:flex;align-items:center;gap:5px;padding:0.85rem 1.1rem;background:rgba(124,58,237,0.08);border:1px solid rgba(124,58,237,0.2);border-radius:16px;border-bottom-left-radius:4px;width:fit-content;}
.typing-indicator span{width:7px;height:7px;border-radius:50%;background:var(--violet-l);animation:typing 1.2s infinite;}
.typing-indicator span:nth-child(2){animation-delay:0.2s;}
.typing-indicator span:nth-child(3){animation-delay:0.4s;}
@keyframes typing{0%,80%,100%{transform:scale(0.6);opacity:.4;}40%{transform:scale(1);opacity:1;}}

/* ── Hub Cards ───────────────────────────────────────────── */
.hub-card{display:flex;flex-direction:column;gap:0.75rem;text-decoration:none;}
.hub-card__icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,rgba(124,58,237,0.2),rgba(6,182,212,0.15));border:1px solid rgba(124,58,237,0.2);display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:transform var(--transition);}
.hub-card:hover .hub-card__icon{transform:scale(1.1);}
.hub-card__title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.05rem;}
.hub-card__desc{font-size:0.85rem;color:var(--muted);}

/* ── Certification Cards ─────────────────────────────────── */
.cert-card{display:flex;gap:1.25rem;align-items:flex-start;}
.cert-card__badge{width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,var(--violet),var(--cyan));display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;}
.cert-card__title{font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:600;margin-bottom:0.25rem;}
.cert-card__issuer{font-size:0.85rem;color:var(--muted);}
.cert-card__meta{display:flex;gap:0.5rem;align-items:center;margin-top:0.5rem;flex-wrap:wrap;}

/* ── Skill Category ──────────────────────────────────────── */
.skill-category__header{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.5rem;}
.skill-category__icon{font-size:1.5rem;}
.skill-category__name{font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:600;}
.skill-category__desc{font-size:0.85rem;color:var(--muted);margin-bottom:0.75rem;}

/* ── Footer ──────────────────────────────────────────────── */
.footer{border-top:1px solid var(--border);padding:3rem 0;text-align:center;color:var(--muted);font-size:0.875rem;position:relative;z-index:1;}
.footer__name{font-family:'Space Grotesk',sans-serif;font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,var(--violet-l),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block;margin-bottom:0.5rem;}

/* ── Scroll Animations ───────────────────────────────────── */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease;}
.fade-in.visible{opacity:1;transform:translateY(0);}
.fade-in--delay-1{transition-delay:0.1s;}
.fade-in--delay-2{transition-delay:0.2s;}
.fade-in--delay-3{transition-delay:0.3s;}
.fade-in--delay-4{transition-delay:0.4s;}

/* ── Page Transition ─────────────────────────────────────── */
@keyframes pageIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.page-enter{animation:pageIn 0.4s ease forwards;}

/* ── Utility ─────────────────────────────────────────────── */
.flex{display:flex;} .items-center{align-items:center;} .justify-between{justify-content:space-between;}
.gap-sm{gap:0.5rem;} .gap-md{gap:1rem;} .gap-lg{gap:1.5rem;}
.mt-sm{margin-top:0.5rem;} .mt-md{margin-top:1rem;} .mt-lg{margin-top:2rem;}
.mb-sm{margin-bottom:0.5rem;} .mb-md{margin-bottom:1rem;} .mb-lg{margin-bottom:2rem;}
.text-muted{color:var(--muted);} .text-sm{font-size:0.875rem;} .text-xs{font-size:0.75rem;}
.font-heading{font-family:'Space Grotesk',sans-serif;}
.divider{height:1px;background:var(--border);margin:1.5rem 0;}
.todo-marker{display:inline-block;background:rgba(250,204,21,0.12);border:1px dashed rgba(250,204,21,0.4);color:#fde68a;font-size:0.7rem;font-weight:600;padding:0.15rem 0.5rem;border-radius:4px;letter-spacing:0.05em;}

/* ── Keyframes ───────────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:768px){
  .nav__links{display:none;}
  .nav__hamburger{display:flex;}
  .hero{min-height:calc(100svh - 68px);}
  .section{padding:3.5rem 0;}
  .timeline{padding-left:1.75rem;}
  .timeline__item::before{left:-1.75rem;}
  .chat-messages{min-height:260px;max-height:360px;}
  .bubble{max-width:92%;}
  .cert-card{flex-direction:column;}
  .cert-card__badge{width:44px;height:44px;font-size:1.2rem;}
}
@media(max-width:480px){
  .nav{padding:0 1rem;}
  .container{padding:0 1rem;}
  .page-content, .page-container{padding-left:1rem;padding-right:1rem;}
  .card{padding:1.25rem;}
  .hero__cta{flex-direction:column;align-items:center;}
  .btn{width:100%;justify-content:center;}
}
