:root{
  --parchment:#FBF8F3;
  --surface:#FFFFFF;
  --surface-warm:#F5F0E6;
  --ink:#1F2933;
  --muted:#4A5568;
  --olive:#2F4A2C;
  --olive-2:#3D5A3A;
  --olive-tint:#EDF1EA;
  --amber:#F2C230;
  --amber-soft:#FDF3D4;
  --amber-ink:#7A5D00;
  --border:#E2DCD0;
  --border-strong:#CFC7B6;
  --radius:14px;
  --radius-sm:8px;
  --shadow:0 1px 2px rgba(31,41,51,.05), 0 8px 24px -16px rgba(31,41,51,.18);
  --sans:"Satoshi","Helvetica Neue",Arial,sans-serif;
  --serif:"Gambetta",Georgia,"Times New Roman",serif;
  --wrap:1200px;
  --read:680px;
  --step:clamp(1.5rem,4vw,2.5rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--parchment);color:var(--ink);
  font-family:var(--sans);font-size:1.125rem;line-height:1.65;
  font-feature-settings:"kern" 1;
}
img{max-width:100%;height:auto;display:block}
svg{max-width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
a{color:var(--olive);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--olive-2)}
:focus-visible{outline:3px solid var(--olive);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;background:var(--olive);color:#fff;padding:.75rem 1.25rem;z-index:200;border-radius:0 0 var(--radius-sm) 0}
.skip:focus{left:0}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}
.read{max-width:calc(var(--read) + 5rem)}

