:root{
  --navy:#0E2A47;--navy-deep:#091D33;--emerald:#1B8A5A;--emerald-bright:#26A26B;
  --ivory:#F7F5EF;--white:#FFFFFF;--ink:#16273C;--muted:#5F7183;--line:#E4E7EC;--gold:#C9A24B;
  --display:'Lora',Georgia,serif;--body:'Poppins',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.narrow{max-width:44rem;margin:0 auto}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--body);font-weight:500;font-size:1.02rem;padding:.95rem 1.7rem;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease}
.btn-primary{background:var(--emerald);color:#fff}
.btn-primary:hover{background:var(--emerald-bright);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:#fff;transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-deep);transform:translateY(-2px)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-outline:hover{border-color:var(--navy);transform:translateY(-2px)}

/* Header / nav */
header.site{position:absolute;top:0;left:0;right:0;z-index:20}
header.site.solid{position:sticky;background:var(--navy-deep)}
header.site .bar{display:flex;align-items:center;justify-content:space-between;padding-top:20px;padding-bottom:20px}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff}
.brand .mark{width:34px;height:34px;border-radius:50%;border:2px solid var(--emerald-bright);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;color:#fff;background:rgba(38,162,107,.18)}
.brand b{font-family:var(--display);font-weight:600;font-size:1.06rem;letter-spacing:.2px}
nav.main{display:flex;gap:1.3rem;align-items:center}
nav.main a{color:rgba(255,255,255,.82);font-size:.94rem;font-weight:300}
nav.main a:hover,nav.main a.active{color:#fff}
nav.main a.active{border-bottom:2px solid var(--emerald-bright);padding-bottom:2px}
nav.main .btn{padding:.55rem 1.05rem;font-size:.9rem;color:#fff}
.navtoggle{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:6px}
.navtoggle svg{display:block}
@media(max-width:960px){
  nav.main{position:fixed;inset:0 0 0 auto;width:min(78vw,320px);background:var(--navy-deep);flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.4rem;padding:90px 26px 26px;transform:translateX(100%);transition:transform .25s ease;box-shadow:-20px 0 60px rgba(0,0,0,.4)}
  nav.main.open{transform:none}
  nav.main a{padding:10px 0;font-size:1.05rem;width:100%}
  nav.main .btn{margin-top:10px}
  .navtoggle{display:block;z-index:30}
}

/* Generic page top */
.ptop{background:radial-gradient(120% 120% at 80% 0%,#12365C 0%,var(--navy) 45%,var(--navy-deep) 100%);color:#fff;padding:150px 0 78px;text-align:center}
.ptop .eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--emerald-bright);font-weight:500;margin-bottom:20px}
.ptop .eyebrow::before,.ptop .eyebrow::after{content:"";width:26px;height:1px;background:var(--emerald-bright)}
.ptop h1{font-family:var(--display);font-weight:600;font-size:clamp(2.2rem,4.6vw,3.2rem);line-height:1.12;letter-spacing:-.4px;max-width:22ch;margin:0 auto 20px}
.ptop h1 em{font-style:italic;color:#EBD9A6}
.ptop p{font-size:1.12rem;font-weight:300;color:rgba(255,255,255,.85);max-width:40rem;margin:0 auto}

section{padding:82px 0}
.center{text-align:center}
.kicker{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--emerald);font-weight:600;margin-bottom:14px}
h2.sec{font-family:var(--display);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.4rem);line-height:1.15;letter-spacing:-.3px;color:var(--navy)}
.lead{font-size:1.1rem;font-weight:300;color:var(--muted);margin-top:14px}
.ivory{background:var(--ivory)}

/* Buttons row */
.row{display:flex;gap:14px;flex-wrap:wrap}
.row.center{justify-content:center}

/* Cards grid */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
@media(max-width:820px){.cards{grid-template-columns:1fr;max-width:26rem;margin-left:auto;margin-right:auto}}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px 28px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(14,42,71,.4);border-color:#D3DBE2}
.card .ic{width:50px;height:50px;border-radius:12px;background:rgba(27,138,90,.1);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.card h3{font-family:var(--display);font-weight:600;font-size:1.22rem;color:var(--navy);margin-bottom:10px;line-height:1.25}
.card p{color:var(--muted);font-weight:300;font-size:.99rem}

/* Books */
.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:820px){.book-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.book-grid{grid-template-columns:1fr;max-width:22rem;margin:0 auto}}
.book-grid.pairs{grid-template-columns:repeat(2,1fr);max-width:calc((100% - 48px)*2/3 + 24px);margin-left:auto;margin-right:auto}
@media(max-width:820px){.book-grid.pairs{max-width:none}}
@media(max-width:520px){.book-grid.pairs{grid-template-columns:1fr;max-width:22rem}}
.book{border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}
.book:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(14,42,71,.35)}
.book .cover{aspect-ratio:3/4;background:linear-gradient(150deg,var(--navy),#16406b);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;color:#fff}
.book .cover-img{aspect-ratio:3/4;background:var(--ivory);display:flex;align-items:center;justify-content:center;overflow:hidden}
.book .cover-img img{width:100%;height:100%;object-fit:contain}
.book .badge-soon{position:absolute;top:12px;left:12px;background:var(--gold);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
.book{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}
.book .cover.emerald{background:linear-gradient(150deg,#12613f,#1B8A5A)}
.book .cover .series{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--emerald-bright);margin-bottom:12px}
.book .cover.emerald .series{color:#EBD9A6}
.book .cover .bt{font-family:var(--display);font-weight:600;font-size:1.18rem;line-height:1.22}
.book .cover .bt small{display:block;font-family:var(--body);font-weight:300;font-size:.8rem;color:rgba(255,255,255,.72);margin-top:8px}
.book .meta{padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.book .meta .kind{font-size:.82rem;color:var(--muted);font-weight:300}
.book .meta .links{display:flex;gap:14px}
.book .meta a{font-size:.88rem;font-weight:500;color:var(--emerald)}
.book .meta a:hover{text-decoration:underline}
.note{text-align:center;margin-top:40px;color:var(--muted);font-weight:300}
.note b{color:var(--navy);font-weight:500}

/* Split */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:32px}}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.fact{background:#fff;padding:24px 22px}
.fact .big{font-family:var(--display);font-weight:600;font-size:1.9rem;color:var(--emerald);line-height:1}
.fact .lbl{font-size:.9rem;color:var(--muted);font-weight:300;margin-top:8px}
.on-navy .facts{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.12)}
.on-navy .fact{background:var(--navy)}
.on-navy .fact .big{color:#EBD9A6}
.on-navy .fact .lbl{color:rgba(255,255,255,.72)}

/* Prose / article */
.article{padding:64px 0}
.article h2{font-family:var(--display);font-weight:600;color:var(--navy);font-size:1.5rem;margin:34px 0 12px;line-height:1.3}
.article p{font-weight:300;color:#31465A;font-size:1.08rem;margin-bottom:18px}
.article p.first{font-size:1.2rem;color:#2A3D50}
.article .byline{color:var(--muted);font-weight:300;font-size:.95rem;margin-bottom:6px}
.article blockquote{border-left:3px solid var(--emerald);padding-left:20px;margin:24px 0;font-family:var(--display);font-style:italic;color:var(--navy);font-size:1.15rem}

/* Blog list */
.post{display:grid;grid-template-columns:180px 1fr;gap:26px;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:24px;transition:transform .2s ease,box-shadow .2s ease}
.post:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(14,42,71,.4)}
@media(max-width:640px){.post{grid-template-columns:1fr}}
.post .tag{background:linear-gradient(150deg,var(--navy),#16406b);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:2.4rem;padding:26px}
.post .body{padding:26px 28px}
.post .date{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--emerald);font-weight:500;margin-bottom:8px}
.post h3{font-family:var(--display);font-weight:600;color:var(--navy);font-size:1.35rem;line-height:1.25;margin-bottom:10px}
.post p{color:var(--muted);font-weight:300;margin-bottom:14px}
.post a.read{font-weight:500;color:var(--emerald)}

/* Kids */
.age-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px}
@media(max-width:760px){.age-grid{grid-template-columns:1fr;max-width:26rem;margin:48px auto 0}}
.age{border:1px solid var(--line);border-radius:16px;padding:30px 28px;background:#fff;transition:transform .2s ease,box-shadow .2s ease}
.age:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(14,42,71,.35)}
.age .band{display:inline-block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#fff;background:var(--emerald);border-radius:999px;padding:5px 14px;margin-bottom:16px}
.age h3{font-family:var(--display);font-weight:600;color:var(--navy);font-size:1.4rem;margin-bottom:8px}
.age p{color:var(--muted);font-weight:300;margin-bottom:16px}
.age .soon{display:inline-flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:500;color:var(--gold);border:1px dashed #D9C79B;border-radius:8px;padding:8px 14px}

/* Give */
.give-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 30px}
.tier{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-top:1px solid var(--line)}
.tier:first-of-type{border-top:none}
.tier .t{font-weight:500;color:var(--navy)}
.tier .d{color:var(--muted);font-weight:300;font-size:.94rem}

/* Invite band */
.invite{background:radial-gradient(120% 140% at 15% 0%,var(--emerald) 0%,#127149 100%);color:#fff;text-align:center}
.invite h2{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,3.8vw,2.5rem);margin-bottom:16px}
.invite p{color:rgba(255,255,255,.9);font-weight:300;font-size:1.1rem;max-width:34rem;margin:0 auto 26px}
.invite .btn-primary{background:#fff;color:var(--emerald)}
.invite .btn-primary:hover{background:#EBD9A6;color:var(--navy)}
.contactline{margin-top:22px;font-size:1rem;color:rgba(255,255,255,.9);font-weight:300}
.contactline b{font-weight:500;color:#fff}

/* Footer */
footer.site{background:var(--navy-deep);color:rgba(255,255,255,.6);padding:44px 0;font-size:.9rem;font-weight:300}
footer.site .cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:26px}
footer.site .fnav{display:flex;gap:18px;flex-wrap:wrap}
footer.site .fnav a:hover{color:#fff}
footer.site .legal{font-size:.8rem;color:rgba(255,255,255,.42);margin-top:14px;width:100%}

.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* Hero floating questions */
.hero-q{position:absolute;font-family:var(--display);font-style:italic;color:rgba(255,255,255,.17);white-space:nowrap;font-size:1.4rem;pointer-events:none;letter-spacing:.2px}
@media(max-width:820px){.hero-q{display:none}}
@media(prefers-reduced-motion:reduce){.hero-q{display:none}}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr!important;gap:32px!important}}
@media(max-width:600px){.hero{padding:120px 0 56px!important}}

/* Who's behind this / team */
.team{background:var(--ivory)}
.people{display:flex;justify-content:center;gap:52px;flex-wrap:wrap;margin-top:42px}
.person{display:flex;flex-direction:column;align-items:center;max-width:17rem;text-align:center}
.person img{width:158px;height:158px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 14px 34px -14px rgba(14,42,71,.45)}
.person .pname{font-family:var(--display);font-weight:600;color:var(--navy);font-size:1.22rem;margin-top:16px}
.person .prole{color:var(--emerald);font-weight:500;font-size:.9rem;margin-top:3px}
.person .pbio{color:var(--muted);font-weight:300;font-size:.95rem;margin-top:9px;line-height:1.5}

/* bio portraits */
.bio-photo{display:block;width:100%;max-width:300px;border-radius:16px;box-shadow:0 18px 40px -20px rgba(14,42,71,.5);margin-bottom:22px}

/* social links (full brand color) */
footer.site .social{display:flex;flex-wrap:wrap;gap:12px;width:100%;margin-top:26px}
footer.site .social a{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;transition:transform .18s ease,box-shadow .18s ease}
footer.site .social a svg{width:22px;height:22px}
footer.site .social a:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.35)}
.social-lg{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:22px -40px 0}
@media(max-width:700px){.social-lg{margin:22px 0 0}}
.social-lg a{display:inline-flex;align-items:center;gap:.6rem;padding:.65rem 1.15rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:500;font-size:.95rem;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.social-lg a svg{width:22px;height:22px}
.social-lg a:hover{transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(14,42,71,.45);border-color:#C9D1DA}
.social a:focus-visible,.social-lg a:focus-visible{outline:2px solid var(--emerald-bright);outline-offset:3px}
.s-youtube svg{color:#FF0000}
.s-facebook svg{color:#0866FF}
.s-tiktok svg,.s-x svg{color:#000}
/* forms */
.req-form{display:grid;gap:14px;text-align:left}
.req-form .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.req-form .two{grid-template-columns:1fr}}
.req-form label{display:grid;gap:6px;font-size:.88rem;font-weight:500;color:var(--navy)}
.req-form label small{font-weight:300;color:var(--muted)}
.req-form input,.req-form select,.req-form textarea{font:inherit;font-size:1rem;font-weight:300;color:var(--ink);background:#fff;border:1px solid #CBD2DA;border-radius:6px;padding:.7rem .8rem;width:100%}
.req-form textarea{min-height:110px;resize:vertical}
.req-form input:focus,.req-form select:focus,.req-form textarea:focus{outline:2px solid var(--emerald);outline-offset:1px;border-color:var(--emerald)}
.req-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.know-list{list-style:none;display:grid;gap:12px;margin-top:22px}
.know-list li{display:flex;gap:12px;color:#33475C;font-weight:300}
.know-list b{color:var(--navy);font-weight:500}

/* article lists */
.article .art-list{list-style:none;margin:6px 0 22px;display:grid;gap:12px}
.article .art-list li{position:relative;padding-left:22px;font-weight:300;color:#31465A;font-size:1.08rem}
.article .art-list li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--emerald)}
.article .art-list b{color:var(--navy);font-weight:500}
.article h3.art-sub{font-family:var(--display);font-weight:600;color:var(--navy);font-size:1.18rem;margin:26px 0 10px}
.article blockquote .ref{font-family:var(--body);font-style:normal;font-size:.9rem;color:var(--muted);white-space:nowrap}
.article .copyright-note{font-size:.8rem;color:var(--muted);margin-top:34px;border-top:1px solid var(--line);padding-top:16px}

/* Sharpening Stone trio */
#sharpening-stone .ss-head{text-align:center;margin-bottom:26px}
#sharpening-stone .ss-badge{display:inline-block;background:var(--gold);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:999px;margin-bottom:14px}
#sharpening-stone .ss-head .kicker{margin-bottom:6px}
.ss-title{font-family:var(--display);font-weight:600;color:var(--navy);font-size:clamp(1.5rem,2.6vw,1.9rem);line-height:1.15}
.ss-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:460px;margin:0 auto}
.ss-trio figure{margin:0;text-align:center}
.ss-trio img{width:100%;border-radius:8px;box-shadow:0 20px 45px -26px rgba(14,42,71,.6);display:block}
.ss-trio figcaption{margin-top:10px;font-size:.86rem;font-weight:500;color:var(--navy)}
@media(max-width:560px){.ss-trio{gap:10px}.ss-trio figcaption{font-size:.72rem}}
.ss-text{max-width:620px;margin:26px auto 0}
.ss-fan{display:flex;flex:0 0 auto}
.ss-fan img{width:78px;border-radius:7px;box-shadow:0 14px 30px -12px rgba(0,0,0,.75);display:block}
.ss-fan img+img{margin-left:-26px}
.ss-fan img:nth-child(2){transform:translateY(-8px);position:relative;z-index:1}

/* audible callout */
.audible-callout{max-width:calc((100% - 48px)*2/3 + 24px);margin:34px auto 0;display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between;background:var(--ivory);border:1px solid var(--line);border-radius:14px;padding:20px 24px;color:#33475C;font-weight:300}
.audible-callout b{color:var(--navy);font-weight:600}
.audible-callout .row{display:flex;gap:10px;flex-wrap:wrap}
.audible-callout .btn{padding:.7rem 1.2rem;font-size:.95rem}
@media(max-width:820px){.audible-callout{max-width:none}}
