        @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Literata:opsz,wght@18..144,400;18..144,500;18..144,600&family=IBM+Plex+Mono:wght@400;500&display=swap');

        :root{
          --bg:#0A0E1F;
          --bg-panel:#12172E;
          --bg-panel-2:#171D3B;
          --text:#EAEDF7;
          --text-muted:#8D94B8;
          --accent-kick:#FF6B4D;
          --accent-hot:#6FD8FF;
          --accent-gold:#F4C77B;
          --line:rgba(234,237,247,0.12);
          --line-strong:rgba(234,237,247,0.22);
          --radius:14px;
          --maxw:1120px;
      }

      *{box-sizing:border-box;}
      html{scroll-behavior:smooth;}
      body{
          margin:0;
          background:var(--bg);
          color:var(--text);
          font-family:'Literata', Georgia, serif;
          font-size:17px;
          line-height:1.65;
          -webkit-font-smoothing:antialiased;
      }
      h1,h2,h3,.disp{
          font-family:'Space Grotesk', sans-serif;
          font-weight:600;
          letter-spacing:-0.01em;
          margin:0;
      }
      .mono{
          font-family:'IBM Plex Mono', monospace;
      }
      a{color:inherit;}
      img{max-width:100%;display:block;}
      .container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
      .eyebrow{
          font-family:'IBM Plex Mono', monospace;
          font-size:12.5px;
          letter-spacing:0.14em;
          text-transform:uppercase;
          color:var(--accent-hot);
          margin:0 0 14px;
          display:flex;
          align-items:center;
          gap:10px;
      }
      .eyebrow::before{
          content:"";
          width:22px;height:1px;
          background:var(--accent-hot);
          display:inline-block;
      }
      .section{padding:96px 0;border-top:1px solid var(--line);}
      .section-head{max-width:620px;margin-bottom:48px;}
      .section-head h2{font-size:clamp(28px,3.4vw,38px);}
      .section-head p{color:var(--text-muted);margin-top:14px;font-size:16.5px;}

/* background starfield, subtle */
.stars{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
  radial-gradient(1.5px 1.5px at 20% 30%, rgba(234,237,247,0.55), transparent),
  radial-gradient(1.5px 1.5px at 65% 15%, rgba(234,237,247,0.4), transparent),
  radial-gradient(1px 1px at 82% 55%, rgba(234,237,247,0.5), transparent),
  radial-gradient(1.5px 1.5px at 10% 70%, rgba(234,237,247,0.35), transparent),
  radial-gradient(1px 1px at 45% 82%, rgba(234,237,247,0.45), transparent),
  radial-gradient(1.5px 1.5px at 92% 78%, rgba(234,237,247,0.3), transparent),
  radial-gradient(1px 1px at 35% 45%, rgba(234,237,247,0.3), transparent);
  background-repeat:no-repeat;
  opacity:0.7;
}

/* nav */
header{
  position:sticky;top:0;z-index:50;
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, background-color .3s ease, backdrop-filter .3s ease;
}
header.scrolled{
  background:rgba(10,14,31,0.78);
  backdrop-filter:blur(10px);
  border-bottom-color:var(--line);
}
.navwrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;max-width:var(--maxw);margin:0 auto;
}
.brand{
  font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:17px;
  text-decoration:none;color:var(--text);display:flex;align-items:center;gap:10px;
}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-kick);box-shadow:0 0 10px var(--accent-kick);}
.nav-links{display:flex;gap:34px;list-style:none;margin:0;padding:0;}
.nav-links a{
  text-decoration:none;font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:0.03em;color:var(--text-muted);transition:color .2s ease;
}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--accent-hot);}
.nav-cta{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  border:1px solid var(--line-strong);padding:9px 16px;border-radius:999px;
  text-decoration:none;color:var(--text);transition:border-color .2s ease, color .2s ease;white-space:nowrap;
}
.nav-cta:hover,.nav-cta:focus-visible{border-color:var(--accent-hot);color:var(--accent-hot);}
.burger{display:none;background:none;border:0;color:var(--text);cursor:pointer;padding:6px;}

/* hero */
.hero{position:relative;padding:72px 0 100px;overflow:hidden;}
.hero-grid{
  display:grid;grid-template-columns:1.05fr 0.95fr;gap:40px;align-items:center;
}
.hero h1{font-size:clamp(44px,6.4vw,74px);line-height:0.98;}
.hero .role{
  font-family:'IBM Plex Mono',monospace;color:var(--text-muted);font-size:15px;margin-top:18px;
}
.hero p.lede{
  font-size:19px;color:var(--text-muted);max-width:520px;margin-top:22px;line-height:1.6;
}
.hero-ctas{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;}
.btn{
  font-family:'IBM Plex Mono',monospace;font-size:13.5px;letter-spacing:0.02em;
  padding:13px 22px;border-radius:999px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  transition:transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.btn-primary{background:var(--accent-kick);color:#170A05;font-weight:500;}
.btn-primary:hover,.btn-primary:focus-visible{transform:translateY(-2px);}
.btn-ghost{border:1px solid var(--line-strong);color:var(--text);}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--accent-hot);color:var(--accent-hot);transform:translateY(-2px);}

.social-row{display:flex;gap:10px;margin-top:38px;}
.social-badge{
  width:36px;height:36px;border-radius:9px;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--text-muted);
  text-decoration:none;transition:border-color .2s ease,color .2s ease;
}
.social-badge:hover,.social-badge:focus-visible{border-color:var(--accent-hot);color:var(--accent-hot);}