h1,h2,h3{line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.25rem,5.2vw,3.5rem);font-weight:700}
h2{font-size:clamp(1.6rem,3.2vw,2.25rem);font-weight:700}
h3{font-size:1.375rem;font-weight:700}
p{margin:0 0 1.1em}
time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9375rem}
.lede{font-size:clamp(1.1875rem,2.2vw,1.375rem);color:var(--muted);max-width:60ch;line-height:1.55}
.eyebrow{font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--amber-ink);margin:0 0 1rem}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--parchment);border-bottom:1px solid var(--border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:76px}
.brand{display:flex;align-items:center;gap:.75rem;color:var(--olive);text-decoration:none}
.logo-mark{width:32px;height:32px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-text strong{font-family:var(--serif);font-size:1.1875rem;font-weight:600;letter-spacing:.01em}
.brand-text em{font-style:normal;font-size:.78125rem;color:var(--muted);letter-spacing:.04em}
.brand--footer .brand-text em{display:none}
.site-header nav ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.site-header nav a{display:flex;align-items:center;min-height:44px;padding:0 .875rem;border-radius:var(--radius-sm);
  color:var(--ink);text-decoration:none;font-size:1rem;font-weight:500}
.site-header nav a:hover{background:var(--olive-tint);color:var(--olive)}
.site-header nav a[aria-current="page"]{background:var(--olive);color:#fff}
.nav-toggle{display:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.5rem;
  border-radius:999px;font-weight:700;font-size:1rem;text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn--primary{background:var(--olive);color:#fff}
.btn--primary:hover{background:var(--olive-2);color:#fff}
.btn--ghost{background:transparent;color:var(--olive);border-color:var(--border-strong)}
.btn--ghost:hover{background:var(--olive-tint);border-color:var(--olive)}

/* ---------- chips ---------- */
.chip{display:inline-block;padding:.25rem .625rem;border-radius:999px;font-size:.75rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase}
.chip--verse{background:var(--amber-soft);color:var(--amber-ink);border:1px solid #EAD9A0}
.chip--rev{background:var(--olive-tint);color:var(--olive);border:1px solid #D2DDCD}

/* ---------- hero ---------- */
.hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,#FDFBF7 0%,var(--parchment) 100%)}
.hero-inner{max-width:52rem}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.5rem,6.4vw,4.25rem);letter-spacing:-.02em}
.hero .lede{margin-bottom:2rem}
.hero-actions{display:flex;gap:.875rem;flex-wrap:wrap}

/* ---------- sections ---------- */
section{padding-block:var(--step)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-bottom:1.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.section-head h2{margin:0}
.section-link{font-weight:700;font-size:.9375rem;text-decoration:none}
.section-link:hover{text-decoration:underline}

.today-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.25rem);box-shadow:var(--shadow);border-top:4px solid var(--amber)}
.panel--rev{border-top-color:var(--olive)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.scripture-ref{font-family:var(--serif);font-size:1.5rem;font-weight:600;margin-bottom:.75rem;color:var(--olive)}
.panel-title{font-weight:700;margin-bottom:.5rem}
.panel-body{color:var(--muted)}

.panel-image{margin:-clamp(1.5rem,3vw,2.25rem) -clamp(1.5rem,3vw,2.25rem) 1.25rem;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}
.panel-image img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover;transition:transform 0.6s ease-out}
.panel:hover .panel-image img{transform:scale(1.05)}

.scripture{margin:0 0 1.25rem;padding:1.25rem 1.5rem;background:var(--amber-soft);border-radius:var(--radius-sm);
  border-left:4px solid var(--amber)}
.scripture p{font-family:var(--serif);font-size:1.25rem;line-height:1.5;margin:0;color:var(--ink)}
.scripture--lg{padding:clamp(1.5rem,3vw,2rem);margin-block:2rem}
.scripture--lg p{font-size:clamp(1.3125rem,2.6vw,1.625rem)}
.scripture cite{display:block;margin-top:1rem;font-style:normal;font-size:.9375rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--amber-ink)}

.vision{background:var(--olive-tint);border-block:1px solid var(--border)}
.vision-lead{font-size:1.25rem;line-height:1.6}
.vision p{color:var(--ink)}

/* ---------- cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.5rem;height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
.card-ref{font-family:var(--serif);font-size:1.3125rem;font-weight:600;margin-bottom:.375rem}
.card-ref a{text-decoration:none}
.card-ref a:hover{text-decoration:underline}
.card-title{font-size:.9375rem;font-weight:700;color:var(--ink);margin-bottom:.625rem}
.card-excerpt{color:var(--muted);font-size:1rem;margin-bottom:1.25rem}
.card-link{margin-top:auto;font-weight:700;font-size:.9375rem;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.card-link:hover{text-decoration:underline}

.card-wrap{display:flex}
.card-wrap[hidden]{display:none}

/* ---------- filters ---------- */
.filters{padding-block:0 1.5rem}
.filter-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}
.filter-label{font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted);min-width:4rem}
.filter{min-height:44px;padding:.5rem 1rem;border-radius:999px;border:1px solid var(--border-strong);
  background:var(--surface);color:var(--ink);font:inherit;font-size:.9375rem;font-weight:500;cursor:pointer}
.filter:hover{background:var(--olive-tint);border-color:var(--olive)}
.filter.is-active{background:var(--olive);color:#fff;border-color:var(--olive);font-weight:700}
.result-count{font-size:.9375rem;color:var(--muted);margin:.5rem 0 0}

/* ---------- article ---------- */
.page-head{padding-bottom:0}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 1.25rem;padding:0;font-size:.9375rem;color:var(--muted)}
.breadcrumb li+li::before{content:"/";margin-right:.5rem;color:var(--border-strong)}
.breadcrumb a{color:var(--muted)}
.article-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}
.article h1{font-family:var(--serif);font-weight:600}
.article-ref{font-size:1rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--olive);margin-bottom:0}
.prose{max-width:var(--read)}
.prose p{margin-bottom:1.35em}
.pull{margin:2rem 0;padding-left:1.5rem;border-left:4px solid var(--amber)}
.pull p{font-family:var(--serif);font-size:1.5rem;line-height:1.4;margin:0;color:var(--olive)}
.author-card{margin-top:2.5rem;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}
.author-card p{margin:0}
.author-name{font-family:var(--serif);font-size:1.25rem;font-weight:600;margin-bottom:.25rem !important}

.pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.5rem 0}
.pager-item{display:flex;flex-direction:column;gap:.25rem;padding:1.125rem 1.375rem;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;min-height:44px}
.pager-item:hover{border-color:var(--olive);background:var(--olive-tint)}
.pager-item span{font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.pager-item strong{font-family:var(--serif);font-size:1.125rem;font-weight:600;color:var(--olive)}
.pager-item--next{text-align:right}
.related{margin-top:1rem}
.related h2{font-size:1.5rem}

/* ---------- video ---------- */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.video{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.video-facade{position:relative;display:block;width:100%;padding:0;border:0;background:#1F2933;cursor:pointer;aspect-ratio:16/9}
.video-facade img{width:100%;height:100%;object-fit:cover}
.video-facade .play{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;
  background:var(--amber);display:grid;place-items:center}
.video-facade .play::after{content:"";width:0;height:0;border-left:20px solid var(--ink);
  border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px}
.video-facade:hover .play{background:#fff}
.video-facade iframe{width:100%;height:100%;border:0}
.video-title{font-size:1.0625rem;font-weight:700;margin:1rem 1.25rem .25rem}
.video-meta{font-size:.875rem;color:var(--muted);margin:0 1.25rem 1.25rem}

/* ---------- forms ---------- */
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;align-items:start}
.form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2rem)}
.form h2{font-size:1.5rem}
.field{margin-bottom:1.25rem}
.field label{display:block;font-weight:700;font-size:.9375rem;margin-bottom:.375rem}
.field input,.field textarea{width:100%;min-height:48px;padding:.75rem .875rem;font:inherit;font-size:1rem;
  color:var(--ink);background:var(--parchment);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--olive);background:#fff}
.hint{font-size:.875rem;color:var(--muted);margin:.375rem 0 0}
.aside-card{background:var(--olive-tint);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2rem)}
.aside-card h2{font-size:1.25rem;margin-top:1.5rem}
.aside-card h2:first-child{margin-top:0}
.empty-state{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2rem)}
.empty-state h2{font-size:1.375rem}
.empty-state p{color:var(--muted);margin:0}
.empty{color:var(--muted)}

