:root{
  --bg:#fbf8f2;--bg-soft:#f2ede1;--bg-panel:#fffdfa;--bg-deep:#141210;
  --ink:#121010;--ink-2:#2a2826;--ink-muted:#555550;--ink-quiet:#6b6258;
  --accent:#6b1414;--accent-soft:#8e2e2e;--accent-deep:#561010;
  --gold:#8a6c2a;--gold-soft:#b09648;--gold-pale:#ece1c9;
  --rule:#1a1816;--rule-soft:#d9d3c4;
  --d-bg:#141210;--d-bg2:#1c1916;--d-ink:#f1e7df;--d-ink2:#cfc2b2;
  --d-gold:#c2a05c;--d-crim:#d98a86;--d-panel:#211d19;
  --font-display:'Playfair Display',Georgia,serif;--font-body:'Lora',Georgia,serif;
  --transition:420ms cubic-bezier(.22,1,.36,1);--transition-fast:200ms cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:#0c0a08;color:var(--ink-2);font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;overflow:hidden}

/* ── App shell ─────────────────────────────────────────────── */
.app{display:flex;flex-direction:column;height:100vh;height:100dvh}
.topbar{display:flex;align-items:center;gap:14px;padding:10px 18px;background:#100e0c;
  border-bottom:1px solid #2a251f;flex:none;z-index:5}
.brand{display:flex;flex-direction:column;line-height:1;margin-right:auto}
.brand .t{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;
  font-size:8.5px;color:var(--d-gold)}
.brand .m{font-family:var(--font-display);font-size:15px;color:#f1e7df;margin-top:3px}
.themeswitch{display:flex;gap:0;border:1px solid #3a332b;border-radius:2px;overflow:hidden}
.themeswitch button{font-family:var(--font-display);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:600;color:#a99a86;background:transparent;border:0;
  padding:9px 14px;min-height:38px;cursor:pointer;transition:all var(--transition-fast)}
.themeswitch button+button{border-left:1px solid #3a332b}
.themeswitch button[aria-pressed="true"]{background:var(--d-gold);color:#141210}
.iconbtn{font-family:var(--font-display);width:38px;height:38px;border:1px solid #3a332b;
  background:transparent;color:#c9bba6;cursor:pointer;border-radius:2px;font-size:15px}
.iconbtn:hover{border-color:var(--d-gold);color:var(--d-gold)}

/* ── Deck viewport ─────────────────────────────────────────── */
.viewport{flex:1;position:relative;overflow:hidden;min-height:0;
  background:radial-gradient(120% 120% at 50% 0%,#171310,#0c0a08)}
/* fixed 16:9 design canvas — the whole thing is uniformly scaled by JS
   to fit any viewport, so slides never clip or reflow (desktop → tiny portrait). */
.stage{position:absolute;top:50%;left:50%;width:1280px;height:720px;
  transform:translate(-50%,-50%) scale(var(--s,1));transform-origin:center center;
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9);overflow:hidden;--u:13.33px}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity var(--transition)}
.slide[data-active="true"]{opacity:1;visibility:visible}
.frame{position:absolute;inset:0;display:flex;flex-direction:column;
  padding:calc(var(--u)*3.6) calc(var(--u)*4.4) calc(var(--u)*3)}

/* head */
.s-head{display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--font-display);text-transform:uppercase;letter-spacing:.26em;
  font-size:calc(var(--u)*.82);flex:none;margin-bottom:calc(var(--u)*1.4)}
.s-head .k{font-weight:600}
.s-head .f{letter-spacing:.2em}
/* body cols */
.s-cols{flex:1;display:flex;gap:calc(var(--u)*3.2);min-height:0}
.s-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.s-aside{flex:0 0 30%;display:flex;flex-direction:column;justify-content:center;gap:calc(var(--u)*1.6)}
.slide[data-noaside] .s-aside{display:none}
/* titles */
.s-title{font-family:var(--font-display);font-weight:600;line-height:1.1;margin:0 0 calc(var(--u)*1.3)}
.s-eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;
  font-weight:600;font-size:calc(var(--u)*.9);margin-bottom:calc(var(--u)*1)}
.s-sub{font-style:italic;font-size:calc(var(--u)*1.35);margin:0 0 calc(var(--u)*1.4)}
/* lists */
.s-list{list-style:none;margin:0;padding:0;display:grid;gap:calc(var(--u)*1.05)}
.s-list.two{grid-template-columns:1fr 1fr;gap:calc(var(--u)*.9) calc(var(--u)*3)}
.s-list li{position:relative;padding-left:calc(var(--u)*2.1);font-size:calc(var(--u)*1.42);line-height:1.42}
.s-list.dense li{font-size:calc(var(--u)*1.2);line-height:1.36}
.s-list li .mk{position:absolute;left:0;top:0;font-family:var(--font-display)}
.s-list li .lead{font-weight:700}
.s-sub-list{list-style:none;margin:calc(var(--u)*.5) 0 0;padding:0;display:grid;gap:calc(var(--u)*.4)}
.s-sub-list li{font-size:calc(var(--u)*1.05);font-style:italic;padding-left:calc(var(--u)*1.4);opacity:.9}
.s-sub-list li .mk{font-size:.8em;top:.1em}
/* scripture */
.s-verse{font-style:italic;font-size:calc(var(--u)*1.62);line-height:1.5;margin:0}
.s-verse.sm{font-size:calc(var(--u)*1.3);line-height:1.5}
.s-ref{display:block;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;
  font-size:calc(var(--u)*.95);font-weight:600;margin-top:calc(var(--u)*1.5)}
/* compare columns */
.s-compare{display:flex;gap:calc(var(--u)*2.2)}
.s-compare .col{flex:1;display:flex;flex-direction:column;gap:calc(var(--u)*.9)}
.s-compare .col .h{font-family:var(--font-display);font-weight:600;font-size:calc(var(--u)*1.5)}
.s-compare .col .b{font-size:calc(var(--u)*1.2);line-height:1.42;font-style:italic}
/* definition line */
.s-define{font-family:var(--font-display);font-size:calc(var(--u)*1.7);margin:0 0 calc(var(--u)*1.6)}
/* aside quote */
.s-quote{font-style:italic;font-size:calc(var(--u)*1.14);line-height:1.5;margin:0}
.s-quote .by{display:block;font-style:normal;font-family:var(--font-display);font-weight:600;
  font-size:calc(var(--u)*1.02);margin-top:calc(var(--u)*.7)}
/* principle banner */
.s-principle{flex:none;margin-top:calc(var(--u)*1.6);padding:calc(var(--u)*1.1) calc(var(--u)*1.6);
  font-size:calc(var(--u)*1.16);line-height:1.42}
.s-principle .lab{font-family:var(--font-display);font-weight:700;letter-spacing:.04em;margin-right:.5em}
.s-principle .lab2{font-family:var(--font-display);font-weight:700;display:block;margin-bottom:.2em}
.s-principle p{margin:0;white-space:pre-line}
/* image */
.s-image-wrap{position:absolute;inset:0}
.s-image-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.s-image-cap{position:absolute;z-index:3}
/* agenda */
.s-agenda{display:flex;gap:calc(var(--u)*1.8);align-items:stretch}
.s-agenda .part{flex:1;display:flex;flex-direction:column;padding:calc(var(--u)*1.6);
  border:1px solid var(--rule-soft);transition:all var(--transition-fast)}
.s-agenda .part .rn{font-family:var(--font-display);font-size:calc(var(--u)*1.1);letter-spacing:.1em;
  font-weight:600;margin-bottom:calc(var(--u)*.6)}
.s-agenda .part .nm{font-family:var(--font-display);font-weight:600;font-size:calc(var(--u)*1.55);
  line-height:1.14;flex:1}
.s-agenda .part .nm small{display:block;font-size:calc(var(--u)*.95);font-weight:400;margin-top:.3em;opacity:.8}
.s-agenda .part .wk{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;
  font-size:calc(var(--u)*.92);margin-top:calc(var(--u)*1)}
.s-subagenda{margin-top:calc(var(--u)*2);display:grid;grid-template-columns:auto 1fr;
  gap:calc(var(--u)*.5) calc(var(--u)*1.8);align-items:center;max-width:70%}
.s-subagenda .step{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:calc(var(--u)*1.3)}
.s-subagenda .when{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;font-size:calc(var(--u)*.92)}

/* ═══ THEME · CANDLELIGHT ═══════════════════════════════════ */
.stage[data-theme="candlelight"]{background:var(--d-bg)}
[data-theme="candlelight"] .frame{color:var(--d-ink)}
.stage[data-theme="candlelight"]::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;
  background:radial-gradient(120% 90% at 50% 120%,rgba(194,160,92,.14),transparent 55%),
             radial-gradient(150% 130% at 50% 45%,transparent 60%,rgba(0,0,0,.6) 100%)}
[data-theme="candlelight"] .slide{z-index:1}
[data-theme="candlelight"] .frame::before{content:"";position:absolute;inset:calc(var(--u)*1.5);
  border:1px solid rgba(194,160,92,.32);pointer-events:none}
[data-theme="candlelight"] .s-head{color:var(--d-gold)}
[data-theme="candlelight"] .s-head .f{color:#8a7c68}
[data-theme="candlelight"] .s-title{color:#f6ede2}
[data-theme="candlelight"] .s-eyebrow{color:var(--d-gold)}
[data-theme="candlelight"] .s-sub{color:var(--d-crim)}
[data-theme="candlelight"] .s-list li{color:#e9ddcf}
[data-theme="candlelight"] .s-list li .mk{color:var(--d-crim)}
[data-theme="candlelight"] .s-list li .lead{color:var(--d-gold)}
[data-theme="candlelight"] .s-sub-list li{color:#b9ab97}
[data-theme="candlelight"] .s-verse{color:#ece2d5}
[data-theme="candlelight"] .s-ref{color:var(--d-crim)}
[data-theme="candlelight"] .s-define{color:var(--d-gold)}
[data-theme="candlelight"] .s-compare .col{border-left:2px solid rgba(194,160,92,.4);padding-left:calc(var(--u)*1.3)}
[data-theme="candlelight"] .s-compare .col .h{color:var(--d-gold)}
[data-theme="candlelight"] .s-compare .col .b{color:#ded2c2}
[data-theme="candlelight"] .s-main b,[data-theme="candlelight"] .s-verse b,[data-theme="candlelight"] .s-list b{color:var(--d-crim);font-weight:600}
[data-theme="candlelight"] .s-aside{border-left:1px solid rgba(194,160,92,.4);padding-left:calc(var(--u)*1.6)}
[data-theme="candlelight"] .s-quote{color:#d8cbba}
[data-theme="candlelight"] .s-quote .by{color:var(--d-gold)}
[data-theme="candlelight"] .s-principle{background:linear-gradient(180deg,rgba(107,20,20,.55),rgba(86,16,16,.7));
  border:1px solid rgba(217,138,134,.35);color:#f4e7df}
[data-theme="candlelight"] .s-principle .lab,[data-theme="candlelight"] .s-principle .lab2{color:var(--d-gold)}
[data-theme="candlelight"] .s-agenda .part{background:var(--d-panel);border-color:rgba(194,160,92,.25)}
[data-theme="candlelight"] .s-agenda .part[data-on]{border-color:var(--d-gold);background:#2a231b}
[data-theme="candlelight"] .s-agenda .part[data-dim]{opacity:.4}
[data-theme="candlelight"] .s-agenda .rn{color:var(--d-gold)}
[data-theme="candlelight"] .s-agenda .nm{color:#eadfce}
[data-theme="candlelight"] .s-agenda .wk{color:var(--d-crim)}
[data-theme="candlelight"] .s-subagenda .step{color:#eadfce}
[data-theme="candlelight"] .s-subagenda .step[data-done]{color:var(--d-gold)}
[data-theme="candlelight"] .s-subagenda .when{color:var(--d-crim)}
[data-theme="candlelight"] .s-image-wrap::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,8,6,.9) 8%,rgba(10,8,6,.1) 55%,rgba(10,8,6,.3) 100%)}
[data-theme="candlelight"] .s-image-wrap::before{content:"";position:absolute;inset:calc(var(--u)*1.5);
  border:1px solid rgba(194,160,92,.5);z-index:2}
[data-theme="candlelight"] .cover-fleuron{color:var(--d-gold)}
[data-theme="candlelight"] .cover-rule{background:var(--d-gold)}

/* ═══ THEME · READING ROOM ═════════════════════════════════ */
.stage[data-theme="reading"]{background:var(--bg-panel)}
[data-theme="reading"] .frame{color:var(--ink-2);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.07 0 0 0 0 0.04 0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
[data-theme="reading"] .s-head{color:var(--gold);border-bottom:1px solid var(--rule-soft);
  padding-bottom:calc(var(--u)*1);}
[data-theme="reading"] .s-head .k{color:var(--accent)}
[data-theme="reading"] .s-head .f{color:var(--gold-soft)}
[data-theme="reading"] .s-title{color:var(--accent)}
[data-theme="reading"] .s-title::after{content:"";display:block;width:calc(var(--u)*3.4);height:2px;
  background:var(--accent);margin-top:calc(var(--u)*.9)}
[data-theme="reading"] .s-eyebrow{color:var(--accent)}
[data-theme="reading"] .s-sub{color:var(--ink-muted)}
[data-theme="reading"] .s-list li{color:var(--ink-2)}
[data-theme="reading"] .s-list li .mk{color:var(--gold)}
[data-theme="reading"] .s-list li .lead{color:var(--accent)}
[data-theme="reading"] .s-list:not(.two) li{border-top:1px solid var(--rule-soft);padding-top:calc(var(--u)*.9);padding-bottom:calc(var(--u)*.2)}
[data-theme="reading"] .s-list:not(.two) li .mk{top:calc(var(--u)*.9)}
[data-theme="reading"] .s-sub-list li{color:var(--ink-muted)}
[data-theme="reading"] .s-verse{color:var(--ink-2);padding-left:calc(var(--u)*1.8);border-left:3px solid var(--accent)}
[data-theme="reading"] .s-ref{color:var(--accent);padding-left:calc(var(--u)*1.8)}
[data-theme="reading"] .s-define{color:var(--ink)}
[data-theme="reading"] .s-compare .col{padding:calc(var(--u)*1.3);background:var(--bg-soft);border:1px solid var(--rule-soft)}
[data-theme="reading"] .s-compare .col .h{color:var(--accent)}
[data-theme="reading"] .s-compare .col .b{color:var(--ink-2)}
[data-theme="reading"] .s-main b,[data-theme="reading"] .s-verse b,[data-theme="reading"] .s-list b{color:var(--accent);font-weight:600}
[data-theme="reading"] .s-aside{background:var(--bg-soft);border-left:3px solid var(--accent);
  padding:calc(var(--u)*1.4) calc(var(--u)*1.5);align-self:center}
[data-theme="reading"] .s-quote{color:var(--ink-2)}
[data-theme="reading"] .s-quote .by{color:var(--accent)}
[data-theme="reading"] .s-principle{background:var(--gold-pale);border:1px solid var(--gold-soft);color:var(--ink)}
[data-theme="reading"] .s-principle .lab,[data-theme="reading"] .s-principle .lab2{color:var(--accent)}
[data-theme="reading"] .s-agenda .part{background:var(--bg-soft);border-color:var(--rule-soft)}
[data-theme="reading"] .s-agenda .part[data-on]{border-color:var(--accent);border-width:1px;background:var(--bg-panel);box-shadow:inset 0 0 0 1px var(--accent)}
[data-theme="reading"] .s-agenda .part[data-dim]{opacity:.5}
[data-theme="reading"] .s-agenda .rn{color:var(--gold)}
[data-theme="reading"] .s-agenda .nm{color:var(--ink)}
[data-theme="reading"] .s-agenda .wk{color:var(--accent)}
[data-theme="reading"] .s-subagenda .step{color:var(--ink)}
[data-theme="reading"] .s-subagenda .step[data-done]{color:var(--gold);text-decoration:line-through;text-decoration-color:var(--gold-soft)}
[data-theme="reading"] .s-subagenda .when{color:var(--accent)}
[data-theme="reading"] .s-image-wrap::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,15,10,.7) 6%,transparent 45%)}
[data-theme="reading"] .s-image-wrap::before{content:"";position:absolute;inset:calc(var(--u)*1.4);
  border:1px solid var(--gold-pale);z-index:2}
[data-theme="reading"] .cover-fleuron{color:var(--gold)}
[data-theme="reading"] .cover-rule{background:var(--gold-soft)}

/* cover + section shared */
.layout-cover .frame,.layout-section .frame{align-items:center;text-align:center;justify-content:center}
.layout-cover .s-cols,.layout-section .s-cols{flex:none;flex-direction:column;align-items:center}
.layout-cover .s-main,.layout-section .s-main{align-items:center;text-align:center}
.cover-fleuron{font-size:calc(var(--u)*1.9);line-height:1;margin:calc(var(--u)*1.4) 0}
.cover-rule{width:calc(var(--u)*5);height:1px;margin:calc(var(--u)*1.5) auto}
.layout-cover .s-title{font-size:calc(var(--u)*4.6)}
.layout-section .s-title{font-size:calc(var(--u)*3.6)}
.layout-cover .s-eyebrow{display:inline-flex;align-items:center;gap:calc(var(--u)*1.1)}
.layout-cover .s-eyebrow::before,.layout-cover .s-eyebrow::after{content:"";width:calc(var(--u)*2.6);height:1px;background:currentColor}
.layout-cover .s-verse{max-width:80%;margin:calc(var(--u)*2) auto 0}
[data-theme="reading"] .layout-cover .s-verse{border:0;padding:0}
[data-theme="reading"] .layout-cover .s-ref{padding:0}
[data-theme="reading"] .layout-cover .s-title::after,[data-theme="reading"] .layout-section .s-title::after{margin-left:auto;margin-right:auto}

/* ── Bottom controls ───────────────────────────────────────── */
.controls{display:flex;align-items:center;gap:14px;padding:11px 20px;background:#100e0c;
  border-top:1px solid #2a251f;flex:none}
.progress{flex:1;height:3px;background:#2a251f;position:relative;border-radius:2px;overflow:hidden}
.progress .bar{position:absolute;left:0;top:0;bottom:0;background:var(--d-gold);transition:width var(--transition)}
.navbtn{font-family:var(--font-display);min-width:40px;height:40px;border:1px solid #3a332b;
  background:transparent;color:#c9bba6;cursor:pointer;border-radius:2px;font-size:15px}
.navbtn:hover:not(:disabled){border-color:var(--d-gold);color:var(--d-gold)}
.navbtn:disabled{opacity:.3;cursor:default}
.count{font-family:var(--font-display);letter-spacing:.12em;font-size:12px;color:#a99a86;min-width:78px;text-align:center}
.title-now{font-family:var(--font-display);font-size:12px;color:#8a7c68;font-style:italic;
  max-width:34%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modeswitch button{min-height:38px}

/* ═══ READ MODE · portrait / self-study ════════════════════
   Same slide content, one card at a time, reflowed for a phone held
   upright: full-width, readable type, single column, aside below body.
   (Present mode above is untouched — this only applies under [data-mode="read"].) */
.app[data-mode="read"] .stage{position:static;top:auto;left:auto;transform:none;
  width:100%;height:100%;box-shadow:none;--u:7px}
.app[data-mode="read"] .stage[data-theme="candlelight"]::after{display:none}
.app[data-mode="read"] .frame{padding:clamp(20px,5.5vw,34px);justify-content:flex-start;overflow-y:auto}
.app[data-mode="read"] .layout-cover .frame,.app[data-mode="read"] .layout-section .frame{justify-content:center}
.app[data-mode="read"] .s-cols{flex:0 0 auto;flex-direction:column;gap:clamp(18px,5vw,26px)}
.app[data-mode="read"] .s-main{justify-content:flex-start}
.app[data-mode="read"] .s-aside{flex:none;order:9;align-self:stretch}
.app[data-mode="read"] .s-principle{flex:none;margin-top:clamp(16px,5vw,24px);padding:clamp(13px,3.6vw,17px) clamp(15px,4vw,18px)}
/* readable type, sized to the phone's width (only ever shown when narrow) */
.app[data-mode="read"] .s-head{font-size:clamp(9px,2.5vw,11px);margin-bottom:clamp(14px,4vw,20px)}
.app[data-mode="read"] .s-title{font-size:clamp(22px,6vw,31px);line-height:1.16;margin-bottom:clamp(12px,3.4vw,18px)}
.app[data-mode="read"] .s-sub{font-size:clamp(15px,4vw,18px)}
.app[data-mode="read"] .s-eyebrow{font-size:clamp(10px,2.7vw,12px)}
.app[data-mode="read"] .s-list{gap:clamp(13px,3.6vw,18px)}
.app[data-mode="read"] .s-list.two{grid-template-columns:1fr}
.app[data-mode="read"] .s-list li{font-size:clamp(15.5px,4.2vw,18px);line-height:1.5;padding-left:1.6em}
.app[data-mode="read"] .s-list.dense li{font-size:clamp(15px,4vw,17px);line-height:1.46}
.app[data-mode="read"] .s-list li .mk{font-size:.9em;top:.15em}
.app[data-mode="read"] .s-sub-list li{font-size:clamp(13px,3.5vw,15px)}
.app[data-mode="read"] .s-verse{font-size:clamp(16px,4.4vw,20px);line-height:1.56}
.app[data-mode="read"] .s-verse.sm{font-size:clamp(15px,4.2vw,18.5px)}
.app[data-mode="read"] .s-ref{font-size:clamp(11px,2.9vw,13px)}
.app[data-mode="read"] .s-compare{flex-direction:column;gap:clamp(12px,3.4vw,16px)}
.app[data-mode="read"] .s-compare .col .h{font-size:clamp(16px,4.4vw,19px)}
.app[data-mode="read"] .s-compare .col .b{font-size:clamp(14.5px,3.9vw,17px)}
.app[data-mode="read"] .s-define{font-size:clamp(17px,4.7vw,22px)}
.app[data-mode="read"] .s-quote{font-size:clamp(14.5px,3.9vw,16.5px);line-height:1.5}
.app[data-mode="read"] .s-quote .by{font-size:clamp(12.5px,3.3vw,14px)}
.app[data-mode="read"] .s-principle p{font-size:clamp(14.5px,3.9vw,16.5px);line-height:1.46}
.app[data-mode="read"] .s-agenda{flex-direction:column;gap:clamp(11px,3vw,14px)}
.app[data-mode="read"] .s-agenda .part{padding:clamp(13px,3.6vw,16px)}
.app[data-mode="read"] .s-agenda .part .nm{font-size:clamp(16px,4.4vw,20px)}
.app[data-mode="read"] .s-agenda .part .rn{font-size:clamp(13px,3.4vw,15px)}
.app[data-mode="read"] .s-agenda .part .wk{font-size:clamp(11px,2.9vw,13px)}
.app[data-mode="read"] .s-subagenda{max-width:none;gap:clamp(7px,2vw,10px) clamp(14px,4vw,18px)}
.app[data-mode="read"] .s-subagenda .step{font-size:clamp(15px,4vw,18px)}
.app[data-mode="read"] .s-subagenda .when{font-size:clamp(11px,2.9vw,13px)}
.app[data-mode="read"] .cover-fleuron{font-size:clamp(22px,6vw,28px)}
.app[data-mode="read"] .cover-rule{width:clamp(44px,12vw,64px)}
.app[data-mode="read"] .layout-cover .s-title{font-size:clamp(30px,8.5vw,46px)}
.app[data-mode="read"] .layout-section .s-title{font-size:clamp(26px,7.4vw,38px)}
.app[data-mode="read"] .layout-cover .s-verse{max-width:100%}
.app[data-mode="read"] .s-image-cap h2{font-size:clamp(24px,6.6vw,34px)!important}

@media (max-width:820px){.brand{display:none}.themeswitch{margin-left:auto}
  .topbar,.controls{padding-left:12px;padding-right:12px;gap:7px}
  .themeswitch button{padding:8px 9px;letter-spacing:.06em;font-size:9.5px}
  #fs{display:none}}
@media (max-width:640px){.title-now{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important}}

/* ── Tables (model tables e.g. Tabernacle Prayer Model) ────── */
.s-tablewrap{overflow-x:auto;max-width:100%}
.s-table{width:100%;border-collapse:collapse;font-size:calc(var(--u)*1.02);line-height:1.35;
  font-family:var(--font-body)}
.s-table th{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;
  font-weight:600;font-size:calc(var(--u)*.88);text-align:left;
  padding:calc(var(--u)*.7) calc(var(--u)*.9)}
.s-table td{padding:calc(var(--u)*.6) calc(var(--u)*.9);vertical-align:top}
[data-theme="candlelight"] .s-table th{background:var(--accent-deep);color:var(--gold-pale);
  border:1px solid rgba(194,160,92,.3)}
[data-theme="candlelight"] .s-table td{color:#e4d8c8;border:1px solid rgba(194,160,92,.2)}
[data-theme="candlelight"] .s-table tr:nth-child(even) td{background:rgba(242,237,225,.05)}
[data-theme="candlelight"] .s-table td.em{background:rgba(194,160,92,.14);color:#f0e2c8;font-weight:600}
[data-theme="candlelight"] .s-table th.em{background:#6b5322}
[data-theme="reading"] .s-table th{background:var(--accent);color:var(--bg);border:1px solid var(--accent-deep)}
[data-theme="reading"] .s-table td{color:var(--ink-2);border:1px solid var(--rule-soft)}
[data-theme="reading"] .s-table tr:nth-child(even) td{background:var(--bg-soft)}
[data-theme="reading"] .s-table td.em{background:var(--gold-pale);color:var(--accent-deep);font-weight:600}
[data-theme="reading"] .s-table th.em{background:var(--accent-deep)}
.app[data-mode="read"] .s-table{font-size:clamp(13px,3.4vw,15px)}
.app[data-mode="read"] .s-table th{font-size:clamp(10px,2.7vw,12px)}
