:root{
  --bg:#07070c; --bg2:#0d0d16; --card:#12121c; --line:#23232f;
  --txt:#f2f2f5; --dim:#a3a3b5;
  --red:#e5322d; --red2:#ff5a3c; --gold:#f5b301;
}
*{box-sizing:border-box; margin:0; padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg); color:var(--txt); font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; line-height:1.6; overflow-x:hidden}
a{color:inherit; text-decoration:none}

.nav{position:sticky; top:0; z-index:50; display:flex; justify-content:space-between; align-items:center;
  padding:14px 20px; background:rgba(7,7,12,.85); backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
.brand{font-weight:800; font-size:1.15rem; letter-spacing:.5px}
.brand span{color:var(--red2)}
.nav-links{display:flex; gap:18px; font-size:.9rem; color:var(--dim)}
.nav-links a:hover{color:var(--txt)}

/* HERO */
.hero{position:relative; padding:84px 20px 70px; text-align:center; overflow:hidden}
.hero-glow{position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(600px 300px at 50% 20%, rgba(229,50,45,.18), transparent 70%),
             radial-gradient(500px 260px at 80% 90%, rgba(245,179,1,.08), transparent 70%)}
.hero-inner{position:relative; max-width:760px; margin:0 auto}
.hero-badge{display:inline-block; font-size:.72rem; letter-spacing:2px; color:var(--gold);
  border:1px solid rgba(245,179,1,.4); padding:6px 14px; border-radius:999px; margin-bottom:22px}
.hero h1{font-size:clamp(3rem,12vw,5.5rem); font-weight:900; letter-spacing:2px; line-height:1}
.hero h1 .grad{background:linear-gradient(120deg,var(--red),var(--red2),var(--gold));
  -webkit-background-clip:text; background-clip:text; color:transparent}
.tagline{font-size:1.4rem; font-weight:700; margin-top:10px; color:var(--txt)}
.hero-desc{color:var(--dim); margin:16px auto 0; max-width:600px}
.hero-cta{display:flex; gap:12px; justify-content:center; margin-top:28px; flex-wrap:wrap}
.hero-stats{display:flex; gap:36px; justify-content:center; margin-top:44px}
.hero-stats div{display:flex; flex-direction:column}
.hero-stats b{font-size:1.8rem; color:var(--red2)}
.hero-stats span{font-size:.8rem; color:var(--dim)}

.btn{display:inline-block; padding:13px 26px; border-radius:12px; font-weight:700; font-size:.95rem;
  border:1px solid transparent; cursor:pointer; transition:transform .12s, box-shadow .12s}
.btn-primary{background:linear-gradient(120deg,var(--red),var(--red2)); color:#fff;
  box-shadow:0 6px 24px rgba(229,50,45,.35)}
.btn-primary:active{transform:scale(.96)}
.btn-ghost{border-color:var(--line); color:var(--txt); background:rgba(255,255,255,.03)}
.btn-ghost:hover{border-color:var(--red2)}
.btn-sm{padding:9px 16px; font-size:.85rem; border-radius:10px}

/* SECTIONS */
section{padding:64px 20px; max-width:1080px; margin:0 auto}
.section-head{text-align:center; margin-bottom:32px}
.section-head h2{font-size:2rem; font-weight:800; letter-spacing:1px}
.section-head h2::after{content:""; display:block; width:64px; height:4px; margin:10px auto 0;
  background:linear-gradient(90deg,var(--red),var(--gold)); border-radius:2px}
.section-head p{color:var(--dim); margin-top:10px}

/* LAB 3D */
.viewport-wrap{background:var(--bg2); border:1px solid var(--line); border-radius:18px; overflow:hidden}
#viewport{position:relative; width:100%; aspect-ratio:16/10; min-height:320px; background:#050508; touch-action:none}
#viewport canvas{display:block; width:100%; height:100%}
#gl-fallback{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--dim); padding:20px; text-align:center}
.move-bar{display:flex; gap:10px; padding:14px; flex-wrap:wrap; justify-content:center; border-top:1px solid var(--line)}
.move-btn{background:var(--card); border:1px solid var(--line); color:var(--txt); font-weight:700;
  padding:12px 18px; border-radius:12px; cursor:pointer; font-size:.95rem}
.move-btn small{opacity:.5; margin-left:6px; font-weight:400}
.move-btn:hover{border-color:var(--red2)}
.move-btn:active{transform:scale(.95)}
.move-btn.combo{border-color:rgba(245,179,1,.5); color:var(--gold)}
.move-btn:disabled{opacity:.4; cursor:wait}
.lab-toggles{display:flex; gap:20px; align-items:center; justify-content:center; padding:6px 14px 14px; flex-wrap:wrap; color:var(--dim); font-size:.88rem}
.toggle{display:flex; align-items:center; gap:8px; cursor:pointer; user-select:none}
.toggle input{display:none}
.toggle .track{width:38px; height:22px; border-radius:999px; background:#2a2a38; position:relative; transition:.2s}
.toggle .track::after{content:""; position:absolute; width:16px; height:16px; border-radius:50%;
  background:#888; top:3px; left:3px; transition:.2s}
.toggle input:checked + .track{background:rgba(229,50,45,.5)}
.toggle input:checked + .track::after{left:19px; background:var(--red2)}
.hint{text-align:center; color:var(--dim); font-size:.82rem; padding:0 14px 16px}

/* TEKNIK CARDS */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px}
.card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:24px; position:relative; overflow:hidden}
.card::before{content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--red),var(--gold)); opacity:.8}
.card-num{font-size:.75rem; font-weight:800; letter-spacing:2px; color:var(--red2)}
.card h3{margin:8px 0 10px; font-size:1.2rem}
.card h3 .pnum{font-size:.8rem; color:var(--dim); font-weight:400}
.card p{color:var(--dim); font-size:.92rem; margin-bottom:12px}
.card ul{list-style:none; margin-bottom:18px}
.card li{font-size:.88rem; padding:6px 0 6px 24px; position:relative; color:#d7d7e0}
.card li::before{content:"🥊"; position:absolute; left:0; font-size:.8rem}
.card li b{color:var(--gold)}

/* PROGRAM */
.weeks{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px}
.week{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px}
.week-head span{font-size:.72rem; letter-spacing:2px; color:var(--gold); font-weight:800}
.week-head h3{font-size:1.35rem; margin:2px 0 8px}
.week .focus{color:var(--dim); font-size:.88rem; margin-bottom:12px}
.week .sesi{font-size:.88rem}
.week .sesi ul{list-style:none; margin-top:8px}
.week .sesi li{padding:5px 0; color:#d7d7e0}
.note{margin-top:22px; background:rgba(245,179,1,.07); border:1px solid rgba(245,179,1,.3);
  padding:14px 18px; border-radius:12px; font-size:.88rem; color:var(--dim)}
.note b{color:var(--gold)}

/* TIMER */
.timer-box{max-width:440px; margin:0 auto; background:var(--bg2); border:1px solid var(--line);
  border-radius:20px; padding:36px 28px; text-align:center}
.timer-phase{font-size:.8rem; letter-spacing:3px; color:var(--gold); font-weight:800; min-height:24px}
.timer-phase.fight{color:var(--red2)}
.timer-phase.rest{color:#4ade80}
.timer-display{font-size:4.2rem; font-weight:900; font-variant-numeric:tabular-nums; margin:6px 0; letter-spacing:2px}
.timer-round{color:var(--dim); font-size:.9rem; margin-bottom:20px}
.timer-presets{display:flex; gap:12px; justify-content:center; margin-bottom:24px; flex-wrap:wrap}
.timer-presets label{font-size:.8rem; color:var(--dim); display:flex; flex-direction:column; gap:6px}
.timer-presets select{background:var(--card); color:var(--txt); border:1px solid var(--line);
  border-radius:10px; padding:8px 12px; font-size:.9rem}
.timer-btns{display:flex; gap:12px; justify-content:center}

footer{border-top:1px solid var(--line); padding:32px 20px; text-align:center; color:var(--dim); font-size:.88rem}
footer .honest{margin-top:10px; font-size:.8rem; opacity:.75; max-width:640px; margin-left:auto; margin-right:auto}

@media (max-width:640px){
  .nav-links{display:none}
  .hero{padding:60px 16px 50px}
  section{padding:48px 16px}
  #viewport{aspect-ratio:4/3.4}
  .timer-display{font-size:3.4rem}
}