/* ---------- prayer band ---------- */
.prayer{background:var(--olive);color:#fff}
.prayer-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.prayer h2{color:#fff;margin-bottom:.5rem}
.prayer p{color:#E4EBE1;margin:0;max-width:46ch}
.prayer-actions{display:flex;gap:.875rem;flex-wrap:wrap}
.prayer .btn--primary{background:var(--amber);color:var(--ink)}
.prayer .btn--primary:hover{background:#FFD75E;color:var(--ink)}
.prayer .btn--ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.prayer .btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}

/* ---------- footer ---------- */
.site-footer{background:#F3EFE6;border-top:1px solid var(--border);padding-top:var(--step)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}
.footer-h{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.footer-note{color:var(--muted);font-size:1rem;max-width:34ch;margin-top:1rem}
.footer-nav,.social{list-style:none;margin:0;padding:0}
.footer-nav a,.social a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:500}
.footer-nav a:hover,.social a:hover{text-decoration:underline}

.social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:50%;
  color:var(--olive);
  background:var(--surface);
  border:1px solid var(--border);
  transition:all 0.2s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.social-link:hover{
  color:#fff;
  background:var(--olive);
  border-color:var(--olive);
  transform:translateY(-2px);
  text-decoration:none;
}
.social-link svg{
  transition:transform 0.2s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.social-link:hover svg{
  transform:scale(1.1);
}

.instagram-photo{
  display:inline-block;
  margin-top:.75rem;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 4px 12px rgba(31,41,51,.15);
  transition:transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.3s ease;
}
.instagram-photo:hover{
  transform:scale(1.05);
  box-shadow:0 8px 24px rgba(31,41,51,.25);
}
.instagram-photo img{
  display:block;
  width:60px;
  height:60px;
  object-fit:cover;
}

.instagram-showcase{
  margin-top:1.5rem;
}
.instagram-showcase a{
  display:block;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 16px rgba(31,41,51,.12);
  transition:transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.3s ease;
}
.instagram-showcase a:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(31,41,51,.2);
}
.instagram-showcase img{
  display:block;
  width:250px;
  height:250px;
  object-fit:cover;
}

.footer-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:2rem;
  padding-top:1.25rem;padding-bottom:2rem;border-top:1px solid var(--border-strong)}
.footer-base p{margin:0;font-size:.9375rem;color:var(--muted)}

.whatsapp-float{
  position:fixed;
  bottom:24px;
  right:24px;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 16px rgba(37,211,102,.4), 0 8px 24px rgba(31,41,51,.15);
  text-decoration:none;
  z-index:1000;
  transition:transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.3s ease;
  animation:whatsapp-pulse 2s infinite;
}
.whatsapp-float:hover{
  transform:scale(1.12);
  box-shadow:0 8px 24px rgba(37,211,102,.5), 0 12px 32px rgba(31,41,51,.2);
  color:#fff;
}
.whatsapp-float:focus-visible{
  outline:3px solid #25D366;
  outline-offset:4px;
}
.whatsapp-float svg{
  transition:transform 0.2s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.whatsapp-float:hover svg{
  transform:scale(1.15);
}
.whatsapp-tooltip{
  position:absolute;
  right:70px;
  bottom:50%;
  transform:translateY(50%);
  background:var(--ink);
  color:#fff;
  padding:.5rem 1rem;
  border-radius:var(--radius-sm);
  font-size:.875rem;
  font-weight:500;
  white-space:nowrap;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
  transform:translateY(50%) translateX(10px);
  pointer-events:none;
}
.whatsapp-float:hover .whatsapp-tooltip{
  opacity:1;
  visibility:visible;
  transform:translateY(50%) translateX(0);
}
@keyframes whatsapp-pulse{
  0%{box-shadow:0 4px 16px rgba(37,211,102,.4), 0 8px 24px rgba(31,41,51,.15)}
  50%{box-shadow:0 4px 16px rgba(37,211,102,.4), 0 8px 24px rgba(31,41,51,.15), 0 0 0 8px rgba(37,211,102,.3)}
  100%{box-shadow:0 4px 16px rgba(37,211,102,.4), 0 8px 24px rgba(31,41,51,.15)}
}
@media (max-width:640px){
  .whatsapp-float{
    bottom:16px;
    right:16px;
    width:52px;
    height:52px;
  }
  .whatsapp-tooltip{
    display:none;
  }
}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:48px;height:48px;
    padding:0 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}
  .nav-toggle span{display:block;height:2px;background:var(--ink);border-radius:2px}
  .site-header nav{display:none;width:100%;order:3;padding-bottom:1rem}
  .site-header nav.is-open{display:block}
  .site-header nav ul{flex-direction:column;gap:.125rem}
  .site-header nav a{width:100%;min-height:48px}
  .header-inner{flex-wrap:wrap}
  .pager{grid-template-columns:1fr}
  .pager-item--next{text-align:left}
}

/* ---------- hero with video ---------- */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,4vw,3.5rem);align-items:center}
.hero-grid .hero-inner{max-width:34rem}
.hero-video{margin:0}
.hero-video .video-facade{border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 4px rgba(31,41,51,.08),0 24px 48px -28px rgba(31,41,51,.4)}
.hero-video figcaption{margin-top:.875rem;font-size:.9375rem;color:var(--muted)}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-grid .hero-inner{max-width:none}
}

