:root{--bg:#050913;--navy:#0b1830;--red:#ff3b3b;--red2:#e11d2a;--mute:#8b94a7;--line:#ffffff1c;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--bg);color:#eef1f7;font-family:'Montserrat',system-ui,sans-serif;overflow-x:clip;line-height:1.6}
a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #8fb4ff;outline-offset:3px}
.x{font-family:'Michroma','Montserrat',sans-serif;text-transform:uppercase;font-weight:400}
/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:18px max(5vw,calc((100vw - var(--max))/2));background:linear-gradient(#050913ee,#05091300);backdrop-filter:blur(8px)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.brand img{height:34px}.brand span{font-weight:300;letter-spacing:.5em;font-size:14px}.brand b{color:var(--red2);font-size:10px;letter-spacing:.2em;margin-left:-.3em;align-self:flex-start;margin-top:4px}
.nav .l a{text-decoration:none;margin-left:30px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.7;transition:opacity .25s,color .25s}.nav .l a:hover{opacity:1;color:var(--red)}
.btn{display:inline-block;padding:17px 34px;border:1px solid var(--red);color:#fff;text-decoration:none;font-size:12px;letter-spacing:.25em;text-transform:uppercase;font-weight:500;background:rgba(255,59,59,.08);transition:background-color .3s,box-shadow .3s;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--red);box-shadow:0 0 50px rgba(255,59,59,.6)}.btn.ghost{border-color:#ffffff40;background:none}.btn.ghost:hover{background:#ffffff14;box-shadow:none}
.btns{display:flex;gap:14px;flex-wrap:wrap}
/* hero */
.hero{position:relative;height:100vh;min-height:680px;overflow:hidden}
.hero canvas{position:absolute;inset:0;width:100%;height:100%}
.hero.short{height:78vh;min-height:560px}
.tagline{letter-spacing:.45em;font-size:12px;color:#aab3c5;text-transform:uppercase}.tagline i{color:var(--red);font-style:normal;margin:0 .6em}
.copy h1{font-family:'Michroma';font-weight:400;text-transform:uppercase;margin:0}
.copy p{color:#aab3c5;line-height:1.8;font-size:16px}
/* hero A: particles */
.hero.pa{background:radial-gradient(ellipse at 72% 50%,#102445,#050913 65%)}
.pa .copy{position:absolute;left:max(5vw,calc((100vw - var(--max))/2));top:50%;transform:translateY(-50%);z-index:2;max-width:540px}
.pa .copy h1{font-size:clamp(26px,3.5vw,54px);line-height:1.2;letter-spacing:.06em;margin-bottom:26px}.pa .copy h1 em{font-style:normal;color:var(--red);text-shadow:0 0 40px rgba(255,59,59,.55)}
.pa .copy p{margin:0 0 34px}.pa .tagline{margin-top:34px}
/* hero B: eclipse */
.hero.ec .copy{position:absolute;left:0;right:0;bottom:7vh;text-align:center;z-index:2;padding:0 5vw}
.ec .copy h1{font-size:clamp(22px,3.2vw,50px);letter-spacing:.12em;margin-bottom:20px;text-shadow:0 0 40px #050913}.ec .copy h1 em{font-style:normal;color:var(--red);text-shadow:0 0 30px rgba(255,59,59,.6)}
.ec .copy p{max-width:560px;margin:0 auto 28px}
/* hero C: monolith */
.hero.mo{background:linear-gradient(#050913,#070e20 55%,#050913);perspective:1400px}
.mo .beams{position:absolute;inset:0;overflow:hidden}.mo .beams i{position:absolute;top:-10%;width:2px;height:80%;background:linear-gradient(#ff3b3b00,#ff3b3b88 50%,#ff3b3b00);filter:blur(1px);transform-origin:top;animation:bm 9s ease-in-out infinite}
@keyframes bm{50%{opacity:.25}}
.mo .horizon{position:absolute;left:0;right:0;top:60%;height:1px;background:linear-gradient(90deg,transparent,#ff3b3b,transparent);box-shadow:0 0 60px 20px rgba(255,59,59,.35)}
.mo .floor{position:absolute;left:-50%;right:-50%;top:60%;bottom:-40%;transform-origin:top;transform:rotateX(72deg);background:linear-gradient(#ff3b3b55 1px,transparent 1px) 0 0/100% 70px,linear-gradient(90deg,#4f78d044 1px,transparent 1px) 0 0/90px 100%;animation:fl 2.4s linear infinite;-webkit-mask-image:linear-gradient(transparent,#000 30%);mask-image:linear-gradient(transparent,#000 30%)}
@keyframes fl{to{background-position:0 70px,0 0}}
.mo .stage{position:absolute;left:50%;top:36%;width:340px;height:580px;margin:-290px 0 0 -170px;transform-style:preserve-3d}
.mo .stage svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mo .ghost{opacity:.22}.mo .ghost path{fill:none;stroke:#7fa4f0;stroke-width:1.4}.mo .glow{filter:drop-shadow(0 0 28px rgba(255,59,59,.55))}
.mo .copy{position:absolute;left:0;right:0;bottom:6vh;text-align:center;z-index:5;padding:0 5vw}
.mo .copy h1{font-size:clamp(20px,2.8vw,44px);letter-spacing:.18em;margin-bottom:18px}.mo .copy h1 em{font-style:normal;color:var(--red);text-shadow:0 0 30px rgba(255,59,59,.7)}
.mo .copy .tagline{margin-bottom:24px}
/* sections */
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.s{padding:120px 0;position:relative}
.kick{font-size:12px;letter-spacing:.3em;color:var(--red);text-transform:uppercase;margin-bottom:6px}
h2.x{font-size:clamp(24px,3.6vw,52px);line-height:1.14;margin:14px 0 56px;letter-spacing:.04em}
.lead{max-width:640px;color:#aab3c5;font-size:17px;line-height:1.8;margin:-30px 0 56px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.card{position:relative;padding:34px;min-height:290px;border:1px solid var(--line);background:linear-gradient(160deg,#0f2040aa,#060b18cc);clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,28px 100%,0 calc(100% - 28px));transition:transform .25s;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none}
.card:before{content:'';position:absolute;inset:0;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0),rgba(255,59,59,.26),transparent 60%);opacity:0;transition:opacity .3s}.card:hover:before{opacity:1}.card>*{position:relative}
.card small{color:var(--red);letter-spacing:.25em;font-size:11px;text-transform:uppercase}
.card h3{font-family:'Michroma';font-weight:400;font-size:21px;margin:12px 0;letter-spacing:.05em;text-transform:uppercase}
.card p{color:var(--mute);line-height:1.7;font-size:14px;margin:0}
.card .more{margin-top:18px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#fff}
.num{font-family:'Michroma';font-size:clamp(60px,9vw,120px);line-height:1}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:60px;align-items:center}
.shot{margin:0;border:1px solid var(--line);background:#0a1226;box-shadow:0 30px 80px -30px #000}
.shot img{display:block;width:100%;height:auto}.shot figcaption{padding:12px 16px;color:var(--mute);font-size:13px}
.feat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.feat div{background:var(--bg);padding:32px}.feat h3{font-family:'Michroma';font-weight:400;font-size:15px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px}.feat p{margin:0;color:var(--mute);font-size:14px;line-height:1.75}
.rowl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:40px;align-items:center;padding:34px 0;border-bottom:1px solid var(--line)}
.rowl h3{font-family:'Michroma';font-weight:400;font-size:22px;letter-spacing:.05em;text-transform:uppercase;margin:0}.rowl small{color:var(--red);letter-spacing:.2em;font-size:11px;text-transform:uppercase}.rowl p{margin:0;color:var(--mute)}
.rowl:first-of-type{border-top:1px solid var(--line)}
.tag{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#aab3c5;border:1px solid #ffffff2a;padding:6px 12px}
.cta{text-align:center;padding:150px 0}
.band{background:linear-gradient(#050913,#0a1226 50%,#050913)}
/* training */
.gate{position:fixed;inset:0;z-index:50;background:#050913f2;backdrop-filter:blur(10px);display:grid;place-items:center;padding:24px}
.gate form{max-width:420px;width:100%;border:1px solid var(--line);background:#0b1830cc;padding:40px;text-align:center}
.gate h2{font-family:'Michroma';font-weight:400;font-size:18px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}.gate p{color:var(--mute);font-size:14px;margin:0 0 24px}
.gate input{width:100%;padding:15px 16px;background:#050913;border:1px solid #ffffff30;color:#fff;font:inherit;text-align:center;letter-spacing:.2em;margin-bottom:16px}
.gate .err{color:#ff8a8a;font-size:13px;min-height:20px;margin:10px 0 0}
.locked{display:none}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.vcard{border:1px solid var(--line);background:#0b1830aa}
.player{aspect-ratio:16/9;background:#050913 center/cover;display:grid;place-items:center;position:relative}
.player iframe,.player video{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{width:64px;height:64px;border-radius:50%;border:1px solid var(--red);display:grid;place-items:center;box-shadow:0 0 30px rgba(255,59,59,.5),inset 0 0 20px rgba(255,59,59,.25)}.play:after{content:'';border-left:15px solid var(--red);border-block:9px solid transparent;margin-left:4px}
.vcard .t{padding:22px}.vcard h3{font-family:'Michroma';font-weight:400;font-size:17px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}.vcard p{color:var(--mute);font-size:14px;margin:0 0 14px}
.vcard a.dl{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);text-decoration:none}
/* footer */
.foot{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:40px;max-width:var(--max);margin:0 auto;padding:60px 40px;border-top:1px solid var(--line);color:var(--mute);font-size:13px}
.foot a{display:block;text-decoration:none;margin-bottom:10px;color:#cfd6e6}.foot a:hover{color:var(--red)}.foot p{margin:12px 0 0;line-height:1.7}
.rv{opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1)}.rv.on{opacity:1;transform:none}
@media(max-width:900px){.cards,.feat,.vgrid{grid-template-columns:minmax(0,1fr)}.split,.rowl,.foot{grid-template-columns:minmax(0,1fr)}.brand span{display:none}.nav .l a{margin-left:14px;font-size:10px;letter-spacing:.12em}.pa .copy{top:auto;bottom:8vh;transform:none}.wrap{padding:0 22px}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.mo .floor,.mo .beams i{animation:none}}
h2.x.sm{font-size:clamp(20px,2.4vw,34px);line-height:1.2;margin:0 0 20px;letter-spacing:.04em}
