
:root{
  --bg0:#040611; --bg1:#071227;
  --card:rgba(14,22,44,.78); --card2:rgba(10,16,36,.62);
  --border:rgba(148,163,184,.22); --border2:rgba(148,163,184,.40);
  --text:#eef3ff; --muted:#a8b3d1; --muted2:#7f8ab0;

  --a1:#38bdf8; --a2:#22c55e; --a3:#a78bfa; --a4:#fb7185;

  --shadow: 0 24px 70px rgba(0,0,0,.50);
  --shadow2: 0 18px 44px rgba(0,0,0,.45);

  --r-2xl: 30px; --r-xl: 22px; --r-lg: 18px; --r-md: 14px;

  --h1: clamp(2.0rem, 2.6vw + 1.2rem, 4.4rem);
  --h2: clamp(1.25rem, 1.2vw + 1rem, 2.25rem);
  --h3: clamp(1.05rem, 0.8vw + 0.9rem, 1.45rem);
  --p:  clamp(0.98rem, 0.35vw + 0.90rem, 1.32rem);
  --small: clamp(0.78rem, 0.20vw + 0.72rem, 1.02rem);
}

[data-theme="emerald"]{ --a1:#22c55e; --a2:#a3e635; --a3:#38bdf8; --a4:#fb7185; }
[data-theme="violet"]{ --a1:#a78bfa; --a2:#38bdf8; --a3:#fb7185; --a4:#22c55e; }

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;scroll-behavior:smooth}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--text);
  background:
    radial-gradient(900px 600px at 10% 0%, rgba(56,189,248,.18), transparent 60%),
    radial-gradient(900px 600px at 90% 10%, rgba(34,197,94,.12), transparent 60%),
    radial-gradient(900px 600px at 45% 120%, rgba(167,139,250,.16), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  overflow-x:hidden;
}