/* ---------- imagery ---------- */
.vision-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(2rem,4vw,3.5rem);align-items:center}
.vision-text{max-width:42rem}
.vision-figure{margin:0}
.vision-figure img{border-radius:var(--radius);aspect-ratio:16/9;object-fit:cover}
@media (max-width:860px){.vision-grid{grid-template-columns:1fr}}

.prayer--image{position:relative;isolation:isolate;overflow:hidden}
.prayer--image::before{content:"";position:absolute;inset:0;z-index:-2;
  background:url("img/prayer.webp") center/cover no-repeat}
.prayer--image::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(29,45,27,.94) 0%,rgba(29,45,27,.86) 55%,rgba(29,45,27,.78) 100%)}

.page-head--image{padding-top:0}
.head-figure{margin:0 0 clamp(1.5rem,3vw,2.25rem)}
.head-figure img{width:100%;aspect-ratio:21/7;object-fit:cover;border-radius:0 0 var(--radius) var(--radius)}
@media (max-width:640px){.head-figure img{aspect-ratio:16/9}}
.aside-figure{margin:0 0 1.5rem}
.aside-figure img{border-radius:var(--radius-sm);aspect-ratio:3/2;object-fit:cover}
.journey-figure{margin:0 0 2rem}
.journey-figure img{border-radius:var(--radius);aspect-ratio:16/9;object-fit:cover}

/* ---------- series cards ---------- */
.series-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}
.series-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:260px;
  padding:1.5rem;border-radius:var(--radius);overflow:hidden;isolation:isolate;color:#fff;text-decoration:none}
.series-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.series-card::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(29,45,27,.35) 0%,rgba(29,45,27,.9) 100%)}
.series-card h3{color:#fff;font-family:var(--serif);font-weight:600;font-size:1.5rem;margin-bottom:.25rem}
.series-card p{color:#E4EBE1;margin:0;font-size:.9375rem}
.series-card span{margin-top:.75rem;font-weight:700;font-size:.9375rem}
.series-card:hover h3{text-decoration:underline}

.cross-series{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}
.visually-hidden-head{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.series{padding-top:0}

.hero-grid h1{font-size:clamp(2.125rem,4.3vw,3.375rem)}
.video-facade img{background:var(--surface-warm)}

/* brand lockup — mark + live text (text stays HTML for a11y and font loading) */
.logo-mark{width:36px;height:36px}
.brand-text strong{color:var(--ink)}
.brand-text em{color:var(--amber-ink);font-weight:700;font-size:.6875rem;letter-spacing:.11em;text-transform:uppercase}
.brand:hover .brand-text strong{color:var(--olive)}
.brand--footer .logo-mark{width:30px;height:30px}

/* ---------- welcome modal ---------- */
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:clamp(1rem,4vw,2rem)}
.modal-backdrop{position:absolute;inset:0;background:rgba(24,32,22,.72);backdrop-filter:blur(2px)}
.modal-panel{position:relative;width:min(640px,100%);max-height:calc(100dvh - 2rem);overflow:auto;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:clamp(1.5rem,3.5vw,2.25rem);box-shadow:0 32px 64px -24px rgba(24,32,22,.55)}
.modal-panel h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,3vw,1.875rem);
  margin:0 3rem .375rem 0}
.modal-sub{color:var(--muted);font-size:1rem;margin-bottom:1.25rem}
.modal-video{margin:0 0 1.5rem}
.modal-video .video-facade{border-radius:var(--radius-sm);overflow:hidden}
.modal-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.modal-close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;display:grid;place-items:center;
  border-radius:50%;border:1px solid var(--border-strong);background:var(--parchment);color:var(--ink);cursor:pointer}
