:root{
  --bg: #0f1724;
  --card: rgba(255,255,255,0.04);
  --glass: rgba(255,255,255,0.03);
  --accent: #6ee7b7;
  --muted: #9aa4b2;
  --radius: 14px;
  --fw-regular: 400;
  --fw-strong: 600;
}

*{box-sizing:border-box}
html,body,#root{height:100%}
body{
  margin:0;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background:
    radial-gradient(1200px 400px at 10% 10%, rgba(110,231,183,0.05), transparent 10%),
    linear-gradient(180deg, #071029 0%, #0f1724 100%);
  color:#e6eef6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.45;
  padding:24px;
}

/* Hero */
.hero{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px;
  margin-bottom:24px;
  border-radius:18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  box-shadow: 0 6px 30px rgba(2,6,23,0.6);
  backdrop-filter: blur(6px) saturate(120%);
}
.hero-inner{max-width:1100px; text-align:center}
.title{
  margin:0;
  font-size:clamp(1.4rem, 3.2vw, 2.4rem);
  font-weight:800;
  letter-spacing: -0.01em;
  color: #f8fffb;
}
.subtitle{
  margin:8px 0 16px 0;
  color:var(--muted);
  font-weight:var(--fw-regular);
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:transparent;
  color:var(--accent);
  border:1px solid rgba(110,231,183,0.12);
  padding:10px 14px;
  border-radius:10px;
  text-decoration:none;
  font-weight:600;
  transition:all .18s ease;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 6px 18px rgba(0,0,0,0.35)}
.btn.primary{
  background: linear-gradient(90deg,#075985 0%, #0ea5a0 100%);
  color: #fff;
  border: none;
}
.btn.ghost{
  color:#cfeff0;
  border:1px solid rgba(255,255,255,0.06);
}
.actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

/* Layout */
.content{
  display:grid;
  gap:20px;
  grid-template-columns: 1fr;
  max-width:1100px;
  margin:0 auto 44px;
  align-items:start;
}
.card{
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius: var(--radius);
  padding:18px;
  box-shadow: 0 8px 30px rgba(6,9,18,0.6);
  border: 1px solid rgba(255,255,255,0.03);
}
.card-inner h2{margin:0 0 8px 0}
.muted{color:var(--muted); margin:0 0 12px 0}

/* Media wrapper */
.media-wrapper{display:flex; flex-direction:column; gap:12px}
.responsive-video{
  width:100%;
  max-height:580px;
  border-radius:12px;
  background: #000;
  box-shadow: 0 10px 30px rgba(2,6,23,0.7);
  transition: transform .22s cubic-bezier(.2,.9,.3,1), box-shadow .2s;
}
.responsive-video:focus,
.responsive-video:hover{ transform: translateY(-4px); box-shadow: 0 18px 42px rgba(2,6,23,0.8)}

/* Image card */
.image-figure{margin:0; display:flex; justify-content:center}
.image-figure img{
  max-width:100%;
  height:auto;
  border-radius:10px;
  box-shadow: 0 12px 30px rgba(3,9,22,0.6);
  transition: transform .25s ease, filter .25s ease;
  cursor:zoom-in;
  display:block;
}
.image-figure img:hover{ transform:scale(1.01); filter:brightness(1.02) }

/* Footer */
.card-footer{ margin-top:12px; display:flex; gap:10px; align-items:center; flex-wrap:wrap }

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(2,6,23,0.85);
  z-index:1200;
  padding:28px;
}
.lightbox[aria-hidden="false"]{ display:flex }
.lightbox img{ max-width:95%; max-height:85vh; border-radius:8px; box-shadow: 0 30px 80px rgba(0,0,0,0.7) }
.lightbox-close{
  position:fixed;
  top:20px;
  right:20px;
  background:transparent;
  border:none;
  color:#fff;
  font-size:22px;
  padding:10px;
  cursor:pointer;
  z-index:1300;
}
.download-fixed{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:1300;
  text-decoration:none;
}

/* Accessibility helpers */
.sr-only{
  position:absolute!important;
  width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* Responsive: 2-column on larger screens */
@media(min-width:900px){
  .content{ grid-template-columns: 1fr 1fr; align-items:start }
  .hero{ padding:40px }
}