/* Adult hero profiles: the homepage/About visual language, scoped to this surface. */
.ffhp-profile { --ffhp-ink:#0a0f1e; --ffhp-panel:#111d33; --ffhp-gold:var(--ff-brand-yellow); --ffhp-muted:#c2cede; background:var(--ffhp-ink); color:#fff; font-family:Inter,Arial,sans-serif; }
.ffhp-profile *, .ffhp-profile *::before, .ffhp-profile *::after { box-sizing:border-box; }
.ffhp-profile .ffhp-container { width:calc(100% - 48px); max-width:1180px; margin-inline:auto; }
.ffhp-profile a:focus-visible, .ffhp-profile summary:focus-visible { outline:3px solid #fff; outline-offset:5px; }
.ffhp-profile .ffhp-kicker { margin:0 0 12px; color:var(--ffhp-gold); font-size:.73rem; font-weight:800; line-height:1.45; letter-spacing:.12em; text-transform:uppercase; }
.ffhp-profile .ffhp-opening { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 85% 12%,rgba(122,0,1,.22),transparent 48%),radial-gradient(ellipse at 8% 95%,rgba(212,160,23,.1),transparent 42%),linear-gradient(130deg,#0b1427,#142541); }
.ffhp-profile .ffhp-opening::before { content:''; position:absolute; z-index:-1; inset:0; background:repeating-linear-gradient(130deg,transparent 0 39px,rgba(255,255,255,.025) 39px 40px,transparent 40px 80px); }
.ffhp-profile .ffhp-opening::after { content:''; position:absolute; inset:auto 0 0; height:4px; background:var(--ff-brand-yellow); }
.ffhp-profile .ffhp-opening-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr); gap:clamp(35px,7vw,100px); align-items:center; padding-block:90px 58px; }
.ffhp-profile .ffhp-opening-no-image { grid-template-columns:1fr; }
.ffhp-profile .ffhp-opening-copy { min-width:0; max-width:650px; }
.ffhp-profile .ffhp-back { display:inline-flex; min-height:40px; align-items:center; color:#d4deea; font-size:.85rem; text-decoration:none; font-weight:600; margin-bottom:22px; }
.ffhp-profile .ffhp-back:hover { color:var(--ffhp-gold); }
.ffhp-profile .ffhp-opening h1 { margin:0 0 8px; font-family:var(--ff-display,'Bangers',cursive); font-weight:400; font-size:clamp(3.7rem,6.5vw,6rem); line-height:1; letter-spacing:.025em; color:#fff; overflow-wrap:anywhere; }
.ffhp-profile .ffhp-alias { color:var(--ffhp-gold); font-size:1.1rem; line-height:1.5; font-weight:600; margin:0 0 22px; }
.ffhp-profile .ffhp-intro { max-width:520px; margin:0 0 25px; font-size:clamp(1rem,1.35vw,1.1rem); line-height:1.75; color:#d1dbe8; }
.ffhp-profile .ffhp-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; }
.ffhp-profile .ffhp-opening-details { margin:0 0 24px; }
.ffhp-profile .ffhp-opening-reference { margin:0 0 10px; color:#d1dbe8; font-size:.85rem; line-height:1.5; }
.ffhp-profile .ffhp-opening-themes { display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:0; list-style:none; }
.ffhp-profile .ffhp-opening-themes li { padding:4px 9px; border:1px solid rgba(212,160,23,.25); border-radius:50px; background:rgba(212,160,23,.07); color:var(--ffhp-gold); font-size:.7rem; font-weight:750; line-height:1.4; text-transform:uppercase; }
.ffhp-profile .ffhp-scripture-link { min-height:44px; }
.ffhp-profile .ffhp-button { display:inline-flex; justify-content:space-between; align-items:center; gap:16px; min-height:49px; padding:12px 20px; border:2px solid transparent; border-radius:9px; font-size:.91rem; font-weight:800; line-height:1.4; text-decoration:none; transition:background-color .2s,border-color .2s,transform .2s; }
.ffhp-profile .ffhp-button:hover { transform:translateY(-2px); }
.ffhp-profile .ffhp-button-gold { background:var(--ffhp-gold); color:#101727; }
.ffhp-profile .ffhp-button-gold:hover { background:var(--ff-brand-yellow); color:#101727; }
.ffhp-profile .ffhp-button-outline { border-color:rgba(255,255,255,.44); color:#fff; background:rgba(255,255,255,.04); }
.ffhp-profile .ffhp-button-outline:hover { border-color:var(--ffhp-gold); background:rgba(212,160,23,.09); color:#fff; }
.ffhp-profile .ffhp-text-link { display:inline-flex; align-items:center; gap:12px; color:var(--ffhp-gold); font-size:.88rem; font-weight:750; line-height:1.5; text-decoration:underline; text-underline-offset:4px; }
.ffhp-profile .ffhp-text-link:hover { color:var(--ff-brand-yellow); }
.ffhp-profile .ffhp-path-link { margin-top:19px; min-height:35px; }
.ffhp-profile .ffhp-portrait { position:relative; isolation:isolate; width:calc(100% - 28px); max-width:380px; margin:12px auto; padding:7px; border:2px solid var(--ffhp-gold); border-radius:22px; background:#111d33; box-shadow:0 0 45px rgba(212,160,23,.12),0 22px 55px rgba(0,0,0,.35); }
.ffhp-profile .ffhp-portrait::before { content:''; position:absolute; z-index:-1; inset:-8px; border:1px solid rgba(212,160,23,.65); border-radius:22px; background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(212,160,23,.13) 16px 17px),var(--ff-brand-red); transform:rotate(4deg); pointer-events:none; }
.ffhp-profile .ffhp-portrait::after { content:'✦'; position:absolute; top:-29px; right:-17px; color:var(--ffhp-gold); font:56px/1 Georgia,serif; text-shadow:0 3px 0 #111d33,0 0 20px rgba(212,160,23,.3); pointer-events:none; }
.ffhp-profile .ffhp-portrait img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:center 24%; border-radius:13px; }
.ffhp-profile .ffhp-portrait figcaption { position:absolute; right:12px; left:12px; bottom:12px; display:flex; align-items:center; gap:10px; padding:10px 14px; background:rgba(10,15,30,.93); border-left:3px solid var(--ffhp-gold); color:var(--ff-brand-yellow); font-size:.74rem; line-height:1.5; font-weight:700; }
.ffhp-profile .ffhp-section { padding-block:clamp(48px,6vw,78px); }
.ffhp-profile .ffhp-reading { background:linear-gradient(180deg,#0d172a,#0a0f1e); scroll-margin-top:100px; }
.ffhp-profile .ffhp-story-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(30px,5vw,65px); align-items:start; }
.ffhp-profile .ffhp-story { min-width:0; }
.ffhp-profile .ffhp-display { margin:0 0 28px; font-family:var(--ff-display,'Bangers',cursive); color:#fff; font-size:clamp(2.15rem,3.6vw,3.45rem); font-weight:400; letter-spacing:.025em; line-height:1.08; text-wrap:balance; }
.ffhp-profile .ffhp-display span { color:var(--ffhp-gold); }
.ffhp-profile .ffhp-story-body { max-width:70ch; color:#d6dfeb; font-size:1.0625rem; line-height:1.85; overflow-wrap:anywhere; }
.ffhp-profile .ffhp-story-body > :first-child { margin-top:0; }
.ffhp-profile .ffhp-story-body p { margin:0 0 1.4em; color:inherit; line-height:inherit; }
.ffhp-profile .ffhp-story-body h2, .ffhp-profile .ffhp-story-body h3, .ffhp-profile .ffhp-story-body h4 { font-family:Inter,Arial,sans-serif; color:#fff; font-weight:750; letter-spacing:0; line-height:1.4; margin:1.7em 0 .75em; }
.ffhp-profile .ffhp-story-body h2 { font-size:1.55rem; }
.ffhp-profile .ffhp-story-body h3 { font-size:1.25rem; }
.ffhp-profile .ffhp-story-body h4 { font-size:1.08rem; }
.ffhp-profile .ffhp-story-body a { color:var(--ffhp-gold); text-decoration:underline; text-underline-offset:3px; }
.ffhp-profile .ffhp-story-body strong { color:#fff; }
.ffhp-profile .ffhp-story-body ul, .ffhp-profile .ffhp-story-body ol { margin:0 0 1.4em; padding-left:1.4em; }
.ffhp-profile .ffhp-story-body li { margin-bottom:.5em; }
.ffhp-profile .ffhp-story-body blockquote { margin:28px 0; padding:20px 24px; border-left:4px solid var(--ffhp-gold); background:rgba(212,160,23,.06); color:var(--ff-brand-yellow); }
.ffhp-profile .ffhp-story-body img { max-width:100%; height:auto; }
.ffhp-profile .ffhp-story-body iframe { max-width:100%; }
.ffhp-profile .ffhp-context { max-width:70ch; margin-top:38px; padding-top:8px; border-top:1px solid rgba(212,160,23,.25); }
.ffhp-profile .ffhp-context-item { padding-top:24px; }
.ffhp-profile .ffhp-context-item h3 { margin:0 0 10px; color:var(--ffhp-gold); font:750 .85rem/1.5 Inter,Arial,sans-serif; letter-spacing:.04em; }
.ffhp-profile .ffhp-context-item p { margin:0; color:var(--ffhp-muted); font-size:.9rem; line-height:1.85; }
.ffhp-profile .ffhp-sidebar { display:grid; gap:20px; min-width:0; }
.ffhp-profile .ffhp-panel { padding:24px; background:var(--ffhp-panel); border:1px solid rgba(255,255,255,.12); border-radius:14px; overflow-wrap:anywhere; }
.ffhp-profile .ffhp-panel h3 { margin:0 0 14px; color:#fff; font:750 1rem/1.4 Inter,Arial,sans-serif; }
.ffhp-profile .ffhp-panel p:not(.ffhp-kicker) { color:var(--ffhp-muted); font-size:.86rem; line-height:1.7; margin:0 0 15px; }
.ffhp-profile .ffhp-scripture { border-top:3px solid var(--ffhp-gold); background:linear-gradient(145deg,#1a2941,#111a2d); }
.ffhp-profile .ffhp-scripture blockquote { padding:0; margin:5px 0 15px; border:0; color:#f4eedf; font-size:1.1rem; font-style:normal; line-height:1.75; }
.ffhp-profile .ffhp-scripture .ffhp-verse-ref { color:var(--ffhp-gold); font-size:.8rem; }
.ffhp-profile .ffhp-themes { display:flex; flex-wrap:wrap; gap:8px; }
.ffhp-profile .ffhp-themes a { display:inline-flex; align-items:center; min-height:35px; padding:6px 10px; border-radius:6px; border:1px solid rgba(212,160,23,.25); background:rgba(212,160,23,.07); color:var(--ff-brand-yellow); text-decoration:none; font-size:.75rem; line-height:1.4; }
.ffhp-profile .ffhp-themes a:hover { background:rgba(212,160,23,.17); }
.ffhp-profile .ffhp-vault { position:relative; overflow:hidden; padding-top:35px; padding-bottom:35px; background:linear-gradient(120deg,var(--ff-brand-red),var(--ff-brand-red)); border:0; border-radius:0; }
.ffhp-profile .ffhp-vault::before, .ffhp-profile .ffhp-vault::after { content:''; position:absolute; inset:0 0 auto; height:15px; background:#0d172a; clip-path:polygon(0 0,100% 0,0 100%); pointer-events:none; }
.ffhp-profile .ffhp-vault::after { inset:auto 0 0; clip-path:polygon(100% 0,100% 100%,0 100%); }
.ffhp-profile .ffhp-vault p:not(.ffhp-kicker) { color:#f6e6e8; }
.ffhp-profile .ffhp-missions .ffhp-small { font-size:.8rem; }
.ffhp-profile .ffhp-missions ul { list-style:none; padding:0; margin:0; }
.ffhp-profile .ffhp-missions li + li { border-top:1px solid rgba(255,255,255,.12); }
.ffhp-profile .ffhp-missions li a { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 0; color:var(--ff-brand-yellow); font-size:.86rem; font-weight:650; line-height:1.5; text-decoration:none; }
.ffhp-profile .ffhp-missions li a:hover { color:#fff; }
.ffhp-profile .ffhp-children { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px 35px; align-items:center; padding:32px 34px; border:1px solid rgba(212,160,23,.4); border-top:3px solid var(--ffhp-gold); border-radius:18px; background:radial-gradient(ellipse at 0% 0%,rgba(212,160,23,.17),transparent 60%),radial-gradient(ellipse at 100% 100%,rgba(122,0,1,.4),transparent 65%),repeating-linear-gradient(130deg,transparent 0 30px,rgba(255,255,255,.03) 30px 31px,transparent 31px 60px),#142238; box-shadow:0 16px 35px rgba(0,0,0,.18); }
.ffhp-profile .ffhp-children::before { content:'✦'; position:absolute; z-index:-1; right:25%; top:-27px; color:rgba(212,160,23,.09); font:180px/1 Georgia,serif; transform:rotate(12deg); pointer-events:none; }
.ffhp-profile .ffhp-children .ffhp-kicker { font-size:.66rem; margin-bottom:7px; }
.ffhp-profile .ffhp-children h2 { margin:0 0 9px; font:400 clamp(1.65rem,2.5vw,2.1rem)/1.15 var(--ff-display,'Bangers',cursive); letter-spacing:.025em; color:#fff; }
.ffhp-profile .ffhp-children p:not(.ffhp-kicker) { margin:0; color:var(--ffhp-muted); font-size:.85rem; line-height:1.7; }
.ffhp-profile .ffhp-children-links { display:grid; gap:9px; }
.ffhp-profile .ffhp-children-links a { justify-content:space-between; min-height:44px; padding:10px 14px; border:1px solid rgba(255,255,255,.16); border-radius:8px; background:var(--ff-brand-red); color:#fff; font-size:.81rem; text-decoration:none; }
.ffhp-profile .ffhp-children-links a:hover { color:#fff; border-color:var(--ffhp-gold); text-decoration:underline; text-underline-offset:4px; }
.ffhp-profile .ffhp-related { background:linear-gradient(180deg,#0a0f1e,#101b30); }
.ffhp-profile .ffhp-related-heading { display:flex; justify-content:space-between; align-items:end; gap:22px; margin-bottom:25px; }
.ffhp-profile .ffhp-related-heading .ffhp-display { margin:0; }
.ffhp-profile .ffhp-related-heading > a { flex-shrink:0; padding-bottom:5px; }
.ffhp-profile .ffhp-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ffhp-profile .ffhp-related-card { min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:#15223a; color:#fff; text-decoration:none; transition:transform .2s,border-color .2s; }
.ffhp-profile .ffhp-related-card:hover { transform:translateY(-4px); border-color:var(--ffhp-gold); }
.ffhp-profile .ffhp-related-image { aspect-ratio:4/3; overflow:hidden; display:grid; place-items:center; background:linear-gradient(130deg,#493229,#1b2841); }
.ffhp-profile .ffhp-related-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.ffhp-profile .ffhp-initial { font:4rem var(--ff-display,'Bangers',cursive); color:var(--ffhp-gold); }
.ffhp-profile .ffhp-related-copy { padding:23px; flex:1; display:flex; flex-direction:column; }
.ffhp-profile .ffhp-related-copy h3 { margin:0 0 7px; font-family:var(--ff-display,'Bangers',cursive); font-size:2rem; font-weight:400; line-height:1.1; letter-spacing:.025em; color:#fff; }
.ffhp-profile .ffhp-related-copy p { color:#c7d2df; font-size:.8rem; line-height:1.6; margin:0 0 15px; }
.ffhp-profile .ffhp-card-link { display:flex; justify-content:space-between; gap:10px; margin-top:auto; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); color:var(--ffhp-gold); font-size:.84rem; font-weight:750; }
@media (max-width:1000px) {
 .ffhp-profile .ffhp-story-grid { grid-template-columns:minmax(0,1fr) 260px; gap:30px; }
 .ffhp-profile .ffhp-panel { padding:21px; }
 .ffhp-profile .ffhp-vault { padding-block:33px; }
 .ffhp-profile .ffhp-opening-grid { gap:40px; }
}
@media (max-width:760px) {
 .ffhp-profile .ffhp-opening-grid { grid-template-columns:1fr; gap:30px; padding-block:76px 44px; }
 .ffhp-profile .ffhp-opening-copy { max-width:none; }
 .ffhp-profile .ffhp-opening h1 { font-size:clamp(3.3rem,12vw,5rem); }
 .ffhp-profile .ffhp-intro { max-width:600px; }
 .ffhp-profile .ffhp-portrait { max-width:320px; }
 .ffhp-profile .ffhp-story-grid { grid-template-columns:1fr; gap:35px; }
 .ffhp-profile .ffhp-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
 .ffhp-profile .ffhp-children { grid-template-columns:1fr; }
 .ffhp-profile .ffhp-related-heading { display:block; }
 .ffhp-profile .ffhp-related-heading > a { margin-top:17px; }
 .ffhp-profile .ffhp-related-grid { gap:15px; }
 .ffhp-profile .ffhp-related-copy { padding:17px; }
}
@media (max-width:520px) {
 .ffhp-profile .ffhp-container { width:calc(100% - 36px); }
 .ffhp-profile .ffhp-opening-grid { padding-top:68px; }
 .ffhp-profile .ffhp-back { margin-bottom:18px; }
 .ffhp-profile .ffhp-portrait { max-width:320px; margin-top:4px; }
 .ffhp-profile .ffhp-actions { flex-direction:column; gap:10px; }
 .ffhp-profile .ffhp-button { width:100%; }
 .ffhp-profile .ffhp-story-body { font-size:1.0625rem; line-height:1.8; }
 .ffhp-profile .ffhp-display { font-size:2.35rem; }
 .ffhp-profile .ffhp-sidebar, .ffhp-profile .ffhp-related-grid { grid-template-columns:1fr; }
 .ffhp-profile .ffhp-children { padding:22px; }
 .ffhp-profile .ffhp-related-card { display:grid; grid-template-columns:110px minmax(0,1fr); }
 .ffhp-profile .ffhp-related-image { height:100%; aspect-ratio:auto; }
 .ffhp-profile .ffhp-related-copy h3 { font-size:1.75rem; }
 .ffhp-profile .ffhp-related-copy p { font-size:.74rem; }
}
@media (prefers-reduced-motion:reduce) {
 .ffhp-profile *, .ffhp-profile *::before, .ffhp-profile *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* Linked life lessons use current titles and tags from their published posts. */
.ffhp-deeper > #david-courage-path { display:block; scroll-margin-top:100px; }
.ffhp-profile .ffhp-deeper { margin-bottom:52px; padding:32px; border:1px solid rgba(212,160,23,.3); border-top:3px solid var(--ffhp-gold); border-radius:18px; background:radial-gradient(ellipse at 100% 0%,rgba(122,0,1,.25),transparent 60%),repeating-linear-gradient(130deg,transparent 0 39px,rgba(255,255,255,.02) 39px 40px,transparent 40px 80px),#111d33; scroll-margin-top:100px; }
.ffhp-profile .ffhp-deeper-heading h2 { margin:0 0 14px; color:#fff; font:400 clamp(2rem,4vw,3.2rem)/1.1 var(--ff-display,'Bangers',cursive); letter-spacing:.02em; }
.ffhp-profile .ffhp-deeper-heading h2 span { color:var(--ffhp-gold); }
.ffhp-profile .ffhp-deeper-heading > p:last-child { max-width:720px; margin:0 0 25px; color:var(--ffhp-muted); font-size:.95rem; line-height:1.7; }
.ffhp-profile .ffhp-lesson-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.ffhp-profile .ffhp-lesson-list li { min-width:0; }
.ffhp-profile .ffhp-lesson-list a { display:flex; align-items:center; gap:15px; padding:17px 20px; min-height:72px; border:1px solid rgba(255,255,255,.12); border-radius:11px; background:rgba(255,255,255,.025); color:#fff; text-decoration:none; transition:border-color .2s,background .2s; }
.ffhp-profile .ffhp-lesson-list a:hover { border-color:var(--ffhp-gold); background:rgba(212,160,23,.06); }
.ffhp-profile .ffhp-lesson-mark { flex:none; color:var(--ffhp-gold); font-size:1.5rem; }
.ffhp-profile .ffhp-lesson-name { flex:1; min-width:0; font-size:1.05rem; font-weight:750; line-height:1.4; }
.ffhp-profile .ffhp-lesson-theme { border:1px solid rgba(212,160,23,.25); border-radius:50px; padding:4px 9px; color:var(--ffhp-gold); font-size:.7rem; font-weight:750; }
.ffhp-profile .ffhp-lesson-action { display:flex; gap:12px; align-items:center; color:var(--ffhp-gold); font-size:.8rem; font-weight:750; white-space:nowrap; }
@media (max-width:600px) {
 .ffhp-profile .ffhp-deeper { padding:24px 18px; }
 .ffhp-profile .ffhp-lesson-list a { display:grid; grid-template-columns:20px minmax(0,1fr); gap:9px 12px; padding:16px; }
 .ffhp-profile .ffhp-lesson-theme,.ffhp-profile .ffhp-lesson-action { grid-column:2; justify-self:start; }
}

/* Adult reading and optional family follow-through. */
.ffhp-profile #ffhp-vault { scroll-margin-top:100px; }
.ffhp-profile .ffhp-vault p.ffhp-vault-save-intro { margin-top:20px; }
.ffhp-profile .ffhp-vault .cc-save-vault-card { margin-top:16px; background:#111d33; }
.ffhp-profile .ffhp-vault .cc-sv-textarea { width:100%; max-width:100%; }
.ffhp-profile .ffhp-takeaway { padding-block:0 28px; }
.ffhp-profile .ffhp-takeaway h2 { margin:0 0 16px; color:var(--ffhp-gold); font-family:var(--ff-display,'Bangers',cursive); font-size:clamp(1.6rem,2.4vw,2rem); font-weight:400; line-height:1.2; letter-spacing:.025em; }
.ffhp-profile .ffhp-takeaway > div { max-width:70ch; color:var(--ffhp-muted); font-size:1rem; line-height:1.8; }
.ffhp-profile .ffhp-takeaway p { margin:0 0 1em; color:inherit; }
.ffhp-profile .ffhp-takeaway p:last-child { margin-bottom:0; }