.modal-close:hover{background:var(--olive);color:#fff;border-color:var(--olive)}
body.modal-open{overflow:hidden}
@media (prefers-reduced-motion:no-preference){
  .modal-panel{animation:modal-in .28s cubic-bezier(.2,.8,.2,1) both}
  @keyframes modal-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
}

/* ---------- hero with background video ---------- */
.hero--video{position:relative;isolation:isolate;overflow:hidden;border-bottom:0;
  padding-block:clamp(4rem,9vw,7.5rem);background:#1D2D1B}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media video{width:100%;height:100%;object-fit:cover;display:block}
.hero-scrim{position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(21,32,20,.94) 0%,rgba(21,32,20,.86) 42%,rgba(21,32,20,.62) 100%)}
.hero--video .eyebrow{color:var(--amber)}
.hero--video h1{color:#fff}
.hero--video .lede{color:#E8EDE5}
.hero--video .btn--primary{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.hero--video .btn--primary:hover{background:#FFD75E;color:var(--ink)}
.hero--video .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6)}
.hero--video .btn--ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;color:#fff}
.hero--video :focus-visible{outline-color:var(--amber)}

.motion-toggle{position:absolute;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,1.75rem);
  display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1rem;border-radius:999px;
  background:rgba(21,32,20,.78);color:#fff;border:1px solid rgba(255,255,255,.45);
  font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}
.motion-toggle:hover{background:rgba(21,32,20,.95);border-color:#fff}
.motion-icon{width:12px;height:12px;background:currentColor;
  clip-path:polygon(0 0,38% 0,38% 100%,0 100%,0 0,62% 0,100% 0,100% 100%,62% 100%)}
.motion-toggle[aria-pressed="true"] .motion-icon{clip-path:polygon(12% 0,100% 50%,12% 100%)}
@media (prefers-reduced-motion:reduce){.hero-media video{display:none}
  .hero-media{background:url("img/hero-poster.webp") center/cover no-repeat}}
@media (max-width:860px){
  .hero-scrim{background:linear-gradient(175deg,rgba(21,32,20,.92) 0%,rgba(21,32,20,.88) 55%,rgba(21,32,20,.8) 100%)}
  .motion-toggle{position:static;margin:1.5rem clamp(1.25rem,4vw,2.5rem) 0}
}

/* scrim retuned for the site's own aerial-mist footage (already dark) */
.hero-scrim{background:linear-gradient(100deg,rgba(21,32,20,.72) 0%,rgba(21,32,20,.60) 42%,rgba(21,32,20,.30) 100%)}
@media (max-width:860px){
  .hero-scrim{background:linear-gradient(175deg,rgba(21,32,20,.74) 0%,rgba(21,32,20,.66) 55%,rgba(21,32,20,.58) 100%)}
}

/* ================= my journey ================= */
.journey-head{padding-block:clamp(2rem,5vw,3.5rem) clamp(2rem,4vw,3rem);
  background:linear-gradient(180deg,var(--parchment) 0%,var(--surface) 100%);border-bottom:1px solid var(--border)}
.journey-head-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);
  gap:clamp(2rem,5vw,4rem);align-items:center}
.journey-intro h1{font-size:clamp(2.75rem,7vw,4.5rem);line-height:1.02;letter-spacing:-.02em;margin:.25rem 0 1.25rem}
.journey-intro .lede{max-width:34ch;margin-bottom:1rem}
.journey-byline{font-size:.9375rem;color:var(--muted);letter-spacing:.01em;
  padding-top:1rem;border-top:1px solid var(--border)}
.journey-portrait{margin:0;position:relative}
.journey-portrait img{width:100%;height:auto;display:block;border-radius:var(--radius);
  box-shadow:0 28px 56px -28px rgba(31,41,51,.4)}
.journey-portrait figcaption{margin-top:.75rem;font-size:.875rem;color:var(--muted);text-align:right}

.journey-line{padding-block:clamp(3rem,7vw,5rem)}
.steps{list-style:none;margin:0;padding:0;position:relative}
.steps::before{content:"";position:absolute;left:5.5rem;top:1.1rem;bottom:1.1rem;width:1px;
  background:linear-gradient(180deg,transparent,var(--border-strong) 12%,var(--border-strong) 88%,transparent)}
.step{display:grid;grid-template-columns:5.5rem 1fr;gap:clamp(1.5rem,3vw,2.5rem);
  padding-block:clamp(1.5rem,3vw,2.25rem)}
.step-marker{position:relative;text-align:right;padding-right:1.5rem}
.step-year{font-family:var(--sans);font-size:.8125rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--amber-ink);white-space:nowrap}
.step-marker::after{content:"";position:absolute;right:-5px;top:.28rem;width:11px;height:11px;border-radius:50%;
  background:var(--surface);border:2px solid var(--olive-2)}