/* orbit visual */
.orbit-visual{position:relative;display:flex;flex-direction:column;align-items:center;}
.orbit-visual svg{width:100%;max-width:420px;height:auto;}
.orbit-caption{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--text-muted);margin-top:4px;text-align:center;
}
.orbit-caption span{color:var(--accent-kick);}
.orbit-group{transform-origin:200px 200px;animation:orbit 9s linear infinite;}
@keyframes orbit{to{transform:rotate(360deg);}}
.kick-arrow{transform-origin:0px 0px;animation:kick 9s ease-out infinite;}
@keyframes kick{
  0%,66%{opacity:0;transform:scaleX(0);}
  74%{opacity:1;transform:scaleX(0.35);}
  90%{opacity:1;transform:scaleX(1);}
  100%{opacity:0;transform:scaleX(1);}
}
.flash{transform-box:fill-box;transform-origin:center;animation:flash 9s ease-out infinite;}
@keyframes flash{
  0%,64%{opacity:0;transform:scale(1);}
  70%{opacity:1;transform:scale(2.1);}
  80%{opacity:0;transform:scale(1);}
  100%{opacity:0;}
}
@media (prefers-reduced-motion:reduce){
  .orbit-group,.kick-arrow,.flash{animation:none;}
}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;}
.about-grid p{color:var(--text);font-size:17px;}
.about-grid a{color:var(--accent-hot);text-decoration-color:rgba(111,216,255,0.35);}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px;}
.chip{
  background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;
}
.chip .sym{font-family:'IBM Plex Mono',monospace;font-size:26px;color:var(--accent-kick);}
.chip .label{font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-muted);margin-top:10px;}
.chip .desc{font-size:14.5px;color:var(--text-muted);margin-top:6px;line-height:1.5;}

/* research stack */
.stack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.stack-card{
  background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;display:flex;flex-direction:column;gap:10px;
  transition:border-color .2s ease, transform .2s ease;
}
.stack-card:hover{border-color:var(--line-strong);transform:translateY(-3px);}
.stack-card h3{font-size:19px;}
.stack-card p{color:var(--text-muted);font-size:15px;margin:0;}
.stack-card .go{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--accent-hot);
  text-decoration:none;margin-top:auto;padding-top:6px;
}

/* education timeline */
.timeline{position:relative;padding-left:36px;}
.timeline::before{
  content:"";position:absolute;left:6px;top:6px;bottom:6px;width:1px;background:var(--line-strong);
}
.tl-item{position:relative;padding-bottom:44px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{
  content:"";position:absolute;left:-36px;top:5px;width:13px;height:13px;border-radius:50%;
  background:var(--bg);border:2px solid var(--accent-hot);
}
.tl-item.current::before{background:var(--accent-kick);border-color:var(--accent-kick);box-shadow:0 0 0 4px rgba(255,107,77,0.18);}
.tl-item .stage{font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted);}
.tl-item.current .stage{color:var(--accent-kick);}
.tl-item h3{font-size:21px;margin-top:6px;}
.tl-item p{color:var(--text-muted);margin-top:8px;font-size:15.5px;max-width:640px;}
.tl-item a{color:var(--accent-hot);}

/* programming */
.prog-intro{color:var(--text-muted);max-width:680px;margin-bottom:32px;font-size:16.5px;}
.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:44px;}
.pill{
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--text);
  border:1px solid var(--line);border-radius:999px;padding:8px 16px;background:var(--bg-panel);
}
.repo-row{display:flex;flex-wrap:wrap;gap:14px;}
.repo-badge{
  border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;
  background:var(--bg-panel);flex:1 1 180px;
}
.repo-badge .name{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15.5px;}
.repo-cta{margin-top:24px;}

/* documents */
.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.doc-card{
  border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  background:linear-gradient(180deg,var(--bg-panel-2),var(--bg-panel));
  text-decoration:none;color:var(--text);display:flex;flex-direction:column;gap:10px;
  transition:border-color .2s ease, transform .2s ease;
}
.doc-card:hover,.doc-card:focus-visible{border-color:var(--accent-hot);transform:translateY(-3px);}
.doc-card .tag{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent-hot);}
.doc-card h3{font-size:19px;}
.doc-card p{color:var(--text-muted);font-size:14.5px;margin:0;}

/* tracker callout */
.callout{
  border:1px solid var(--line-strong);border-radius:20px;padding:44px;
  background:radial-gradient(120% 160% at 0% 0%, rgba(255,107,77,0.14), transparent 55%), var(--bg-panel);
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
}
.callout h3{font-size:24px;max-width:480px;}
.callout p{color:var(--text-muted);margin-top:8px;max-width:480px;font-size:15.5px;}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;}
.contact-block .label{font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted);margin-bottom:10px;}
.contact-block address,.contact-block p{font-style:normal;font-size:17px;line-height:1.7;}
.contact-block a{color:var(--accent-hot);text-decoration:none;border-bottom:1px solid rgba(111,216,255,0.35);}

footer{border-top:1px solid var(--line);padding:32px 0;}
.foot-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.foot-row p{margin:0;color:var(--text-muted);font-family:'IBM Plex Mono',monospace;font-size:12.5px;}

@media (max-width:880px){
  .hero-grid{grid-template-columns:1fr;}
  .orbit-visual{order:-1;margin-bottom:12px;}
  .orbit-visual svg{max-width:280px;}
  .about-grid,.contact-grid{grid-template-columns:1fr;gap:36px;}
  .chips{grid-template-columns:1fr;}
  .stack-grid,.doc-grid{grid-template-columns:1fr;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;background:rgba(10,14,31,0.98);
    flex-direction:column;padding:20px 32px;gap:18px;border-bottom:1px solid var(--line);
    display:none;
}
.nav-links.open{display:flex;}
.nav-cta{display:none;}
.burger{display:block;}
}
@media (max-width:560px){
  .section{padding:64px 0;}
  .container{padding:0 22px;}
}

:focus-visible{outline:2px solid var(--accent-hot);outline-offset:2px;}