/* Waterpark Operator Masterclass — site styles (layers on colors_and_type.css tokens) */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface-canvas);color:var(--text-primary);font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--link)}
h1,h2,h3{font-family:var(--font-display);letter-spacing:-0.02em;color:var(--text-primary)}
.mono{font-family:var(--font-mono)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-pill);font-family:var(--font-text);font-weight:600;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand-default);color:#fff;padding:12px 22px;font-size:15px;box-shadow:0 10px 28px -10px rgba(230,0,126,.6)}
.btn-primary:hover{background:var(--brand-hover)}
.btn-outline{border-color:var(--border-strong);color:var(--text-primary);padding:12px 22px;font-size:15px;background:transparent}
.btn-outline:hover{border-color:var(--brand-default);color:var(--brand-default)}
.btn-sm{padding:9px 18px;font-size:14px}
.btn-lg{padding:16px 30px;font-size:16px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);background:color-mix(in srgb,var(--surface-canvas) 84%,transparent);border-bottom:1px solid var(--border-subtle)}
.hwrap{max-width:1180px;margin:0 auto;padding:13px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.hleft{display:flex;align-items:center;gap:14px;min-width:0}
.hleft .logo{height:36px;width:auto}
.logo-dark{display:none}
[data-theme="dark"] .logo-light{display:none}
[data-theme="dark"] .logo-dark{display:block}
.course-home{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:-0.01em;color:var(--text-primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hright{display:flex;align-items:center;gap:12px;flex-shrink:0}
.theme-toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer}
.ic-moon{display:none}
[data-theme="dark"] .ic-sun{display:none}
[data-theme="dark"] .ic-moon{display:block}

/* Hero */
.hero{background:radial-gradient(1100px 520px at 78% -10%,rgba(230,0,126,.38),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(206,184,132,.25),transparent 55%),linear-gradient(180deg,#0A0B0F,#1B0016);color:#fff}
.hero-wrap{max-width:1180px;margin:0 auto;padding:76px 24px 68px;display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center}
.pill-badge{display:inline-block;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:var(--r-pill);padding:6px 14px;margin-bottom:22px}
.hero h1{color:#fff;font-weight:800;font-size:clamp(40px,5.4vw,68px);line-height:1.0;letter-spacing:-0.03em;max-width:15ch;margin:0 0 20px}
.hero-sub{font-size:clamp(17px,1.5vw,20px);color:rgba(255,255,255,.82);max-width:52ch;margin:0 0 14px}
.hero-runtime{font-size:13px;color:rgba(255,255,255,.6);margin:0 0 28px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.hero .btn-outline{border-color:rgba(255,255,255,.45);color:#fff}
.hero .btn-outline:hover{border-color:#fff}
.hero-media{position:relative}
.hero-media>img{aspect-ratio:4/5;object-fit:cover;width:100%;border-radius:var(--r-xl);box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.stat-card{position:absolute;left:-20px;bottom:26px;background:#fff;color:var(--ink-1200);border-radius:var(--r-lg);box-shadow:var(--elev-5);padding:16px 20px;min-width:188px}
.sc-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6B7280;font-weight:600;margin-bottom:4px}
.sc-row{display:flex;align-items:center;gap:10px}
.sc-value{font-family:var(--font-display);font-weight:800;font-size:38px;font-variant-numeric:tabular-nums;color:#0A0B0F}
.sc-pill{background:var(--signal-bg);color:var(--signal-fg);font-size:11px;font-weight:600;height:20px;display:inline-flex;align-items:center;padding:0 8px;border-radius:9px}
.sc-foot{display:block;font-size:11px;color:#6B7280;margin-top:2px}

/* Progress strip */
.progress-strip{background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle)}
.ps-wrap{max-width:1180px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ps-label{font-size:11px;letter-spacing:.08em;font-weight:600;color:var(--text-muted)}
.ps-bar{flex:1 1 160px;max-width:320px;height:8px;border-radius:var(--r-pill);background:var(--border-subtle);overflow:hidden}
.ps-fill{height:100%;width:0%;background:var(--brand-default);border-radius:var(--r-pill);transition:width .4s var(--ease-standard)}
.ps-count{font-size:13px;color:var(--text-secondary)}
.ps-cert{margin-left:auto;font-size:14px;color:var(--text-muted);text-decoration:none}
.ps-cert.unlocked{color:var(--brand-default);font-weight:600}

/* Definition lead + tracks */
.tracks-wrap{max-width:1180px;margin:0 auto;padding:24px 24px 8px}
.definition-lead{max-width:76ch;color:var(--text-secondary);font-size:var(--fs-body-lg);line-height:1.6;margin:32px 0 12px}
.track{padding:34px 0 10px}
.track-label{color:var(--brand-default);font-size:12px;font-weight:700;letter-spacing:.1em}
.track-name{font-size:var(--fs-heading-lg);margin:6px 0 4px}
.track-desc{color:var(--text-muted);margin:0 0 20px}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.mod-card{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:20px;text-decoration:none;color:var(--text-primary);box-shadow:var(--elev-1);transition:border-color var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}
.mod-card:hover{border-color:var(--brand-default);transform:translateY(-2px)}
.mc-top{display:flex;justify-content:space-between;align-items:center}
.mc-num{font-size:13px;color:var(--text-muted);background:var(--surface-sunken);border-radius:var(--r-sm);padding:3px 8px}
.mc-new{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--brand-default)}
.mc-done{color:var(--signal-fg);font-size:14px;font-weight:700}
.mc-lock{color:var(--text-muted);display:inline-flex}
.mc-lock svg{width:15px;height:15px}
.mc-title{font-family:var(--font-display);font-weight:700;font-size:18px;line-height:1.25}
.mc-promise{font-size:14px;color:var(--text-secondary);line-height:1.45}
.mc-dur{font-size:12px;color:var(--text-muted);margin-top:auto}
.mod-card.locked .mc-title::after{content:" ·";color:transparent}

/* Certificate */
.certificate{border-top:1px solid var(--border-subtle);margin-top:40px;background:var(--surface-sunken)}
.cert-wrap{max-width:1180px;margin:0 auto;padding:44px 24px 56px}
.cert-wrap h2{margin-top:0}
.cert-fields{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
.cert-fields input{flex:1 1 220px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);font-size:15px}
.cert-err{color:var(--danger-fg);font-size:14px}

/* Lesson layout */
.lesson{max-width:1000px;margin:0 auto;padding:34px 24px 40px}
.private-banner{background:var(--alert-bg);color:var(--alert-fg);border:1px solid var(--alert-border);border-radius:var(--r-md);padding:10px 16px;font-size:14px;margin-bottom:22px}
.kicker{font-size:13px;color:var(--text-muted);margin-bottom:14px}
.kicker a{color:var(--text-muted);text-decoration:none}
.kicker a:hover{color:var(--brand-default)}
.kicker .adv{color:var(--brand-default);font-style:normal;font-weight:600}
.lesson-h1{font-size:var(--fs-display-sm);line-height:1.08;font-weight:800;margin:0 0 12px}
.promise{font-size:var(--fs-body-lg);color:var(--text-secondary);margin:0 0 6px}
.runtime{font-size:13px;color:var(--text-muted);margin:0 0 22px}
.definition-first p{font-size:17px;line-height:1.55;color:var(--text-primary);max-width:76ch;margin:0 0 24px}

/* Video */
.video-shell{margin:0 0 40px}
.video-poster{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:var(--r-lg);overflow:hidden;cursor:pointer;padding:0;background:var(--ink-1100)}
.video-poster img{width:100%;height:100%;object-fit:cover;opacity:.85}
.play-ring{position:absolute;inset:0;margin:auto;width:74px;height:74px;border-radius:50%;background:var(--brand-default);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px -8px rgba(230,0,126,.7);transition:transform var(--dur-base) var(--ease-standard)}
.video-poster:hover .play-ring{transform:scale(1.07)}
.dur-badge{position:absolute;right:14px;bottom:12px;background:rgba(5,6,9,.78);color:#fff;font-family:var(--font-mono);font-size:12px;padding:4px 10px;border-radius:var(--r-sm)}
.video-shell iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--r-lg)}

/* Gate (capstone) */
.gate-card{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:380px;display:flex;align-items:center;justify-content:center}
.gate-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(14px) brightness(.42);transform:scale(1.1)}
.gate-inner{position:relative;text-align:center;color:#fff;max-width:560px;padding:44px 28px}
.gate-inner h2{color:#fff;font-size:var(--fs-heading-md);margin:14px 0 10px}
.gate-inner p{color:rgba(255,255,255,.85);margin:0 0 20px}
.gate-lock{display:inline-flex;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);align-items:center;justify-content:center}
.gate-micro{font-size:12px;color:rgba(255,255,255,.65)!important;margin-top:16px!important}
.gate-micro a{color:rgba(255,255,255,.85)}

/* Takeaways */
.takeaways h2,.brief h2,.kpis h2,.faq h2,.deck-card h2{font-size:var(--fs-heading-md);margin:0 0 18px}
.bullet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}
.bullet-card{display:flex;flex-direction:column;gap:12px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:20px;box-shadow:var(--elev-1)}
.bullet-ic{width:42px;height:42px;border-radius:var(--r-md);background:var(--magenta-50);color:var(--brand-default);display:flex;align-items:center;justify-content:center}
[data-theme="dark"] .bullet-ic{background:rgba(241,53,147,.14)}
.bullet-card p{margin:0;font-size:14.5px;line-height:1.5;color:var(--text-secondary)}

/* Brief */
.brief{margin-bottom:40px}
.brief p{max-width:76ch;color:var(--text-secondary);line-height:1.65}

/* KPIs */
.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.kpi-card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:22px;box-shadow:var(--elev-1);display:flex;flex-direction:column;gap:6px;animation:kpiIn .52s var(--ease-entrance) both}
@keyframes kpiIn{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.kpi-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}
.kpi-value{font-family:var(--font-display);font-weight:800;font-size:38px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text-primary)}
.kpi-delta{align-self:flex-start;background:var(--signal-bg);color:var(--signal-fg);font-size:11px;font-weight:600;padding:2px 8px;border-radius:9px}
.kpi-foot{font-size:12.5px;color:var(--text-muted)}
.kpi-micro{font-size:12px;color:var(--text-muted);margin:12px 0 40px}

/* Monday */
.monday{background:var(--sand-100);border:1px solid var(--sand-300);border-radius:var(--r-lg);padding:24px 26px;margin-bottom:40px}
[data-theme="dark"] .monday{background:rgba(206,184,132,.08);border-color:rgba(206,184,132,.25)}
.monday-label{display:block;font-size:11px;letter-spacing:.1em;font-weight:700;color:var(--sand-700);text-transform:uppercase;margin-bottom:10px}
[data-theme="dark"] .monday-label{color:var(--sand-400)}
.monday-item{display:flex;gap:12px;align-items:flex-start;color:var(--sand-900);font-weight:500;cursor:pointer}
[data-theme="dark"] .monday-item{color:var(--sand-200)}
.monday-item input{margin-top:4px;accent-color:var(--brand-default)}

/* Deck + CTA */
.deck-card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--elev-1);padding:26px 28px;max-width:560px;margin-bottom:40px}
.deck-card p{color:var(--text-secondary);margin:0 0 18px}
.cta-band{text-align:center;margin:8px 0 44px}

/* Transcript + FAQ */
.transcript details,.faq details,.ffaq details{border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--surface-raised);margin-bottom:10px;overflow:hidden}
summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;padding:15px 18px;font-weight:600;font-size:15px}
summary::-webkit-details-marker{display:none}
.chev{transition:transform var(--dur-base) var(--ease-standard);color:var(--text-muted)}
details[open]>summary .chev{transform:rotate(180deg)}
.transcript details p,.faq details p,.ffaq details p{padding:0 18px 16px;margin:0;color:var(--text-secondary);line-height:1.6}
.transcript details h3{padding:0 18px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:6px 0}
.transcript{margin-bottom:40px}
.faq{margin-bottom:40px}

/* Next teaser */
.next-teaser{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--surface-raised);padding:24px 26px;text-decoration:none;transition:border-color var(--dur-base) var(--ease-standard);margin-bottom:24px}
.next-teaser:hover{border-color:var(--brand-default)}
.nt-kicker{font-size:11px;letter-spacing:.08em;font-weight:700;color:var(--brand-default);text-transform:uppercase}
.nt-q{font-size:16px;color:var(--text-secondary);font-style:italic}
.nt-title{font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--text-primary)}