.step-body h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.25rem,2.4vw,1.5rem);
  line-height:1.2;margin:0 0 .625rem}
.step-body p{margin:0;color:var(--muted)}

.journey-quote{padding-block:clamp(1rem,3vw,2rem)}
.quote-band{position:relative;margin:0;isolation:isolate;overflow:hidden;border-radius:var(--radius)}
.quote-band img{width:100%;height:clamp(320px,42vw,460px);object-fit:cover;display:block}
.quote-band blockquote{position:absolute;inset:0;z-index:1;display:grid;place-items:center;
  margin:0;padding:clamp(1.5rem,5vw,3rem);
  background:linear-gradient(180deg,rgba(21,32,20,.28) 0%,rgba(21,32,20,.62) 100%)}
.quote-band blockquote p{font-family:var(--serif);font-weight:500;color:#fff;text-align:center;
  font-size:clamp(1.5rem,3.6vw,2.5rem);line-height:1.22;max-width:22ch;
  text-shadow:0 2px 24px rgba(12,20,12,.55)}
.journey-quote .wrap,.journey-quote{--x:0}
.journey-outro{padding-block:clamp(2.5rem,6vw,4rem)}
.journey-cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}

@media (max-width:860px){
  .journey-head-grid{grid-template-columns:1fr;gap:1.75rem}
  .journey-portrait{max-width:300px}
  .journey-portrait figcaption{text-align:left}
  .steps::before{left:.5rem}
  .step{grid-template-columns:1fr;gap:.5rem;padding-left:2rem}
  .step-marker{text-align:left;padding-right:0}
  .step-marker::after{right:auto;left:-2rem;top:.35rem}
}

/* journey refinements */
.journey-intro h1{font-family:var(--serif);font-weight:600}
.page-head h1,.journey-intro h1{font-family:var(--serif);font-weight:600}
.journey-head{padding-block:clamp(1.75rem,4vw,2.75rem) clamp(2rem,4vw,3rem)}
.journey-head-grid{grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:end}
.journey-portrait img{aspect-ratio:4/5;object-fit:cover}
.steps::before{left:6.25rem}
.step{grid-template-columns:6.25rem 1fr;gap:clamp(1.75rem,3vw,3rem);align-items:start}
.step-marker{padding-right:1.75rem;padding-top:.15rem}
.step-marker::after{right:-6px}
.step + .step{border-top:1px solid var(--border)}
.step-body{max-width:62ch}
.step-body p{color:var(--ink);opacity:.86}
@media (max-width:860px){
  .journey-head-grid{align-items:start}
  .steps::before{left:.4rem}
  .step-marker::after{left:-2.05rem}
}

/* timeline marker spacing so the year label never touches the dot */
.steps::before{left:7.5rem}
.step{grid-template-columns:7.5rem 1fr}
.step-marker{padding-right:2.25rem}
.step-year{display:inline-block;max-width:100%;white-space:normal;line-height:1.35}
.journey-head-grid{grid-template-columns:minmax(0,1fr) minmax(0,320px)}
@media (max-width:860px){.steps::before{left:.4rem}.step{grid-template-columns:1fr}}

/* the sunrise has blown-out highlights — the quote needs a heavier veil to stay legible */
.quote-band blockquote{background:linear-gradient(180deg,rgba(21,32,20,.62) 0%,rgba(21,32,20,.70) 45%,rgba(21,32,20,.74) 100%)}

