/*
Theme Name: Gratitude for America — 250 v14
Theme URI: https://gratitudeforamerica.com/
Author: Gratitude for America
Description: A warm, editorial celebration of American ingenuity, built for the existing Gratitude for America WordPress site.
Version: 14.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: gratitude-for-america
*/

:root { --navy:#071a34; --blue:#174a7f; --red:#c94343; --cream:#f2e4d0; --paper:#fffaf1; --ink:#171d28; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; background-image:radial-gradient(circle at 20% 10%,rgba(201,67,67,.035),transparent 27%),radial-gradient(circle at 80% 30%,rgba(191,132,72,.05),transparent 24%); }
body.admin-bar .site-header { top:32px; }
main { display:block; }
img { max-width:100%; }
a { color:inherit; text-decoration:none; }

.site-header { height:88px; display:flex; align-items:center; justify-content:space-between; padding:0 3.2vw; border-bottom:1px solid rgba(104,70,43,.16); background:rgba(255,250,241,.94); position:sticky; top:0; z-index:20; backdrop-filter:blur(12px); }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark { width:42px; height:42px; border:2px solid var(--navy); border-radius:50%; display:grid; place-items:center; position:relative; }
.brand-mark:after { content:""; position:absolute; inset:5px; border:1px solid var(--red); border-radius:50%; }
.brand-mark i { color:var(--navy); font-style:normal; font-size:13px; }
.brand-name { text-transform:uppercase; font-family:Georgia, serif; font-weight:700; font-size:15px; letter-spacing:.07em; }
.brand-name em { display:block; text-align:center; font-size:9px; line-height:.7; letter-spacing:.2em; color:var(--red); }
.desktop-nav { display:flex; gap:clamp(16px,1.75vw,30px); font-size:11px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.desktop-nav a { transition:color .2s; }
.desktop-nav a:hover { color:var(--red); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:28px; background:var(--red); color:white; padding:17px 22px; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; border:1px solid var(--red); transition:.2s ease; }
.button:hover { background:var(--navy); border-color:var(--navy); transform:translateY(-2px); }
.button-small { padding:13px 17px; gap:18px; }
.mobile-header-actions { display:none; }

.hero { min-height:calc(100vh - 88px); position:relative; overflow:hidden; display:grid; grid-template-columns:54% 46%; background:linear-gradient(135deg,#f4e8d6 0%,#efe0ca 72%,#ead6bb 100%); }
.hero:before { content:""; position:absolute; width:44vw; height:44vw; border:1px solid rgba(7,26,52,.12); border-radius:50%; left:-25vw; top:5vw; box-shadow:0 0 0 7vw rgba(255,255,255,.16),0 0 0 14vw rgba(255,255,255,.11); }
.hero-copy { padding:clamp(70px,10vh,120px) 4vw 120px 7vw; position:relative; z-index:2; }
.eyebrow { text-transform:uppercase; font-size:11px; font-weight:800; letter-spacing:.16em; display:flex; align-items:center; gap:12px; }
.eyebrow span { display:inline-block; width:34px; height:2px; background:var(--red); }
.hero h1 { font-family:Georgia, 'Times New Roman', serif; font-size:clamp(66px,7.4vw,116px); line-height:.82; letter-spacing:-.065em; margin:38px 0 34px; font-weight:500; color:var(--navy); }
.hero h1 em { color:var(--red); font-weight:400; }
.hero-lede { max-width:590px; color:#3b4653; font-family:Georgia,serif; font-size:19px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:34px; margin-top:38px; }
.text-link { font-size:12px; text-transform:uppercase; font-weight:800; letter-spacing:.06em; border-bottom:1px solid var(--ink); padding:11px 0; }
.text-link span { margin-left:10px; color:var(--red); }
.hero-art { position:relative; background:var(--navy); overflow:hidden; min-height:650px; }
.hero-art:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 80%,rgba(255,255,255,.08),transparent 27%),radial-gradient(circle at 82% 16%,rgba(201,67,67,.12),transparent 24%); }
.star-field { position:absolute; inset:0; z-index:1; opacity:.2; }
.star-field span { position:absolute; color:#fff7e8; font-size:clamp(9px,1vw,15px); text-shadow:0 0 16px rgba(255,255,255,.45); }
.star-field span:nth-child(1){left:8%;top:9%}.star-field span:nth-child(2){left:25%;top:20%;font-size:8px}.star-field span:nth-child(3){left:52%;top:8%}.star-field span:nth-child(4){left:75%;top:26%;font-size:10px}.star-field span:nth-child(5){left:90%;top:11%}.star-field span:nth-child(6){left:13%;top:47%;font-size:9px}.star-field span:nth-child(7){left:43%;top:42%}.star-field span:nth-child(8){left:69%;top:56%;font-size:8px}.star-field span:nth-child(9){left:91%;top:48%}.star-field span:nth-child(10){left:28%;top:76%;font-size:8px}.star-field span:nth-child(11){left:58%;top:84%}.star-field span:nth-child(12){left:84%;top:75%;font-size:10px}
.sun-disc { position:absolute; z-index:1; width:420px; height:420px; background:var(--red); border-radius:50%; right:-55px; top:70px; box-shadow:0 0 0 32px rgba(201,67,67,.09),0 0 0 64px rgba(201,67,67,.05); }
.portrait-card { position:absolute; z-index:2; width:205px; height:285px; border:1px solid rgba(255,255,255,.55); color:white; padding:18px; display:flex; align-items:flex-end; justify-content:space-between; font:700 12px/1.2 Arial; letter-spacing:.12em; box-shadow:0 22px 50px rgba(0,0,0,.34); overflow:hidden; isolation:isolate; }
.portrait-card:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(4,18,40,.84) 0%,rgba(4,18,40,.08) 62%); }
.portrait-card img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.04); }
.portrait-card b { font:400 40px Georgia; opacity:.6; }
.card-one { background:#b52831; transform:rotate(-8deg); top:150px; left:8%; }
.card-one img { mix-blend-mode:multiply; opacity:.83; }
.card-two { background:#e7d6bd; color:var(--navy); transform:rotate(5deg); top:90px; left:38%; z-index:3; }
.card-two:after { background:linear-gradient(to top,rgba(238,222,197,.96) 0%,rgba(238,222,197,.05) 62%); }
.card-two img { mix-blend-mode:multiply; opacity:.8; }
.card-three { background:#18518a; transform:rotate(12deg); top:205px; left:62%; }
.card-three img { mix-blend-mode:luminosity; opacity:.88; }
.art-caption { color:rgba(255,255,255,.75); position:absolute; bottom:60px; right:55px; font:italic 16px/1.5 Georgia; text-align:right; }
.hero-stars { position:absolute; right:20px; top:23px; z-index:3; color:white; letter-spacing:10px; font-size:10px; opacity:.7; }
.hero-stars span { color:var(--red); }
.hero-bottom { position:absolute; bottom:0; left:0; right:46%; background:var(--navy); color:white; height:62px; display:flex; align-items:center; justify-content:center; gap:24px; text-transform:uppercase; font-size:9px; font-weight:800; letter-spacing:.16em; }
.hero-bottom i { color:var(--red); font-style:normal; }

.mission { padding:130px 7vw; display:grid; grid-template-columns:18% 48% 1fr; gap:5vw; background:linear-gradient(110deg,rgba(255,250,241,.95),rgba(246,234,217,.78)); }
.section-number { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.15em; color:var(--red); margin:8px 0 24px; }
.mission-main .kicker { font-family:Georgia,serif; font-style:italic; color:var(--red); font-size:18px; }
.mission h2,.section-heading h2,.initiative h2,.join h2 { font:500 clamp(43px,5vw,75px)/1.02 Georgia,serif; letter-spacing:-.04em; color:var(--navy); margin:22px 0 0; }
.mission-copy { border-top:1px solid rgba(7,26,52,.2); padding-top:28px; align-self:end; }
.mission-copy p { font:17px/1.7 Georgia,serif; color:#4a5260; margin-top:0; }
.circle-link { margin-top:25px; display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:var(--red); color:white; font-size:20px; transition:.2s; }
.circle-link:hover { background:var(--navy); transform:rotate(45deg); }

.home-story-intro { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw; align-items:start; background:linear-gradient(110deg,rgba(255,250,241,.96),rgba(246,234,217,.84)); }
.home-story-intro h2,.home-next-chapter h2,.home-abundance h2 { margin:12px 0 0; color:var(--navy); font:500 clamp(45px,5.5vw,78px)/.98 Georgia,serif; letter-spacing:-.05em; }
.home-story-intro h2 em { color:var(--red); font-weight:400; }
.home-original-copy p { margin:0 0 24px; color:#3f4955; font:17.5px/1.82 Georgia,serif; }
.home-original-copy a { color:var(--red); text-decoration:underline; text-underline-offset:3px; }
.home-next-chapter { padding:100px 9vw; display:grid; grid-template-columns:.4fr 1.6fr; gap:7vw; align-items:start; color:white; background:var(--red); }
.home-next-chapter h2 { max-width:900px; color:white; }
.home-next-chapter p { max-width:870px; color:#ffe9e1; font:17px/1.75 Georgia,serif; }.home-next-chapter p a { color:white; text-decoration:underline; text-underline-offset:3px; }
.home-next-chapter .button { margin-top:18px; }.chapter-number { width:170px; height:170px; border:1px solid rgba(255,255,255,.35); border-radius:50%; display:grid; place-items:center; font-size:28px; box-shadow:0 0 0 28px rgba(255,255,255,.045); }
.home-abundance { display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; align-items:center; scroll-margin-top:88px; background:#f2e3ce; }
.abundance-portrait { min-height:650px; position:relative; overflow:hidden; background:var(--red); }.abundance-portrait:after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(7,26,52,.82),transparent 60%); }.abundance-portrait img { width:100%; height:650px; object-fit:cover; filter:grayscale(.15) contrast(1.03); mix-blend-mode:multiply; opacity:.92; }.abundance-portrait span { position:absolute; z-index:2; left:28px; bottom:26px; color:white; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.home-abundance h2 { margin-bottom:35px; font-size:clamp(43px,4.7vw,68px); }
.home-legacy { padding:110px 9vw; display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; color:white; background:var(--navy); }
.home-legacy .home-original-copy p { color:#c8d1dc; }.home-legacy .home-original-copy em { color:white; }
.legacy-quote { align-self:start; position:sticky; top:125px; padding:45px 40px; border:1px solid rgba(255,255,255,.18); }.legacy-quote>span { display:block; height:65px; color:var(--red); font:100px/.8 Georgia,serif; }.legacy-quote blockquote { margin:25px 0; color:#f5e7d5; font:italic 31px/1.4 Georgia,serif; }.legacy-quote cite { color:#93a2b4; font-size:10px; font-style:normal; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }

.stories { background:var(--navy); color:white; padding:110px 7vw 120px; position:relative; overflow:hidden; }
.stories:before { content:"★   ★       ★  ★          ★      ★    ★"; position:absolute; inset:40px 5% auto; color:rgba(255,255,255,.05); font-size:22px; letter-spacing:4.3vw; white-space:nowrap; }
.section-number.light { color:#e86769; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; margin-bottom:58px; }
.section-heading h2 { color:white; margin-top:0; }
.section-heading h2 em,.initiative h2 em { color:#ef6a6e; font-weight:400; }
.section-heading>p { max-width:380px; font:16px/1.65 Georgia,serif; color:#b9c3d0; }
.story-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.story-card { min-height:470px; padding:25px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; transition:transform .25s; isolation:isolate; }
.story-card:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(4,18,40,.9) 0%,rgba(4,18,40,.05) 72%); }
.story-card:hover { transform:translateY(-8px); }
.story-card.red { background:#b7353c; }.story-card.cream { background:#eadbc6; color:var(--navy); }.story-card.blue { background:#174d84; }
.story-card.cream:after { background:linear-gradient(to top,rgba(238,222,199,.97) 0%,rgba(238,222,199,.04) 72%); }
.story-index { font:italic 15px Georgia; opacity:.65; }
.story-card>div:last-child { position:relative; z-index:2; border-top:1px solid currentColor; padding-top:18px; }
.story-card p,.story-card span { text-transform:uppercase; font-size:9px; font-weight:800; letter-spacing:.15em; opacity:.75; }
.story-card h3 { font:500 34px/1 Georgia,serif; margin:8px 0 10px; }
.inventor { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; filter:grayscale(1) contrast(1.06); opacity:.82; }
.story-card.red .inventor { mix-blend-mode:multiply; }.story-card.cream .inventor { mix-blend-mode:multiply; opacity:.8; }.story-card.blue .inventor { mix-blend-mode:luminosity; opacity:.84; }
.button-outline { margin-top:38px; background:transparent; border-color:rgba(255,255,255,.5); }

.initiative { min-height:720px; display:grid; grid-template-columns:58% 42%; position:relative; overflow:hidden; background:#f3e4d0; }
.initiative:before { content:""; position:absolute; inset:0 42% 0 0; background:var(--red); }
.big-number { position:relative; z-index:2; align-self:center; color:var(--cream); font:700 clamp(180px,25vw,420px)/.75 Georgia,serif; letter-spacing:-.11em; transform:translateX(-.045em); text-shadow:13px 13px 0 rgba(7,26,52,.18); }
.initiative-copy { padding:120px 7vw 80px 6vw; position:relative; z-index:3; }
.initiative-copy>p:not(.section-number) { font:17px/1.7 Georgia,serif; color:#4b5562; margin:28px 0 34px; }

.join { background:var(--red); color:white; text-align:center; padding:95px 20px 105px; position:relative; overflow:hidden; }
.join:before,.join:after { content:""; position:absolute; width:360px; height:360px; border:1px solid rgba(255,255,255,.18); border-radius:50%; top:-140px; }
.join:before { left:-100px; box-shadow:0 0 0 45px rgba(255,255,255,.04); }.join:after { right:-100px; }
.join-star { font-size:23px; }
.centered { justify-content:center; margin-top:20px; }.centered span { background:white; }
.join h2 { color:white; margin:25px 0 22px; }
.join>p:not(.eyebrow) { max-width:650px; margin:0 auto 34px; font:18px/1.6 Georgia,serif; color:#ffe3df; }
.button-light { background:white; border-color:white; color:var(--red); }

/* Sitewide support invitation */
.sitewide-support { padding:30px 7vw; background:#eadbc7; }
.sitewide-support-inner { min-height:190px; padding:38px 42px; display:grid; grid-template-columns:78px 1fr auto; gap:34px; align-items:center; position:relative; overflow:hidden; color:white; background:var(--navy); border-left:7px solid var(--red); box-shadow:0 18px 42px rgba(7,26,52,.16); }
.sitewide-support-inner:after { content:"★   ★      ★     ★"; position:absolute; right:-25px; top:14px; color:rgba(255,255,255,.045); font-size:38px; letter-spacing:30px; white-space:nowrap; pointer-events:none; }
.support-seal { width:70px; height:70px; display:grid; place-items:center; position:relative; border:2px solid #f5e6d2; border-radius:50%; box-shadow:0 0 0 7px rgba(201,67,67,.28); }
.support-seal:after { content:""; position:absolute; inset:7px; border:1px solid var(--red); border-radius:50%; }
.support-seal i { color:white; font-style:normal; font-size:19px; }
.sitewide-support-copy { position:relative; z-index:1; }
.sitewide-support-copy p { margin:0 0 9px; color:#ee7c7e; font-size:10px; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.sitewide-support-copy h2 { max-width:760px; margin:0; color:white; font:500 clamp(29px,3.1vw,45px)/1.08 Georgia,serif; letter-spacing:-.035em; }
.sitewide-support-copy small { display:block; margin-top:12px; color:#9eabba; font-size:10px; letter-spacing:.04em; }
.sitewide-support-button { min-width:210px; position:relative; z-index:1; box-shadow:0 12px 28px rgba(0,0,0,.22); }
.sitewide-support-button:hover { background:white; border-color:white; color:var(--red); }

footer { background:#031126; color:white; padding:65px 7vw 35px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:28px; align-items:center; }
.footer-brand .brand-mark { border-color:white; }.footer-brand .brand-mark i { color:white; }
footer>p { color:#9eabba; font:italic 15px Georgia,serif; }
footer>div { display:flex; gap:20px; flex-wrap:wrap; justify-content:flex-end; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
footer small { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.12); padding-top:25px; color:#708097; font-size:10px; }

/* Shared interior-page system */
.page-hero { min-height:500px; padding:105px 7vw 90px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.page-hero h1,.article-header h1 { max-width:1050px; margin:12px 0 28px; font:500 clamp(58px,7vw,104px)/.9 Georgia,serif; letter-spacing:-.06em; }
.page-hero h1 em,.article-header h1 em { font-weight:400; color:#ef7878; }
.page-hero>p:last-child { max-width:700px; font:19px/1.65 Georgia,serif; margin:0; }
.page-hero-navy { color:white; background:var(--navy); }
.page-hero-navy h1 { color:white; }.page-hero-navy>p:last-child { color:#c8d0db; }
.page-hero-red { color:white; background:var(--red); }.page-hero-red h1,.page-hero-red h1 em { color:white; }.page-hero-red .section-number { color:#ffd9d2; }.page-hero-red>p:last-child { color:#ffe7df; }
.page-hero-cream { color:var(--navy); background:linear-gradient(135deg,#f6ead9,#eddbc1); }.page-hero-cream>p:last-child { color:#4f5965; }
.page-stars { position:absolute; inset:55px 5% auto; color:rgba(255,255,255,.1); font-size:20px; letter-spacing:4vw; white-space:nowrap; }
.page-hero-cream .page-stars { color:rgba(7,26,52,.08); }
.page-section { padding:110px 7vw; }
.page-section h2,.recent-profiles h2,.module-feature h2,.game-values h2 { margin:10px 0 25px; color:var(--navy); font:500 clamp(42px,5vw,72px)/1 Georgia,serif; letter-spacing:-.045em; }
.page-section .kicker { color:var(--red); font:italic 18px/1.4 Georgia,serif; }

/* Donate */
.donate-hero { min-height:610px; padding-right:38vw; }
.donate-hero:after { content:"★"; width:250px; height:250px; display:grid; place-items:center; position:absolute; right:9vw; top:50%; transform:translateY(-50%); color:white; font-size:74px; border:2px solid rgba(255,255,255,.9); border-radius:50%; box-shadow:0 0 0 28px rgba(255,255,255,.08),0 0 0 56px rgba(255,255,255,.04); }
.donate-hero-actions { margin-top:34px; display:flex; align-items:center; gap:24px; position:relative; z-index:2; }
.donate-hero-button { min-width:260px; padding:20px 26px; color:var(--navy); background:white; border-color:white; box-shadow:0 15px 34px rgba(76,18,24,.25); }
.donate-hero-button:hover { color:white; background:var(--navy); border-color:var(--navy); }
.donate-hero-actions>span { max-width:230px; color:#ffe8df; font-size:10px; font-weight:700; line-height:1.5; letter-spacing:.06em; text-transform:uppercase; }
.donate-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:9vw; align-items:center; }
.donate-copy { padding:48px; background:#f5e8d6; border-top:6px solid var(--red); box-shadow:0 18px 42px rgba(7,26,52,.08); }
.donate-copy>p:not(.kicker) { max-width:650px; color:#4d5661; font:18px/1.75 Georgia,serif; }
.donation-impact { margin:28px 0 5px; padding:22px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; border-top:1px solid #cdbda7; border-bottom:1px solid #cdbda7; }
.donation-impact span { color:var(--navy); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.donation-impact b { display:block; margin-bottom:8px; color:var(--red); font:italic 16px Georgia,serif; }
.donate-copy>.button { width:100%; margin-top:26px; padding:22px 28px; font-size:14px; box-shadow:0 13px 28px rgba(201,67,67,.24); }.donate-copy>.button:hover { box-shadow:0 16px 34px rgba(7,26,52,.22); }.donate-copy>small { display:block; margin-top:14px; color:#737a83; text-align:center; }
.gratitude-note { min-height:520px; padding:45px; color:white; background:var(--navy); position:relative; text-align:center; overflow:hidden; }
.gratitude-note>span { position:absolute; right:30px; top:25px; color:var(--red); }
.gratitude-note img { width:min(100%,310px); height:320px; object-fit:contain; filter:drop-shadow(0 18px 20px rgba(0,0,0,.25)); }
.gratitude-note blockquote { margin:25px auto 0; max-width:420px; font:italic 20px/1.5 Georgia,serif; color:#f7e6d0; }

/* Contact */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.contact-art { min-height:580px; display:grid; place-items:center; background:var(--red); overflow:hidden; }
.contact-art img { width:80%; height:520px; object-fit:contain; filter:sepia(.18) drop-shadow(0 20px 30px rgba(0,0,0,.2)); }
.contact-card { background:#f2e4d0; padding:85px 7vw; display:flex; flex-direction:column; justify-content:center; }
.contact-card h2 { font-size:clamp(45px,5vw,68px); }.contact-card>p:not(.section-number) { font:18px/1.7 Georgia,serif; color:#4c5561; }
.contact-card .button { align-self:flex-start; margin:20px 0 25px; }.contact-email { font:italic 17px Georgia,serif; text-decoration:underline; }

/* 250 for 250 */
.initiative-story { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; align-items:center; }
.initiative-stamp { aspect-ratio:1; background:var(--red); color:#f5e7d4; border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; box-shadow:0 0 0 35px rgba(201,67,67,.08); }
.initiative-stamp b { max-width:90%; color:#f5e7d4; font:700 clamp(96px,12vw,190px)/.82 Georgia,serif; letter-spacing:-.055em; white-space:nowrap; font-variant-numeric:lining-nums tabular-nums; }.initiative-stamp>span { margin-top:25px; font-size:13px; font-weight:800; letter-spacing:.3em; }
.long-copy>p:not(.kicker) { color:#4b5561; font:17px/1.75 Georgia,serif; }
.three-goals { margin-top:38px; padding-top:25px; border-top:1px solid #c8bba7; display:flex; gap:25px; flex-wrap:wrap; }
.three-goals span { text-transform:uppercase; font-size:10px; font-weight:800; letter-spacing:.1em; }.three-goals b { color:var(--red); margin-right:8px; }
.module-feature { padding:90px 9vw; display:grid; grid-template-columns:.65fr 1fr; gap:9vw; align-items:center; color:white; background:var(--navy); }
.module-feature img { width:100%; max-height:600px; object-fit:contain; filter:drop-shadow(0 24px 32px rgba(0,0,0,.35)); }.module-feature h2 { color:white; }.module-feature p:not(.section-number) { color:#c6cfdb; font:17px/1.7 Georgia,serif; }.module-feature .button { margin-top:18px; }
.module-pdf-link { display:block; position:relative; transition:transform .22s ease; }.module-pdf-link:hover { transform:translateY(-5px); }.module-pdf-link img { display:block; }
.module-pdf-link>span { padding:14px 17px; display:flex; align-items:center; gap:28px; position:absolute; right:5px; bottom:5px; color:white; background:var(--red); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 10px 24px rgba(0,0,0,.28); }.module-pdf-link:hover>span { color:var(--red); background:white; }

/* Game */
.game-intro { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }.game-intro>div>p:not(.kicker) { color:#4d5662; font:17px/1.75 Georgia,serif; }
.game-intro>img { width:100%; filter:drop-shadow(0 25px 28px rgba(7,26,52,.22)); }
.game-video-section { display:grid; grid-template-columns:.62fr 1.38fr; gap:7vw; align-items:center; color:white; background:var(--navy); }.game-video-section h2 { color:white; }.game-video-section>div:first-child>p:last-child { color:#bdc8d5; font:17px/1.7 Georgia,serif; }
.game-video-shell { position:relative; isolation:isolate; box-shadow:0 28px 60px rgba(0,0,0,.3); }
.game-video-shell video { display:block; width:100%; aspect-ratio:16/9; background:#020814; border:1px solid rgba(255,255,255,.22); }
.game-video-play { width:138px; height:138px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; position:absolute; z-index:3; left:50%; top:50%; transform:translate(-50%,-50%); color:white; background:rgba(201,67,67,.96); border:2px solid white; border-radius:50%; cursor:pointer; box-shadow:0 0 0 13px rgba(201,67,67,.22),0 18px 38px rgba(0,0,0,.4); transition:transform .2s ease,background .2s ease,opacity .2s ease; }
.game-video-play span { margin-left:6px; font-size:34px; line-height:1; }.game-video-play b { font-size:10px; letter-spacing:.12em; text-transform:uppercase; }.game-video-play:hover { background:white; color:var(--red); transform:translate(-50%,-50%) scale(1.06); }.game-video-shell.is-playing .game-video-play { opacity:0; pointer-events:none; }
.game-strip { display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--navy); }.game-strip img { width:100%; height:420px; object-fit:contain; padding:40px; background:var(--navy); }
.game-values { background:#f1e2cd; }.game-values>div { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:45px; }
.game-values article { padding:35px; background:var(--paper); border-top:5px solid var(--red); }.game-values article>b { color:var(--red); font:italic 15px Georgia; }.game-values h3 { font:500 30px Georgia,serif; margin:40px 0 15px; }.game-values article p { color:#59606b; line-height:1.65; }

/* Profiles */
.featured-profile { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; align-items:center; }
.featured-portrait { min-height:560px; position:relative; overflow:hidden; background:var(--red); }.featured-portrait:after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(7,26,52,.78),transparent 65%); }.featured-portrait img { width:100%; height:560px; object-fit:cover; mix-blend-mode:multiply; filter:grayscale(1) contrast(1.06); opacity:.85; }.featured-portrait span { position:absolute; z-index:2; left:35px; bottom:30px; color:white; font-size:11px; font-weight:800; letter-spacing:.18em; }
.featured-profile article h2 em { display:block; margin-top:10px; color:var(--red); font-size:.48em; font-weight:400; }.featured-profile article>p:not(.section-number) { color:#4d5662; font:17px/1.75 Georgia,serif; }.featured-profile .profile-deck { color:var(--navy)!important; font-size:22px!important; }.featured-profile .button { margin-top:20px; }
.profiles-film { padding:105px 7vw; display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:7vw; align-items:center; color:white; background:var(--navy); position:relative; overflow:hidden; }
.profiles-film:before { content:"★　　★　　　★"; position:absolute; right:4vw; top:28px; color:rgba(255,255,255,.22); font-size:11px; letter-spacing:7px; }
.profiles-film-copy { max-width:510px; }.profiles-film-copy .section-number { color:#ef7777; }.profiles-film-copy h2 { margin:0 0 25px; color:white; font:500 clamp(43px,5vw,72px)/1 Georgia,serif; letter-spacing:-.045em; }.profiles-film-copy p:not(.section-number) { margin:0 0 28px; color:#c8d1dc; font:17px/1.72 Georgia,serif; }
.profiles-film-frame { width:100%; aspect-ratio:16/9; position:relative; overflow:hidden; background:#020814; border:1px solid rgba(255,255,255,.28); box-shadow:0 26px 55px rgba(0,0,0,.38); }.profiles-film-frame iframe { width:100%; height:100%; position:absolute; inset:0; border:0; }
.recent-profiles { padding:105px 7vw; color:white; background:var(--navy); }.recent-profiles h2 { color:white; }.recent-profiles .section-heading { align-items:center; }.profile-list { border-top:1px solid rgba(255,255,255,.2); }
.profile-list>a { min-height:110px; display:grid; grid-template-columns:60px 1fr auto 40px; align-items:center; gap:20px; border-bottom:1px solid rgba(255,255,255,.16); transition:.2s; }.profile-list>a:hover { background:rgba(255,255,255,.05); padding:0 15px; }.profile-list>a>span { color:#e87575; font:italic 14px Georgia; }.profile-list h3 { margin:0 0 6px; font:500 28px Georgia,serif; }.profile-list p { margin:0; color:#9fabb9; font-size:13px; }.profile-list>a>b { color:#c4cbd5; font-size:12px; font-weight:500; }

/* Article */
.article-page { background:var(--paper); }.article-header { padding:110px 12vw 70px; color:white; background:var(--navy); }.article-header h1 { color:white; }.article-header>p:last-child { margin:0; color:#c8d0da; font:italic 22px Georgia,serif; }
.article-page>figure { margin:0; padding:70px 12vw 25px; display:grid; grid-template-columns:1fr auto; gap:25px; align-items:end; background:#f1e2ce; }.article-page figure img { width:100%; height:600px; object-fit:cover; object-position:center 22%; filter:grayscale(1); }.article-page figcaption { max-width:220px; padding-bottom:10px; font:italic 15px/1.5 Georgia,serif; color:#5b626b; }
.article-body { max-width:820px; margin:auto; padding:75px 30px 115px; }.article-body p { font:18px/1.8 Georgia,serif; color:#384350; }.dropcap:first-letter { float:left; color:var(--red); font:78px/.75 Georgia; padding:10px 12px 2px 0; }.article-body blockquote { margin:55px -70px; padding:45px 70px; border-left:5px solid var(--red); background:#f1e2ce; color:var(--navy); font:italic 29px/1.45 Georgia,serif; }
.wp-article-content > p:first-child:first-letter { float:left; color:var(--red); font:78px/.75 Georgia; padding:10px 12px 2px 0; }
.wp-article-content h2,.wp-article-content h3 { margin:48px 0 20px; color:var(--navy); font:500 34px/1.2 Georgia,serif; }
.wp-article-content ul,.wp-article-content ol { color:#384350; font:18px/1.7 Georgia,serif; }
.further-reading { margin:55px 0 45px; padding:36px 40px; border-top:4px solid var(--red); background:#f7f0e6; }.further-reading h2 { margin:0 0 20px; color:var(--navy); font:700 27px/1.2 Georgia,serif; }.further-reading ul { margin:0; padding-left:22px; }.further-reading li { margin:10px 0; color:#384350; font:17px/1.55 Georgia,serif; }.further-reading a { color:var(--navy); text-decoration-color:var(--red); text-underline-offset:4px; }
.article-subheading { margin:48px 0 20px; color:var(--navy); font:500 34px/1.2 Georgia,serif; }.article-list-item { padding-left:18px; }.article-inline-image { margin:48px 0; }.article-inline-image img { display:block; width:100%; max-height:620px; object-fit:contain; filter:none!important; }.profile-article .article-header h1 { max-width:1180px; font-size:clamp(52px,6.2vw,92px); }
.profile-video-feature { width:min(1080px,86vw); margin:80px auto 10px; padding:clamp(34px,5vw,64px); display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,350px); gap:clamp(38px,7vw,90px); align-items:center; position:relative; overflow:hidden; color:white; background:var(--navy); box-shadow:0 26px 55px rgba(7,26,52,.2); }
.profile-video-feature:before { content:"★"; position:absolute; right:30px; top:22px; color:var(--red); font-size:18px; }
.profile-video-copy { max-width:510px; }.profile-video-copy .section-number { color:#ef7777; }.profile-video-copy h2 { margin:0 0 24px; color:white; font:500 clamp(38px,4.6vw,62px)/1.04 Georgia,serif; letter-spacing:-.04em; }.profile-video-copy p:not(.section-number) { margin:0 0 28px; color:#c8d1dc; font:17px/1.7 Georgia,serif; }
.profile-video-link { display:inline-flex; align-items:center; gap:16px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.55); color:white; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.profile-video-link span { color:#ef7777; font-size:15px; }
.profile-video-frame { width:100%; aspect-ratio:9/16; position:relative; overflow:hidden; background:#020814; border:1px solid rgba(255,255,255,.28); box-shadow:0 20px 42px rgba(0,0,0,.38); }
.profile-video-frame iframe { width:100%; height:100%; position:absolute; inset:0; border:0; }
.profile-video-feature.profile-video-chapter { grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr); }.profile-video-chapter .profile-video-frame { aspect-ratio:16/9; }

/* Archive */
.archive-intro { max-width:760px; margin-bottom:70px; }.archive-intro>p:not(.kicker) { color:#4e5763; font:18px/1.7 Georgia,serif; }
.archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.archive-grid a { min-height:390px; position:relative; overflow:hidden; color:white; background:var(--navy); transition:.25s; isolation:isolate; }.archive-grid a:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(3,17,38,.98) 0%,rgba(3,17,38,.34) 56%,rgba(3,17,38,.06) 100%); }.archive-grid a:hover { transform:translateY(-7px); box-shadow:0 18px 35px rgba(7,26,52,.22); }.archive-grid a>img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 18%; filter:grayscale(1) contrast(1.04); transition:.3s; }.archive-grid a:hover>img { filter:grayscale(.15) contrast(1.04); transform:scale(1.025); }.archive-card-copy { position:absolute; inset:0; padding:25px; display:flex; flex-direction:column; }.archive-card-copy>span { color:#ff8b8b; font:italic 13px Georgia; }.archive-grid h3 { margin:auto 36px 8px 0; font:500 29px/1.08 Georgia,serif; }.archive-grid p { margin:0; color:#ccd4de; font-size:10px; text-transform:uppercase; letter-spacing:.11em; }.archive-grid a b { position:absolute; right:22px; bottom:23px; color:#ff8b8b; font-weight:400; }

/* Resources */
.resource-feature { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }.resource-feature>div:first-child>p:not(.kicker) { color:#4d5661; font:18px/1.75 Georgia,serif; }
.resource-feature-link { min-height:570px; padding:42px; display:grid; place-items:center; position:relative; overflow:hidden; background:var(--navy); box-shadow:0 24px 50px rgba(7,26,52,.18); }
.resource-feature-link:before { content:"★"; position:absolute; right:24px; top:18px; color:var(--red); font-size:19px; }
.resource-feature-link img { display:block; width:min(100%,390px); max-height:500px; object-fit:contain; box-shadow:0 20px 40px rgba(0,0,0,.38); transition:transform .25s ease; }
.resource-feature-link span { padding:15px 18px; display:flex; align-items:center; justify-content:space-between; gap:35px; position:absolute; right:20px; bottom:20px; color:white; background:var(--red); font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; box-shadow:0 10px 22px rgba(0,0,0,.22); }
.resource-feature-link:hover img { transform:scale(1.018); }.resource-feature-link:hover span { background:white; color:var(--red); }
.resource-video-card { margin:0 7vw 35px; padding:30px; display:grid; grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr); gap:42px; align-items:center; background:#f1e3d0; border-top:5px solid var(--red); box-shadow:0 20px 38px rgba(7,26,52,.1); }
.resource-video-thumb { aspect-ratio:16/9; position:relative; overflow:hidden; background:var(--navy); }.resource-video-thumb img { width:100%; height:100%; object-fit:cover; display:block; }.resource-video-play { width:76px; height:76px; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center; color:white; background:rgba(201,67,67,.96); border:2px solid white; border-radius:50%; font-size:27px; box-shadow:0 0 0 10px rgba(201,67,67,.22); }.resource-video-play span { margin-left:5px; }
.resource-video-copy .section-number { margin-bottom:17px; }.resource-video-copy h2 { margin:0 0 16px; color:var(--navy); font:500 clamp(31px,3.2vw,48px)/1.08 Georgia,serif; letter-spacing:-.035em; }.resource-video-copy p:not(.section-number) { margin:0 0 20px; color:#505965; font:16px/1.68 Georgia,serif; }.resource-video-copy b { color:var(--red); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.resource-video-player { width:100%; aspect-ratio:16/9; position:relative; overflow:hidden; background:#020814; box-shadow:0 16px 32px rgba(7,26,52,.22); }.resource-video-player iframe { width:100%; height:100%; position:absolute; inset:0; border:0; }
.resource-groups { padding-top:20px; }.resource-group { padding:85px 0; border-top:1px solid #cdbfac; }.resource-group>header { display:grid; grid-template-columns:120px 1fr; gap:30px; margin-bottom:40px; }.resource-group>header>span { color:var(--red); font:italic 48px Georgia,serif; }.resource-group h2 { margin:0 0 10px; }.resource-group>header p { max-width:660px; color:#59616b; line-height:1.65; }
.resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.resource-grid a { min-height:270px; padding:28px; position:relative; background:#f1e3d0; border-bottom:4px solid transparent; transition:.2s; }.resource-grid a:hover { transform:translateY(-5px); border-color:var(--red); }.resource-logo { width:68px; height:68px; margin-bottom:24px; padding:9px; display:grid; place-items:center; background:white; border:1px solid rgba(7,26,52,.1); }.resource-logo img { display:block; max-width:100%; max-height:100%; object-fit:contain; }.resource-grid h3 { margin:0 0 14px; color:var(--navy); font:500 25px Georgia,serif; }.resource-grid p { color:#5b626b; font-size:14px; line-height:1.6; }.resource-grid b { position:absolute; right:25px; bottom:22px; color:var(--red); }

@media (max-width:900px) {
  .desktop-nav { display:none; }.site-header>.button { display:none; }
  .mobile-header-actions { display:flex; align-items:center; gap:10px; }
  .mobile-support { padding:11px 14px; color:white; background:var(--red); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; box-shadow:0 7px 18px rgba(201,67,67,.24); }
  .mobile-menu { position:relative; }
  .mobile-menu summary { width:42px; height:42px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; cursor:pointer; list-style:none; border:1px solid rgba(7,26,52,.24); background:#fffaf1; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary span { width:18px; height:2px; background:var(--navy); }
  .mobile-menu nav { width:min(330px,92vw); padding:16px; position:absolute; top:50px; right:0; display:grid; background:#fffaf1; border-top:4px solid var(--red); box-shadow:0 22px 45px rgba(7,26,52,.2); }
  .mobile-menu nav a { padding:15px 12px; border-bottom:1px solid rgba(7,26,52,.12); color:var(--navy); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
  .mobile-menu nav .mobile-menu-donate { margin-top:10px; display:flex; justify-content:space-between; color:white; background:var(--red); border:0; }
  .hero { grid-template-columns:1fr; }.hero-copy { padding:70px 7vw 110px; }.hero-art { min-height:560px; }.hero-bottom { right:0; }
  .mission { grid-template-columns:1fr; gap:20px; }.mission-copy { max-width:620px; }
  .section-heading { align-items:start; flex-direction:column; }.story-grid { grid-template-columns:1fr; }.story-card { min-height:420px; }
  .initiative { grid-template-columns:1fr; }.initiative:before { inset:0 0 50% 0; }.big-number { min-height:420px; display:flex; align-items:center; }.initiative-copy { background:var(--cream); }
  .sitewide-support-inner { grid-template-columns:70px 1fr; }.sitewide-support-button { grid-column:2; justify-self:start; }
  footer { grid-template-columns:1fr; } footer>div { justify-content:flex-start; } footer small { grid-column:auto; }
  .page-hero { min-height:430px; }.donate-layout,.contact-layout,.initiative-story,.module-feature,.game-intro,.game-video-section,.featured-profile,.resource-feature,.profiles-film,.resource-video-card { grid-template-columns:1fr; }
  .donate-hero { padding-right:7vw; }.donate-hero:after { opacity:.12; right:-55px; }.gratitude-note,.contact-art { min-height:460px; }.initiative-stamp { max-width:520px; width:90%; margin:auto; }.module-feature img { max-height:480px; }
  .home-story-intro,.home-next-chapter,.home-abundance,.home-legacy { grid-template-columns:1fr; }.chapter-number { width:110px; height:110px; }.legacy-quote { position:relative; top:auto; }
  .game-values>div,.archive-grid,.resource-grid { grid-template-columns:1fr 1fr; }.game-strip { grid-template-columns:1fr; }.article-page>figure { grid-template-columns:1fr; }.article-body blockquote { margin:45px -20px; padding:35px 35px; }
  .profile-video-feature,.profile-video-feature.profile-video-chapter { width:88vw; grid-template-columns:1fr; }.profile-video-copy { max-width:650px; }.profile-video-frame { width:min(100%,360px); justify-self:center; }.profile-video-chapter .profile-video-frame { width:100%; }
}
@media (max-width:560px) {
  body.admin-bar .site-header { top:46px; }
  .site-header { height:76px; padding:0 14px; }.brand { gap:8px; }.brand-name { font-size:10px; }.brand-mark { width:34px; height:34px; }.mobile-support { padding:10px 11px; }.mobile-menu summary { width:38px; height:38px; }
  .hero { min-height:auto; }.hero h1 { font-size:58px; }.hero-actions { align-items:flex-start; flex-direction:column; }.hero-art { min-height:500px; }
  .portrait-card { width:155px; height:225px; }.card-one{left:4%}.card-two{left:31%}.card-three{left:57%}.art-caption{display:none}
  .hero-bottom { gap:9px; }.hero-bottom span { font-size:7px; }
  .mission,.stories { padding:90px 6vw; }.mission h2,.section-heading h2,.initiative h2,.join h2 { font-size:43px; }
  .big-number { font-size:190px; }.initiative-copy { padding:80px 7vw; }
  .page-hero { min-height:390px; padding:75px 6vw 65px; }.page-hero h1,.article-header h1 { font-size:52px; }.page-section { padding:80px 6vw; }
  .game-values>div,.archive-grid,.resource-grid { grid-template-columns:1fr; }.profile-list>a { grid-template-columns:40px 1fr 25px; }.profile-list>a>b { display:none; }
  .article-header { padding:80px 6vw 60px; }.article-page>figure { padding:45px 6vw 20px; }.article-page figure img { height:430px; }.resource-group>header { grid-template-columns:1fr; }.resource-group>header>span { font-size:34px; }.game-strip img { height:320px; padding:25px; }
  .home-next-chapter,.home-legacy { padding:80px 6vw; }.abundance-portrait,.abundance-portrait img { min-height:470px; height:470px; }.legacy-quote blockquote { font-size:26px; }
  .sitewide-support { padding:18px 14px; }.sitewide-support-inner { padding:30px 24px; grid-template-columns:1fr; gap:24px; }.support-seal { width:58px; height:58px; }.sitewide-support-button { width:100%; min-width:0; grid-column:1; }.sitewide-support-copy h2 { font-size:31px; }
  .donate-hero-actions { align-items:flex-start; flex-direction:column; }.donate-hero-button { width:100%; min-width:0; }.donate-copy { padding:34px 24px; }.donation-impact { grid-template-columns:1fr; }.donation-impact span { display:flex; gap:12px; align-items:center; }.donation-impact b { display:inline; margin:0; }.donate-copy>.button { width:100%; min-width:0; padding:21px 18px; }
  .resource-feature-link { min-height:500px; padding:28px 20px 74px; }.resource-feature-link img { max-height:430px; }.resource-feature-link span { left:20px; right:20px; justify-content:center; }
  .game-video-play { width:92px; height:92px; gap:7px; }.game-video-play span { font-size:25px; }.game-video-play b { font-size:8px; }
  .initiative-stamp b { font-size:clamp(90px,30vw,150px); }.initiative-stamp>span { margin-top:16px; }
  .module-pdf-link>span { left:5px; right:5px; justify-content:center; }
  .profile-video-feature { width:auto; margin:52px 6vw 0; padding:34px 24px 28px; gap:30px; }.profile-video-feature:before { right:18px; top:15px; }.profile-video-copy h2 { font-size:38px; }.profile-video-frame { width:min(100%,330px); }
  .profiles-film { padding:78px 6vw; gap:34px; }.profiles-film-copy h2 { font-size:43px; }.resource-video-card { margin:0 6vw 25px; padding:20px; gap:26px; }.resource-video-play { width:62px; height:62px; font-size:22px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
