:root{
  /* SOL University brand palette */
  --accent:#cd2122;        /* crimson red — primary */
  --accent-deep:#a51a1b;   /* darker red — hover / active */
  --accent-tint:#fdecec;   /* pale red — chips / soft fills */
  --gold:#c79a3f;          /* gold from the emblem — secondary accent */
  --gold-soft:#e3c987;

  --paper:#fafaf7;         /* cream white — page bg */
  --paper-warm:#f5f1ea;    /* warm cream — section bg */
  --ink:#141414;           /* near-black text */
  --ink-soft:#2a2a2a;      /* softer body text */
  --muted:#6b6b6b;         /* metadata / captions */
  --line:#e5e2db;          /* hairlines */
  --line-strong:#c8c2b6;   /* stronger dividers */

  --radius:16px;
  --shadow:0 18px 44px rgba(20,20,20,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:"Inter",system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
#app{display:grid;grid-template-columns:300px 1fr;min-height:100vh}

/* Sidebar */
#sidebar{
  background:var(--paper-warm);
  border-right:1px solid var(--line);
  padding:26px 20px;display:flex;flex-direction:column;gap:18px;
  position:sticky;top:0;height:100vh;overflow-y:auto;
}
.brand{display:flex}
.brand-logo{width:100%;max-width:210px;border-radius:12px;box-shadow:var(--shadow);display:block}
.brand-text{margin-top:-2px}
.brand-sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.course-name{font-family:"Fraunces",serif;font-size:22px;line-height:1.2;color:var(--ink);padding-bottom:6px;border-bottom:2px solid var(--accent)}

#nav{display:flex;flex-direction:column;gap:2px;flex:1}
.nav-group{margin-top:8px}
.nav-group-label{
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);padding:8px 8px 4px;font-weight:600;
}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border-radius:9px;cursor:pointer;
  font-size:13px;color:var(--ink-soft);border:1px solid transparent;
  transition:.15s;
}
.nav-item:hover{background:#fff;color:var(--ink)}
.nav-item.active{background:#fff;color:var(--ink);border-color:var(--line-strong);box-shadow:0 2px 8px rgba(20,20,20,.05)}
.nav-dot{width:16px;height:16px;border-radius:50%;flex:0 0 auto;
  border:1.5px solid var(--line-strong);display:grid;place-items:center;font-size:10px;background:#fff}
.nav-item.active .nav-dot{border-color:var(--accent)}
.nav-item.done .nav-dot{background:var(--accent);border-color:var(--accent);color:#fff}
.nav-item.done .nav-dot::after{content:"✓"}

.progress-wrap{border-top:1px solid var(--line);padding-top:14px}
.progress-label{font-size:11px;color:var(--muted);margin-bottom:6px}
#progressPct{color:var(--accent);font-weight:700}
.progress-track{height:6px;background:var(--paper);border:1px solid var(--line);border-radius:99px;overflow:hidden}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--gold));transition:width .4s}

/* Stage */
#stage{padding:40px clamp(24px,5vw,64px);display:flex;justify-content:center}
.slide{width:min(900px,100%);display:flex;flex-direction:column;gap:22px}

/* Voice switcher */
.voice-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.voice-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.voice-pills{display:flex;gap:8px;flex-wrap:wrap}
.voice-pill{border:1px solid var(--line-strong);background:#fff;color:var(--ink-soft);padding:6px 14px;border-radius:99px;font-size:13px;font-weight:500;cursor:pointer;transition:.15s}
.voice-pill:hover{border-color:var(--accent);color:var(--accent)}
.voice-pill.sel{background:var(--accent);border-color:var(--accent);color:#fff}
.voice-pill.disabled,.voice-pill:disabled{opacity:.5;cursor:not-allowed;border-style:dashed}
.voice-pill.disabled:hover{border-color:var(--line-strong);color:var(--ink-soft)}
.voice-pill .vtag{opacity:.7;font-size:11px;margin-left:5px}
.voice-pill.sel .vtag{opacity:.85}
.slide-media{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);background:#0f1626}
.presenter-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;background:#0f1626}
.slide-media.video-mode .presenter-video{display:block}
.slide-media.video-mode .slide-visual{display:none}

/* Presenter headshot bubble, overlaid on the branded slide */
.presenter-bubble{position:absolute;right:22px;bottom:22px;width:30%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid var(--gold);box-shadow:0 12px 30px rgba(0,0,0,.35);display:none;background:#0f1626;z-index:2}
.slide-media.overlay-mode .presenter-bubble{display:block}
.slide-media.overlay-mode .presenter-badge{display:none}
.presenter-frame{position:absolute;top:50%;left:50%;width:100%;aspect-ratio:16/9;transform:translate(-50%,-54%) scale(2.05);border:0}
.slide-visual{
  height:100%;width:100%;padding:clamp(28px,4vw,54px);
  background:
    radial-gradient(680px 380px at 100% 0%,rgba(199,154,63,.22),transparent 60%),
    linear-gradient(155deg,#cd2122 0%,#9b1718 100%);
  display:flex;flex-direction:column;justify-content:center;position:relative;color:#fff5f0;
}
.slide-eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:14px;font-weight:600}
.slide-title{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(24px,3.4vw,40px);line-height:1.14;margin-bottom:20px;max-width:16ch;color:#fff}
.slide-bullets{list-style:none;display:flex;flex-direction:column;gap:9px;max-width:46ch}
.slide-bullets li{position:relative;padding-left:22px;font-size:clamp(13px,1.5vw,16px);color:rgba(255,245,240,.92);line-height:1.4}
.slide-bullets li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--gold-soft)}
.presenter-badge{position:absolute;right:20px;bottom:18px;font-size:11px;color:#fff5f0;background:rgba(0,0,0,.22);padding:5px 11px;border-radius:99px;border:1px solid rgba(255,255,255,.22)}

/* Controls */
.slide-controls{display:flex;align-items:center;gap:14px}
.ctrl{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font-size:18px;cursor:pointer;transition:.15s;display:grid;place-items:center}
.ctrl:hover{border-color:var(--accent);color:var(--accent)}
.ctrl.play{width:54px;height:54px;font-size:20px;background:var(--accent);color:#fff;border:none;box-shadow:0 6px 16px rgba(205,33,34,.35)}
.ctrl.play:hover{background:var(--accent-deep);color:#fff}
.audio-progress{flex:1;height:6px;background:var(--paper-warm);border:1px solid var(--line);border-radius:99px;overflow:hidden}
.audio-fill{height:100%;width:0;background:var(--accent)}
.slide-counter{font-size:12px;color:var(--muted);min-width:54px;text-align:right}

/* Autoplay toggle */
.autoplay{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.autoplay input{display:none}
.autoplay .switch{width:38px;height:22px;border-radius:99px;background:var(--line-strong);position:relative;transition:.18s;flex:0 0 auto}
.autoplay .switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.autoplay input:checked + .switch{background:var(--accent)}
.autoplay input:checked + .switch::after{transform:translateX(16px)}
.autoplay-text{font-size:12px;color:var(--muted);font-weight:500}

/* Reflection */
.reflect{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 2px 10px rgba(20,20,20,.04)}
.reflect-h{font-family:"Fraunces",serif;font-size:20px;margin-bottom:4px;color:var(--ink)}
.reflect-hint{font-size:13px;color:var(--muted);margin-bottom:14px}
.reflect-hint .prompt{display:block;margin-top:8px;color:var(--ink-soft)}
#journal{width:100%;min-height:150px;resize:vertical;background:var(--paper);border:1px solid var(--line-strong);border-radius:12px;padding:14px;color:var(--ink);font-family:inherit;font-size:14px;line-height:1.6}
#journal:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.reflect-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:12px}
.saved-note{font-size:12px;color:var(--accent);font-weight:600}
.done-btn{background:transparent;border:1px solid var(--accent);color:var(--accent);padding:10px 18px;border-radius:99px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
.done-btn:hover{background:var(--accent);color:#fff}
.done-btn.is-done{background:var(--accent);color:#fff}

@media(max-width:820px){
  #app{grid-template-columns:1fr}
  #sidebar{position:static;height:auto}
  .brand-logo{max-width:170px}
}
