  /* ═══ LESSON VIEW ═══ */
  .lesson-view { display:none; }
  .lesson-view.active { display:block; }
  .list-view.hidden { display:none; }

  .topbar { display:flex; align-items:center; justify-content:space-between; padding:32px 0 0; gap:10px; }

  .back-btn {
    width:36px; height:36px; flex-shrink:0;
    border:0.5px solid var(--border2); border-radius:10px;
    background:var(--bg2); color:var(--cream-dim);
    display:flex; align-items:center; justify-content:center;
    padding:0; line-height:0;
    cursor:pointer; transition:all 0.18s;
  }
  .back-btn svg { display:block; }
  .back-btn.nav-next { color:var(--gold); border-color:rgba(217,164,65,0.45); }
  .back-btn:hover { border-color:var(--gold-dim); color:var(--gold); }

  .topbar-center { text-align:center; flex:1; }
  .topbar-eyebrow { font-size:9px; letter-spacing:0.30em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:3px; }
  .topbar-title { font-family:'Forum', serif; font-size:15px; color:var(--cream); }

  .nav-arrows { display:flex; gap:6px; }

  .day-header { padding-top:26px; }
  .day-num-line { display:flex; align-items:baseline; gap:12px; margin-bottom:8px; }
  .big-num { font-family:'Forum', serif; font-size:54px; font-weight:300; line-height:1; color:var(--gold); opacity:0.22; }
  .day-label-top { font-size:9px; letter-spacing:0.30em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:2px; }
  .day-title { font-family:'Forum', serif; font-size:28px; font-weight:400; line-height:1.05; color:var(--cream); }
  .day-desc { font-size:12px; color:var(--muted); line-height:1.7; margin-top:10px; }

  /* Demo image */
  .demo-wrap {
    margin-top:22px;
    border-radius:18px;
    overflow:hidden;
    border:0.5px solid var(--border2);
    background:var(--bg2);
  }
  .demo-img { width:100%; display:block; background:#fff; }
  .demo-caption {
    padding:11px 16px;
    display:flex; align-items:center; justify-content:space-between;
    border-top:0.5px solid var(--border);
  }
  .demo-caption-text { font-size:11px; color:var(--muted); font-family:'Forum', serif; font-style:italic; }
  .demo-zoom {
    font-size:10px; color:var(--gold-dim); letter-spacing:0.08em;
    background:none; border:none; cursor:pointer;
    font-family:'Jost', sans-serif; text-transform:uppercase;
    transition:color 0.18s;
  }
  .demo-zoom:hover { color:var(--gold); }
  .demo-img { cursor:zoom-in; }

  /* Self practice block (days 13-17) */
  .selfpractice {
    margin-top:22px;
    border:0.5px solid rgba(192,90,46,0.35);
    border-radius:18px;
    padding:26px 22px;
    background: linear-gradient(150deg, rgba(192,90,46,0.08) 0%, var(--bg2) 60%);
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .selfpractice::after {
    content:''; position:absolute; left:-30px; top:-30px;
    width:140px; height:140px;
    background:radial-gradient(circle, rgba(192,90,46,0.12) 0%, transparent 70%);
    pointer-events:none;
  }
  .sp-manuscript {
    display:flex; justify-content:center;
    color:var(--orange);
    margin:0 auto 18px;
    filter:drop-shadow(0 0 14px rgba(239,123,46,0.28));
    animation:artFade 1.2s ease both 0.15s;
  }
  .sp-manuscript svg { display:block; }

  .sp-title { font-family:'Forum', serif; font-size:21px; font-weight:400; color:var(--cream); margin-bottom:8px; }
  .sp-title em { font-style:italic; color:#d98f66; }
  .sp-text { font-size:12px; color:var(--cream-dim); line-height:1.7; max-width:280px; margin:0 auto 18px; }
  .sp-peek {
    display:inline-flex; align-items:center; gap:8px;
    font-size:10px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--gold); background:none;
    border:0.5px solid rgba(201,168,76,0.35);
    border-radius:10px; padding:10px 18px;
    cursor:pointer; transition:all 0.2s;
    font-family:'Jost', sans-serif;
  }
  .sp-peek:hover { background:rgba(201,168,76,0.08); border-color:var(--gold); }
  .sp-peek-hint { font-size:9px; color:var(--muted); margin-top:10px; font-style:italic; font-family:'Forum', serif; }

  .peek-area { display:none; margin-top:16px; }
  .peek-area.open { display:block; animation:fadeUp 0.4s ease both; }

  /* Sections */
  .section-label { font-size:9px; letter-spacing:0.32em; text-transform:uppercase; color:var(--muted); margin:26px 0 12px; }

  .box {
    background:var(--bg2);
    border:0.5px solid var(--border);
    border-radius:16px;
    padding:18px 20px;
  }

  .box-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .box-icon {
    width:26px; height:26px; flex-shrink:0;
    background:rgba(201,168,76,0.1);
    border:0.5px solid rgba(201,168,76,0.25);
    border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    font-size:12px; color:var(--gold);
  }
  .box-title { font-family:'Forum', serif; font-size:16px; color:var(--cream); }
  .box-body { font-size:12px; color:var(--cream-dim); line-height:1.75; }
  .box-body p { margin-bottom:9px; }
  .box-body p:last-child { margin-bottom:0; }

  /* Task steps */
  .task-steps { display:flex; flex-direction:column; gap:10px; margin-top:4px; }
  .task-step { display:flex; gap:12px; align-items:flex-start; }
  .step-dot {
    width:20px; height:20px; flex-shrink:0;
    border:0.5px solid var(--border2); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:9px; color:var(--muted); margin-top:1px;
    transition:all 0.2s; cursor:pointer;
  }
  .step-dot.checked { background:rgba(201,168,76,0.15); border-color:rgba(201,168,76,0.4); color:var(--gold); }
  .step-text { font-size:12px; color:var(--cream-dim); line-height:1.6; padding-top:1px; }

  /* History / thought of the day */
  .history-box {
    margin-top:16px;
    border:0.5px solid var(--border);
    border-radius:16px;
    padding:18px 20px;
    background: linear-gradient(160deg, rgba(201,168,76,0.05) 0%, var(--bg2) 55%);
  }
  .history-label {
    font-family:'Jost', sans-serif;
    font-size:9px; letter-spacing:0.26em; text-transform:uppercase;
    color:var(--gold-dim); margin-bottom:10px;
    display:flex; align-items:center; gap:9px;
  }
  .history-text {
    font-family:'Jost', sans-serif;
    font-style:normal;
    font-size:12px;
    color:var(--cream-dim);
    line-height:1.7;
  }

  /* icon inside a section label */
  .lbl-ic {
    display:inline-flex;
    align-items:center;
    line-height:0;
    flex-shrink:0;
  }
  .lbl-ic svg { display:block; }

  /* Demo transcript */
  .demo-transcript {
    padding:11px 16px;
    border-top:0.5px solid var(--border);
    font-size:11px;
    color:var(--muted);
  }
  .demo-transcript em {
    font-family:'Forum', serif;
    font-style:italic;
    font-size:14px;
    color:var(--cream-dim);
  }

  /* Promo box */
  .promo-box {
    margin-top:16px;
    border:0.5px solid rgba(217,122,69,0.3);
    border-radius:16px;
    padding:18px 20px;
    background:linear-gradient(150deg, rgba(217,122,69,0.07) 0%, var(--bg2) 60%);
  }
  .promo-label {
    font-family:'Jost', sans-serif;
    font-size:9px; letter-spacing:0.26em; text-transform:uppercase;
    color:var(--orange); margin-bottom:10px;
    display:flex; align-items:center; gap:9px;
  }
  .promo-text {
    font-size:12px; color:var(--cream-dim); line-height:1.7; margin-bottom:12px;
  }
  .promo-text strong { color:var(--cream); font-weight:400; }
  .promo-link {
    font-size:10px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--orange); text-decoration:none;
    transition:opacity 0.18s;
  }
  .promo-link:hover { opacity:0.75; }

  /* Completion page */
  .completion .qs-inner { margin-bottom:22vh; }

  .corner-candle {
    left:0; right:0;
    bottom:-6px;
    display:flex;
    justify-content:center;
    opacity:0.9;
    animation:artFade 1.8s ease both 0.6s;
  }

  .art-candle .flame {
    transform-origin:50px 46px;
    animation:flameDance 2.6s ease-in-out infinite;
  }
  @keyframes flameDance {
    0%,100% { transform:scaleY(1) scaleX(1) rotate(0deg); }
    22%     { transform:scaleY(1.07) scaleX(0.96) rotate(-1.6deg); }
    48%     { transform:scaleY(0.95) scaleX(1.04) rotate(1.4deg); }
    71%     { transform:scaleY(1.04) scaleX(0.98) rotate(-0.8deg); }
  }

  .completion .comp-num {
    font-family:'Forum', serif;
    font-size:58px;
    font-weight:300;
    color:var(--gold);
    line-height:1;
    margin-bottom:6px;
  }
  .completion .comp-of { font-size:11px; color:var(--muted); letter-spacing:0.14em; margin-bottom:22px; }
  .completion .comp-bar {
    width:200px; height:2px;
    background:rgba(255,255,255,0.08);
    border-radius:3px;
    margin:0 auto 26px;
    overflow:hidden;
  }
  .completion .comp-bar-fill {
    height:100%;
    background:linear-gradient(90deg, var(--gold), var(--orange));
    border-radius:3px;
    width:0%;
    transition:width 1.1s cubic-bezier(.4,0,.2,1);
  }
  .completion .comp-text {
    font-family:'Forum', serif;
    font-style:normal;
    font-size:18px;
    color:var(--cream);
    line-height:1.55;
    margin-bottom:36px;
  }
  .completion .comp-secondary {
    display:block;
    margin:16px auto 0;
    background:none; border:none;
    color:var(--muted);
    font-family:'Jost', sans-serif;
    font-size:10px; letter-spacing:0.16em; text-transform:uppercase;
    cursor:pointer;
    transition:color 0.18s;
  }
  .completion .comp-secondary:hover { color:var(--cream-dim); }

  /* Done button */
  .done-zone { margin-top:30px; }
  .done-btn {
    width:100%;
    display:flex; align-items:center; justify-content:center; gap:10px;
    padding:16px 24px;
    background:linear-gradient(135deg, #c9892f 0%, var(--orange) 55%, #c9892f 100%);
    background-size:200% 100%;
    border:none; border-radius:14px;
    color:#0f0e0c;
    font-family:'Jost', sans-serif; font-size:12px; font-weight:500;
    letter-spacing:0.22em; text-transform:uppercase;
    cursor:pointer; transition:all 0.28s ease;
  }
  .done-btn:hover { background-position:100% 0; transform:translateY(-1px); }
  .done-btn.completed {
    background:var(--surface); color:var(--gold);
    border:0.5px solid rgba(201,168,76,0.3);
  }

  .next-hint { text-align:center; font-size:11px; color:var(--muted); margin-top:14px; font-family:'Forum', serif; font-style:italic; }
  .next-hint button {
    background:none; border:none; color:var(--gold); cursor:pointer;
    font-family:inherit; font-style:inherit; font-size:inherit;
    text-decoration:underline; text-underline-offset:3px;
  }

  .orn { display:flex; align-items:center; gap:14px; margin:28px 0 0; }
  .orn-line { flex:1; height:0.5px; background:var(--border); }
  .orn-sym { font-family:'Forum', serif; font-size:14px; color:var(--gold-dim); line-height:1; }

  @keyframes fadeUp {
    from { opacity:0; transform:translateY(14px); }
    to   { opacity:1; transform:translateY(0); }
  }
  .anim { animation:fadeUp 0.45s ease both; }

