/* OnTime Gym — dark navy 3D aesthetic (palette from dribbble shot 26767914)
   #010308 base · #061A4E deep navy · #1D40A2 electric · #529EC5 steel · #DDD0D4 text */
:root{
  --bg:#010308; --navy:#061A4E; --blue:#1D40A2; --steel:#529EC5;
  --text:#DDD0D4; --mute:#A7B5BD; --dim:#454D59; --tan:#917665;
  --grad:linear-gradient(92deg,#529EC5,#1D40A2 55%,#529EC5);
  --font-h:'Space Grotesk',sans-serif; --font-b:'Archivo',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--font-b);font-weight:400;line-height:1.6;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
::selection{background:var(--blue);color:#fff}

/* cinematic corner glow + film grain, like the shot */
.corner-glow{position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(52rem 40rem at 8% -10%,rgba(29,64,162,.55),transparent 65%),
             radial-gradient(40rem 34rem at 105% 110%,rgba(6,26,78,.7),transparent 60%);}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");}
main,header,footer{position:relative;z-index:2}

/* ============ nav ============ */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:2rem;
  padding:1.1rem clamp(1.2rem,4vw,3rem);transition:background .4s,backdrop-filter .4s;}
.nav.scrolled{background:rgba(1,3,8,.65);backdrop-filter:blur(16px);border-bottom:1px solid rgba(82,158,197,.12)}
.logo{font-family:var(--font-h);font-weight:700;font-size:1.15rem;letter-spacing:.08em;color:#fff;text-decoration:none}
.logo span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{margin-left:auto;display:flex;gap:1.8rem}
.nav-links a{color:var(--mute);text-decoration:none;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;transition:color .25s}
.nav-links a:hover{color:#fff}
.nav-burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px}
.nav-burger span{width:22px;height:2px;background:#fff;display:block}

/* ============ buttons ============ */
.btn{display:inline-block;font-family:var(--font-h);font-weight:500;font-size:.9rem;letter-spacing:.04em;
  padding:.85rem 1.7rem;border-radius:99px;text-decoration:none;color:#fff;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s}
.btn-glow{background:linear-gradient(92deg,#2d5fd0,#529EC5);box-shadow:0 0 24px rgba(45,95,208,.45),0 0 60px rgba(82,158,197,.2)}
.btn-glow:hover{transform:translateY(-2px);box-shadow:0 0 34px rgba(45,95,208,.65),0 0 90px rgba(82,158,197,.3)}
.btn-ghost{border:1px solid rgba(167,181,189,.35);color:var(--text)}
.btn-ghost:hover{border-color:var(--steel);transform:translateY(-2px)}
.btn-sm{padding:.55rem 1.2rem;font-size:.8rem}
.btn-lg{padding:1.05rem 2.3rem;font-size:1rem}

/* ============ hero ============ */
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,45%) minmax(0,55%);align-items:center;
  padding:7rem clamp(1.2rem,4vw,3rem) 0;position:relative}
.hero-copy{max-width:34rem}
.eyebrow{font-family:var(--font-h);font-size:.75rem;letter-spacing:.3em;color:var(--steel);margin-bottom:1.2rem}
h1{font-family:var(--font-h);font-weight:700;font-size:clamp(2.8rem,7vw,5.2rem);line-height:.98;letter-spacing:-.01em;color:#fff}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{color:var(--mute);font-size:1.05rem;margin:1.5rem 0 2rem;max-width:30rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero-benefits{list-style:none;display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:2.4rem;
  color:var(--mute);font-size:.85rem}
.hero-3d{position:absolute;inset:0;z-index:-1}
.hero-3d canvas{display:block}
.hero-proof{position:absolute;bottom:2rem;left:clamp(1.2rem,4vw,3rem);right:clamp(1.2rem,4vw,3rem);
  display:flex;gap:1.6rem;align-items:center;color:var(--dim);font-size:.8rem;letter-spacing:.05em}
.hero-proof i{width:1px;height:14px;background:var(--dim);display:inline-block}

/* ============ sections ============ */
.section{padding:clamp(4rem,10vw,8rem) clamp(1.2rem,4vw,3rem);max-width:1280px;margin:0 auto}
.section-title{font-family:var(--font-h);font-weight:700;font-size:clamp(2rem,4.5vw,3.4rem);
  line-height:1.05;color:#fff;margin-bottom:3rem}

.benefit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.card{background:linear-gradient(160deg,rgba(6,26,78,.45),rgba(1,3,8,.6));
  border:1px solid rgba(82,158,197,.14);border-radius:20px;padding:2rem;
  transition:transform .3s,border-color .3s,box-shadow .3s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-6px) rotateX(2deg);border-color:rgba(82,158,197,.45);box-shadow:0 20px 50px rgba(0,0,0,.5),0 0 30px rgba(29,64,162,.15)}
.card-num{font-family:var(--font-h);color:var(--blue);font-size:.85rem;letter-spacing:.2em;margin-bottom:1rem}
.card h3{font-family:var(--font-h);font-size:1.15rem;color:#fff;margin-bottom:.6rem;letter-spacing:.02em}
.card p{color:var(--mute);font-size:.92rem}
.tag{display:inline-block;margin-top:1.2rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--steel);border:1px solid rgba(82,158,197,.3);border-radius:99px;padding:.3rem .9rem}

/* offer banner */
.offer{padding:clamp(4rem,10vw,8rem) clamp(1.2rem,4vw,3rem);text-align:center;
  background:radial-gradient(60rem 30rem at 50% 120%,rgba(29,64,162,.35),transparent 70%)}
.offer-inner{max-width:44rem;margin:0 auto}
.offer h2{font-family:var(--font-h);font-weight:700;font-size:clamp(2rem,5vw,3.6rem);color:#fff;line-height:1.05;margin-bottom:1.2rem}
.offer p{color:var(--mute);margin-bottom:2rem}
.fineprint{color:var(--dim);font-size:.78rem;margin-top:1.4rem}

/* community */
.community{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}
.community .lede{margin:0 0 2rem}
.community-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stat{background:linear-gradient(160deg,rgba(6,26,78,.5),rgba(1,3,8,.4));border:1px solid rgba(82,158,197,.14);
  border-radius:20px;padding:1.8rem}
.stat b{font-family:var(--font-h);font-size:2.6rem;color:#fff;display:block}
.stat b::after{content:'+';color:var(--steel)}
.stat i{font-style:normal;color:var(--mute);font-size:.82rem}
.honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none;width:1px;height:1px}
#join-msg.ok{color:var(--steel)}
#join-msg.bad{color:#e07a7a}

.program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem}
.program-grid h3{letter-spacing:.1em}

/* pricing */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;align-items:stretch}
.price{text-align:center}
.price h3{letter-spacing:.15em;font-size:.95rem;color:var(--steel)}
.price-num{font-family:var(--font-h);font-weight:700;font-size:3rem;color:#fff;margin:.8rem 0 1.4rem}
.price-num span{font-size:1rem;color:var(--mute);font-weight:400}
.price ul{list-style:none;color:var(--mute);font-size:.9rem;margin-bottom:1.8rem;display:grid;gap:.55rem}
.price.featured{border-color:rgba(82,158,197,.55);box-shadow:0 0 40px rgba(29,64,162,.3);transform:scale(1.03)}
.badge{position:absolute;top:1rem;right:1rem;font-size:.65rem;letter-spacing:.18em;color:#fff;
  background:linear-gradient(92deg,#2d5fd0,#529EC5);padding:.3rem .8rem;border-radius:99px}

/* final CTA */
.final{padding:clamp(5rem,12vw,9rem) clamp(1.2rem,4vw,3rem);text-align:center;
  background:radial-gradient(50rem 30rem at 50% 0%,rgba(6,26,78,.6),transparent 70%)}
.final h2{font-family:var(--font-h);font-weight:700;font-size:clamp(2.4rem,6vw,4.4rem);color:#fff;line-height:1}
.join-form{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin:2rem auto 0;max-width:36rem}
.join-form input{flex:1;min-width:180px;background:rgba(1,3,8,.7);border:1px solid rgba(167,181,189,.25);
  border-radius:99px;padding:.85rem 1.4rem;color:#fff;font-family:var(--font-b);outline:none;transition:border .25s}
.join-form input:focus{border-color:var(--steel)}

/* footer */
footer{border-top:1px solid rgba(82,158,197,.12);padding:3.5rem clamp(1.2rem,4vw,3rem) 2rem;max-width:1280px;margin:0 auto}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;margin-bottom:2.5rem}
footer h4{font-family:var(--font-h);font-size:.8rem;letter-spacing:.2em;color:var(--steel);margin-bottom:1rem}
footer p,footer a{color:var(--mute);font-size:.88rem;text-decoration:none;display:block;margin-bottom:.4rem}
footer a:hover{color:#fff}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

/* responsive */
@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:9rem}
  .hero-copy{margin:0 auto}
  .community{grid-template-columns:1fr}
  .nav-links{display:none;position:absolute;top:100%;right:0;left:0;flex-direction:column;gap:0;
    background:rgba(1,3,8,.92);backdrop-filter:blur(16px);padding:1rem 2rem}
  .nav-links.open{display:flex}
  .nav-links a{padding:.9rem 0;border-bottom:1px solid rgba(82,158,197,.1)}
  .nav-burger{display:flex;margin-left:auto}
  .nav .btn-sm{margin-left:0}
}
