:root{
  --paper:#F2F0EA; --card:#FBFAF6; --ink:#202B33; --ink-soft:#4A555D;
  --bronze:#94722F; --bronze-deep:#6F5420; --pine:#31493D; --line:#D8D3C6;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--ink);font-family:'Source Serif 4',Georgia,serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;}
.page{max-width:920px;margin:0 auto;padding:0 28px 72px;}
a{color:var(--bronze-deep);}
.masthead{padding:26px 0 18px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);}
.masthead .book{font-weight:600;color:var(--ink);text-decoration:none;}
.masthead .meta a{color:var(--ink-soft);text-decoration:none;}
.masthead .meta a:hover{color:var(--bronze-deep);}
.site-foot{margin-top:72px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.site-foot a{color:var(--ink-soft);}
.site-foot a:hover{color:var(--bronze-deep);}
.opener{padding:52px 0 36px;}
.week-stamp{display:inline-flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze-deep);border:1.5px solid var(--bronze);border-radius:3px;padding:6px 12px;margin-bottom:20px;transform:rotate(-1.2deg);background:rgba(154,99,24,.05);}
.week-stamp::before{content:"";width:7px;height:7px;background:var(--bronze);border-radius:1px;transform:rotate(45deg);}
h1.principle{font-family:'Zilla Slab',serif;font-weight:700;font-size:clamp(40px,8vw,64px);line-height:1.02;letter-spacing:-.01em;}
.principle-sub{margin-top:14px;font-size:19px;color:var(--ink-soft);}
.anchor-verse{margin-top:30px;padding:22px 26px;border-left:3px solid var(--bronze);background:var(--card);font-size:19px;font-style:italic;}
.anchor-verse .ref{display:block;margin-top:10px;font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze-deep);}
.print-link{margin-top:18px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.06em;}
section{margin-top:48px;}
.sec-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
h2{font-family:'Zilla Slab',serif;font-weight:600;font-size:26px;line-height:1.15;}
h3{font-family:'Zilla Slab',serif;font-weight:600;font-size:19px;margin:18px 0 6px;}
.role{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:4px 10px;border-radius:2px;white-space:nowrap;color:var(--paper);}
.role.together{background:var(--ink);}
.role.parent{background:var(--pine);}
.role.kid{background:var(--bronze);}
.sec-rule{flex:1;height:1px;background:var(--line);min-width:40px;}
.sec-body p{margin-bottom:1.05em;}
.sec-body ul,.sec-body ol{margin:0 0 1.05em 1.4em;}
.sec-body li{padding:4px 0;}
.bigidea .sec-body{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 26px;}
.bigidea .sec-body ul{list-style:none;margin:0;max-width:none;}
.bigidea .sec-body li{padding:10px 0 10px 30px;position:relative;border-bottom:1px dashed var(--line);}
.bigidea .sec-body li:last-child{border-bottom:none;}
.bigidea .sec-body li::before{content:"";position:absolute;left:4px;top:19px;width:10px;height:10px;border:2px solid var(--bronze);border-radius:1px;transform:rotate(45deg);}
.story .sec-body > p:first-of-type::first-letter{font-family:'Zilla Slab',serif;font-weight:700;font-size:3.2em;float:left;line-height:.85;padding-right:10px;color:var(--bronze-deep);}
.verses .sec-body ul{list-style:none;margin:0;display:grid;gap:12px;max-width:none;}
.verses .sec-body li{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px 20px;font-size:16.5px;}
.words .sec-body p{padding:14px 0;border-bottom:1px solid var(--line);margin:0;max-width:none;}
.words .sec-body p:last-child{border-bottom:none;}
.words .sec-body strong{font-family:'Zilla Slab',serif;font-weight:600;font-size:18px;}
.talk .sec-body ol{list-style:none;counter-reset:q;margin:0;max-width:none;}
.talk .sec-body ol > li{counter-increment:q;position:relative;padding:13px 0 13px 52px;border-bottom:1px dashed var(--line);}
.talk .sec-body ol > li:last-child{border-bottom:none;}
.talk .sec-body ol > li::before{content:counter(q,decimal-leading-zero);position:absolute;left:0;top:15px;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;color:var(--pine);border-bottom:2px solid var(--pine);padding-bottom:2px;}
.challenge{background:var(--ink);border-radius:8px;padding:30px 30px 26px;position:relative;overflow:hidden;}
.challenge::after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border:2px solid rgba(154,99,24,.4);transform:rotate(45deg);border-radius:8px;pointer-events:none;}
.challenge,.challenge .sec-body p,.challenge .sec-body li{color:#EDE9DF;}
.challenge h2{color:#F6F3EA;}
.challenge h3{color:#E8C687;}
.challenge .sec-rule{background:rgba(237,233,223,.25);}
.challenge .sec-body strong{color:#F6F3EA;}
.challenge .sec-body ul,.challenge .sec-body ol{margin-left:1.3em;}
.prayer .sec-body{border-left:3px solid var(--pine);background:rgba(49,73,61,.06);padding:20px 24px;border-radius:0 6px 6px 0;}
.chapter-foot{margin-top:60px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
.chapter-foot a{color:var(--ink-soft);text-decoration:none;}
.chapter-foot a:hover{color:var(--bronze-deep);}
.chapter-foot .next{color:var(--bronze-deep);font-weight:600;}
.volume-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:26px 28px;text-decoration:none;color:var(--ink);transition:border-color .15s ease, transform .15s ease;}
.volume-card:hover{border-color:var(--bronze);transform:translateY(-2px);}
.vc-kicker{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-deep);margin-bottom:8px;}
.vc-title{display:block;font-family:'Zilla Slab',serif;font-weight:700;font-size:30px;line-height:1.1;margin-bottom:10px;}
.vc-desc{display:block;color:var(--ink-soft);margin-bottom:14px;}
.vc-cta{font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--bronze-deep);}
.chapter-grid{display:grid;gap:12px;}
.chapter-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:18px 22px;text-decoration:none;color:var(--ink);transition:border-color .15s ease;}
.chapter-card:hover{border-color:var(--bronze);}
.cc-stamp{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-deep);margin-bottom:4px;}
.cc-title{display:block;font-family:'Zilla Slab',serif;font-weight:600;font-size:21px;margin-bottom:2px;}
.cc-verse{display:block;font-size:14.5px;color:var(--ink-soft);font-style:italic;margin-bottom:6px;}
.cc-pdf{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
.cc-pdf .u{text-decoration:underline;}
@media (max-width:540px){
  body{font-size:16px;}
  .opener{padding:38px 0 26px;}
  .challenge{padding:24px 20px;}
  .talk .sec-body ol > li{padding-left:44px;}
}
@media (prefers-reduced-motion:no-preference){
  .opener{animation:rise .5s ease both;}
  @keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
}
.ages{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line);border-radius:2px;padding:3px 8px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.home-opener{text-align:center;}
.hero-logo{display:block;width:min(560px,92%);height:auto;margin:0 auto 26px;border-radius:8px;border:1px solid var(--line);}
.home-opener .principle-sub{margin-left:auto;margin-right:auto;}

/* ---- responsive refinements ---- */
@media (min-width:1100px){
  body{font-size:18px;}
  .anchor-verse{font-size:20px;}
}
/* tablet */
@media (max-width:900px){
  .page{padding:0 22px 64px;}
}
/* small screens: masthead + footers wrap cleanly */
@media (max-width:720px){
  .masthead{flex-wrap:wrap;row-gap:4px;}
  .site-foot{flex-direction:column;gap:8px;}
  .chapter-foot{flex-wrap:wrap;row-gap:8px;}
  .sec-head{row-gap:8px;}
  .hero-logo{width:100%;}
}
.foot-note{flex-basis:100%;font-size:10px;letter-spacing:.08em;color:var(--ink-soft);opacity:.75;margin-top:2px;}
.foot-note a{color:var(--ink-soft);}
.foot-note a:hover{color:var(--bronze-deep);}
