/* ============================================================
   Knee Battle — design system
   Ported from committedinchrist.com; Vigil Indigo + Dawn Gold.
   Light, white, airy, minimal. No dark theme.
   ============================================================ */
:root {
  --paper: #ffffff;
  --soft: #f7f6fc;
  --soft2: #efedf9;
  --ink: #171528;
  --ink-mute: #4a4763;
  --ink-faint: #77738f;
  --line: #e6e4f0;
  --line-strong: #d6d2e8;

  --indigo: #2E1F6B;
  --indigo-deep: #221650;
  --indigo-soft: #efedf9;
  --night: #120e2e;

  --gold: #F0B429;
  --gold-deep: #c9920f;
  --gold-soft: #fff6e2;

  --danger: #c0392b;
  --danger-soft: #fdf2f1;
  --good: #1FA15B;

  --radius: 14px;
  --radius-sm: 9px;
  --shadow-sm: 0 1px 2px rgba(23, 21, 40, .05);
  --shadow: 0 6px 24px -6px rgba(23, 21, 40, .14);
  --font-sans: 'Source Sans 3', ui-sans-serif, system-ui, 'Segoe UI', Arial, sans-serif;
  --font-serif: 'Lora', Georgia, 'Times New Roman', serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; } }

body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-sans); font-size:16.5px; line-height:1.65; -webkit-font-smoothing:antialiased; }

h1,h2,h3,h4 { font-family:var(--font-sans); line-height:1.14; color:var(--ink); margin:0; letter-spacing:-.01em; }
h1 { font-size:clamp(34px,4.4vw,54px); font-weight:800; }
h2 { font-size:clamp(26px,3.1vw,38px); font-weight:800; }
h3 { font-size:21px; font-weight:700; }
h4 { font-size:17px; font-weight:700; }
p { margin:0 0 1em; }
a { color:var(--indigo); text-decoration:none; }
a:hover { color:var(--indigo-deep); text-decoration:underline; }
img { max-width:100%; height:auto; display:block; }
ul,ol { padding-left:22px; }
li { margin:6px 0; }
strong { font-weight:700; }
:focus-visible { outline:2px solid var(--gold); outline-offset:2px; border-radius:4px; }

