:root{
  --bg0:#070815;
  --text:#e9e7ff;
  --muted:rgba(233,231,255,.70);
  --pink:#ff5bd6;
  --purple:#7c5cff;
  --blue:#4dc7ff;
  --border: rgba(255,255,255,.10);
  --shadow: 0 18px 55px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--text);
  background: radial-gradient(1200px 800px at 30% 20%, #17123a 0%, var(--bg0) 50%, #050612 100%);
  overflow:auto;
}
#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;}
.vignette{
  position:fixed; inset:-2px;
  background: radial-gradient(1200px 900px at 50% 10%, transparent 0%, rgba(0,0,0,.15) 40%, rgba(0,0,0,.55) 100%);
  z-index:1; pointer-events:none;
}
.nebula{
  position:fixed;width:520px;height:520px;filter:blur(40px);opacity:.45;
  z-index:1;pointer-events:none;will-change:transform;
}
.nebula-a{
  left:-140px; top:140px;
  background: radial-gradient(circle at 30% 30%, rgba(124,92,255,.65), transparent 55%),
              radial-gradient(circle at 70% 70%, rgba(255,91,214,.35), transparent 58%);
}
.nebula-b{
  right:-180px; bottom:-140px;
  background: radial-gradient(circle at 35% 30%, rgba(77,199,255,.45), transparent 55%),
              radial-gradient(circle at 70% 70%, rgba(124,92,255,.25), transparent 60%);
}
.hero{position:relative;z-index:2;text-align:center;padding:56px 18px 0;max-width:920px;margin:0 auto;}
.pill{
  display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);
  background:rgba(255,255,255,.06);border-radius:999px;backdrop-filter:blur(10px);
  box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:14px;color:rgba(233,231,255,.88);
}
.title{
  margin:18px 0 8px;font-size:clamp(44px,5.8vw,70px);line-height:1.05;letter-spacing:.5px;font-weight:800;
  background:linear-gradient(90deg,var(--purple),var(--pink));-webkit-background-clip:text;background-clip:text;
  color:transparent;text-shadow:0 20px 70px rgba(124,92,255,.25);
}
.subtitle{margin:0 auto;max-width:720px;font-size:clamp(14px,1.6vw,18px);color:var(--muted);}
.hero-actions{margin-top:16px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.hero-btn{
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
}
.hero-btn.primary{background:linear-gradient(90deg,rgba(124,92,255,.35),rgba(255,91,214,.25));border-color:rgba(255,91,214,.20);}
.space{position:relative;z-index:2;height:calc(100vh - 210px);min-height:420px;padding:0 18px 22px;}
.objects{position:absolute;inset:0;will-change:transform;}
.planet{
  position:absolute;width:var(--size);height:var(--size);border-radius:999px;border:1px solid rgba(255,255,255,.10);
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.28), transparent 45%),
             radial-gradient(circle at 70% 70%, rgba(0,0,0,.30), transparent 55%),
             var(--planetFill);
  box-shadow:0 22px 60px rgba(0,0,0,.45),0 0 0 10px rgba(124,92,255,.06),0 0 45px rgba(124,92,255,.18);
  cursor:pointer;transform:translate(-50%,-50%);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
  animation:floaty var(--floatDur) ease-in-out infinite;outline:none;
}
.planet:hover{transform:translate(-50%,-50%) scale(1.04);filter:saturate(1.1);}
.planet .label{
  position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);
  padding:8px 10px;border-radius:999px;border:1px solid var(--border);
  background:rgba(10,9,22,.55);backdrop-filter:blur(10px);color:rgba(233,231,255,.88);font-size:12px;white-space:nowrap;
  box-shadow:0 12px 30px rgba(0,0,0,.30);opacity:.95;
}
@keyframes floaty{0%,100%{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-12px)}}
.hint{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:999px;border:1px solid var(--border);
  background:rgba(10,9,22,.50);backdrop-filter:blur(12px);box-shadow:0 18px 50px rgba(0,0,0,.35);
  color:rgba(233,231,255,.88);font-size:13px;
}
.fab{
  position:absolute;right:18px;bottom:18px;width:58px;height:58px;border-radius:16px;border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(0,255,170,.22), rgba(0,255,170,.12));
  color:rgba(255,255,255,.92);box-shadow:0 18px 60px rgba(0,0,0,.4);cursor:pointer;backdrop-filter:blur(10px);
}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:10;}
.modal{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(680px, calc(100vw - 28px));border-radius:22px;border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(20,16,40,.82), rgba(20,16,40,.62));backdrop-filter:blur(18px);
  box-shadow:var(--shadow);z-index:11;padding:18px 18px 16px;
}
.modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);cursor:pointer;}
.modal-badge{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);border-radius:999px;padding:6px 10px;font-size:12px;color:rgba(233,231,255,.86);margin-bottom:10px;}
.modal h2{margin:6px 0 6px;font-size:26px;}
.modal p{margin:0 0 12px;color:rgba(233,231,255,.78);line-height:1.5;}
.modal-meta{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 14px;}
.tag{padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);font-size:12px;color:rgba(233,231,255,.86);}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);}
.btn.primary{background:linear-gradient(90deg,rgba(124,92,255,.35),rgba(255,91,214,.25));border-color:rgba(255,91,214,.20);}
.drawer{
  position:fixed;right:18px;bottom:88px;width:min(360px, calc(100vw - 36px));
  border-radius:18px;border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(20,16,40,.85), rgba(20,16,40,.60));backdrop-filter:blur(16px);
  box-shadow:var(--shadow);z-index:9;padding:14px;
}
.drawer-top{display:flex;align-items:center;gap:12px;}
.avatar{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg, rgba(124,92,255,.35), rgba(255,91,214,.25));border:1px solid rgba(255,255,255,.14);font-weight:800;}
.drawer-close{margin-left:auto;width:34px;height:34px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);cursor:pointer;}
.drawer-text{margin:10px 0 12px;color:rgba(233,231,255,.76);line-height:1.5;}
.drawer-links{display:flex;flex-wrap:wrap;gap:10px;}
.chip{text-decoration:none;padding:9px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);font-size:13px;}
.content{position:relative;z-index:2;padding:18px 18px 46px;max-width:1100px;margin:0 auto;}
.section{margin-top:22px;padding:18px;border-radius:22px;border:1px solid rgba(255,255,255,.12);background:rgba(10,9,22,.40);backdrop-filter:blur(14px);box-shadow:0 18px 55px rgba(0,0,0,.28);}
.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;}
.project-card{grid-column:span 6;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg, rgba(20,16,40,.62), rgba(20,16,40,.38));padding:14px;box-shadow:0 16px 45px rgba(0,0,0,.30);}
.project-top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.project-orb{width:38px;height:38px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:var(--orbFill);box-shadow:0 14px 35px rgba(0,0,0,.35);}
.project-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.small-btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);font-size:13px;}
.small-btn.primary{background:linear-gradient(90deg,rgba(124,92,255,.35),rgba(255,91,214,.25));border-color:rgba(255,91,214,.20);}
.about-card{border-radius:18px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg, rgba(20,16,40,.62), rgba(20,16,40,.38));padding:14px;box-shadow:0 16px 45px rgba(0,0,0,.30);}
.about-top{display:flex;align-items:center;gap:12px;}
.about-avatar{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg, rgba(124,92,255,.35), rgba(255,91,214,.25));border:1px solid rgba(255,255,255,.14);font-weight:900;}
.about-role{font-size:12px;color:rgba(233,231,255,.70);}
.about-text{color:rgba(233,231,255,.78);line-height:1.6;margin:10px 0 12px;}
.about-links{display:flex;flex-wrap:wrap;gap:10px;}
.footer{margin-top:16px;padding:10px 8px;text-align:center;color:rgba(233,231,255,.55);font-size:13px;}
@media (max-width: 900px){.project-card{grid-column:span 12;}}
