
:root{--bg:#0a0c14;--ink:#eef0fa;--muted:#a5acc7;--card:#151a31;--gold:#facc15;--gold-d:#eab308;--vio:#a78bfa}
*{box-sizing:border-box}
html,body{margin:0;background:#0a0c14;color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif}
a{color:inherit;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:16px}
.header{position:sticky;top:0;z-index:50;background:rgba(10,12,20,.78);backdrop-filter:blur(10px);border-bottom:1px solid rgba(167,139,250,.22)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 4px;gap:10px;flex-wrap:wrap}
.brand{display:flex;gap:10px;align-items:center}
.brand b{font-size:clamp(1.25rem,2.6vw,1.9rem);letter-spacing:.2px}
.btn{display:inline-flex;gap:8px;align-items:center;padding:12px 16px;border-radius:12px;border:1px solid rgba(167,139,250,.28);background:linear-gradient(180deg,rgba(48,53,94,.5),rgba(24,26,47,.9));color:#e9eaff;font-weight:800;cursor:pointer}
.btn.gold{background:linear-gradient(180deg,var(--gold),var(--gold-d));color:#1f2937;border-color:rgba(250,204,21,.4)}
.kicker{color:var(--gold);font-weight:900;letter-spacing:.7px;font-size:1.05rem}
h1{font-size:clamp(2.8rem,7.5vw,4.6rem);line-height:1.02;margin:.4rem 0 .7rem;font-weight:900}
h2{font-size:clamp(1.6rem,3.9vw,2.2rem);margin:14px 0 10px}
.small,.sub{color:var(--muted)}
.tile{background:linear-gradient(180deg,rgba(30,32,60,.95),rgba(20,22,43,.98));border:1px solid rgba(167,139,250,.22);border-radius:16px;overflow:hidden;position:relative}
.tile .body{padding:16px}
.grid{display:grid;gap:22px}
.grid.cards{grid-template-columns:1fr}
@media(min-width:720px){.grid.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.progress{height:12px;border:1px solid rgba(167,139,250,.35);background:#0f1222;border-radius:999px;overflow:hidden;margin-top:8px}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-d))}
footer{margin-top:32px;padding:24px 0;border-top:1px solid rgba(167,139,250,.22)}
.intro-free{position:relative;padding-top:22px}
.intro-free .corner-ribbon{position:absolute;top:-8px;right:-34px;transform:rotate(35deg);background:linear-gradient(180deg,var(--gold),var(--gold-d));color:#1f2937;font-weight:900;padding:6px 46px;border-radius:8px;border:1px solid rgba(250,204,21,.45);box-shadow:0 8px 24px rgba(250,204,21,.2)}
.bigcopy{font-size:1.05rem;line-height:1.6}
.program-copy{margin:6px 0 12px;color:var(--muted)}

/* Course page layout */
.course-wrap{display:grid;gap:18px;grid-template-columns:1fr}
@media(min-width:980px){.course-wrap{grid-template-columns:360px 1fr}}
.lessonlist{display:flex;flex-direction:column;gap:12px}
.lcard{border:1px solid rgba(167,139,250,.22);border-radius:14px;overflow:hidden;background:rgba(24,26,47,.6);cursor:pointer}
.lcard .thumb{aspect-ratio:16/9;width:100%;border:0;display:block}
.lcard .meta{display:flex;justify-content:space-between;align-items:center;padding:10px 12px}
.lcard .meta h4{margin:0;font-size:.98rem}
.mainplayer{border-radius:16px;overflow:hidden;border:1px solid rgba(167,139,250,.22)}
.video{aspect-ratio:16/9;width:100%;border:0;display:block}

/* Progress card above lessons, with breathing room */
.progress-card{margin:10px 0 8px}
.progress-row{display:flex;align-items:center;gap:14px}
.progress-row .pct{font-weight:900;color:var(--gold)}

/* Controls sticky on mobile */
.controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
@media(max-width:979px){.controls{position:sticky;bottom:8px;z-index:20;padding:6px;background:rgba(10,12,20,.75);backdrop-filter:blur(8px);border-radius:12px;border:1px solid rgba(167,139,250,.25)}}
.controls .btn{padding:10px 14px}
.cardlink{display:block}
.cardlink .body{transition:transform .12s ease}
.cardlink:hover .body{transform:translateY(-1px)}

/* v10 additions */
.grid.cards > .tile{margin-bottom:14px}
section.hero{margin-bottom:18px}
.lesson-column-card{}
.lessonlist .meta .mini{display:none}
@media(max-width:979px){
  .lessonlist .meta{flex-direction:column;align-items:flex-start;gap:8px}
  .lessonlist .meta .mini{display:flex;gap:8px}
  .lessonlist .meta .mini .btn{padding:6px 10px;border-radius:10px}
}
.mainplayer{overflow:visible} /* allow iframe fullscreen to escape */
.video{width:100%;height:auto;aspect-ratio:16/9}
:fullscreen .video{width:100vw;height:100vh;aspect-ratio:auto}
/* Progress card spacing bump */
.progress-card{margin:14px 0}

/* v11: let corner ribbon show fully */
.intro-free{overflow:visible}

/* v12 updates */
/* Smaller FREE ribbon and safe inset */
.ribbon-small{position:absolute; right:6px; top:6px; transform:rotate(25deg); 
  background:#f5cc2b; color:#241f1f; font-weight:800; 
  padding:6px 10px; border-radius:8px; box-shadow:0 6px 18px rgba(0,0,0,.35); font-size:12px}
.intro-free{position:relative; overflow:visible}

/* Lesson list mini controls always visible and tidy */
.lessonlist .mini{display:flex; gap:8px; margin-top:6px}
.lessonlist .mini .btn{padding:4px 10px; border-radius:10px}

/* Remove giant wrapper look on course page */
.course-wrap{display:grid; grid-template-columns:380px 1fr; gap:18px}
@media(max-width:1024px){ .course-wrap{grid-template-columns:1fr} }

/* Make each left lesson card feel cardy */
.lcard{background:linear-gradient(180deg,#12131a,#0e1118); border:1px solid rgba(255,255,255,.08); border-radius:16px; overflow:hidden; margin-bottom:14px}
.lcard .thumb{width:100%; aspect-ratio:16/9; border:0; display:block}
.lcard .meta{display:flex; align-items:center; justify-content:space-between; padding:10px 12px; gap:8px}
.lcard h4{margin:0; font-size:14px}
.lcard .small{opacity:.8}

.progress-card{margin:16px 0}

/* v13 updates */
/* Family ribbon anchored inside tile */
.family-tile{position:relative}
.family-tile .ribbon-small{right:10px; top:10px}

/* Lesson card size bump */
.lcard{margin-bottom:16px}
.lcard .thumb{aspect-ratio:16/9;}

/* Per-lesson toolbar */
.ltoolbar{display:flex; gap:8px; padding:8px 12px; border-top:1px solid rgba(255,255,255,.06); background:rgba(255,255,255,.02)}
.ltoolbar .btn{padding:6px 12px; border-radius:10px}

/* v14 header/nav & ribbon fixes */
.header .container.nav{display:flex; align-items:center}
.header .nav-cta{margin-left:auto; display:flex; gap:10px}
/* If any lesson toolbars leak into header, hide them */
.header .ltoolbar, .header [data-tool]{display:none !important}

/* Family ribbon placement & layering */
.family-tile{position:relative; overflow:visible}
.family-tile .ribbon-small{position:absolute; right:12px; top:-8px; transform:rotate(18deg);
  z-index:5; box-shadow:0 8px 22px rgba(0,0,0,.45)}
/* Add a little top padding so ribbon doesn't overlap text */
.family-tile .body{padding-top:26px}

/* Remove any old diagonal wedge ribbons if still present */
.badge-free, .ribbon-free, .corner-ribbon{display:none !important}

/* v15 updates */

/* Motivational card */
.motivation-card {
  background: linear-gradient(180deg, rgba(111,90,255,0.15), rgba(255,255,255,0.04));
  border-radius: 16px;
  padding: 32px 40px;
  margin: 40px auto;
  text-align: center;
  color: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,0.3);
  max-width: 900px;
}
.motivation-card h2 {
  font-size: 2rem;
  font-weight: 800;
  color: #ffd700;
  margin-bottom: 12px;
}
.motivation-card p {
  font-size: 1.1rem;
  line-height: 1.6;
  color: #ddd;
}

/* Larger FREE badge */
.family-tile .ribbon-large {
  position:absolute;
  top:10px;
  right:15px;
  background:#ffd700;
  color:#000;
  padding:8px 20px;
  font-weight:700;
  font-size:1rem;
  border-radius:8px;
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
  transform:rotate(10deg);
}
.family-tile .ribbon-small {display:none !important}

/* v16 updates */
/* Small FREE card to sit above Family Members */
.free-card {
  background:#ffd700;
  color:#1b1b1f;
  border-radius:14px;
  padding:10px 16px;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-shadow:0 10px 22px rgba(0,0,0,.25);
  letter-spacing:.5px;
}
.free-card .dot{width:8px; height:8px; border-radius:50%; background:#1b1b1f; opacity:.6}
.free-holder{display:flex; justify-content:flex-end; margin:-6px 0 12px 0;}
/* Remove prior ribbon spacing if any */
.family-tile .ribbon-large{display:none !important}

.body.center { text-align: center; }

/* Override nested style so card isn't double-styled */
.motivation-card { background: transparent !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }

/* Utility */
.gold-text { color: var(--gold, #f5c542) !important; }

/* Ensure motivation tile spacing matches other cards */
.motivation-tile { margin-bottom: 14px; }

/* Boost readability in the Welcome Back card */
.motivation-tile p { font-size: 18px; line-height: 1.75; }
@media (max-width: 640px) {
  .motivation-tile p { font-size: 16px; line-height: 1.7; }
}

/* Rogue circle killer */
.scroll-indicator, .dot, .circle, .scroll, .indicator { display: none !important; }
.motivation-tile::after, .motivation-tile::before { content: none !important; display: none !important; }
.container::after { content: none !important; display: none !important; }

/* Angled FREE corner ribbon for Family card */
.tile.intro-free { position: relative; overflow: hidden; }
.corner-ribbon {
  position: absolute;
  top: 12px;
  right: -40px;
  padding: 8px 60px;
  font-weight: 800;
  letter-spacing: .5px;
  text-transform: uppercase;
  transform: rotate(15deg);
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
  border-radius: 10px;
  pointer-events: none;
  z-index: 2;
}
.corner-ribbon.free {
  background: var(--gold, #f5c542);
  color: #111;
}
@media (max-width: 640px) {
  .corner-ribbon { top: 8px; right: -48px; padding: 6px 56px; transform: rotate(18deg); font-size: 11px; }
}

/* v7: Flat gold FREE ribbon on Family tile */
.tile.intro-free{position:relative;overflow:visible!important}
.corner-ribbon{
  position:absolute;top:12px;right:-40px;
  padding:8px 60px;
  font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  transform:rotate(15deg);
  border-radius:10px;
  pointer-events:none;
  z-index:100;
}
.corner-ribbon.free{background:var(--gold,#f5c542);color:#fff}
@media (max-width:640px){
  .corner-ribbon{top:8px;right:-48px;padding:6px 56px;transform:rotate(18deg);font-size:11px}
}

/* v7a: FORCE ribbon render */
.tile.intro-free { position: relative; overflow: visible !important; }
.tile.intro-free .corner-ribbon {
  position: absolute;
  top: 12px; right: -40px;
  padding: 8px 60px;
  font-weight: 800;
  letter-spacing: .5px;
  text-transform: uppercase;
  transform: rotate(15deg);
  border-radius: 10px;
  z-index: 9999;  /* sit above gradients and shadows */
  pointer-events: none;
}
.tile.intro-free .corner-ribbon.free {
  background: var(--gold, #f5c542);
  color: #fff;
}
@media (max-width: 640px) {
  .tile.intro-free .corner-ribbon { top: 8px; right: -48px; padding: 6px 56px; transform: rotate(18deg); font-size: 11px; }
}