/* Bottom nav */
.bottom-nav{position:sticky;bottom:0;z-index:40;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:color-mix(in srgb,var(--surface-canvas) 86%,transparent);border-top:1px solid var(--border-subtle)}
.bn-wrap{max-width:1000px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.bn-link{font-size:14px;text-decoration:none;color:var(--text-secondary);white-space:nowrap}
.bn-link:hover{color:var(--brand-default)}
.bn-complete{border:1.5px solid var(--border-strong);background:transparent;color:var(--text-primary);border-radius:var(--r-pill);padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}
.bn-complete.done{background:var(--signal-bg);border-color:var(--signal-border);color:var(--signal-fg)}

/* Footer */
.site-footer{background:var(--ink-1200);color:var(--ink-300);margin-top:24px}
.fwrap{max-width:1180px;margin:0 auto;padding:44px 24px 30px}
.frow{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:28px}
.fbrand{display:flex;align-items:center;gap:12px;color:#fff;font-family:var(--font-display);font-weight:700}
.fchips{display:flex;gap:10px}
.chip{border:1px solid var(--ink-800);border-radius:var(--r-pill);padding:6px 14px;font-size:12.5px;color:var(--ink-300)}
.ffaq{max-width:720px}
.ffaq-title{color:#fff;font-size:18px;margin:0 0 12px}
.ffaq details{background:var(--ink-1100);border-color:var(--ink-900)}
.ffaq summary{color:var(--ink-100)}
.ffaq details p{color:var(--ink-400)}
.fcopy{font-size:13px;color:var(--ink-500);margin-top:26px}
.fcopy a{color:var(--ink-400)}

/* Certificate print */
#certPrint{display:none}
body.printing-cert #certPrint{display:block;position:fixed;inset:0;background:#fff;z-index:999}
.cp-frame{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:6px double #E6007E;margin:24px;text-align:center;padding:40px;color:#0A0B0F}
.cp-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:#5F6679}
#certPrint h1{font-size:44px;margin:0}
.cp-name{font-size:28px;font-weight:700;margin:8px 0 0}
.cp-park{font-size:18px;color:#5F6679;margin:0}
.cp-date{font-size:14px;color:#5F6679}
.cp-foot{font-size:12px;color:#A2A9B9;margin-top:18px}
@media print{
  body.printing-cert>*:not(#certPrint){display:none!important}
  body.printing-cert #certPrint{position:static}
}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .hero-wrap{grid-template-columns:1fr;gap:40px;padding:56px 24px 52px}
  .hero-media{max-width:440px}
  .bullet-grid,.kpi-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:680px){
  .hwrap{padding:11px 16px}
  .course-home{font-size:13px;max-width:150px}
  .hleft .logo{height:30px}
  .hero-wrap{padding:44px 16px 44px}
  .hero h1{font-size:clamp(34px,9vw,44px)}
  .stat-card{left:12px;bottom:14px}
  .lesson,.tracks-wrap{padding-left:16px;padding-right:16px}
  .bullet-grid,.kpi-grid{grid-template-columns:1fr}
  .mod-grid{grid-template-columns:1fr}
  .ps-wrap{gap:10px}
  .ps-cert{margin-left:0;flex-basis:100%}
  .bn-wrap{padding:10px 12px}
  .bn-link{font-size:13px}
  .bn-complete{font-size:13px;padding:8px 13px}
  .hero .btn-lg{padding:13px 20px;font-size:15px}
  .frow{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