.skip{
  position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip:focus{
  left:16px; top:16px; width:auto; height:auto; padding:10px 12px;
  background: rgba(8,12,26,.85);
  border:1px solid var(--border2);
  border-radius: 12px;
  z-index:1000;
}

.aurora{
  position:fixed; inset:-50%;
  pointer-events:none; z-index:-4;
  background: conic-gradient(from 210deg,
    rgba(56,189,248,.20),
    rgba(34,197,94,.10),
    rgba(167,139,250,.18),
    rgba(251,113,133,.12),
    rgba(56,189,248,.20)
  );
  filter: blur(42px);
  opacity:.86;
  animation: spin 46s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.mesh{
  position:fixed; inset:0;
  pointer-events:none; z-index:-3;
  background:
    radial-gradient(1200px 700px at 30% 20%, rgba(56,189,248,.08), transparent 60%),
    radial-gradient(1000px 600px at 70% 80%, rgba(251,113,133,.08), transparent 60%);
  opacity:.9;
}

.noise{
  position:fixed; inset:0;
  pointer-events:none; z-index:-2;
  opacity:.22; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.25' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}

.shell{
  max-width: 1180px;
  margin:0 auto;
  padding: 18px 16px 44px;
}

@media (min-width: 1600px){ .shell{max-width: 1400px} }
@media (min-width: 2200px){
  :root{ --p: clamp(1.10rem, 0.32vw + 1.05rem, 1.60rem); }
  .shell{max-width: 1680px}
}

.nav{
  position:sticky; top:10px; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
  padding: 10px 14px;
  border-radius:999px;
  border:1px solid var(--border);
  background: linear-gradient(135deg, rgba(8,12,26,.78), rgba(8,12,26,.52));
  backdrop-filter: blur(18px);
  box-shadow: var(--shadow2);
  max-width:1180px;
  margin: 10px auto 12px;
}
@media (min-width: 1600px){ .nav{max-width: 1400px} }
@media (min-width: 2200px){ .nav{max-width: 1680px} }

.nav-left{display:flex; align-items:center; gap:10px; min-width: 240px}
.nav-logo{
  height: 26px; width:auto; display:block;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,.55));
}
.brand{display:flex; flex-direction:column; gap:1px}
.nav-title{
  font-weight: 780;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size: .92rem;
}
.nav-sub{font-size:.74rem;color:var(--muted); line-height:1.2}

.nav-right{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}

.nav a{
  color:var(--muted);
  text-decoration:none;
  font-size: var(--small);
  padding: 7px 10px;
  border-radius:999px;
  border:1px solid transparent;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.nav a:hover{
  transform: translateY(-1px);
  border-color: var(--border2);
  background: rgba(14,22,44,.35);
  color: var(--text);
}
.nav a.active{
  border-color: rgba(56,189,248,.55);
  background: linear-gradient(135deg, rgba(56,189,248,.14), rgba(34,197,94,.08));
  color: var(--text);
}

.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding: 7px 12px;
  border-radius:999px;
  border:1px solid var(--border2);
  background: rgba(14,22,44,.35);
  font-size: var(--small);
  color: var(--muted);
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}
.pill-dot{
  width:9px; height:9px; border-radius:999px;
  background: radial-gradient(circle at 30% 30%, var(--a2), #0a7d3a);
  box-shadow: 0 0 0 5px rgba(34,197,94,.18);
}

.themeBtn{
  cursor:pointer;
  border-radius:999px;
  border:1px solid var(--border2);
  background: rgba(14,22,44,.25);
  color: var(--text);
  padding: 7px 10px;
  font-size: var(--small);
  display:inline-flex; align-items:center; gap:8px;
  transition: transform .16s ease, border-color .16s ease;
}
.themeBtn:hover{transform:translateY(-1px); border-color: rgba(56,189,248,.55)}
.swatch{
  width:12px; height:12px; border-radius:999px;
  background: linear-gradient(135deg, var(--a1), var(--a2), var(--a3));
  box-shadow: 0 0 0 4px rgba(255,255,255,.06);
}

/* Hamburger */
.burger{
  display:none;
  cursor:pointer;
  border-radius:999px;
  border:1px solid var(--border2);
  background: rgba(14,22,44,.25);
  color: var(--text);
  padding: 7px 10px;
  font-size: var(--small);
  gap:8px;
  align-items:center;
}
.bars{display:inline-flex; width:18px; height:12px; position:relative}
.bars span{
  position:absolute; left:0; right:0; height:2px;
  background: rgba(238,243,255,.9);
  border-radius:999px;
  top:50%;
  transform:translateY(-50%);
  box-shadow: 0 -5px 0 rgba(238,243,255,.8), 0 5px 0 rgba(238,243,255,.8);
}
@media (max-width: 980px){
  .burger{display:inline-flex}
  .nav{border-radius: 22px}
  .nav-right{
    display:none;
    width:100%;
    justify-content:flex-start;
    padding: 10px 4px 6px;
  }
  .nav.open .nav-right{display:flex}
  .pill{width:100%; justify-content:center}
}

/* Subnav / scrollspy */
.subnav{
  max-width:1180px;
  margin: 0 auto 10px;
  padding: 0 16px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
@media (min-width: 1600px){ .subnav{max-width:1400px} }
@media (min-width: 2200px){ .subnav{max-width:1680px} }
.subnav a{
  color: var(--muted);
  text-decoration:none;
  font-size: var(--small);
  padding: 7px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(14,22,44,.18);
}
.subnav a.active{
  color: var(--text);
  border-color: rgba(56,189,248,.55);
  background: linear-gradient(135deg, rgba(56,189,248,.14), rgba(34,197,94,.08));
}

/* Hero */
.hero{
  border-radius: var(--r-2xl);
  border:1px solid var(--border2);
  background: linear-gradient(135deg, rgba(14,22,44,.78), rgba(10,16,36,.52));
  box-shadow: var(--shadow);
  overflow:hidden;
  position:relative;
}
.hero::before, .hero::after{
  content:"";
  position:absolute;
  width:320px; height:320px;
  border-radius:999px;
  filter: blur(30px);
  opacity:.55;
  pointer-events:none;
  mix-blend-mode: screen;
}
.hero::before{
  left:-120px; top:-120px;
  background: radial-gradient(circle at 30% 30%, rgba(56,189,248,.45), transparent 60%);
  animation: float 18s ease-in-out infinite alternate;
}
.hero::after{
  right:-130px; bottom:-140px;
  background: radial-gradient(circle at 30% 30%, rgba(167,139,250,.42), transparent 60%);
  animation: float 22s ease-in-out infinite alternate-reverse;
}
@keyframes float{
  from{transform: translate(0,0) scale(1)}
  to{transform: translate(14px,-10px) scale(1.06)}
}

.hero-inner{
  position:relative; z-index:1;
  display:grid;
  grid-template-columns: 1.45fr 1.05fr;
  gap: 18px;
  padding: 22px 18px;
}
@media (max-width: 920px){
  .hero-inner{grid-template-columns:1fr; padding: 18px 14px}
}

.kicker{
  display:inline-flex; align-items:center; gap:8px;
  padding: 6px 12px;
  border-radius:999px;
  border:1px solid var(--border2);
  background: rgba(14,22,44,.35);
  font-size: var(--small);
  color: var(--muted);
  text-transform:uppercase;
  letter-spacing:.18em;
  margin-bottom: 10px;
}
.kdot{
  width:8px; height:8px; border-radius:999px;
  background: radial-gradient(circle at 30% 30%, #fb923c, #ea580c);
  box-shadow: 0 0 0 4px rgba(251,146,60,.18);
}

h1{font-size:var(--h1); line-height:1.05; letter-spacing:-.04em; margin-bottom:10px}
h2{font-size:var(--h2); line-height:1.18}
h3{font-size:var(--h3); line-height:1.2}
.grad{
  background: linear-gradient(120deg, #ffffff, var(--a1), var(--a2), var(--a3), var(--a4));
  -webkit-background-clip:text;
  color:transparent;
}

p{font-size:var(--p); color: var(--muted); line-height:1.75}
strong{color:var(--text)}
ul{margin: 10px 0 0 18px; color: var(--muted); font-size: var(--p); line-height:1.75}
li{margin: 6px 0}

.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top: 14px}
.tag{
  font-size: var(--small);
  padding: 6px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(14,22,44,.35);
  color: var(--muted);
}
.actions{display:flex; flex-wrap:wrap; gap:10px; margin-top: 16px}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding: 10px 14px;
  border-radius:999px;
  border:1px solid transparent;
  text-decoration:none;
  font-size: var(--small);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.btn.primary{
  color:#071227;
  background: linear-gradient(135deg, var(--a1), var(--a2));
  box-shadow: 0 18px 34px rgba(56,189,248,.22);
}
.btn.primary:hover{transform: translateY(-1px); box-shadow: 0 22px 40px rgba(56,189,248,.30)}
.btn.ghost{
  color: var(--text);
  border-color: var(--border2);
  background: rgba(14,22,44,.25);
}
.btn.ghost:hover{transform: translateY(-1px); border-color: rgba(56,189,248,.55)}
.arrow{transition: transform .16s ease}
.btn:hover .arrow{transform: translateX(3px)}

/* Hero media + people cards */
.media{
  border-radius: var(--r-lg);
  border:1px solid var(--border2);
  overflow:hidden;
  background: rgba(14,22,44,.28);
  box-shadow: var(--shadow2);
  position:relative;
}
.media img{
  width:100%;
  display:block;
  transform: scale(1.02);
  transition: transform .7s ease;
  object-fit: cover;
  max-height: 260px;
}
.media:hover img{transform: scale(1.07)}
.media .cap{
  position:absolute; left:12px; right:12px; bottom:10px;
  border-radius: 12px;
  background: rgba(8,12,26,.62);
  border:1px solid rgba(148,163,184,.40);
  padding: 8px 10px;
  font-size: .72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--muted);
  backdrop-filter: blur(10px);
}

.peopleStack{display:grid; gap:10px; margin-top: 12px}

.person{
  border-radius: var(--r-lg);
  border:1px solid var(--border2);
  background: linear-gradient(135deg, rgba(14,22,44,.70), rgba(10,16,36,.52));
  padding: 12px 12px;
  box-shadow: var(--shadow2);
  display:flex; gap:12px; align-items:flex-start;
  transition: transform .18s ease, border-color .18s ease;
}
.person:hover{transform: translateY(-2px); border-color: rgba(56,189,248,.55)}

.avatar{
  width:56px; height:56px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.55);
  overflow:hidden;
  position:relative;
  flex:0 0 auto;
  box-shadow: 0 0 0 1px rgba(0,0,0,.35), 0 0 16px rgba(56,189,248,.18);
}
.avatar img{width:100%; height:100%; object-fit:cover; display:block}
.avatar::after{
  content:"";
  position:absolute; inset:3px;
  border-radius:999px;
  border: 1px dashed rgba(148,163,184,.45);
  pointer-events:none;
}

.person .name{font-weight:800; color:var(--text); font-size: 1.02rem; letter-spacing:-.02em}
.person .role{font-size: var(--small); color: var(--muted2); margin-top: 2px}
.badge{
  margin-left:auto;
  align-self:flex-start;
  display:inline-flex; gap:6px; align-items:center;
  padding: 5px 10px;
  border-radius:999px;
  border:1px solid rgba(56,189,248,.45);
  background: rgba(56,189,248,.12);
  font-size: .70rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#bfe9ff;
  white-space:nowrap;
}
.badge i{
  width:7px; height:7px; border-radius:999px; display:inline-block;
  background: var(--a1);
  box-shadow: 0 0 0 4px rgba(56,189,248,.16);
}

.loc{display:flex; flex-wrap:wrap; gap:6px; margin-top: 8px}
.loc span{
  font-size: .72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--muted2);
  padding: 4px 9px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(14,22,44,.25);
}

/* section title */
.sectionTitle{
  margin-top: 18px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 12px;
}
.sectionTitle .eyebrow{
  font-size: .76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: var(--muted2);
  margin-bottom: 6px;
}
.sectionTitle .hint{
  font-size: var(--small);
  color: var(--muted2);
  border:1px solid rgba(148,163,184,.16);
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(14,22,44,.18);
}

/* Counters */
.metrics{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
@media (max-width: 920px){ .metrics{grid-template-columns: 1fr} }

.metric{
  border-radius: var(--r-lg);
  border:1px solid rgba(148,163,184,.18);
  background: linear-gradient(135deg, rgba(14,22,44,.62), rgba(10,16,36,.48));
  box-shadow: var(--shadow2);
  padding: 14px 14px;
}
.metric .label{
  font-size: .76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: var(--muted2);
  margin-bottom: 6px;
}
.metric .value{
  font-weight: 900;
  letter-spacing:-.03em;
  font-size: clamp(1.8rem, 1.2vw + 1.4rem, 3.0rem);
  color: var(--text);
}
.metric .hint{margin-top: 4px; font-size: var(--small); color: var(--muted)}

/* Content grid */
.grid{
  margin-top: 14px;
  display:grid;
  grid-template-columns: 1.45fr 1.05fr;
  gap: 16px;
}
@media (max-width: 920px){ .grid{grid-template-columns:1fr} }

.card{
  border-radius: var(--r-lg);
  border:1px solid rgba(148,163,184,.18);
  background: linear-gradient(135deg, rgba(14,22,44,.62), rgba(10,16,36,.48));
  box-shadow: var(--shadow2);
  padding: 16px 16px;
  position:relative;
  overflow:hidden;
  transition: transform .18s ease, border-color .18s ease;
}
.card:hover{transform: translateY(-2px); border-color: rgba(56,189,248,.42)}
.card .ctitle{
  font-size: .76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: var(--muted2);
  display:flex; align-items:center; gap:8px;
  margin-bottom: 8px;
}
.card .dot{
  width:10px; height:10px; border-radius:999px;
  background: radial-gradient(circle at 30% 30%, var(--a1), var(--a2));
  box-shadow: 0 0 0 4px rgba(0,0,0,.35);
}
.card h2{margin-bottom: 8px}
.card p{color: var(--muted)}

.visual{
  width:100%;
  border-radius: 14px;
  border:1px solid rgba(148,163,184,.22);
  overflow:hidden;
  margin: 10px 0 12px;
}
.visual img{
  width:100%;
  display:block;
  object-fit:cover;
  max-height: 320px;
  transform: scale(1.02);
  transition: transform .7s ease;
}
.card:hover .visual img{transform: scale(1.07)}

/* mini cards */
.cards3{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
}
@media (max-width: 920px){ .cards3{grid-template-columns:1fr} }
.miniCard{
  border-radius: var(--r-lg);
  border:1px solid rgba(148,163,184,.18);
  background: rgba(14,22,44,.22);
  box-shadow: var(--shadow2);
  padding: 14px 14px;
}
.miniCard h3{margin-bottom: 6px}
.miniCard a{color:#b9c4ff;text-decoration:none}
.miniCard a:hover{text-decoration:underline}

/* Gallery */
.gallery{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
}
@media (max-width: 920px){ .gallery{grid-template-columns: repeat(2, minmax(0,1fr))} }
.gitem{
  border-radius: 14px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(14,22,44,.18);
}
.gitem img{
  width:100%;
  height: 160px;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  transition: transform .7s ease;
}
.gitem:hover img{transform: scale(1.07)}

/* Contact strip */
.contactStrip{
  margin-top: 18px;
  border-radius: var(--r-xl);
  border:1px solid rgba(148,163,184,.18);
  background: linear-gradient(135deg, rgba(14,22,44,.55), rgba(10,16,36,.40));
  box-shadow: var(--shadow2);
  padding: 14px 14px;
  display:flex;
  justify-content:space-between;
  gap: 12px;
  flex-wrap:wrap;
}
.contactStrip .title{
  font-weight: 850;
  letter-spacing:-.02em;
  font-size: 1.1rem;
}
.contactStrip .meta{
  color: var(--muted2);
  font-size: var(--small);
  margin-top: 4px;
}
.contactStrip .kv{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.contactStrip a{
  color: var(--text);
  text-decoration:none;
  font-size: var(--small);
  padding: 7px 10px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.18);
  background: rgba(14,22,44,.18);
}
.contactStrip a:hover{
  border-color: rgba(56,189,248,.45);
}

.footer{
  margin-top: 22px;
  padding-top: 14px;
  border-top:1px solid rgba(148,163,184,.18);
  display:flex; flex-wrap:wrap; gap:10px;
  justify-content:space-between;
  color: var(--muted2);
  font-size: var(--small);
}
.footer a{color:#b9c4ff; text-decoration:none}
.footer a:hover{text-decoration:underline}

/* Reveal on scroll */
.reveal{opacity:0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease}
.reveal.on{opacity:1; transform: translateY(0)}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .aurora{animation:none}
  .media img, .visual img, .gitem img{transition:none}
  .reveal{transition:none; opacity:1; transform:none}
  .btn, .person, .card, .nav a, .themeBtn{transition:none}
}