/* ---- mobile overrides for the journey page (must stay last) ---- */
@media (max-width:860px){
  .journey-head-grid{grid-template-columns:1fr;gap:1.5rem;align-items:start}
  .journey-intro{order:2}
  .journey-portrait{order:1;max-width:260px}
  .journey-portrait figcaption{text-align:left}
  .journey-intro h1{font-size:clamp(2.25rem,11vw,3rem)}
  .journey-intro .lede{max-width:none}
  .steps::before{left:.4rem}
  .step{grid-template-columns:1fr;gap:.5rem;padding-left:2rem}
  .step-marker{text-align:left;padding-right:0;padding-top:0}
  .step-marker::after{left:-2.05rem;right:auto;top:.35rem}
  .step-body{max-width:none}
}

/* ============================================================
   Scroll Animations & Parallax Effects
   ============================================================ */

/* Base reveal animation - elements start hidden and animate in */
[data-reveal],
[data-reveal-lines] > span,
[data-reveal-words] > span {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.2, 0.7, 0.2, 1),
              transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}

[data-reveal].is-visible,
[data-reveal-lines].is-visible > span,
[data-reveal-words].is-visible > span {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delays */
[data-reveal-delay="1"] { transition-delay: 0.1s; }
[data-reveal-delay="2"] { transition-delay: 0.2s; }
[data-reveal-delay="3"] { transition-delay: 0.3s; }
[data-reveal-delay="4"] { transition-delay: 0.4s; }
[data-reveal-delay="5"] { transition-delay: 0.5s; }

/* Reveal lines - each word/line animates */
.reveal-lines { overflow: hidden; }
.reveal-lines > span { display: inline-block; transform: translateY(100%); }
.reveal-lines.is-visible > span { opacity: 1; transform: translateY(0); }
.reveal-lines.is-visible > span:nth-child(2) { transition-delay: 0.12s; }
.reveal-lines.is-visible > span:nth-child(3) { transition-delay: 0.24s; }
.reveal-lines.is-visible > span:nth-child(4) { transition-delay: 0.36s; }

/* Reveal words */
[data-reveal-words] > span { display: inline-block; transform: translateY(0.5em); }
[data-reveal-words].is-visible > span { opacity: 1; transform: translateY(0); }

/* Section fade-in on scroll */
.section-fade {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1s cubic-bezier(0.2, 0.7, 0.2, 1),
              transform 1s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.section-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Card hover lift */
.card,
.panel,
.video {
  transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
              box-shadow 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
              border-color 0.3s ease;
}

.card:hover,
.panel:hover,
.video:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px -20px rgba(31,41,51,0.25);
  border-color: var(--olive);
}

/* Image zoom on hover */
.panel-image img,
.head-figure img,
.vision-figure img,
.journey-portrait img,
.aside-figure img,
.series-card img {
  transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.panel:hover .panel-image img,
.head-figure:hover img,
.vision-figure:hover img,
.journey-portrait:hover img,
.series-card:hover img {
  transform: scale(1.08);
}

/* Video facade play button animation */
.video-facade .play {
  transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1),
              background 0.3s ease;
}

.video-facade:hover .play {
  transform: scale(1.15);
  background: #fff;
}

/* Button hover effects */
.btn {
  transition: transform 0.2s cubic-bezier(0.2, 0.7, 0.2, 1),
              background 0.2s ease,
              border-color 0.2s ease,
              color 0.2s ease;
}

.btn:hover {
  transform: translateY(-2px);
}

.btn:active {
  transform: translateY(0);
}

/* Smooth scroll for anchor links */
html {
  scroll-behavior: smooth;
}

/* Reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal],
  [data-reveal-lines] > span,
  [data-reveal-words] > span,
  .card,
  .panel,
  .video,
  .panel-image img,
  .head-figure img,
  .vision-figure img,
  .journey-portrait img,
  .series-card img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
