
:root{
  --bg:#0f172a; --panel:#111827; --muted:#94a3b8; --text:#e5e7eb;
  --brand:#22c55e; --brand-2:#84cc16; --card:#0b1223;
  --gutter: clamp(24px, 5vw, 64px);
  --maxw: 1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;background:linear-gradient(180deg,var(--bg),#030712 60%);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;border-radius:.7rem}
h1{font-size:clamp(2rem, 3.5vw + 1rem, 3rem);margin:.6rem 0 1rem}
h2{font-size:1.6rem;margin:0 0 1rem}
p.lead{color:#cbd5e1;max-width:70ch}
.muted{color:var(--muted)}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
main.wrap{padding-top:3.5rem}
section{padding:2.5rem 0;border-top:1px solid #0b1223}

/* Header edge-to-edge, content aligned via inner gutter */
header{position:sticky;top:0;z-index:60;background:rgba(3,7,18,.9);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid #1f2937}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:3.5rem;padding-inline:var(--gutter);max-width:var(--maxw);margin-inline:auto}
.brand{font-weight:800;letter-spacing:.3px}
.brand .accent{color:var(--brand)}
.menu{display:flex;gap:1rem;align-items:center}
.menu a{padding:.55rem .75rem;border-radius:.55rem;transition:background .25s ease, transform .12s ease}
.menu a:hover{background:#0b1223;transform:translateY(-1px)}
.hamburger{display:none}
@media (max-width:780px){ .menu{display:none} .hamburger{display:inline-flex;align-items:center;gap:.4rem;background:none;border:1px solid #1f2937;color:var(--text);padding:.5rem .75rem;border-radius:.8rem} }

/* Full-screen mobile overlay */
.mobile-nav{
  position:fixed; inset:0; z-index:9999;
  background:#030712; /* solid */
  display:none;
  grid-template-rows:auto 1fr;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .28s ease, transform .28s ease, visibility .28s ease;
}
html.is-nav-open .mobile-nav{ display:grid; opacity:1; visibility:visible; transform:none }
#menu-close{
  position:absolute; top:14px; right:14px;
  background:#0b1223; color:#e5e7eb; border:1px solid #1f2937;
  padding:.6rem .8rem; border-radius:.8rem; font-weight:700;
  box-shadow:0 10px 20px rgba(0,0,0,.35);
  overflow: hidden;
}

html.is-nav-open body > *:not(.mobile-nav) {
  visibility: hidden !important; /* remove everything from view */
  pointer-events: none !important;
}

html.is-nav-open .mobile-nav{
  display: grid;
  opacity: 1; visibility: visible; transform: none;
}

.mobile-nav .panel-inner{
  max-width:var(--maxw); margin-inline:auto;
  padding: max(64px, var(--gutter)) var(--gutter) var(--gutter);
  display:flex; flex-direction:column; gap:.8rem;
}

.mobile-nav{
  position: fixed;
  inset: 0;
  z-index: 2147483647; /* max-ish to beat any header z-index */
  background: #030712;  /* solid */
  display: none;
  grid-template-rows: auto 1fr;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .28s ease, transform .28s ease, visibility .28s ease;
}

.mobile-nav a{
  display:block; font-size:1.25rem; font-weight:650; letter-spacing:.2px;
  padding:1rem 1.1rem; border-radius:1rem;
  border:1px solid #0b1223; background:#0b1223;
  box-shadow:0 1px 0 #0b1223, 0 10px 20px rgba(0,0,0,.25);
  transform:translateY(10px) scale(.98); opacity:0;
  animation:menuItemIn .5s cubic-bezier(.22,.61,.36,1) forwards;
}
.mobile-nav a:nth-child(1){animation-delay:.05s}
.mobile-nav a:nth-child(2){animation-delay:.1s}
.mobile-nav a:nth-child(3){animation-delay:.15s}
.mobile-nav a:nth-child(4){animation-delay:.2s}
.mobile-nav a:nth-child(5){animation-delay:.25s}
.mobile-nav a:nth-child(6){animation-delay:.3s}
@keyframes menuItemIn{60%{transform:translateY(0) scale(1.02); opacity:.9} 100%{transform:none; opacity:1}}

/* Footer */
footer{padding:2.5rem 0;border-top:1px solid #0b1223;color:#a3a3a3;font-size:.95rem;background:#060a16}
.footer-inner{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* Layout components */
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;align-items:center}
.split.reverse{grid-template-columns:.8fr 1.2fr}
.split .img{aspect-ratio:4/3;border-radius:1rem;overflow:hidden}
.split img{width:100%;height:100%;object-fit:cover}
@media (max-width:980px){ .split,.split.reverse{grid-template-columns:1fr} }

.gallery{--gap:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--gap)}
.gallery figure{margin:0;position:relative;border-radius:1rem;overflow:hidden;box-shadow:0 1px 0 #0b1223;aspect-ratio:4/3}
.gallery img{width:100%;height:100%;object-fit:cover;opacity:0;transform:translateY(10px);transition:opacity .6s ease, transform .6s ease, box-shadow .35s ease}
.gallery img.ready{opacity:1;transform:none}
.gallery img:hover{box-shadow:0 14px 28px rgba(0,0,0,.45);transform:scale(1.02)}
@media (max-width:520px){.gallery{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
@media (min-width:1280px){.gallery{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}

/* Cards/utility */
.grid{display:grid;gap:1rem}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid #132033;border-radius:1rem;padding:1.05rem;box-shadow:0 1px 0 #0b1223}

.lightbox{position:fixed;inset:0;background:rgba(3,7,18,.92);display:none;align-items:center;justify-content:center;z-index:70}
.lightbox.open{display:flex}
.lightbox img{max-height:86vh;width:auto;border-radius:1rem;box-shadow:0 10px 20px rgba(0,0,0,.35)}
.close{position:absolute;top:1rem;right:1rem;border:0;background:#111827;color:white;padding:.65rem .85rem;border-radius:.8rem}

@media (prefers-reduced-motion: reduce){
  *{animation: none !important; transition: none !important}
  html{scroll-behavior:auto}
}
main{scroll-margin-top:4.5rem}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.45rem;
  padding:.7rem 1.05rem;
  border-radius:.7rem;
  border:1px solid #1f2937;
  background:#0b1223;
  color:var(--text, #e5e7eb);
  font-weight:600;
  text-decoration:none;
  box-shadow:0 1px 0 #0b1223;
  transition:transform .15s ease, box-shadow .25s ease, background .25s ease;
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 10px 20px rgba(0,0,0,.35) }
.btn:active{ transform:translateY(0); box-shadow:0 6px 12px rgba(0,0,0,.3) }
.btn:focus-visible{ outline:2px solid #84cc16; outline-offset:2px; border-color:#84cc16 }

/* Primary (green gradient) */
.btn.primary{
  background:linear-gradient(90deg, #22c55e, #84cc16);
  color:#051b0a;
  font-weight:800;
  border:1px solid rgba(0,0,0,.15);
}
.btn.primary:hover{ box-shadow:0 12px 24px rgba(34,197,94,.35), 0 1px 0 rgba(0,0,0,.2) }
.btn.primary:active{ transform:translateY(0); box-shadow:0 8px 16px rgba(34,197,94,.3) }
