:root{
    --paper:#f3e9da; --ink:#322c25; --soft:#6f655a;
    --accent:#a8572f; --accent-2:#c1764a; --deep:#7c3f25;
    --card:#fbf5ec; --line:#e7d8c2; --gold:#e0cdb1; --answer:#dad0c3;
    --shadow:0 1px 2px rgba(80,50,25,.06), 0 12px 30px -14px rgba(120,70,35,.18);
    --display:'Playfair Display',Georgia,serif; --body:'Lora',Georgia,serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; color:var(--ink); font-family:var(--body); font-size:18px; line-height:1.75;
    background:radial-gradient(1200px 600px at 80% -10%, #f8efe2 0%, rgba(248,239,226,0) 60%),
      radial-gradient(900px 500px at -10% 20%, #f6ecdc 0%, rgba(246,236,220,0) 55%), var(--paper); -webkit-font-smoothing:antialiased;}
  body::before{content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.5;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");}
  .progress{position:fixed; top:0; left:0; height:3px; width:0; z-index:60; background:linear-gradient(90deg,var(--accent),var(--accent-2));}

  .topbar{position:sticky; top:0; z-index:40; backdrop-filter:saturate(1.2) blur(6px); background:rgba(243,233,218,.82); border-bottom:1px solid var(--gold);}
  .topbar .inner{max-width:760px; margin:0 auto; padding:9px 22px; display:flex; align-items:center; gap:12px;}
  .topbar .bt{font-family:var(--body); font-weight:600; color:var(--deep); font-size:14px;}
  .topbar .sp{flex:1;}
  .langtoggle{display:inline-flex; border:1px solid var(--accent); border-radius:20px; overflow:hidden;}
  .langtoggle button{font-family:var(--body); font-size:13px; font-weight:600; padding:6px 14px; border:none; background:transparent; color:var(--accent); cursor:pointer;}
  .langtoggle button.active{background:var(--accent); color:#fff;}

  .wrap{position:relative; z-index:1; max-width:760px; margin:0 auto; padding:0 22px 90px;}
  header.mast{padding:46px 0 26px;}
  .kicker{font-weight:600; text-transform:uppercase; letter-spacing:.18em; font-size:12.5px; color:var(--accent); margin:0 0 16px;}
  h1.title{font-family:var(--display); font-weight:700; line-height:1.05; font-size:clamp(36px,7.5vw,58px); color:var(--deep); margin:0 0 12px;}
  .meta{color:var(--soft); font-size:17px; margin:0;} .meta b{color:var(--ink); font-weight:600;}
  .rule{height:0; border:none; border-top:2px solid var(--accent); margin:24px 0 5px;} .rule.thin{border-top:1px solid var(--gold); margin:0;}
  .verse{margin:28px 0 8px; padding:22px 26px; background:var(--card); border-radius:14px; border-left:5px solid var(--accent); box-shadow:var(--shadow);}
  .verse .lab{font-weight:600; text-transform:uppercase; letter-spacing:.16em; font-size:11.5px; color:var(--accent); margin:0 0 8px;}
  .verse p{margin:0; font-family:var(--display); font-style:italic; font-size:23px; color:var(--deep); line-height:1.4;}
  .verse cite{display:block; margin-top:8px; font-style:normal; font-weight:600; font-size:13px; letter-spacing:.06em; color:var(--accent); text-transform:uppercase;}
  .step{display:flex; align-items:center; gap:14px; margin:52px 0 6px;}
  .step .num{flex:0 0 auto; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:#fff; font-family:var(--display); font-weight:700; font-size:19px; box-shadow:0 6px 16px -6px rgba(120,60,30,.5);}
  .step .lab{font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--accent);}
  h2.shead{font-family:var(--display); font-weight:600; font-size:clamp(25px,5vw,33px); color:var(--deep); margin:6px 0 4px; line-height:1.15;}
  .sub{font-style:italic; color:var(--soft); margin:0 0 14px; font-size:16px;}
  .prose p{margin:0 0 18px; text-align:justify; hyphens:auto;}
@media (max-width:520px){ .prose p{text-align:left;} }
  .prose .first::first-letter{font-family:var(--display); font-weight:700; color:var(--accent); font-size:3.4em; line-height:.82; float:left; padding:6px 10px 0 0;}
  .prose em{color:var(--deep);}
.prose strong{color:var(--deep); font-weight:700;}
  .read-note{margin:8px 0 4px; padding:14px 18px; border-radius:12px; background:rgba(168,87,47,.07); border:1px dashed rgba(168,87,47,.35); font-size:16px;}
  .read-note b{color:var(--accent);}
  .sect{margin:40px 0 6px; padding-bottom:8px; border-bottom:1.5px solid var(--accent);}
  .sect .ref{font-weight:600; text-transform:uppercase; letter-spacing:.13em; font-size:11.5px; color:var(--accent); display:block; margin-bottom:3px;}
  .sect h3{font-family:var(--display); font-weight:600; font-size:24px; color:var(--deep); margin:0;}
  .q{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px 20px; margin:16px 0; box-shadow:var(--shadow);}
  .q .head{display:flex; gap:12px; align-items:flex-start;}
  .q .qn{flex:0 0 auto; width:30px; height:30px; border-radius:9px; display:grid; place-items:center; background:rgba(168,87,47,.12); color:var(--accent); font-family:var(--display); font-weight:700; font-size:16px;}
  .q .qtext{margin:2px 0 0; font-size:17.5px; line-height:1.6;}
  .q .vref{display:inline-block; margin-left:6px; font-style:italic; color:var(--accent); font-size:15px; white-space:nowrap;}
  textarea{display:block; width:100%; margin-top:13px; resize:vertical; min-height:70px; font-family:var(--body); font-size:16.5px; line-height:1.6; color:var(--ink); background:#fffdf8; border:1px solid var(--line); border-radius:10px; padding:11px 13px;}
  textarea:focus{outline:none; border-color:var(--accent-2); box-shadow:0 0 0 3px rgba(193,118,74,.18);}
  .saved{height:16px; margin-top:6px; font-size:12px; color:var(--accent); opacity:0; transition:opacity .25s;} .saved.show{opacity:.85;}
  .note{margin:20px 0; padding:18px 20px; border-radius:14px; background:linear-gradient(180deg,#f7eede,#f3e7d3); border-left:5px solid var(--accent-2); box-shadow:var(--shadow);}
  .note .lab{font-weight:600; text-transform:uppercase; letter-spacing:.13em; font-size:11.5px; color:var(--accent); margin:0 0 7px;}
  .note p{margin:0; font-size:16px; line-height:1.65;}
  .take{display:flex; gap:14px; margin:14px 0;}
  .take .tn{flex:0 0 auto; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--deep); color:#fff; font-family:var(--display); font-weight:700; font-size:16px;}
  .take p{margin:3px 0 0; font-size:17px; line-height:1.6;} .take p b{color:var(--deep);}
  .askcard{margin-top:30px; padding:18px 20px; border-radius:14px; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow);}
  .askcard .asklab{font-weight:600; color:var(--deep); font-size:15px; margin:0 0 4px;}
  .apply{margin-top:24px; padding:24px; border-radius:16px; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow);}
  .apply .lab{font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--deep); margin:0 0 14px;}
  .apply .prompt{font-weight:600; color:var(--deep);}
  .weekstep{margin-top:18px; padding:22px 24px; border-radius:16px; background:linear-gradient(180deg,#f6ecdb,#efe1cd); border-left:5px solid var(--accent); box-shadow:var(--shadow);}
  .weekstep .lab{font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--accent); margin:0 0 10px;}
  .pray{margin-top:26px; font-style:italic; text-align:justify;}
  .complete{margin-top:20px; padding:26px 24px; border-radius:16px; text-align:center; background:linear-gradient(180deg,#f6ecdb,#efe1cd); border:1px solid var(--line); box-shadow:var(--shadow);}
  .complete .clab{font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--accent); margin:0 0 14px;}
  .cname{max-width:380px; margin:0 auto 14px;}
  .cname input{width:100%; font-family:var(--body); font-size:15.5px; text-align:center; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fffdf8; color:var(--ink);}
  .cprog{height:9px; border-radius:6px; background:rgba(120,70,35,.13); overflow:hidden; margin:0 auto 11px; max-width:380px;}
  .cbar{height:100%; width:0; border-radius:6px; background:linear-gradient(90deg,var(--accent-2),var(--accent)); transition:width .35s ease;}
  .cstat{margin:0 0 16px; color:var(--soft); font-size:14px;}
  .cbtn{font-family:var(--body); font-weight:600; font-size:16px; padding:13px 28px; border:none; border-radius:24px; cursor:pointer; color:#fff; background:var(--accent); box-shadow:0 8px 20px -8px rgba(120,60,30,.5);}
  .cbtn:disabled{background:#d2c4ad; cursor:not-allowed; box-shadow:none;}
  .cbtn.done{background:#5d7c3f;}
  .cmsg{margin:12px 0 0; color:#5d7c3f; font-size:13.5px; font-weight:600; min-height:16px;}
  .cmsg.err{color:#b3261e;}
  .chint{margin:13px 0 0; color:var(--soft); font-size:13px;}
  .complete.is-done{background:linear-gradient(180deg,#eef2e3,#e6edd6); border-color:#d2dcbf;}
  .unmark{display:block; margin:14px auto 0; font-family:var(--body); font-size:12.5px; color:var(--soft); background:transparent; border:none; cursor:pointer; text-decoration:underline;}
  footer .footlogo{width:110px; height:auto; display:block;}
  footer .scripnote{flex:0 0 100%; margin:4px 0 0; font-size:11.5px; line-height:1.5; color:var(--soft);}
  footer{margin-top:54px; padding-top:22px; border-top:1px solid var(--gold); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; color:var(--soft); font-size:13px;}
  .printbtn{font-family:var(--body); font-size:13px; color:var(--accent); background:transparent; border:1px solid var(--accent); border-radius:20px; padding:7px 15px; cursor:pointer;}
  .reveal{opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease;} .reveal.in{opacity:1; transform:none;}
  @media (max-width:520px){ body{font-size:17px;} .wrap{padding:0 16px 70px;} .verse p{font-size:20px;} .q{padding:16px;} }
  @media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none; transition:none;} }

  /* ---- library / book / topbar additions ---- */
  .hidden{display:none !important;}
  .topbar{position:sticky; top:0; z-index:40; backdrop-filter:saturate(1.2) blur(6px); background:rgba(243,233,218,.85); border-bottom:1px solid var(--gold);}
  .topbar .inner{max-width:760px; margin:0 auto; padding:9px 22px; display:flex; align-items:center; gap:12px;}
  .topbar .home{font-family:var(--body); font-weight:600; color:var(--deep); text-decoration:none; font-size:14px;}
  .topbar .bt{font-family:var(--body); font-weight:600; color:var(--deep); font-size:14px;}
  .topbar .crumb{color:var(--soft); font-size:13px;}
  .topbar .sp{flex:1;}
  .lib-head{padding:54px 0 8px;}
  .lib-head .kicker{margin-bottom:14px;}
  .lib-head h1{font-family:var(--display); font-weight:700; color:var(--deep); font-size:clamp(34px,7vw,52px); margin:0 0 10px; line-height:1.05;}
  .lib-head p{margin:0; color:var(--soft); font-size:17px;}
  .booklist{margin-top:30px; display:grid; gap:18px;}
  .bookcard{display:flex; align-items:center; gap:18px; text-align:left; width:100%; cursor:pointer; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px 24px; box-shadow:var(--shadow); transition:transform .2s, box-shadow .2s; font:inherit; color:inherit;}
  .bookcard:hover{transform:translateY(-2px); box-shadow:0 18px 40px -16px rgba(120,70,35,.28);}
  .bookcard .spine{flex:0 0 auto; width:46px; height:62px; border-radius:5px 8px 8px 5px; background:linear-gradient(180deg,var(--accent-2),var(--accent)); box-shadow:inset 6px 0 0 rgba(0,0,0,.12);}
  .bookcard h3{font-family:var(--display); font-weight:600; color:var(--deep); font-size:24px; margin:0 0 3px;}
  .bookcard .tag{color:var(--soft); font-size:15px; margin:0;}
  .bookcard .count{color:var(--accent); font-size:13px; font-weight:600; margin-top:6px;}
  .bookcard .arr{margin-left:auto; color:var(--accent); font-size:22px;}
  .bookcard.soon{cursor:default; opacity:.6; box-shadow:none;}
  .bookcard.soon .spine{background:var(--soft);}
  .bookcard.soon .count{color:var(--soft);}
  .book-head{padding:48px 0 10px;}
  .book-head .kicker{margin-bottom:12px;}
  .book-head h1{font-family:var(--display); font-weight:700; color:var(--deep); font-size:clamp(32px,7vw,48px); margin:0 0 8px;}
  .book-head p{margin:0; color:var(--soft); font-size:16px;}
  .lessonlist{margin-top:26px; display:grid; gap:14px;}
  .lcard{display:flex; align-items:center; gap:16px; width:100%; text-align:left; font:inherit; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px 20px; box-shadow:var(--shadow);}
  .lcard.ready{cursor:pointer; transition:transform .18s, box-shadow .18s;}
  .lcard.ready:hover{transform:translateY(-2px); box-shadow:0 16px 36px -16px rgba(120,70,35,.26);}
  .lcard.soon,.lcard.locked{opacity:.7;}
  .lcard .ln{flex:0 0 auto; width:42px; height:42px; border-radius:50%; display:grid; place-items:center; font-family:var(--display); font-weight:700; font-size:19px; color:#fff; background:var(--accent);}
  .lcard.soon .ln,.lcard.locked .ln{background:var(--soft);}
  .lcard .ln.done{background:#5d7c3f;}
  .lcard .lt{flex:1; min-width:0;}
  .lcard .lnote{color:var(--soft); font-size:13px; font-style:italic; margin:4px 0 0;}
  .lcard h3{font-family:var(--display); font-weight:600; font-size:20px; line-height:1.28; color:var(--deep); margin:0 0 4px;}
  .lcard .lp{color:var(--soft); font-size:14px; margin:0;}
  .lcard .badge{flex:0 0 auto; font-size:11.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:5px 11px; border-radius:20px;}
  .badge.r{color:var(--accent); background:rgba(168,87,47,.12);}
  .badge.s,.badge.lk{color:var(--soft); background:rgba(111,101,90,.14);}
  .lcard .badge{white-space:nowrap;}
  .lcard .badge.lk{padding:0; width:34px; height:34px; border-radius:50%; display:grid; place-items:center;}
  .lcard .badge.lk svg{width:16px; height:16px; display:block;}
  @media (max-width:520px){ .lcard{gap:12px; padding:16px 14px;} .lcard h3{font-size:19px;} }
  .badge.done{color:#5d7c3f; background:rgba(93,124,63,.14);}

  /* ---- text size (A+) ---- */
  html[data-fs="1"] .wrap{zoom:1.12;}
  html[data-fs="2"] .wrap{zoom:1.24;}
  /* ---- toolbar buttons ---- */
  .tbtn{font-family:var(--body); font-size:13px; font-weight:600; color:var(--accent); background:transparent; border:1px solid var(--accent); border-radius:16px; padding:5px 10px; cursor:pointer; line-height:1;}
  .tbtn:hover{background:var(--accent); color:#fff;}
    --paper:#1a1512; --ink:#e8dfd2; --soft:#b5a998;
    --accent:#e8985e; --accent-2:#d98a5f; --deep:#f2c8a0;
    --card:#241e19; --line:#3d332a; --gold:#4a3d30; --answer:#3d332a;
    --shadow:0 2px 4px rgba(0,0,0,.4), 0 16px 36px -16px rgba(0,0,0,.6);
  }
    background:#1a1512;
    color:#e8dfd2;
  }
    background:#1e1914; color:#e8dfd2; border-color:#4a3d30; }
    border-color:#e8985e; box-shadow:0 0 0 3px rgba(232,152,94,.25); }
    box-shadow:0 18px 40px -16px rgba(0,0,0,.5); }

  /* ---- fix horizontal overflow (tiny zoom on phone) + responsive topbar ---- */
  html,body{max-width:100%; overflow-x:hidden;}
  .topbar .inner{flex-wrap:nowrap;}
  .topbar .bt,.topbar .crumb{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .langtoggle button{white-space:nowrap;}
  @media (max-width:600px){
    .topbar .inner{padding:8px 12px; gap:8px;}
    .topbar .bt, .topbar .crumb{display:none;}
    #home-label{display:none;}
    .tbtn{padding:5px 9px; font-size:12px;}
    .langtoggle button{padding:6px 10px; font-size:12px;}
  }

  /* ---- help button + instructions ---- */
  .helpbtn{position:relative; flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:none; padding:0; cursor:pointer;
    background:var(--accent); color:#fff; font-family:var(--display); font-weight:700; font-size:17px; line-height:30px; text-align:center;
    box-shadow:0 3px 10px -3px rgba(120,60,30,.55);}
  .helpbtn:hover{background:var(--deep);}
  .helpbtn:focus-visible{outline:3px solid rgba(193,118,74,.45); outline-offset:2px;}
  .helpbtn .tip{position:absolute; top:calc(100% + 9px); left:50%; transform:translateX(-50%) translateY(-3px); white-space:nowrap;
    background:var(--deep); color:#fff; font-family:var(--body); font-weight:600; font-size:12.5px; line-height:1.2; padding:7px 11px; border-radius:8px;
    opacity:0; pointer-events:none; transition:opacity .15s, transform .15s; box-shadow:0 8px 20px -8px rgba(80,40,20,.5);}
  .helpbtn .tip::before{content:""; position:absolute; bottom:100%; left:50%; margin-left:-5px; border:5px solid transparent; border-bottom-color:var(--deep);}
  @media (hover:hover){ .helpbtn:hover .tip{opacity:1; transform:translateX(-50%) translateY(0);} }
  .helpbtn:focus-visible .tip{opacity:1; transform:translateX(-50%) translateY(0);}
  .helpov{position:fixed; inset:0; z-index:100; background:rgba(50,34,22,.45); display:flex; align-items:center; justify-content:center; padding:18px;}
  .helpov[hidden]{display:none;}
  .helpcard{position:relative; width:100%; max-width:560px; max-height:88vh; overflow:auto; -webkit-overflow-scrolling:touch;
    background:var(--card); border:1px solid var(--line); border-radius:18px; padding:26px 26px 22px; box-shadow:0 30px 70px -20px rgba(60,30,15,.5);}
  .helpcard h2{font-family:var(--display); font-weight:700; color:var(--deep); font-size:26px; line-height:1.15; margin:0 36px 16px 0;}
  .helpclose{position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:#fffdf8;
    color:var(--soft); font-size:20px; line-height:1; cursor:pointer;}
  .helpclose:hover{color:var(--accent); border-color:var(--accent);}
  .helpitem{display:flex; gap:12px; margin:0 0 14px;}
  .helpitem .hn{flex:0 0 auto; width:26px; height:26px; border-radius:50%; display:grid; place-items:center; margin-top:2px;
    background:rgba(168,87,47,.12); color:var(--accent); font-family:var(--display); font-weight:700; font-size:14px;}
  .helpitem.key .hn{background:var(--accent); color:#fff;}
  .helpitem p{margin:0; font-size:15.5px; line-height:1.55;}
  .helpitem b{display:block; color:var(--deep); font-size:16px; margin-bottom:2px;}
  .helptips{margin:6px 0 0; padding:13px 15px; border-radius:12px; background:linear-gradient(180deg,#f7eede,#f3e7d3); font-size:14.5px; line-height:1.55;}
  .helptips b{color:var(--deep);}
  .helpok{display:block; margin:18px auto 0; font-family:var(--body); font-weight:600; font-size:15.5px; padding:11px 30px; border:none; border-radius:24px;
    cursor:pointer; color:#fff; background:var(--accent); box-shadow:0 8px 20px -8px rgba(120,60,30,.5);}
  .helpok:hover{background:var(--deep);}
  .helpcard:focus{outline:none;}
  @media (max-width:520px){ .helpcard{padding:22px 18px 18px; border-radius:16px;} .helpcard h2{font-size:23px;} .helpbtn{width:28px; height:28px; line-height:28px; font-size:16px;} }

  /* ---- course finale ---- */
  .finale{margin-top:46px;}
  .fin-hero{text-align:center; padding:34px 26px 30px; border-radius:20px; background:linear-gradient(180deg,#fbf3e6,#f1e2cb); border:1px solid var(--gold); box-shadow:var(--shadow); position:relative;}
  .fin-hero::before{content:""; position:absolute; inset:8px; border:1px solid rgba(168,87,47,.28); border-radius:14px; pointer-events:none;}
  .fin-logo{width:92px; height:auto; display:block; margin:0 auto 10px;}
  .fin-kick{font-weight:600; text-transform:uppercase; letter-spacing:.2em; font-size:12px; color:var(--accent); margin:0 0 4px;}
  .fin-title{font-family:var(--display); font-weight:700; font-size:clamp(32px,6.5vw,44px); color:var(--deep); margin:0 0 12px; line-height:1.1;}
  .fin-intro{max-width:520px; margin:0 auto; font-style:italic; color:var(--ink); font-size:17px; line-height:1.65;}
  .fin-lab{font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:12px; color:var(--accent); margin:0 0 12px;}
  .fin-sub{margin:-4px 0 12px; color:var(--soft); font-size:15.5px;}
  .fin-block{margin-top:22px; padding:24px; border-radius:16px; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow);}
  .fin-words{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .fin-word{display:flex; gap:12px; padding:14px; border-radius:12px; background:#fffaf2; border:1px solid var(--line);}
  .fin-word:last-child{grid-column:1 / -1;}
  .fw-n{flex:0 0 auto; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--deep); color:#fff; font-family:var(--display); font-weight:700; font-size:15px;}
  .fw-t{margin:1px 0 2px; font-family:var(--display); font-weight:700; font-size:18px; color:var(--deep); line-height:1.25;}
  .fw-d{margin:0; font-size:15.5px; line-height:1.55;}
  .fw-r{white-space:nowrap; font-style:italic; color:var(--accent); font-size:13.5px;}
  .fin-rule{list-style:none; margin:0; padding:0;}
  .fin-rule li{position:relative; padding:9px 0 9px 26px; border-bottom:1px dashed var(--line); font-size:16px; line-height:1.55;}
  .fin-rule li:last-child{border-bottom:none;}
  .fin-rule li::before{content:"✦"; position:absolute; left:2px; top:9px; color:var(--accent-2); font-size:14px;}
  .fin-rule li b{color:var(--deep);}
  .fin-field{margin-top:18px; padding:22px 24px; border-radius:16px; background:linear-gradient(180deg,#f6ecdb,#efe1cd); border-left:5px solid var(--accent); box-shadow:var(--shadow);}
  .fin-field p{margin:0;}
  .fin-rate{margin-top:18px; padding:24px; border-radius:16px; text-align:center; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow);}
  .fin-rate > p{margin:0;}
  .stars{display:flex; justify-content:center; gap:6px; margin:14px 0 4px;}
  .star{width:48px; height:48px; padding:4px; border:none; background:transparent; cursor:pointer; border-radius:10px;}
  .star svg{width:100%; height:100%; display:block; fill:transparent; stroke:#c9a063; stroke-width:1.4; stroke-linejoin:round; transition:fill .15s, transform .15s;}
  .star.on svg,.star.hov svg{fill:#d9a441; stroke:#b98424;}
  .star:hover svg{transform:scale(1.08);}
  .star:focus-visible{outline:3px solid rgba(193,118,74,.45);}
  .rate-name{min-height:24px; margin:0 0 6px !important; color:var(--soft); font-size:14px;}
  .rate-name.set{color:var(--deep); font-weight:600; font-size:15.5px;}
  .fin-wish{margin:16px 0 0 !important; text-align:left; font-weight:600; color:var(--deep); font-size:15px;}
  .fin-wish span{font-weight:400; color:var(--soft); font-style:italic;}
  .fin-bless{margin:26px 0 6px; padding:26px 22px; text-align:center;}
  .fin-orn{margin:0 0 6px; color:var(--accent-2); font-size:20px; letter-spacing:.4em;}
  .fin-bq{margin:0 auto; max-width:520px; font-family:var(--display); font-style:italic; font-size:21px; line-height:1.45; color:var(--deep);}
  .fin-bref{margin:10px 0 0; font-weight:600; text-transform:uppercase; letter-spacing:.08em; font-size:12.5px; color:var(--accent);}
  @media (max-width:560px){ .fin-words{grid-template-columns:1fr;} .fin-block,.fin-rate{padding:20px 16px;} .fin-field{padding:20px 18px;} .star{width:44px; height:44px;} .fin-bq{font-size:19px;} }

  .helpcode{margin:18px 0 4px; padding:16px 16px 12px; border-radius:14px; background:linear-gradient(180deg,#f6ecdb,#efe1cd); border:1px solid var(--line); text-align:center;}
  .hc-lab{margin:0; font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:11.5px; color:var(--accent);}
  .hc-code{margin:6px 0 4px; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:28px; font-weight:700; letter-spacing:.12em; color:var(--deep); user-select:all;}
  .hc-wait{font-family:var(--body); font-size:14px; font-weight:400; letter-spacing:0; color:var(--soft); font-style:italic;}
  .hc-text{margin:0 0 8px; font-size:14px; line-height:1.5; color:var(--ink);}
  .hc-have{font-family:var(--body); font-size:13.5px; color:var(--accent); background:transparent; border:none; text-decoration:underline; cursor:pointer; padding:4px;}
  .hc-form{display:flex; gap:8px; margin-top:8px;}
  .hc-form[hidden]{display:none;}
  .hc-form input{flex:1; min-width:0; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:17px; text-transform:uppercase; letter-spacing:.08em; text-align:center; padding:9px 10px; border:1px solid var(--line); border-radius:10px; background:#fffdf8; color:var(--ink);}
  .hc-form button{font-family:var(--body); font-weight:600; font-size:14px; padding:9px 14px; border:none; border-radius:10px; background:var(--accent); color:#fff; cursor:pointer;}
  .hc-form button:disabled{opacity:.6;}
  .hc-msg{margin:8px 0 0; min-height:18px; font-size:13.5px; color:var(--soft);}
  .hc-msg.ok{color:#2e7d32; font-weight:600;} .hc-msg.err{color:#b3261e;}

  .msgbox{margin:0 0 26px;}
  .msgone{position:relative; margin-bottom:12px; padding:18px 20px; border-radius:14px; background:linear-gradient(180deg,#fdf6e8,#f7ecd9); border:1px solid var(--gold); box-shadow:var(--shadow);}
  .msg-lab{margin:0 0 8px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:11.5px; color:var(--accent);}
  .msg-lab span{margin-left:8px; font-weight:400; letter-spacing:0; text-transform:none; font-style:italic; color:var(--soft); font-size:12.5px;}
  .msg-text{margin:0 0 12px; font-size:16.5px; line-height:1.6; color:var(--ink);}
  .msg-ok{font-family:var(--body); font-size:13.5px; font-weight:600; padding:7px 14px; border:1px solid var(--accent); border-radius:10px; background:transparent; color:var(--accent); cursor:pointer;}
  .msg-ok:hover{background:var(--accent); color:#fff;}
  .badge.msg{background:var(--accent); color:#fff;}

  /* ---- guide (handbook) ---- */
  .guidecard .spine{background:linear-gradient(180deg,var(--gold),#b8893f);}
  .guidecard .count{color:var(--accent); font-weight:600;}
  .guide-head{text-align:center;}
  .glogo{width:84px; height:auto; display:block; margin:0 auto 10px;}
  .gmotto{margin:2px 0 0 !important; font-style:italic; color:var(--soft); font-size:15px;}
  .glead{max-width:540px; margin:12px auto 0 !important; font-size:16.5px; line-height:1.6;}
  .guidewrap{margin-top:8px;}
  .gsec{margin:0 0 22px; padding:24px 26px; border-radius:16px; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow);}
  .gsec h2{display:flex; align-items:center; gap:12px; margin:0 0 12px; font-family:var(--display); font-weight:700; font-size:23px; color:var(--deep); line-height:1.2;}
  .gn{flex:0 0 auto; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--deep); color:#fff; font-size:15px;}
  .gsec p{margin:0 0 12px; font-size:16.5px; line-height:1.65;}
  .gsec p:last-child{margin-bottom:0;}
  .gsec strong{color:var(--deep);}
  .gstep{margin:0 0 14px; padding:14px 16px; border-radius:12px; background:#fffaf2; border-left:4px solid var(--accent);}
  .gst{margin:0 0 4px !important; font-family:var(--display); font-weight:700; font-size:17.5px; color:var(--accent);}
  .gbul,.gnum{margin:4px 0 12px; padding:0 0 0 2px; list-style:none;}
  .gbul li,.gnum li{position:relative; padding:7px 0 7px 26px; font-size:16.5px; line-height:1.6; border-bottom:1px dashed var(--line);}
  .gbul li:last-child,.gnum li:last-child{border-bottom:none;}
  .gbul li::before{content:"\2726"; position:absolute; left:2px; top:8px; color:var(--accent-2); font-size:13px;}
  .gnum{counter-reset:gn;}
  .gnum li{counter-increment:gn;}
  .gnum li::before{content:counter(gn)"."; position:absolute; left:2px; top:7px; color:var(--accent); font-weight:700; font-size:15px;}
  .gbul li b,.gnum li b{color:var(--deep);}
  .gback{text-align:center; margin:10px 0 6px;}
  .gback button{font-family:var(--body); font-size:15px; font-weight:600; padding:11px 22px; border:1px solid var(--accent); border-radius:12px; background:transparent; color:var(--accent); cursor:pointer;}
  .gback button:hover{background:var(--accent); color:#fff;}
  .guidelink{display:flex; align-items:center; gap:10px; width:100%; margin:0 0 18px; padding:13px 16px; border-radius:12px; text-align:left;
    background:rgba(201,160,99,.13); border:1px dashed var(--gold); color:var(--deep); font-family:var(--body); font-size:15.5px; line-height:1.4; cursor:pointer;}
  .guidelink:hover{background:rgba(201,160,99,.22);}
  .guidelink.small{font-size:14.5px; padding:11px 14px; margin-bottom:22px;}
  .guidelink .gi{color:var(--accent-2); font-size:13px;}
  .guidelink .ga{margin-left:auto; color:var(--accent); font-size:19px;}

  .refs{display:grid; gap:10px; margin:4px 0 22px;}
  .refcard{display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow); text-decoration:none; color:var(--ink); transition:transform .15s, box-shadow .15s;}
  .refcard:hover{transform:translateY(-1px); box-shadow:0 10px 24px -14px rgba(120,70,35,.35);}
  .refcard .ri{flex:0 0 auto; width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:rgba(201,160,99,.16); font-size:19px;}
  .refcard .rt{flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.35;}
  .refcard .rt b{font-family:var(--display); font-size:16.5px; color:var(--deep);}
  .refcard .rt small{font-size:13px; color:var(--soft); font-style:italic;}
  .refcard .ra{flex:0 0 auto; color:var(--accent); font-size:18px;}
  :root{color-scheme:only light;}

/* ---------- страница книги из частей ---------- */
.hub-intro{margin-top:18px;}
.hub-intro p{color:var(--ink); font-size:17px; line-height:1.65; margin:0 0 12px;}
.parts-lab{margin:34px 0 0; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}
.booklist.parts{margin-top:14px;}
.partcard .pnum{margin:0 0 4px; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--accent);}
.partcard.soon .pnum{color:var(--soft);}

/* ---------- экран «курс не открыт» ---------- */
.deny{margin-top:18px; padding:18px 18px 16px; border-radius:16px; background:var(--card, #fdf6ec); border:1px solid rgba(168,87,47,.22);}
.deny p{margin:0 0 10px; font-size:16px; line-height:1.6; color:var(--ink);}
.deny .dn-lab{font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin-bottom:8px;}
.dn-in{display:block; width:100%; box-sizing:border-box; height:48px; margin:4px 0 10px; padding:0 14px; border-radius:12px; border:1px solid rgba(168,87,47,.35); background:#fff; font:inherit; font-size:16px; color:var(--ink);}
.dn-btn{height:46px; padding:0 18px; border-radius:12px; border:1px solid var(--accent); background:transparent; color:var(--accent); font:inherit; font-size:16px; font-weight:600; cursor:pointer;}
.dn-btn.go{background:var(--accent); color:#fff;}
.dn-btn:disabled{opacity:.6;}
.dn-msg{margin:10px 0 0 !important; font-size:15px !important;}
.dn-msg.ok{color:#3f7a3a !important;} .dn-msg.err{color:#b3261e !important;}
.dn-mentor{margin:18px 0 0; color:var(--soft); font-size:15px; font-style:italic;}
.inv-row{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.inv-row .dn-in{flex:1 1 180px; margin:0; text-transform:uppercase;}
.enroll-bn{margin:0 0 18px;}


  /* «курс в курсе» в списке уроков и ссылка обратно на основной курс */
  .lcard.sub{border:1.5px dashed var(--accent-2); background:linear-gradient(0deg,rgba(201,160,99,.08),rgba(201,160,99,.08)),var(--card);}
  .lcard .ln.sub{background:var(--accent-2); font-size:18px;}
  .lcard.sub.soon .ln.sub,.lcard.sub.locked .ln.sub{background:var(--soft);}
  .lcard .ln.sub.done{background:#5d7c3f;}
  .lcard .lnote.ok{color:#5d7c3f; font-style:normal;}

  /* обложки книг с иконкой */
  .bookcard .spine.ic{position:relative; display:grid; place-items:center; color:#f7e8c9;}
  .bookcard .spine.ic svg{width:34px; height:34px; display:block; filter:drop-shadow(0 1px 0 rgba(0,0,0,.18));}
  .bookcard .spine.ic::before,.bookcard .spine.ic::after{content:""; position:absolute; left:9px; right:5px; height:1px; background:rgba(247,232,201,.5);}
  .bookcard .spine.ic::before{top:7px;} .bookcard .spine.ic::after{bottom:7px;}
  .bookcard.soon .spine.ic{background:var(--soft) !important;}
