:root{
  --bg:#0a0a0c;
  --bg-raised:#111114;
  --line:#232327;
  --text:#f2f2f0;
  --text-dim:#9a9aa3;
  --accent:#d7ff2a;
  --blue:#1b3fd1;
  --white:#f2f2f0;
  --red:#d1231b;
  --font-display:'Archivo Black', Arial, sans-serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --wrap:1120px;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

.wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 24px;
}

a{color:inherit; text-decoration:none;}

ul{list-style:none;}

/* stripe accent, nod to SODI blue/white/red */
.stripe-top{
  height:4px;
  width:100%;
  background:linear-gradient(90deg, var(--blue) 0 33.33%, var(--white) 33.33% 66.66%, var(--red) 66.66% 100%);
}

/* header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(10,10,12,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
}

.logo{
  display:flex;
  align-items:center;
}

.logo img{
  height:30px;
  width:auto;
  display:block;
}

.nav{
  display:flex;
  align-items:center;
  gap:28px;
  font-size:14px;
  font-weight:600;
}

.nav a{color:var(--text-dim); transition:color .15s;}
.nav a:hover{color:var(--text);}

.nav-cta{
  background:var(--accent);
  color:#0a0a0c !important;
  padding:10px 18px;
  border-radius:4px;
}
.nav-cta:hover{color:#0a0a0c !important; opacity:.9;}

/* hero */
.hero{
  position:relative;
  padding:120px 0 100px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}

.hero-inner{position:relative; z-index:2; max-width:760px;}

.hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  opacity:.4;
}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(10,10,12,.35) 0%, var(--bg) 92%),
    linear-gradient(90deg, var(--bg) 0%, rgba(10,10,12,.55) 55%, transparent 100%);
}

.brand-lockup{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:32px;
}

.brand-logo{display:block; height:34px; width:auto;}

.brand-x{
  font-family:var(--font-display);
  font-size:20px;
  color:var(--text-dim);
}

.brand-logo--sodi{height:30px;}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:24px;
}

.dot{
  width:7px; height:7px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 12px var(--accent);
}

.hero h1{
  font-family:var(--font-display);
  font-size:clamp(34px, 6vw, 60px);
  line-height:1.06;
  letter-spacing:-.01em;
  text-transform:uppercase;
  margin-bottom:24px;
}

.accent{color:var(--accent);}

.lead{
  font-size:18px;
  color:var(--text-dim);
  max-width:560px;
  margin-bottom:36px;
}

.lead.light{color:rgba(242,242,240,.75);}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:15px 28px;
  border-radius:4px;
  font-weight:700;
  font-size:14px;
  letter-spacing:.02em;
  text-transform:uppercase;
  transition:transform .15s, opacity .15s;
}

.btn:hover{transform:translateY(-2px);}

.btn-primary{
  background:var(--accent);
  color:#0a0a0c;
}

.btn-ghost{
  border:1px solid var(--line);
  color:var(--text);
}
.btn-ghost:hover{border-color:var(--text-dim);}

.hero-glow{
  position:absolute;
  top:-180px; right:-160px;
  width:640px; height:640px;
  background:radial-gradient(circle, rgba(215,255,42,.14), transparent 70%);
  z-index:1;
  pointer-events:none;
}

/* kickers / headings shared */
.kicker{
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:14px;
}
.kicker.light{color:#c9d2ff;}

h2{
  font-family:var(--font-display);
  font-size:clamp(26px, 4vw, 38px);
  text-transform:uppercase;
  line-height:1.1;
  margin-bottom:18px;
}

/* sodi section */
.sodi{
  padding:96px 0;
  border-bottom:1px solid var(--line);
}

.sodi-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:64px;
  align-items:start;
}

.sodi-text p{
  color:var(--text-dim);
  font-size:16px;
  max-width:46ch;
}

.sodi-points{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.sodi-points li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:18px 20px;
  background:var(--bg-raised);
  border:1px solid var(--line);
  border-radius:6px;
  font-weight:600;
  font-size:15px;
}

.sodi-points li::before{
  content:"";
  width:8px; height:8px;
  margin-top:6px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--blue);
}

.sodi-points li:nth-child(2)::before{background:var(--white);}
.sodi-points li:nth-child(3)::before{background:var(--red);}

/* gallery */
.gallery{
  border-bottom:1px solid var(--line);
}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:170px;
  gap:4px;
}

.gallery-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.gallery-grid img:nth-child(1){grid-column:span 2; grid-row:span 2;}
.gallery-grid img:nth-child(2){grid-column:span 1; grid-row:span 2;}
.gallery-grid img:nth-child(3){grid-column:span 1; grid-row:span 2;}
.gallery-grid img:nth-child(4){grid-column:span 2; grid-row:span 1;}
.gallery-grid img:nth-child(5){grid-column:span 2; grid-row:span 1;}

/* team section */
.team{
  position:relative;
  padding:110px 0;
  text-align:center;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}

.team-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  opacity:.5;
}

.team::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 20% 20%, rgba(27,63,209,.32), transparent 55%),
    radial-gradient(circle at 80% 80%, rgba(209,35,27,.28), transparent 55%),
    linear-gradient(180deg, rgba(10,10,12,.55), rgba(10,10,12,.82));
}

.team-inner{
  position:relative;
  z-index:2;
  max-width:640px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.team .lead{margin-left:auto; margin-right:auto;}

/* contact */
.contact{padding:110px 0;}

.contact-inner{max-width:640px;}

.contact-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:40px;
}

.contact-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:24px;
  background:var(--bg-raised);
  border:1px solid var(--line);
  border-radius:8px;
  transition:border-color .15s, transform .15s;
}

.contact-card:hover{
  border-color:var(--accent);
  transform:translateY(-2px);
}

.contact-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--text-dim);
}

.contact-value{
  font-size:17px;
  font-weight:700;
}

/* footer */
.site-footer{
  border-top:1px solid var(--line);
  padding:28px 0;
}

.footer-inner{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:space-between;
  font-size:13px;
  color:var(--text-dim);
}

.footer-inner a{font-weight:600; color:var(--text);}

@media (max-width:760px){
  .nav{gap:16px;}
  .nav a:not(.nav-cta){display:none;}
  .sodi-grid{grid-template-columns:1fr; gap:36px;}
  .contact-cards{grid-template-columns:1fr;}
  .hero{padding:72px 0 56px;}
  .gallery-grid{grid-template-columns:repeat(2, 1fr); grid-auto-rows:140px;}
  .gallery-grid img:nth-child(1){grid-column:span 2; grid-row:span 1;}
  .gallery-grid img:nth-child(2){grid-column:span 1; grid-row:span 2;}
  .gallery-grid img:nth-child(3){grid-column:span 1; grid-row:span 2;}
  .gallery-grid img:nth-child(4){grid-column:span 2; grid-row:span 1;}
  .gallery-grid img:nth-child(5){grid-column:span 2; grid-row:span 1;}
  .sodi{padding:64px 0;}
  .team{padding:72px 0;}
  .contact{padding:72px 0;}
}

@media (max-width:480px){
  .header-inner{height:64px;}
  .logo img{height:24px;}
  .nav-cta{padding:9px 14px; font-size:13px;}
  .brand-lockup{gap:12px; margin-bottom:24px;}
  .brand-logo{height:26px;}
  .brand-logo--sodi{height:23px;}
  .hero-actions{flex-direction:column; align-items:stretch;}
  .btn{width:100%; padding:16px 20px;}
  .sodi-points li{padding:16px;}
  .team-inner .btn{width:100%; max-width:320px;}
}