.wrap { width:min(1120px, calc(100% - 48px)); margin:0 auto; }
.narrow { width:min(760px, calc(100% - 48px)); margin:0 auto; }
section { scroll-margin-top:84px; }
.skip { position:absolute; left:-9999px; top:0; background:var(--indigo); color:#fff; padding:10px 16px; z-index:200; border-radius:0 0 8px 0; }
.skip:focus { left:0; }

/* ---------- topbar ---------- */
.site-topbar { background:var(--night); color:#cfc9ea; font-size:12.5px; letter-spacing:.02em; }
.site-topbar .wrap { display:flex; align-items:center; justify-content:space-between; height:34px; padding:0; gap:12px; }
.site-topbar a { color:#eae6fa; }
.site-topbar a:hover { color:#fff; }
.crisis-link { background:var(--danger); color:#fff !important; padding:0 12px; height:34px; display:inline-flex; align-items:center; border-radius:0 0 8px 8px; font-weight:700; white-space:nowrap; }
.crisis-link:hover { background:#a93226; text-decoration:none; }
.tb-left { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ---------- header ---------- */
.site-header { background:rgba(255,255,255,.93); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:60; }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; height:74px; gap:16px; }
.brand { display:flex; align-items:center; gap:11px; font-weight:800; font-size:19px; color:var(--ink); letter-spacing:-.01em; flex-shrink:0; }
.brand:hover { text-decoration:none; }
.brand svg { border-radius:11px; box-shadow:var(--shadow-sm); flex-shrink:0; }
.brand-txt { display:flex; flex-direction:column; line-height:1.08; }
.brand-txt em { font-style:normal; font-size:11px; font-weight:600; color:var(--ink-faint); letter-spacing:.04em; text-transform:uppercase; }
.nav-wrap { display:flex; align-items:center; gap:18px; }
.nav-links { display:flex; gap:22px; font-size:15px; font-weight:600; }
.nav-links a { color:var(--ink-mute); }
.nav-links a:hover, .nav-links a[aria-current] { color:var(--indigo); text-decoration:none; }
.nav-cta { display:inline-flex; align-items:center; gap:8px; background:var(--indigo); color:#fff !important; font-weight:700; padding:10px 18px; border-radius:10px; box-shadow:var(--shadow-sm); white-space:nowrap; font-size:15px; }
.nav-cta:hover { background:var(--indigo-deep); text-decoration:none; }
.nav-toggle { display:none; align-items:center; gap:8px; background:#fff; border:1.5px solid var(--line); border-radius:10px; padding:9px 15px; font-size:14.5px; font-weight:700; color:var(--ink); cursor:pointer; font-family:inherit; }
.nav-toggle:hover { border-color:var(--indigo); color:var(--indigo); }
.langs { display:flex; gap:4px; font-size:12px; font-weight:700; }
.langs a { color:var(--ink-faint); padding:3px 7px; border-radius:6px; text-transform:uppercase; letter-spacing:.04em; }
.langs a:hover { background:var(--soft2); text-decoration:none; color:var(--indigo); }
.langs a.on { background:var(--indigo); color:#fff; }

@media (max-width:940px) {
  .nav-toggle { display:inline-flex; }
  .nav-links { display:none; position:absolute; top:74px; left:0; right:0; background:#fff; border-bottom:1px solid var(--line); flex-direction:column; gap:0; padding:8px 24px 16px; box-shadow:var(--shadow); }
  .nav-links.open { display:flex; }
  .nav-links a { padding:12px 0; border-bottom:1px solid var(--line); font-size:16px; }
  .site-header .wrap { position:relative; }
  .nav-cta { padding:9px 13px; font-size:14px; }
}
@media (max-width:520px) {
  .site-topbar .tb-left { display:none; }
  .brand { font-size:17px; }
  .brand svg { width:34px; height:34px; }
}

/* ---------- hero carousel ---------- */
.hero-carousel { position:relative; width:100%; overflow:hidden; background:var(--night); }
.car-track { position:relative; }
.car-slide { display:none; position:relative; }
.car-slide.active { display:block; animation:fade .5s ease; }
@keyframes fade { from { opacity:.35 } to { opacity:1 } }
.car-slide img { width:100%; aspect-ratio:16/7.5; object-fit:cover; }
.car-slide::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(18,14,46,.88) 0%, rgba(18,14,46,.62) 48%, rgba(18,14,46,.18) 100%); }
.car-overlay { position:absolute; inset:0; z-index:2; display:flex; align-items:center; }
.car-inner { width:min(1120px, calc(100% - 48px)); margin:0 auto; max-width:none; color:#fff; }
.car-inner > * { max-width:640px; }
.car-inner .eyebrow { color:var(--gold); }
.car-inner h1, .car-inner h2 { color:#fff; margin-bottom:14px; text-shadow:0 2px 20px rgba(0,0,0,.35); }
.car-inner p { color:#ded9f2; font-size:17.5px; margin-bottom:20px; }
.car-nav { position:absolute; inset:0; z-index:3; pointer-events:none; display:flex; align-items:center; justify-content:space-between; padding:0 10px; }
.car-nav button { pointer-events:auto; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.32); background:rgba(18,14,46,.42); color:#fff; font-size:19px; cursor:pointer; display:grid; place-items:center; backdrop-filter:blur(4px); }
.car-nav button:hover { background:rgba(18,14,46,.75); }
.car-dots { position:absolute; bottom:14px; left:0; right:0; z-index:4; display:flex; gap:8px; justify-content:center; }
.car-dot { width:9px; height:9px; border-radius:50%; border:none; background:rgba(255,255,255,.42); cursor:pointer; padding:0; }
.car-dot[aria-current="true"] { background:var(--gold); width:24px; border-radius:5px; }
@media (max-width:760px) {
  .car-slide img { aspect-ratio:16/13; }
  .car-slide::after { background:linear-gradient(180deg, rgba(18,14,46,.5) 0%, rgba(18,14,46,.86) 60%); }
  .car-inner h1, .car-inner h2 { font-size:26px; }
  .car-inner p { font-size:15.5px; }
  .car-overlay { align-items:flex-end; padding-bottom:38px; }
  .car-nav button { width:36px; height:36px; }
}

/* ---------- hero (non-carousel pages) ---------- */
.hero { padding:64px 0 46px; background:linear-gradient(180deg, var(--soft) 0%, #fff 100%); border-bottom:1px solid var(--line); }
.hero h1 { margin-bottom:16px; }
.eyebrow { margin:0 0 13px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); }
.eyebrow.i { color:var(--indigo); }
.lead { font-size:18.5px; line-height:1.66; color:var(--ink-mute); max-width:62ch; }
.hero .lead { margin-bottom:0; }

/* ---------- buttons ---------- */
.btn-row { display:flex; gap:13px; flex-wrap:wrap; margin:26px 0 4px; }
.btn { display:inline-flex; align-items:center; gap:9px; padding:13px 24px; border-radius:11px; font-weight:700; font-size:15.5px; box-shadow:var(--shadow-sm); transition:transform .08s ease, box-shadow .15s ease; border:none; cursor:pointer; font-family:inherit; }
.btn:hover { text-decoration:none; transform:translateY(-1px); box-shadow:var(--shadow); }
.btn-primary { background:var(--indigo); color:#fff !important; }
.btn-primary:hover { background:var(--indigo-deep); }
.btn-gold { background:var(--gold); color:var(--night) !important; }
.btn-gold:hover { background:var(--gold-deep); color:#fff !important; }
.btn-outline { background:#fff; color:var(--ink) !important; border:1.5px solid var(--line-strong); }
.btn-outline:hover { border-color:var(--indigo); color:var(--indigo) !important; }
.btn-sm { padding:9px 16px; font-size:14px; }
.arr { transition:transform .15s ease; }
.btn:hover .arr { transform:translateX(3px); }

/* ---------- sections ---------- */
.section { padding:62px 0; }
.section.soft { background:var(--soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section.tight { padding:44px 0; }
.sec-head { max-width:680px; margin-bottom:32px; }
.sec-head.center { margin-left:auto; margin-right:auto; text-align:center; }
.sec-head h2 { margin-bottom:14px; }
.sec-head .lead { margin-bottom:0; }
.sec-head.center .lead { margin-left:auto; margin-right:auto; }

/* ---------- cards / grids ---------- */
.grid { display:grid; gap:20px; }
.grid.c2 { grid-template-columns:repeat(2,1fr); }
.grid.c3 { grid-template-columns:repeat(3,1fr); }
.grid.c4 { grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid.c3,.grid.c4 { grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .grid.c2,.grid.c3,.grid.c4 { grid-template-columns:1fr; } }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow-sm); }
.card h3 { margin-bottom:9px; }
.card p:last-child { margin-bottom:0; }
.card.accent { border-top:4px solid var(--indigo); }
.card.gold { background:var(--gold-soft); border-color:#f4e2b6; }
.card.soft { background:var(--soft); }
.card-link { display:block; color:inherit; transition:transform .1s ease, box-shadow .15s ease; }
.card-link:hover { text-decoration:none; transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--line-strong); }
.card-link .more { display:inline-flex; gap:6px; align-items:center; margin-top:12px; font-weight:700; color:var(--indigo); font-size:14.5px; }

/* ---------- photo feature (alternating splits) ---------- */
.photo-feature { padding:56px 0; }
.photo-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; }
.photo-feature-photo { overflow:hidden; border-radius:18px; box-shadow:var(--shadow); }
.photo-feature-photo img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.photo-feature h2 { margin-bottom:15px; }
.photo-feature.rev .photo-feature-photo { order:2; }
.photo-feature.indigo { background:linear-gradient(135deg,#f7f6fc,#fff); }
.photo-feature.gold { background:linear-gradient(135deg,#fffaf0,#fff); }
@media (max-width:840px){ .photo-feature-grid { grid-template-columns:1fr; gap:26px; } .photo-feature.rev .photo-feature-photo { order:0; } }

/* ---------- scripture ---------- */
.scripture { border-left:3px solid var(--gold); padding:6px 0 6px 20px; margin:26px 0; }
.scripture p { font-family:var(--font-serif); font-size:19px; font-style:italic; color:#2c2745; line-height:1.5; margin:0 0 6px; }
.scripture cite { font-style:normal; font-family:var(--font-sans); font-size:12.5px; font-weight:700; color:var(--indigo); letter-spacing:.05em; text-transform:uppercase; }
.verse-band { background:var(--indigo); color:#fff; padding:56px 0; text-align:center; }
.verse-band p { font-family:var(--font-serif); font-style:italic; font-size:clamp(20px,2.6vw,29px); line-height:1.45; color:#fff; max-width:24ch; margin:0 auto 14px; }
.verse-band cite { font-style:normal; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); }
.verse-band .eyebrow { color:var(--gold); }

/* ---------- callouts ---------- */
.caution { border-left:4px solid var(--danger); background:var(--danger-soft); padding:18px 22px; border-radius:0 12px 12px 0; margin:26px 0; }
.caution h3 { color:#8f2a1f; margin-bottom:8px; font-size:18px; }
.caution p:last-child { margin-bottom:0; }
.note { border-left:4px solid var(--gold); background:var(--gold-soft); padding:16px 20px; border-radius:0 12px 12px 0; margin:22px 0; font-size:15px; color:#5c4a12; }
.note p:last-child { margin-bottom:0; }
.prayer-box { background:var(--indigo-soft); border:1px solid #ddd8f3; border-radius:var(--radius); padding:26px 28px; margin:28px 0; }
.prayer-box .eyebrow { color:var(--indigo); }
.prayer-box p { font-family:var(--font-serif); font-size:17.5px; line-height:1.66; color:#2c2745; margin:0; white-space:pre-line; }

/* ---------- breadcrumbs / prose ---------- */
.crumbs { font-size:13.5px; color:var(--ink-faint); padding:16px 0 0; }
.crumbs a { color:var(--ink-faint); }
.crumbs a:hover { color:var(--indigo); }
.prose h2 { margin:38px 0 14px; }
.prose h3 { margin:28px 0 10px; }
.prose p { max-width:68ch; }
.prose ul, .prose ol { max-width:66ch; }
.prose > *:first-child { margin-top:0; }

/* ---------- ten fronts ---------- */
.front-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; }
.front-card { background:#fff; border:1px solid var(--line); border-top:4px solid var(--indigo); border-radius:var(--radius); padding:20px 22px; box-shadow:var(--shadow-sm); color:inherit; display:block; transition:transform .1s ease, box-shadow .15s ease; }
.front-card:hover { text-decoration:none; transform:translateY(-2px); box-shadow:var(--shadow); }
.front-num { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:8px; background:var(--indigo-soft); color:var(--indigo); font-weight:800; font-size:14px; margin-bottom:10px; }
.front-card h3 { font-size:19px; margin-bottom:6px; }
.front-card p { font-size:14.5px; color:var(--ink-mute); margin:0; }
.front-block { border-top:1px solid var(--line); padding:44px 0; }
.front-block:first-of-type { border-top:none; }
.front-head { display:flex; align-items:center; gap:14px; margin-bottom:6px; }
.front-head .front-num { margin:0; width:36px; height:36px; font-size:16px; }
.front-body { white-space:pre-line; max-width:68ch; }
.front-verses { display:grid; gap:10px; margin:22px 0; }
.front-verses li { list-style:none; border-left:3px solid var(--gold); padding-left:16px; }
.front-verses cite { display:block; font-style:normal; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--indigo); margin-bottom:3px; }
.front-verses span { font-family:var(--font-serif); font-style:italic; color:#2c2745; }
.front-q { background:var(--soft); border-radius:var(--radius); padding:20px 24px; margin:22px 0; }
.front-q p { margin:0; font-weight:600; }

/* ---------- family bar ---------- */
.cba-family-bar { display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px; padding:16px 24px; background:var(--night); border-top:1px solid rgba(255,255,255,.08); font-size:13.5px; justify-content:center; }
.cba-family-bar a { color:#cfc9ea; display:inline-flex; align-items:center; gap:7px; }
.cba-family-bar a:hover { color:#fff; text-decoration:none; }
.cba-family-eyebrow { color:#8a83ad; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-right:6px; }
.dot { width:8px; height:8px; border-radius:50%; background:var(--c); display:inline-block; flex-shrink:0; }

/* ---------- footer ---------- */
.site-footer { background:var(--indigo-deep); color:#c9c3e4; font-size:14.5px; }
.foot-crisis { background:var(--danger); color:#fff; padding:12px 0; font-size:14px; }
.foot-crisis .wrap { display:flex; gap:10px 18px; flex-wrap:wrap; align-items:center; }
.foot-crisis .lbl { font-weight:800; }
.foot-crisis a { color:#fff; text-decoration:underline; }
.footer-inner { width:min(1120px, calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; gap:36px; padding:52px 0 40px; }
.footer-inner h2 { color:#fff; font-size:22px; margin-bottom:12px; }
.footer-inner h3 { color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; }
.footer-inner .lede { color:#a8a1cd; font-size:14.5px; line-height:1.6; }
.footer-list { list-style:none; padding:0; margin:0; }
.footer-list li { margin:8px 0; }
.footer-list a { color:#c9c3e4; }
.footer-list a:hover { color:#fff; }
.cba-colophon { display:inline-flex; align-items:center; gap:9px; margin-top:16px; color:#c9c3e4; font-size:13.5px; }
.cba-colophon:hover { color:#fff; text-decoration:none; }
.cba-colophon strong { color:#fff; }
.section-inner { width:min(1120px, calc(100% - 48px)); margin:0 auto; padding:16px 0; border-top:1px solid rgba(255,255,255,.1); font-size:12.5px; line-height:1.65; color:#9a93c0; }
.family-legal a { color:#c9c3e4; }
.legal-line { display:flex; gap:8px 20px; flex-wrap:wrap; justify-content:space-between; }
.legal-line span { max-width:88ch; }
.legal-links a { color:#c9c3e4; }
.legal-links a:hover { color:#fff; }
@media (max-width:1000px){ .footer-inner { grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:660px){ .footer-inner { grid-template-columns:1fr 1fr; gap:26px; padding:38px 0 28px; } }

/* ---------- quiz ---------- */
.quiz-modal { position:fixed; inset:0; background:rgba(18,14,46,.86); z-index:300; display:none; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(4px); }
.quiz-modal.open { display:flex; }
.quiz-panel { background:#fff; border-radius:18px; max-width:620px; width:100%; padding:32px; box-shadow:var(--shadow); max-height:90vh; overflow-y:auto; }
.quiz-prog { font-size:13px; color:var(--ink-faint); font-weight:700; letter-spacing:.05em; text-transform:uppercase; margin-bottom:8px; }
.quiz-progbar { height:5px; background:var(--soft2); border-radius:3px; overflow:hidden; margin-bottom:22px; }
.quiz-progbar i { display:block; height:100%; background:var(--gold); transition:width .25s ease; }
.quiz-q { font-size:21px; font-weight:700; line-height:1.3; margin-bottom:22px; }
.quiz-opt { display:block; width:100%; text-align:left; background:#fff; border:1.5px solid var(--line); border-radius:11px; padding:13px 18px; margin-bottom:9px; font-size:15.5px; font-family:inherit; cursor:pointer; color:var(--ink); transition:all .1s ease; }
.quiz-opt:hover { border-color:var(--indigo); background:var(--soft); }
.quiz-bar { margin-bottom:14px; }
.quiz-bar .lbl { display:flex; justify-content:space-between; font-size:14px; font-weight:700; margin-bottom:5px; }
.quiz-bar .track { height:9px; background:var(--soft2); border-radius:5px; overflow:hidden; }
.quiz-bar .track i { display:block; height:100%; background:var(--indigo); border-radius:5px; }
.quiz-bar.top .track i { background:var(--gold); }
.quiz-bar.top .lbl { color:var(--indigo); }

/* ---------- prayer cards ---------- */
.card-builder { background:var(--soft); border:1px solid var(--line); border-radius:var(--radius); padding:26px; }
.field { margin-bottom:16px; }
.field label { display:block; font-weight:700; font-size:14.5px; margin-bottom:6px; }
.field input, .field select, .field textarea { width:100%; padding:12px 14px; border:1.5px solid var(--line-strong); border-radius:10px; font-family:inherit; font-size:15.5px; background:#fff; color:var(--ink); }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--indigo); outline:none; }
.field textarea { min-height:88px; resize:vertical; }
.pcard-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; margin-top:26px; }
.pcard { background:#fff; border:1px solid var(--line); border-left:5px solid var(--gold); border-radius:10px; padding:20px; box-shadow:var(--shadow-sm); position:relative; }
.pcard-front { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--indigo); }
.pcard-name { font-size:24px; font-weight:800; margin:4px 0 10px; font-family:var(--font-serif); }
.pcard-verse { font-family:var(--font-serif); font-style:italic; font-size:14.5px; color:#3a3559; margin-bottom:8px; }
.pcard-ref { font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--indigo); }
.pcard-words { margin-top:12px; padding-top:12px; border-top:1px dashed var(--line-strong); font-size:14.5px; white-space:pre-line; }
.pcard-date { margin-top:12px; font-size:11.5px; color:var(--ink-faint); }
.pcard-x { position:absolute; top:10px; right:10px; background:none; border:none; color:var(--ink-faint); cursor:pointer; font-size:15px; padding:4px 7px; border-radius:6px; }
.pcard-x:hover { background:var(--danger-soft); color:var(--danger); }

/* ---------- 31 days ---------- */
.day-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(74px,1fr)); gap:9px; }
.day-cell { aspect-ratio:1; border:1.5px solid var(--line-strong); border-radius:11px; background:#fff; font-weight:800; font-size:17px; cursor:pointer; font-family:inherit; color:var(--ink); display:grid; place-items:center; transition:all .1s ease; }
.day-cell:hover { border-color:var(--indigo); transform:translateY(-1px); }
.day-cell.done { background:var(--indigo); color:#fff; border-color:var(--indigo); }
.day-cell.done::after { content:'✓'; position:absolute; }
.day-cell.today { border-color:var(--gold); border-width:2.5px; }
.streak { display:inline-flex; align-items:baseline; gap:8px; background:var(--gold-soft); border:1px solid #f4e2b6; border-radius:999px; padding:8px 18px; font-weight:700; color:#5c4a12; }
.streak b { font-size:24px; }
.day-panel { background:var(--soft); border:1px solid var(--line); border-radius:var(--radius); padding:26px; margin-top:22px; }
.day-panel .eyebrow { color:var(--indigo); }

/* ---------- timer ---------- */
.timer { background:var(--indigo); color:#fff; border-radius:18px; padding:34px; text-align:center; }
.timer h3 { color:#fff; font-size:26px; margin-bottom:8px; }
.timer p { color:#ded9f2; max-width:46ch; margin:0 auto 18px; }
.timer-dial { font-size:52px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--gold); line-height:1; margin:12px 0; }
.timer-step { font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.timer .btn-row { justify-content:center; }
.timer select { padding:11px 14px; border-radius:10px; border:none; font-family:inherit; font-size:15px; }

/* ---------- room picker ---------- */
.room-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px; }
.room-tab { background:#fff; border:1.5px solid var(--line-strong); border-radius:999px; padding:9px 20px; font-weight:700; font-size:14.5px; cursor:pointer; font-family:inherit; color:var(--ink-mute); }
.room-tab:hover { border-color:var(--indigo); color:var(--indigo); }
.room-tab.on { background:var(--indigo); color:#fff; border-color:var(--indigo); }
.room-panel { display:none; }
.room-panel.on { display:block; }
.tier { display:inline-block; background:var(--gold-soft); border:1px solid #f4e2b6; color:#5c4a12; font-size:12px; font-weight:800; padding:3px 11px; border-radius:999px; letter-spacing:.04em; text-transform:uppercase; }

/* ---------- misc ---------- */
.doors { display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.door { background:#fff; border:1px solid var(--line); border-left:5px solid var(--indigo); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow-sm); }
.door h3 { font-size:20px; margin-bottom:10px; }
.door p { color:var(--ink-mute); font-size:15px; }
.story { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.story .tag { display:inline-block; background:var(--indigo-soft); color:var(--indigo); font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:3px 11px; border-radius:999px; margin-bottom:12px; }
.story p { font-family:var(--font-serif); font-style:italic; color:#2c2745; margin:0; }
.embed-box { background:var(--night); color:#c9c3e4; border-radius:12px; padding:18px 20px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; overflow-x:auto; white-space:pre; }
.steps { counter-reset:s; list-style:none; padding:0; }
.steps li { counter-increment:s; position:relative; padding-left:42px; margin:14px 0; }
.steps li::before { content:counter(s); position:absolute; left:0; top:0; width:28px; height:28px; border-radius:8px; background:var(--indigo); color:#fff; display:grid; place-items:center; font-weight:800; font-size:14px; }
.sitemap-list { list-style:none; padding:0; }
.sitemap-list li { padding:9px 0; border-bottom:1px solid var(--line); }
.small { font-size:14px; color:var(--ink-faint); }
.center { text-align:center; }
.mt0 { margin-top:0 } .mb0 { margin-bottom:0 }

/* ---------- print ---------- */
@media print {
  .site-topbar, .site-header, .cba-family-bar, .site-footer, .car-nav, .car-dots,
  .btn, .btn-row, .nav-toggle, .quiz-modal, .pcard-x, .no-print, .hero-carousel { display:none !important; }
  body { font-size:11pt; color:#000; background:#fff; }
  a { color:#000; text-decoration:none; }
  .wrap, .narrow { width:100%; }
  .section { padding:12pt 0; }
  .pcard-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
  .pcard { break-inside:avoid; width:4in; height:6in; border:1px solid #999; border-left:3px solid #b8860b; border-radius:0; margin:0; padding:0.4in; box-shadow:none; }
  .day-panel, .card, .front-block { break-inside:avoid; border:1px solid #ccc; box-shadow:none; }
  .verse-band { background:#fff; color:#000; border:1px solid #ccc; }
  .verse-band p, .verse-band cite { color:#000; }
  .prayer-box { background:#fff; border:1px solid #ccc; }
  @page { margin:0.5in; }
}
