
  :root{
    --bg:#0B0B0B;
    --bg-1:#131313;
    --bg-2:#1A1A1A;
    --bg-3:#242424;
    --line:#383838;
    --line-soft:#262626;
    --ink:#F5F5F5;
    --ink-dim:#ADADAD;
    --ink-faint:#757575;
    --amber:#F2231F;
    --amber-ink:#0B0B0B;
    --teal:#FF5252;
    --rose:#C81414;
    --blue:#DC1C1C;
    --violet:#8A0B0B;
    --r-sm:6px;
    --r-md:12px;
    --r-lg:20px;
    --font-display:'Fraunces', Georgia, serif;
    --font-body:'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    color-scheme: dark;
  }
  html{scroll-padding-top: calc(64px + env(safe-area-inset-top, 0px));}
  *{box-sizing:border-box;}
  body{
    margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);
    line-height:1.6;-webkit-font-smoothing:antialiased;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  img,svg{max-width:100%;display:block;}
  a{color:inherit;}
  ::selection{background:var(--amber);color:var(--amber-ink);}
  button, input, textarea{font-family:inherit;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
  @media (max-width:640px){.wrap{padding:0 18px;}}

  /* ---------- SCROLL PROGRESS ---------- */
  .scrollbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;height:2px;background:transparent;}
  .scrollbar-fill{height:100%;width:0%;background:var(--amber);transition:width .08s linear;}

  /* ---------- HEADER ---------- */
  header.site{
    position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
    background:color-mix(in srgb, var(--bg) 80%, transparent);
    backdrop-filter:blur(14px) saturate(1.1);
    border-bottom:1px solid var(--line-soft);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1120px;margin:0 auto;}
  .brand{display:flex;align-items:center;gap:10px;cursor:pointer;background:none;border:none;color:inherit;font:inherit;padding:4px 0;}
  .brand-icon{width:30px;height:30px;flex-shrink:0;}
  .brand-mark{font-family:var(--font-display);font-size:1.32rem;font-weight:600;letter-spacing:-0.01em;}
  nav.tabs{display:flex;gap:2px;background:var(--bg-2);padding:4px;border-radius:999px;border:1px solid var(--line-soft);}
  nav.tabs button{
    font-family:var(--font-body);font-size:0.88rem;font-weight:500;color:var(--ink-dim);
    background:none;border:none;padding:8px 16px;border-radius:999px;cursor:pointer;
    transition:color .15s, background .2s;
  }
  nav.tabs button:hover{color:var(--ink);}
  nav.tabs button.active{color:var(--amber-ink);background:var(--amber);}
  .header-actions{display:flex;align-items:center;gap:10px;min-width:38px;}
  button:focus-visible, input:focus-visible, textarea:focus-visible{outline:2px solid var(--amber);outline-offset:2px;}
  @media (max-width:760px){ nav.tabs{display:none;} .nav{padding:12px 18px;} }

  .mobile-dock{
    display:none;position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));
    transform:translateX(-50%);z-index:60;background:color-mix(in srgb, var(--bg-2) 92%, transparent);
    backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:999px;padding:6px;
    box-shadow:0 10px 30px rgba(0,0,0,.35);
  }
  @media (max-width:760px){
    .mobile-dock{display:flex;gap:0;left:0;right:0;bottom:auto;top:calc(var(--hh,64px) + env(safe-area-inset-top,0px));transform:none;border-radius:0;border-width:0 0 1px 0;padding:4px 6px;box-shadow:none;justify-content:space-between;z-index:49;}
    main.wrap{padding-top:84px;}
  }
  .mobile-dock button{
    background:none;border:none;color:var(--ink-faint);font-family:var(--font-body);
    font-size:0.68rem;font-weight:500;padding:9px 14px;border-radius:999px;cursor:pointer;
    display:flex;flex-direction:column;align-items:center;gap:3px;min-width:58px;transition:color .15s, background .2s;
  }
  .mobile-dock button .dock-ic{font-size:1.05rem;}
  @media (max-width:760px){ .mobile-dock button{flex:1 1 0;min-width:0;padding:9px 4px;text-align:center;line-height:1.15;} }
  @media (max-width:360px){ .mobile-dock button{font-size:0.62rem;padding:8px 2px;} }
  @media (max-width:340px){ .mobile-dock button{font-size:0.56rem;} }
  .mobile-dock button.active{color:var(--amber-ink);background:var(--amber);}

  main{min-height:60vh;}
  section.view{display:none;padding:8px 0 90px;}
  section.view.active{display:block;}
  @media (max-width:760px){ section.view{padding-bottom:40px;} }

  /* ---------- HERO ---------- */
  .hero{position:relative;padding:72px 0 44px;overflow:hidden;}
  .hero::before{
    content:"";position:absolute;top:-140px;right:-120px;width:480px;height:480px;border-radius:50%;
    background:radial-gradient(circle at 40% 40%, color-mix(in srgb, var(--amber) 55%, transparent), transparent 70%);
    filter:blur(30px);pointer-events:none;
  }
  .hero::after{
    content:"";position:absolute;bottom:-160px;left:-140px;width:420px;height:420px;border-radius:50%;
    background:radial-gradient(circle at 60% 60%, color-mix(in srgb, var(--teal) 45%, transparent), transparent 70%);
    filter:blur(34px);pointer-events:none;
  }
  .hero-inner{position:relative;z-index:1;}
  .hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:center;}
  .hero-grid > *{min-width:0;}
  @media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:38px;}}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:0.82rem;color:var(--ink-faint);margin-bottom:18px;}
  .eyebrow em{font-family:var(--font-display);font-style:italic;color:var(--amber);font-size:0.95rem;}
  .eyebrow .dot{width:5px;height:5px;border-radius:50%;background:var(--ink-faint);}
  h1.hero-title{
    font-family:var(--font-display);font-weight:600;
    font-size:clamp(2.3rem, 5.4vw, 4rem);line-height:1.02;letter-spacing:-0.02em;
    margin:0 0 22px;max-width:15ch;
    opacity:0;transform:translateY(14px);animation:rise .7s ease forwards .05s;
  }
  .hero p.lede{font-size:1.12rem;color:var(--ink-dim);max-width:48ch;margin:0 0 30px;
    opacity:0;transform:translateY(14px);animation:rise .7s ease forwards .18s;}
  .cta-row{display:flex;gap:14px;flex-wrap:wrap;opacity:0;transform:translateY(14px);animation:rise .7s ease forwards .3s;}
  @keyframes rise{to{opacity:1;transform:translateY(0);}}
  .btn{
    font-family:var(--font-body);font-weight:600;font-size:0.95rem;
    padding:14px 26px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;
    transition:transform .12s ease, opacity .15s ease, background .15s, border-color .15s;
  }
  .btn:active{transform:scale(0.97);}
  .btn-primary{background:var(--amber);color:var(--amber-ink);}
  .btn-primary:hover{opacity:.88;}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink-faint);background:var(--bg-2);}
  .btn:disabled{opacity:.35;cursor:default;}
  .btn:disabled:hover{background:transparent;border-color:var(--line);}

  .threshold-orb{position:relative;height:340px;width:100%;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .threshold-orb svg{width:100%;height:100%;max-width:100%;display:block;}
  @media (max-width:900px){.threshold-orb{height:230px;}}

  .stat-row{
    display:flex;flex-direction:column;align-items:center;
    width:100%;max-width:340px;box-sizing:border-box;margin:56px auto 0;
    padding:28px 0 0;border-top:1px solid var(--line-soft);gap:18px;
  }
  .stat{width:100%;text-align:center;padding:0 0 18px;border-bottom:1px solid var(--line-soft);}
  .stat:last-child{padding-bottom:0;border-bottom:none;}
  .stat b{font-family:var(--font-display);font-size:1.9rem;font-weight:600;display:block;color:var(--amber);line-height:1.1;}
  .stat span{font-size:0.8rem;color:var(--ink-faint);}

  .intro-block{padding:58px 0;border-top:1px solid var(--line-soft);}
  .intro-grid{display:grid;grid-template-columns:240px 1fr;gap:40px;}
  .intro-grid > *{min-width:0;}
  @media (max-width:720px){.intro-grid{grid-template-columns:1fr;gap:14px;}}
  .intro-label{font-family:var(--font-display);font-style:italic;color:var(--teal);font-size:1.1rem;}
  .intro-grid p{color:var(--ink-dim);max-width:66ch;font-size:1.04rem;}

  .home-section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:26px;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line-soft);padding-top:52px;}
  .home-section-head h2{font-family:var(--font-display);font-weight:600;font-size:1.7rem;margin:0;letter-spacing:-0.01em;}
  .link-more{font-size:0.9rem;color:var(--amber);background:none;border:none;cursor:pointer;font-family:var(--font-body);font-weight:600;display:inline-flex;align-items:center;gap:4px;}
  .link-more:hover{text-decoration:underline;}

  .preview-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .preview-row > *{min-width:0;}
  @media (max-width:780px){.preview-row{grid-template-columns:1fr;}}
  .preview-card{
    background:var(--bg-1);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:22px;cursor:pointer;
    transition:border-color .18s, transform .18s, background .18s;
  }
  .preview-card:hover{border-color:var(--cat-color, var(--amber));transform:translateY(-3px);background:var(--bg-2);}
  .preview-cat{font-size:0.72rem;color:var(--cat-color, var(--amber));margin-bottom:10px;font-weight:600;}
  .preview-card h3{font-family:var(--font-display);font-size:1.1rem;font-weight:500;margin:0 0 8px;line-height:1.3;}
  .preview-card p{font-size:0.87rem;color:var(--ink-faint);margin:0;}

  /* ---------- SHARED VIEW HEAD ---------- */
  .view-head{margin-bottom:8px;padding-top:44px;}
  .view-head h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,4vw,2.4rem);margin:0 0 10px;letter-spacing:-0.01em;}
  .view-head p{color:var(--ink-dim);max-width:62ch;margin:0;font-size:1.02rem;}

  /* ---------- ARTICLES ---------- */
  .filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0 8px;}
  .chip{
    font-size:0.82rem;padding:8px 15px;border-radius:999px;border:1px solid var(--line);
    background:var(--bg-1);color:var(--ink-dim);cursor:pointer;font-family:var(--font-body);font-weight:500;
    transition:background .15s, color .15s, border-color .15s;display:inline-flex;align-items:center;gap:7px;
  }
  .chip .swatch{width:8px;height:8px;border-radius:50%;background:var(--chip-color,var(--ink-faint));}
  .chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink);}
  .chip.active .swatch{background:var(--bg);}

  .search-wrap{position:relative;margin:20px 0 22px;}
  .search-wrap svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-faint);}
  .search-box{
    width:100%;padding:13px 16px 13px 42px;background:var(--bg-1);border:1px solid var(--line);
    border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-body);font-size:0.95rem;
    transition:border-color .15s;
  }
  .search-box:focus{border-color:var(--amber);outline:none;}
  .search-box::placeholder{color:var(--ink-faint);}

  .article-list{display:flex;flex-direction:column;}
  .article-row{
    display:grid;grid-template-columns:14px 90px 1fr auto;gap:20px;align-items:center;
    padding:20px 4px;border-top:1px solid var(--line-soft);cursor:pointer;transition:background .15s, padding-left .15s;
  }
  .article-row > *{min-width:0;}
  .article-list .article-row:last-child{border-bottom:1px solid var(--line-soft);}
  .article-row:hover{background:var(--bg-1);padding-left:10px;}
  .article-row-dot{width:8px;height:8px;border-radius:50%;background:var(--cat-color);flex-shrink:0;}
  .article-row-cat{font-size:0.72rem;color:var(--ink-faint);}
  .article-row-title{font-family:var(--font-display);font-size:1.14rem;font-weight:500;transition:color .12s;}
  .article-row:hover .article-row-title{color:var(--cat-color);}
  .article-row-excerpt{font-size:0.86rem;color:var(--ink-faint);margin-top:4px;font-family:var(--font-body);}
  .article-row-meta{color:var(--ink-faint);font-size:0.78rem;white-space:nowrap;}
  @media (max-width:640px){
    .article-row{grid-template-columns:10px 1fr;gap:12px;}
    .article-row-cat{grid-column:2;order:1;}
    .article-row-title{grid-column:2;order:2;}
    .article-row-excerpt{grid-column:2;order:3;}
    .article-row-meta{display:none;}
  }

  .detail-wrap{max-width:68ch;padding-top:8px;}
  .back-link{background:none;border:none;color:var(--ink-faint);cursor:pointer;font-family:var(--font-body);font-size:0.88rem;margin-bottom:26px;padding:0;display:inline-flex;align-items:center;gap:6px;}
  .back-link:hover{color:var(--ink);}
  .detail-wrap .cat-tag{font-size:0.78rem;margin-bottom:12px;font-weight:600;display:inline-flex;align-items:center;gap:7px;}
  .detail-wrap .cat-tag .swatch{width:7px;height:7px;border-radius:50%;background:var(--cat-color);}
  .detail-wrap h1, .detail-wrap h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,4vw,2.2rem);line-height:1.15;margin:0 0 12px;letter-spacing:-0.01em;}
  .detail-meta{color:var(--ink-faint);font-size:0.85rem;margin-bottom:24px;}
  .body-text{border-top:1px solid var(--line-soft);padding-top:26px;}
  .body-text p{color:var(--ink-dim);font-size:1.04rem;margin:0 0 19px;}
  .takeaway-box, .practice-box{
    background:var(--bg-1);border:1px solid var(--line-soft);border-left:3px solid var(--amber);
    padding:18px 22px;margin:26px 0;border-radius:var(--r-sm);
  }
  .takeaway-box b, .practice-box b{display:block;font-family:var(--font-display);font-size:0.92rem;margin-bottom:6px;color:var(--amber);}
  .takeaway-box p, .practice-box p{margin:0;color:var(--ink-dim);font-size:0.95rem;}
  .reflection-box{
    background:transparent;border:1px dashed var(--line);padding:18px 22px;margin:20px 0;border-radius:var(--r-sm);
  }
  .reflection-box b{display:block;font-family:var(--font-display);font-style:italic;font-size:0.92rem;margin-bottom:6px;color:var(--teal);}
  .reflection-box p{margin:0;color:var(--ink-dim);font-size:0.95rem;}
  .detail-nav{display:flex;justify-content:space-between;align-items:center;margin-top:34px;padding-top:22px;border-top:1px solid var(--line-soft);gap:10px;flex-wrap:wrap;}

  /* ---------- JOURNAL ---------- */
  .journal-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:52px;align-items:start;margin-top:24px;}
  .journal-grid > *{min-width:0;}
  @media (max-width:900px){.journal-grid{grid-template-columns:1fr;gap:36px;}}
  .journal-card{background:var(--bg-1);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:26px;}

  .mood-scale{display:flex;gap:10px;margin:16px 0 22px;flex-wrap:wrap;}
  .mood-btn{
    width:54px;height:54px;border-radius:50%;border:2px solid var(--line);background:var(--bg-2);
    cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center;
    transition:border-color .15s, transform .15s, background .15s;
  }
  .mood-btn:hover{transform:translateY(-3px);}
  .emo, .entry-mood{filter:grayscale(1) brightness(.75) contrast(1.4) sepia(1) hue-rotate(-46deg) saturate(8);}
  .mood-btn.selected{border-color:var(--amber);background:var(--bg-3);box-shadow:0 0 0 3px color-mix(in srgb, var(--amber) 25%, transparent);}

  label.field-label{display:block;font-size:0.8rem;color:var(--ink-faint);margin:18px 0 8px;font-weight:600;text-transform:none;}
  .tag-row{display:flex;gap:8px;flex-wrap:wrap;}
  .tag-btn{
    font-size:0.8rem;padding:7px 13px;border-radius:999px;border:1px solid var(--line);
    background:transparent;color:var(--ink-dim);cursor:pointer;transition:all .15s;
  }
  .tag-btn.selected{background:var(--teal);border-color:var(--teal);color:var(--amber-ink);}

  textarea#journal-text{
    width:100%;min-height:150px;background:var(--bg-2);border:1px solid var(--line);
    border-radius:var(--r-sm);padding:14px;color:var(--ink);font-family:var(--font-body);font-size:0.98rem;
    resize:vertical;line-height:1.55;transition:border-color .15s;
  }
  textarea#journal-text:focus{border-color:var(--amber);outline:none;}
  textarea#journal-text::placeholder{color:var(--ink-faint);}

  .profile-card{display:flex;gap:28px;align-items:center;background:var(--bg-1);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:30px;flex-wrap:wrap;}
  .profile-photo, .profile-photo-placeholder{width:120px;height:120px;border-radius:50%;flex-shrink:0;background:var(--bg-2);border:2px solid var(--line-soft);}
  .profile-photo{object-fit:cover;display:block;}
  .profile-photo-placeholder{display:flex;align-items:center;justify-content:center;color:var(--ink-faint);}
  .profile-info{flex:1;min-width:220px;}
  .profile-role{color:var(--amber);font-size:0.95rem;font-weight:600;margin-bottom:10px;}
  .profile-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}
  .profile-badge{display:inline-block;font-size:0.7rem;font-weight:600;color:var(--ink-faint);background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;margin-left:10px;vertical-align:middle;text-transform:none;}

  input.field-input{width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;color:var(--ink);font-family:var(--font-body);font-size:0.95rem;transition:border-color .15s;}
  input.field-input:focus{border-color:var(--amber);outline:none;}
  input.field-input::placeholder{color:var(--ink-faint);}
  textarea.field-textarea{width:100%;min-height:120px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;color:var(--ink);font-family:var(--font-body);font-size:0.98rem;resize:vertical;line-height:1.55;transition:border-color .15s;}
  textarea.field-textarea:focus{border-color:var(--amber);outline:none;}
  textarea.field-textarea::placeholder{color:var(--ink-faint);}

  .journal-entries{max-height:640px;overflow-y:auto;padding-right:4px;}
  .journal-entries::-webkit-scrollbar{width:6px;}
  .journal-entries::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px;}
  .entry-card{background:var(--bg-1);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:16px 18px;margin-bottom:12px;}
  .entry-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
  .entry-date{font-size:0.78rem;color:var(--ink-faint);}
  .entry-mood{font-size:1.4rem;}
  .entry-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0;}
  .entry-tags span{font-size:0.72rem;color:var(--teal);border:1px solid var(--teal);border-radius:999px;padding:2px 10px;}
  .entry-text{font-size:0.92rem;color:var(--ink-dim);white-space:pre-wrap;}
  .entry-del{background:none;border:none;color:var(--ink-faint);font-size:0.75rem;cursor:pointer;padding:0;margin-top:8px;}
  .entry-del:hover{color:var(--rose);}
  .empty-note{color:var(--ink-faint);font-size:0.92rem;font-style:italic;padding:24px 0;}

  .mood-summary{display:flex;gap:0;margin:0 0 18px;flex-wrap:wrap;}

  /* ---------- FORMATION ---------- */
  .module-head{margin-bottom:4px;padding-top:44px;display:flex;gap:32px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;}
  .module-head-text h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,4vw,2.4rem);margin:0 0 8px;letter-spacing:-0.01em;}
  .module-head-text p{color:var(--ink-dim);max-width:60ch;font-size:1.02rem;margin:0;}
  .ring-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;}
  .ring-wrap svg{width:88px;height:88px;}
  .ring-label{font-size:0.72rem;color:var(--ink-faint);text-align:center;}
  .ring-pct{font-family:var(--font-display);font-size:1.3rem;fill:var(--ink);}

  .lesson-list{margin-top:30px;}
  .lesson-row{
    display:grid;grid-template-columns:42px 1fr auto auto;gap:16px;align-items:center;
    padding:16px 8px;border-top:1px solid var(--line-soft);cursor:pointer;transition:background .15s, padding-left .15s;
  }
  .lesson-row > *{min-width:0;}
  .lesson-list .lesson-row:last-child{border-bottom:1px solid var(--line-soft);}
  .lesson-row:hover{background:var(--bg-1);padding-left:12px;}
  .lesson-num{font-family:var(--font-display);color:var(--ink-faint);font-size:1rem;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;}
  .lesson-titles h3{font-family:var(--font-display);font-size:1.06rem;font-weight:500;margin:0 0 3px;}
  .lesson-titles span{font-size:0.8rem;color:var(--ink-faint);}
  .lesson-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:0.72rem;flex-shrink:0;transition:all .15s;}
  .lesson-check.done{background:var(--teal);border-color:var(--teal);color:var(--amber-ink);}
  .lesson-arrow{color:var(--ink-faint);}
  @media (max-width:640px){
    .lesson-row{grid-template-columns:34px 1fr auto;}
    .lesson-arrow{display:none;}
    .lesson-num{width:32px;height:32px;font-size:0.85rem;}
  }

  .lesson-icon-badge{
    width:80px;height:80px;border-radius:50%;background:var(--bg-1);border:1px solid var(--line-soft);
    display:flex;align-items:center;justify-content:center;margin-bottom:22px;flex-shrink:0;
  }
  .lesson-icon-badge svg{width:38px;height:38px;}
  .lesson-photo{margin:30px 0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-soft);}
  .lesson-photo img{width:100%;height:auto;display:block;filter:grayscale(1);}
  .lesson-illustration{margin:30px 0;padding:20px 10px;border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--bg-1);}
  .lesson-illustration svg{width:100%;height:auto;display:block;}
  .lesson-list .lesson-icon-mini{width:22px;height:22px;flex-shrink:0;}
  .lesson-list .lesson-icon-mini svg{width:100%;height:100%;stroke:var(--ink-faint);}
  .lesson-row:hover .lesson-icon-mini svg{stroke:var(--teal);}
  .entry-date{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink-dim);}
  .entry-date svg{width:13px;height:13px;stroke:var(--ink-faint);flex-shrink:0;}

  .lesson-detail .cat-tag{color:var(--teal);}
  .lesson-detail .cat-tag .swatch{background:var(--teal);}
  .author-line{color:var(--ink-faint);font-size:0.9rem;margin-bottom:26px;}
  .lesson-complete-btn{background:transparent;border:1px solid var(--teal);color:var(--teal);padding:13px 22px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:0.9rem;transition:all .15s;}
  .lesson-complete-btn.done{background:var(--teal);color:var(--amber-ink);}
  .lesson-complete-btn:hover{background:var(--bg-1);}
  .lesson-complete-btn.done:hover{opacity:.9;}

  .module-block{margin-top:52px;}
  .module-sub-head{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;
    border-top:1px solid var(--line-soft);padding-top:30px;margin-bottom:4px;
  }
  .module-sub-head h2{font-family:var(--font-display);font-weight:600;font-size:1.34rem;margin:0 0 6px;letter-spacing:-0.01em;}
  .module-sub-head p{color:var(--ink-dim);max-width:62ch;font-size:0.94rem;margin:0;}
  .module-sub-progress{font-size:0.78rem;color:var(--ink-faint);white-space:nowrap;flex-shrink:0;}

  .lesson-sub-head{display:flex;align-items:center;gap:10px;margin:30px 0 2px;flex-wrap:wrap;}
  .lesson-list .lesson-sub-head:first-child{margin-top:6px;}
  .lesson-sub-head .sub-index{font-family:var(--font-display);font-size:0.72rem;color:var(--teal);border:1px solid var(--teal);border-radius:999px;width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
  .lesson-sub-head .sub-label{font-size:0.76rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;min-width:0;flex:1 1 160px;}
  .lesson-sub-head::after{content:'';flex:1 1 30px;min-width:20px;height:1px;background:var(--line-soft);align-self:center;}
  .lesson-list .lesson-row{border-top:none;}
  .lesson-list .lesson-row + .lesson-row{border-top:1px solid var(--line-soft);}

  /* ---------- QUIZ ---------- */
  .quiz-block{margin-top:60px;border-top:1px solid var(--line-soft);padding-top:44px;}
  .quiz-head h2{font-family:var(--font-display);font-weight:600;font-size:1.6rem;margin:0 0 10px;letter-spacing:-0.01em;}
  .quiz-head p{color:var(--ink-dim);max-width:62ch;font-size:1rem;margin:0 0 22px;}
  .quiz-card{
    background:var(--bg-1);border:1px solid var(--line-soft);border-radius:var(--r-lg);
    padding:30px;max-width:640px;
  }
  .quiz-progress-bar{height:4px;background:var(--bg-3);border-radius:999px;overflow:hidden;margin-bottom:22px;}
  .quiz-progress-fill{height:100%;background:var(--amber);transition:width .25s ease;}
  .quiz-meta{font-size:0.78rem;color:var(--ink-faint);margin-bottom:10px;}
  .quiz-question{font-family:var(--font-display);font-size:1.2rem;font-weight:500;margin:0 0 20px;line-height:1.35;}
  .quiz-options{display:flex;flex-direction:column;gap:10px;}
  .quiz-option{
    text-align:left;background:var(--bg-2);border:1px solid var(--line);color:var(--ink);
    padding:14px 16px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-body);font-size:0.95rem;
    transition:border-color .15s, background .15s;
  }
  .quiz-option:hover{border-color:var(--ink-faint);}
  .quiz-option.selected{border-color:var(--amber);background:var(--bg-3);}
  .quiz-option.correct{border-color:var(--ink);background:var(--bg-3);}
  .quiz-option.correct::after{content:" ✓";font-weight:700;}
  .quiz-option.incorrect{border-color:var(--rose);background:color-mix(in srgb, var(--rose) 18%, var(--bg-2));}
  .quiz-option.incorrect::after{content:" ✗";font-weight:700;}
  .quiz-option:disabled{cursor:default;}
  .quiz-explain{margin-top:16px;padding:14px 16px;background:var(--bg-2);border-left:3px solid var(--amber);border-radius:var(--r-sm);font-size:0.9rem;color:var(--ink-dim);}
  .quiz-nav{display:flex;justify-content:flex-end;margin-top:22px;}
  .quiz-start-btn{margin-top:6px;}
  .quiz-result-score{font-family:var(--font-display);font-size:3rem;font-weight:600;color:var(--amber);margin:0 0 6px;}
  .quiz-result-label{color:var(--ink-dim);margin:0 0 26px;font-size:1rem;}
  .quiz-review{margin-top:24px;display:flex;flex-direction:column;gap:14px;}
  .quiz-review-item{padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--line-soft);background:var(--bg-2);}
  .quiz-review-item.ok{border-left:3px solid var(--teal);}
  .quiz-review-item.ko{border-left:3px solid var(--rose);}
  .quiz-review-q{font-size:0.9rem;font-weight:600;margin:0 0 6px;}
  .quiz-review-a{font-size:0.86rem;color:var(--ink-dim);margin:0;}
  .quiz-result-actions{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}
  .cert-panel{
    margin-top:28px;padding:22px;border-radius:var(--r-md);
    background:var(--bg-2);border:1px solid var(--amber);border-left:3px solid var(--amber);
  }
  .cert-panel-locked{border-color:var(--line-soft);border-left-color:var(--rose);}
  .cert-panel-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin:0 0 8px;color:var(--amber);}
  .cert-panel-locked .cert-panel-title{color:var(--rose);}
  .cert-panel-text{color:var(--ink-dim);font-size:0.92rem;margin:0 0 16px;}
  .cert-form-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
  .cert-input{
    flex:1 1 160px;padding:11px 14px;background:var(--bg-1);border:1px solid var(--line);
    border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-body);font-size:0.92rem;
  }
  .cert-input:focus{border-color:var(--amber);outline:none;}
  .cert-error{color:var(--rose);font-size:0.82rem;margin:0 0 12px;}
  @media (max-width:640px){
    .quiz-card{padding:22px;}
    .quiz-result-score{font-size:2.4rem;}
  }

  footer.site{border-top:1px solid var(--line-soft);padding:38px 0;margin-top:20px;}
  @media (max-width:760px){ footer.site{padding-bottom:40px;} }
  a.preview-card, a.article-row, a.lesson-row{color:inherit;text-decoration:none;}
  .footer-link{background:none;border:none;padding:0;color:var(--ink-dim);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
  .footer-nav{display:flex;flex-wrap:wrap;gap:6px 16px;}
  .footer-link:hover{color:var(--amber);}
  .legal-body{max-width:68ch;color:var(--ink-dim);line-height:1.7;padding-bottom:30px;}
  .legal-body h3{font-family:var(--font-display);color:var(--ink);font-size:1.15rem;margin:28px 0 6px;}
  .legal-body p{margin:0 0 10px;}
  .footer-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;color:var(--ink-faint);font-size:0.78rem;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft);}
  .footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--ink-faint);font-size:0.82rem;}

  .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important; animation:none !important;}
    h1.hero-title, .hero p.lede, .cta-row{opacity:1;transform:none;animation:none;}
  }
