:root{--bg:#f7f3ec;--card:#fff;--ink:#2f2a24;--muted:#7a6e60;--accent:#8a6d3b;--gold:#d9b96c;--line:#e8e0d2;--ok:#4f7a52;--warn:#a8742c;--bad:#a2483c;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 Georgia,"Iowan Old Style","Palatino Linotype",serif}
a{color:var(--accent)}
img,video,iframe{max-width:100%}
.site-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;background:rgba(247,243,236,.92);backdrop-filter:blur(6px);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}
.brand{font-size:1.25rem;text-decoration:none;color:var(--ink);letter-spacing:.02em;white-space:nowrap}
.site-header nav{display:flex;align-items:center;gap:16px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:.92rem}
.site-header nav a:not(.btn){color:var(--muted);text-decoration:none}
main{max-width:1240px;margin:0 auto;padding:0 18px 40px}
.hero{text-align:center;max-width:760px;margin:0 auto;padding:56px 0 30px}
.hero h1{font-weight:normal;font-size:clamp(2.1rem,6vw,3.2rem);margin:0 0 14px;letter-spacing:.01em}
.lead{font-size:1.1rem;color:#4d443a}
.counter{font-family:system-ui,sans-serif;color:var(--muted);margin:22px 0 10px;font-size:1rem}
.counter #prayer-count{display:inline-block;font:600 1.6rem/1 Georgia,serif;color:var(--accent);margin-right:4px;transition:transform .4s}
.counter #prayer-count.bump{transform:scale(1.18)}
.gentle{font-size:.9rem;color:var(--muted);font-family:system-ui,sans-serif}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:999px;padding:12px 24px;font:600 .98rem system-ui,sans-serif;text-decoration:none;cursor:pointer;transition:background .2s,transform .1s}
.btn:hover{background:#735a2f}.btn:active{transform:translateY(1px)}
.btn-small{padding:7px 14px;font-size:.85rem}
.btn-big{width:100%;padding:16px;font-size:1.05rem;margin-top:8px}
.btn-ghost{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1px var(--gold)}.btn-ghost:hover{background:#efe6d4}
.btn-ok{background:var(--ok)}.btn-warn{background:var(--warn)}.btn-danger{background:transparent;color:var(--bad);box-shadow:inset 0 0 0 1px #d8b0a8}.btn-danger:hover{background:#f6e6e2}
.wall{columns:300px;column-gap:20px;margin-top:20px}
.card{break-inside:avoid;background:var(--card);border-radius:var(--r);padding:18px 20px;margin:0 0 20px;box-shadow:0 2px 12px rgba(60,40,20,.07);position:relative;display:inline-block;width:100%}
.card.featured{box-shadow:0 0 0 2px var(--gold),0 4px 16px rgba(160,120,40,.15)}
.badge{display:inline-block;font:600 .72rem system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#7a5d1e;background:#f6ecd3;border-radius:999px;padding:3px 10px;margin-bottom:10px}
.card blockquote{margin:0;font-size:1.04rem;line-height:1.65;overflow-wrap:anywhere}
.by{margin:12px 0 0;color:var(--accent);font-style:italic}.by span{color:var(--muted)}
.photos{display:grid;gap:6px;margin:0 0 14px;border-radius:10px;overflow:hidden}
.photos.n2,.photos.n4{grid-template-columns:1fr 1fr}.photos.n3{grid-template-columns:1fr 1fr}.photos.n3 a:first-child{grid-column:1/3}
.photos img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:auto;cursor:zoom-in}
.photos.n2 img,.photos.n3 img,.photos.n4 img{aspect-ratio:1/1}.photos.n3 a:first-child img{aspect-ratio:16/10}
.card video{width:100%;border-radius:10px;margin-bottom:12px;background:#000}
.embed{position:relative;aspect-ratio:16/9;margin-bottom:12px;border-radius:10px;overflow:hidden;background:#000}.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.xlink{font:.9rem system-ui,sans-serif;margin:0 0 10px;word-break:break-all}
.empty{text-align:center;color:var(--muted);padding:40px 0}
.pager{display:flex;justify-content:center;align-items:center;gap:18px;margin:30px 0;font-family:system-ui,sans-serif;flex-wrap:wrap}.pager a.on{font-weight:700;text-decoration:none}
.form-wrap{max-width:680px;margin:0 auto;padding:40px 0}.form-wrap.narrow{max-width:440px}
.form-wrap h1{font-weight:normal;font-size:clamp(1.8rem,5vw,2.4rem);margin:0 0 8px;line-height:1.2}
.submit-form{background:var(--card);border-radius:var(--r);padding:26px;box-shadow:0 2px 12px rgba(60,40,20,.07);margin-top:20px}
.submit-form label,.submit-form fieldset{display:block;margin:0 0 20px;font:600 .95rem system-ui,sans-serif}
.submit-form fieldset{border:1px solid var(--line);border-radius:10px;padding:14px 16px}.submit-form legend{padding:0 6px}
.row.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input[type=text],input[type=email],input[type=url],input[type=password],textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1px solid #d9cfbe;border-radius:10px;font:400 1rem Georgia,serif;background:#fffdf9;color:var(--ink)}
input:focus,textarea:focus{outline:2px solid var(--gold);border-color:transparent}
textarea{resize:vertical;min-height:150px;line-height:1.55}
input[type=file]{margin-top:4px;font:400 .9rem system-ui,sans-serif;max-width:100%}
.opt,.hint{font-weight:400;color:var(--muted);font-size:.85rem}.req{color:var(--bad)}.hint{display:block;margin-top:6px;font-family:system-ui,sans-serif}.center{text-align:center}
.or{margin:14px 0 0!important}
.check{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;line-height:1.45}.check input{margin-top:4px;width:20px;height:20px;flex:none;accent-color:var(--accent)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.previews img{width:72px;height:72px;object-fit:cover;border-radius:8px}
.errors{background:#fbecea;border:1px solid #ecc7c0;color:#6d2e25;border-radius:10px;padding:12px 18px;font:.95rem system-ui,sans-serif;margin:16px 0}.errors ul{margin:6px 0 0;padding-left:20px}
.thanks{background:var(--card);border-radius:var(--r);padding:30px;text-align:center;box-shadow:0 2px 12px rgba(60,40,20,.07)}
.prose{max-width:700px;margin:0 auto;padding:40px 0}.prose h1{font-weight:normal;font-size:2.3rem}.prose h2{font-size:1.2rem;margin-top:28px}
.site-footer{text-align:center;color:var(--muted);font:.88rem system-ui,sans-serif;padding:30px 20px 40px;border-top:1px solid var(--line)}
.site-footer p{margin:4px 0}
/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(20,16,12,.92);display:none;align-items:center;justify-content:center;z-index:50;padding:20px}
.lightbox.open{display:flex}.lightbox img{max-height:86vh;max-width:94vw;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.lightbox button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:999px;width:46px;height:46px;font-size:1.5rem;cursor:pointer}
.lightbox .x{top:16px;right:16px}.lightbox .prev{left:12px;top:50%}.lightbox .next{right:12px;top:50%}
.lightbox .cap{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#eee;font-style:italic}
/* admin */
.admin-wrap{max-width:960px;margin:0 auto;padding:30px 0}
.admin-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.admin-top h1{font-weight:normal;margin:0}
.inline{display:inline}
.tabs{display:flex;gap:6px;margin:18px 0;font-family:system-ui,sans-serif;flex-wrap:wrap}.tabs a{padding:8px 14px;border-radius:999px;text-decoration:none;color:var(--muted);background:#efe8dc}.tabs a.on{background:var(--accent);color:#fff}.tabs span{opacity:.75;margin-left:4px}
.flash{background:#eef4ec;border:1px solid #cfe0cb;border-radius:10px;padding:10px 14px;font-family:system-ui,sans-serif}
.q-item{background:var(--card);border-radius:var(--r);padding:18px 20px;margin-bottom:16px;box-shadow:0 2px 10px rgba(60,40,20,.06)}
.q-item.featured{box-shadow:0 0 0 2px var(--gold)}
.q-meta{font:.85rem system-ui,sans-serif;color:var(--muted)}.private{color:#5a6b85}
.rename{display:flex;gap:8px;align-items:center;margin:10px 0;flex-wrap:wrap}.rename input{width:auto;flex:1;min-width:160px;margin:0;padding:8px 10px}.loc{font:.85rem system-ui,sans-serif;color:var(--muted)}
.q-item blockquote{margin:8px 0 12px;white-space:normal;overflow-wrap:anywhere}
.q-media{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.q-media img{width:130px;height:130px;object-fit:cover;border-radius:8px}.q-media video{width:260px;border-radius:8px;background:#000}
.q-actions{display:flex;gap:6px;flex-wrap:wrap}
.pw{margin-top:30px;font-family:system-ui,sans-serif}
.checks{list-style:none;padding:0;font-family:system-ui,sans-serif}.checks .y{color:var(--ok)}.checks .n{color:var(--bad)}
code{background:#efe6d4;padding:2px 6px;border-radius:4px;font-size:.85em;word-break:break-all}
@media (max-width:640px){
  body{font-size:16px}.site-header{padding:10px 14px}.site-header nav a:not(.btn){display:none}
  .hero{padding:34px 0 18px}.row.two{grid-template-columns:1fr;gap:0}.submit-form{padding:18px}
  .wall{column-gap:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.whoami{font:.85rem system-ui,sans-serif;color:var(--muted);margin-right:6px}.decided{color:#3f6b3a}
.users{width:100%;border-collapse:collapse;font:.92rem system-ui,sans-serif;margin:10px 0 24px}.users th,.users td{text-align:left;padding:10px 8px;border-bottom:1px solid #e8dfd0;vertical-align:middle}.users .off{opacity:.55}
.users td form{margin:2px 0}.newpw{background:#fff8e1;border:1px solid #e9d38f;border-radius:10px;padding:12px 14px;font-family:system-ui,sans-serif}.newpw code{font-size:1.1rem}
/* ---- Keith restyle: Husker scarlet + cream, Braves navy accent ---- */
:root{--bg:#f8f1e3;--ink:#1f2433;--muted:#5d6273;--accent:#c8102e;--scarlet:#E41C38;--navy:#13274F;--gold:#e7c9a0;--line:#e6d9c1}
a{color:var(--accent)}
.site-header{background:var(--navy);border-bottom:4px solid var(--scarlet)}
.brand{color:#fbf5e8;display:flex;align-items:center;gap:10px;font-weight:600}
.brand-badge{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid #fbf5e8;background:var(--scarlet)}
.site-header nav a:not(.btn){color:#d9dfee}
.btn{background:var(--scarlet)}.btn:hover{background:#b3142c}
.btn-ghost{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.hero{max-width:1100px;text-align:left;padding:24px 0 10px}
.hero-banner{position:relative;aspect-ratio:1024/420;min-height:220px;border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,var(--navy),#2b3f70) center/cover;background-image:linear-gradient(90deg,rgba(19,39,79,0) 35%,rgba(19,39,79,.75)),url(/assets/img/tilda-banner.jpg),linear-gradient(135deg,var(--navy),#2b3f70);background-size:cover;background-position:center;box-shadow:0 6px 24px rgba(19,39,79,.25)}
.hero-title{position:absolute;right:5%;top:50%;transform:translateY(-50%);text-align:right;color:#fbf5e8;max-width:52%}
.hero-title h1{color:#fbf5e8;margin:0;text-shadow:0 2px 12px rgba(0,0,0,.45);font-size:clamp(1.9rem,5.5vw,3.6rem);line-height:1.05}
.kicker{margin:0 0 6px;font:700 .9rem system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#ffd9de}
.hero-body{display:flex;gap:26px;align-items:flex-start;margin:-50px 22px 0;position:relative}
.hero-badge{flex:none;width:170px;height:170px;border-radius:50%;object-fit:cover;border:6px solid #fbf5e8;box-shadow:0 4px 16px rgba(19,39,79,.3);background:var(--scarlet)}
.hero-body>div{padding-top:58px}
.lead{color:#2c3142}
.counter #prayer-count{color:var(--scarlet)}
.feature-quote{margin:28px 0 6px;background:#fffaf0;border-left:6px solid var(--scarlet);border-radius:var(--r);padding:22px 26px;box-shadow:0 2px 12px rgba(19,39,79,.08)}
.feature-quote blockquote{margin:0;font-size:1.3rem;line-height:1.5;color:var(--navy);font-style:italic}
.feature-quote figcaption{margin-top:10px;font:600 .95rem system-ui,sans-serif}
.feature-quote a{color:var(--scarlet);text-decoration:none}
.card{border-top:4px solid var(--scarlet)}
.card.featured{box-shadow:0 0 0 2px var(--navy),0 4px 16px rgba(19,39,79,.15)}
.badge{color:#fff;background:var(--navy)}
.by{color:var(--navy)}
.site-footer{background:var(--navy);color:#cfd6e6;border-top:4px solid var(--scarlet)}
.site-footer a{color:#fbf5e8}.site-footer .tag{font-weight:700;color:#ffd9de;letter-spacing:.08em}
@media (max-width:640px){
 .hero{padding-top:12px}
 .hero-banner{aspect-ratio:auto;height:230px}
 .hero-title{max-width:62%;right:4%}
 .hero-body{flex-direction:column;align-items:center;text-align:center;margin:-45px 0 0}
 .hero-badge{width:120px;height:120px}
 .hero-body>div{padding-top:0}
 .feature-quote{padding:18px}.feature-quote blockquote{font-size:1.12rem}
 .site-header{padding:10px 14px}.brand{font-size:1.05rem}
}
/* v4: title bottom-left so Tilda's face stays clear; Keith photo in circle */
.hero-banner{background-image:linear-gradient(0deg,rgba(19,39,79,.85),rgba(19,39,79,0) 55%),url(/assets/img/tilda-banner.jpg),linear-gradient(135deg,var(--navy),#2b3f70);background-position:center 45%}
.hero-title{left:5%;right:auto;top:auto;bottom:9%;transform:none;text-align:left;max-width:60%}
.hero-body{margin-left:5%}
.hero-badge,.brand-badge{object-position:52% 38%;background:var(--navy)}
@media (max-width:640px){.hero-banner{height:210px;background-position:70% 45%}.hero-title{max-width:90%;bottom:12%}.hero-body{margin-left:0}}
.hero-banner{background-position:center 15%}
.hero-title{bottom:auto;top:52%;max-width:46%}
@media (max-width:640px){.hero-banner{background-position:70% 30%}.hero-title{top:14%;left:5%;max-width:60%}.hero-title h1{font-size:1.8rem}}

.no-italics { font-style: normal; }
/* v6: private family reading page */
.family{max-width:760px;margin:0 auto;padding:26px 0 10px}
.family h1{color:var(--navy);font-weight:normal;font-size:clamp(1.9rem,6vw,2.6rem);margin:0 0 6px}
.family-count{font:1.25rem system-ui,sans-serif;color:var(--muted);margin:0 0 20px}.family-count strong{color:var(--scarlet);font-size:1.6rem}
.family-post{background:#fffaf0;border-left:6px solid var(--scarlet);border-radius:var(--r);padding:22px 24px;margin:0 0 22px;box-shadow:0 2px 12px rgba(19,39,79,.08)}
.family-num{margin:0 0 8px;font:600 .85rem system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.family-post blockquote{margin:0;font-size:1.45rem;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.family-by{margin:14px 0 0;font-size:1.2rem;color:var(--navy);font-weight:600}.family-by span{font-weight:normal;color:var(--muted)}
.family-post img,.family-post video{display:block;width:100%;height:auto;border-radius:10px;margin-top:16px}
.family-btn{display:block;width:100%;padding:20px;font-size:1.3rem;margin:10px 0 8px;background:var(--navy)}.family-btn:hover{background:#0d1c3a}
.family-done{text-align:center;background:#fffaf0;border-radius:var(--r);padding:40px 20px;border-top:4px solid var(--scarlet)}
.family-done .big{font-size:1.8rem;color:var(--navy);margin:0 0 8px}
.family-nav{text-align:center;font:1rem system-ui,sans-serif;margin:18px 0}
@media (max-width:640px){.family{padding-top:16px}.family-post{padding:18px}.family-post blockquote{font-size:1.3rem}}

/* Fill the row when there are only a few posts */
.wall{columns:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;align-items:start}
.wall .card{margin:0}

/* v8: family page tabs */
.family-tabs{display:flex;gap:0;margin:8px 0 22px;border:2px solid var(--navy);border-radius:999px;overflow:hidden;background:#fffaf0}
.family-tab{flex:1;text-align:center;padding:16px 10px;font:700 1.15rem system-ui,sans-serif;color:var(--navy);text-decoration:none;min-height:56px}
.family-tab+.family-tab{border-left:2px solid var(--navy)}
.family-tab.active{background:var(--scarlet);color:#fff}
.family-tab:not(.active):hover{background:#f1e6d0}
.family-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;font:1.1rem system-ui,sans-serif;margin:20px 0}
.family-pager a{padding:12px 16px;border-radius:999px;background:var(--navy);color:#fff;text-decoration:none}

/* Hearts */
.card .by{padding-right:56px}
.heart{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:3px;background:none;border:0;padding:4px 6px;border-radius:999px;font:inherit;font-size:.9rem;color:#8a7b70;cursor:pointer;line-height:1}
.heart:hover,.heart:focus-visible{background:rgba(228,28,56,.08);color:var(--scarlet)}
.heart .heart-icon{font-size:1.15rem;line-height:1}
.heart.on{color:var(--scarlet);cursor:default}
.heart.on:hover{background:none}
.heart.pop .heart-icon{animation:hpop .35s ease}
@keyframes hpop{50%{transform:scale(1.35)}}
.family-hearts{margin:6px 0 0;font-size:1rem;color:var(--scarlet)}
/* ---- Fundraiser promo card ---- */
.card.fund-card{background:#1f3a6b;color:#fff;box-shadow:0 0 0 3px var(--gold),0 6px 18px rgba(19,39,79,.28);text-align:center;padding:22px 20px}
.fund-card .fund-kicker{margin:0 0 4px;font:600 .78rem system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#fbecc8}
.fund-card h2{margin:0 0 8px;font-size:1.3rem;color:#fff}
.fund-card p{margin:0 0 12px;color:#fff}
.fund-card .fund-action{margin:4px 0 0}
.fund-card .btn{background:#fff;color:#1f3a6b;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.fund-card .btn:hover,.fund-card .btn:focus{background:#fbecc8;color:#13274f}
.fund-card .btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.fund-card .fund-img{display:block;width:calc(100% + 40px);max-width:none;height:160px;object-fit:cover;object-position:50% 35%;margin:-22px -20px 16px;border-radius:var(--r) var(--r) 0 0}
