:root {
  --royal-blue: #1559ff;
  --bright-blue: #27a7ff;
  --deep-blue: #071a5d;
  --black: #030407;
  --soft-black: #090b11;
  --panel: #0e1119;
  --light-grey: #d9dde7;
  --muted: #9ca5b8;
  --white: #ffffff;
  --header-height: 92px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--white);
  background: var(--black);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 18px;
  background: #000;
  transition: opacity .55s ease, visibility .55s ease;
}
.page-loader img { width: min(330px, 56vw); max-height: 72vh; object-fit: contain; border-radius: 8px; }
.page-loader span { color: #cfe5ff; font-size: 12px; letter-spacing: .28em; text-transform: uppercase; }
.page-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-height);
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto minmax(180px, 1fr);
  align-items: center;
  gap: 24px;
  padding: 12px clamp(22px, 4vw, 72px);
  background: linear-gradient(180deg, rgba(0,0,0,.94), rgba(0,0,0,.52), transparent);
  transition: background .25s ease, height .25s ease, box-shadow .25s ease;
}
.site-header.scrolled { height: 74px; background: rgba(3,4,7,.94); box-shadow: 0 10px 35px rgba(0,0,0,.45); backdrop-filter: blur(14px); }
.brand { justify-self: start; display: block; width: clamp(225px, 25vw, 390px); line-height: 0; }
.brand img { width: 100%; height: auto; display: block; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 2.2vw, 38px); }
.main-nav a { position: relative; color: #e8ebf1; font-weight: 700; font-size: 14px; white-space: nowrap; }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-10px; height:2px; background:var(--royal-blue); transition:right .25s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right:0; }
.header-actions { justify-self: end; display:flex; align-items:center; gap:14px; }
.icon-button { width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:50%; color:#fff; background:rgba(255,255,255,.04); cursor:pointer; }
.icon-button svg { width:20px; fill:none; stroke:currentColor; stroke-width:1.7; }
.login-button, .unlock-button, .secondary-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:0 25px; border-radius:4px; font-weight:900; letter-spacing:.01em; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.login-button { min-height:44px; padding-inline:22px; background:var(--royal-blue); }
.unlock-button { color:#fff; background:linear-gradient(135deg, #0877ff, #1735d6); box-shadow:0 14px 36px rgba(17,77,255,.28); }
.unlock-button:hover, .secondary-button:hover, .login-button:hover { transform:translateY(-2px); }
.unlock-button:hover { box-shadow:0 18px 42px rgba(17,77,255,.42); }
.unlock-button.compact { display:none; min-height:40px; padding-inline:16px; font-size:12px; }
.secondary-button { border:1px solid rgba(255,255,255,.34); background:rgba(0,0,0,.4); }
.secondary-button.light { background:#fff; color:#07112e; border-color:#fff; }
.menu-toggle { display:none; width:44px; height:44px; padding:10px; border:0; background:transparent; cursor:pointer; }
.menu-toggle span { display:block; height:2px; margin:6px 0; background:#fff; transition:.2s; }

.hero { position:relative; min-height:100svh; height:920px; max-height:1000px; display:flex; align-items:center; overflow:hidden; background:#020306; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.72) 29%, rgba(0,0,0,.2) 58%, rgba(0,0,0,.42) 100%), linear-gradient(0deg, #030407 0%, transparent 26%, rgba(0,0,0,.12) 100%); }
.hero-blue-glow { position:absolute; width:46vw; height:46vw; right:-18vw; top:18%; border-radius:50%; background:radial-gradient(circle, rgba(0,89,255,.26), transparent 68%); filter:blur(30px); }
.hero-content { position:relative; z-index:2; width:min(720px, 80vw); margin-left:clamp(28px, 6vw, 100px); padding-top:var(--header-height); }
.eyebrow, .section-kicker { color:#8fc9ff; font-size:12px; font-weight:900; letter-spacing:.24em; text-transform:uppercase; }
.eyebrow { display:flex; align-items:center; gap:12px; }
.eyebrow span { width:44px; height:2px; background:var(--bright-blue); box-shadow:0 0 14px var(--bright-blue); }
.hero-copy { max-width:620px; margin:22px 0 0; color:#d7dce7; font-size:clamp(16px, 1.25vw, 20px); line-height:1.7; }
.hero-meta { display:flex; align-items:center; flex-wrap:wrap; gap:11px; margin:26px 0 30px; color:#fff; font-size:13px; font-weight:800; }
.hero-meta i { width:5px; height:5px; border-radius:50%; background:var(--royal-blue); }
.hero-buttons { display:flex; flex-wrap:wrap; gap:14px; }
.video-controls { position:absolute; z-index:3; right:clamp(22px, 4vw, 64px); bottom:44px; }
.video-controls button { width:50px; height:50px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:grid; place-items:center; color:#fff; background:rgba(0,0,0,.54); backdrop-filter:blur(8px); cursor:pointer; }
.video-controls svg { width:22px; fill:none; stroke:currentColor; stroke-width:1.6; }
.video-controls .sound-on { display:none; }
.video-controls.is-on .sound-on { display:block; }
.video-controls.is-on .sound-off { display:none; }
.scroll-cue { position:absolute; z-index:3; left:50%; bottom:28px; width:28px; height:48px; border:1px solid rgba(255,255,255,.34); border-radius:20px; }
.scroll-cue span { position:absolute; left:50%; top:9px; width:4px; height:8px; margin-left:-2px; border-radius:5px; background:#fff; animation:scrollCue 1.6s infinite; }
@keyframes scrollCue { 0%{opacity:0;transform:translateY(0)} 25%{opacity:1} 100%{opacity:0;transform:translateY(18px)} }

.intro-section { min-height:580px; padding:120px 24px; display:grid; place-items:center; align-content:center; text-align:center; background:radial-gradient(circle at 50% 0%, rgba(19,82,255,.17), transparent 42%), #05070b; }
.intro-section h2 { margin:12px 0; font-size:clamp(42px, 6vw, 82px); letter-spacing:-.05em; }
.intro-section p { max-width:760px; margin:0 auto 34px; color:var(--muted); font-size:18px; line-height:1.75; }
.members-strip { padding:48px clamp(24px, 6vw, 100px); display:flex; align-items:center; justify-content:space-between; gap:28px; background:linear-gradient(100deg, #071a5d, #0c54e6 60%, #0a85ff); }
.members-strip span { color:#c8dcff; font-weight:800; text-transform:uppercase; letter-spacing:.14em; font-size:12px; }
.members-strip h2 { margin:5px 0 0; font-size:clamp(25px, 3vw, 43px); }

.site-footer { background:#050609; border-top:1px solid rgba(255,255,255,.07); }
.footer-main { min-height:460px; display:grid; grid-template-columns:1.1fr 1fr 1.15fr; gap:clamp(45px, 7vw, 130px); padding:70px clamp(24px, 5.5vw, 88px); align-items:start; }
.footer-contact .footer-logo { display:block; width:min(290px, 80%); height:100px; object-fit:contain; object-position:left center; }
.footer-contact p { margin:8px 0 26px; color:#d8dce6; }
.footer-contact p a { font-weight:800; }
.footer-contact h2, .newsletter h2 { margin:0 0 25px; font-size:30px; }
.social-icons { display:flex; align-items:center; gap:14px; }
.social-icons a { width:70px; height:70px; display:grid; place-items:center; }
.social-icons img { width:100%; height:100%; object-fit:contain; transition:transform .2s ease; }
.social-icons a:hover img { transform:translateY(-4px) scale(1.04); }
.footer-message { padding-top:86px; }
.footer-message h2 { margin:14px 0; font-size:clamp(28px, 3vw, 45px); line-height:1.05; }
.footer-message p:last-child { color:var(--muted); line-height:1.7; }
.newsletter { padding-top:12px; }
.newsletter form { display:grid; grid-template-columns:1fr auto; }
.newsletter input { min-width:0; height:64px; padding:0 20px; border:1px solid #252a35; outline:0; color:#fff; background:#080a0f; }
.newsletter input:focus { border-color:var(--royal-blue); }
.newsletter button { height:64px; padding:0 28px; border:0; color:#fff; background:var(--royal-blue); font-weight:900; cursor:pointer; }
.footer-bottom { min-height:130px; padding:26px clamp(24px, 5.5vw, 88px); border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:space-between; gap:30px; }
.footer-bottom p { color:#bbc1ce; font-size:14px; }
.footer-bottom strong, .mini-brand { color:#2d7eff; }
.mini-brand { display:flex; align-items:center; gap:16px; font-family:Georgia,serif; font-size:25px; }
.path-symbol { position:relative; width:70px; height:40px; display:block; transform:rotate(20deg); background:linear-gradient(145deg, #177bff, #1414d5); clip-path:polygon(25% 0, 100% 0, 75% 100%, 0 100%); }

.search-panel { position:fixed; inset:0; z-index:500; display:grid; place-items:center; align-content:center; gap:16px; background:rgba(1,2,6,.96); }
.search-panel[hidden] { display:none; }
.search-panel label { font-size:14px; text-transform:uppercase; letter-spacing:.2em; color:#a7b7d7; }
.search-panel input { width:min(760px, 85vw); height:80px; padding:0 24px; border:0; border-bottom:2px solid var(--royal-blue); outline:0; color:#fff; background:transparent; font-size:clamp(24px, 4vw, 48px); text-align:center; }
.search-panel button { position:absolute; top:28px; right:36px; border:0; color:#fff; background:transparent; font-size:54px; cursor:pointer; }
.notice { position:fixed; z-index:800; left:50%; bottom:26px; transform:translate(-50%, 20px); max-width:min(520px, 90vw); padding:14px 20px; border:1px solid rgba(75,144,255,.4); border-radius:5px; color:#e9f3ff; background:rgba(3,13,38,.94); box-shadow:0 16px 50px rgba(0,0,0,.45); opacity:0; pointer-events:none; transition:.25s; text-align:center; }
.notice.show { opacity:1; transform:translate(-50%, 0); }

@media (max-width: 1180px) {
  .site-header { grid-template-columns:1fr auto auto; }
  .main-nav { position:fixed; top:74px; left:0; right:0; display:none; flex-direction:column; gap:0; padding:15px 24px 28px; background:rgba(3,4,7,.98); }
  .main-nav.open { display:flex; }
  .main-nav a { width:100%; padding:16px 4px; border-bottom:1px solid rgba(255,255,255,.08); }
  .menu-toggle { display:block; justify-self:end; }
  .header-actions { display:none; }
  .unlock-button.compact { display:inline-flex; justify-self:end; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .newsletter { grid-column:1 / -1; }
  .footer-message { padding-top:70px; }
}

@media (max-width: 760px) {
  :root { --header-height:74px; }
  .site-header { grid-template-columns:1fr auto; padding:10px 18px; gap:10px; }
  .brand { width:205px; }
  .unlock-button.compact { display:none; }
  .hero { height:820px; align-items:flex-end; }
  .hero-video { object-position:center; }
  .hero-shade { background:linear-gradient(0deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.72) 52%, rgba(0,0,0,.3) 100%); }
  .hero-content { width:auto; margin:0; padding:0 22px 116px; }
  .hero-copy { font-size:15px; line-height:1.55; }
  .hero-meta { margin:18px 0 24px; }
  .hero-buttons { flex-direction:column; align-items:stretch; }
  .hero-buttons a { width:100%; }
  .video-controls { bottom:28px; right:20px; }
  .scroll-cue { display:none; }
  .members-strip { flex-direction:column; align-items:flex-start; }
  .footer-main { grid-template-columns:1fr; gap:28px; padding-top:52px; }
  .footer-contact .footer-logo { width:260px; }
  .footer-message { padding-top:18px; }
  .newsletter { grid-column:auto; }
  .newsletter form { grid-template-columns:1fr; gap:10px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
