/* ============================================================
   FRESH START — site-theme.css
   The ONLY stylesheet. Every page links this and nothing else.
   Any component appearing on more than one page is defined here
   and nowhere else (§7a). Do not inline a private copy per page.
   ============================================================ */

:root{
  /* structural roles — do not change */
  --ground:#141c1d;
  --ground-alt:#101718;
  --surface:#1C2526;
  --footer:#0c1112;
  --heading:#F4E9C8;
  --body:#b7c1b4;
  --muted:#7A8F7A;
  --soft:#A8B5A2;
  --line:rgba(168,181,162,0.25);

  /* brand slots — Fresh Start */
  --accent:#3F9E52;        /* leaf        5.17:1 on --ground */
  --accent-lift:#5CBB6A;   /* new growth  7.19:1 on --ground */
  --accent-deep:#2A6E39;   /* LIGHT SURFACES ONLY — 2.8:1 on dark, fails */
  --warm:#C4881A;          /* harvest gold 5.70:1 on --ground */
  --spark:#9E3550;         /* beet — 3px rules and underlines only */
  --warm-rgb:196,136,26;
  --accent-rgb:63,158,82;
}

*{box-sizing:border-box}
html{scroll-padding-top:112px;scroll-behavior:smooth}
body{
  margin:0;background:var(--ground);color:var(--body);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;
  counter-reset:sec;
}
img{display:block;max-width:100%}
hr{border:0;border-top:1px solid var(--line);margin:34px 0}

h1,h2,h3,h4{
  font-family:'Playfair Display',Georgia,serif;font-weight:700;
  line-height:1.22;letter-spacing:-0.01em;color:var(--heading);margin:0;
}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400;color:var(--accent-lift)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
strong{font-weight:600;color:var(--heading)}

a{color:var(--accent-lift)}
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,summary:focus-visible{
  outline:3px solid var(--accent-lift);outline-offset:2px
}

/* screen-reader utility — defined so hidden labels never render visibly (§6) */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip{
  position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);
  color:#08201d;font-weight:700;font-size:15px;padding:14px 22px;border-radius:0 0 5px 0;
}
.skip:focus{left:0}

.container{max-width:1080px;margin:0 auto;padding-inline:28px}
.prose{max-width:780px;margin-inline:auto}
.measure{max-width:680px}

/* ══ COUNTDOWN BAR ═════════════════════════════════════════
   Sits above the header. The single biggest conversion lever on
   this site: the event is weeks away, so urgency has to be visible
   on every page, not just the home hero. */
.countbar{
  position:fixed;inset:0 0 auto 0;z-index:110;
  background:var(--ground-alt);border-bottom:1px solid rgba(var(--warm-rgb),0.28);
  font-size:12.5px;letter-spacing:.4px;
}
.countbar-inner{
  max-width:1080px;margin:0 auto;padding:0 28px;height:42px;
  display:flex;align-items:center;justify-content:center;gap:14px;text-align:center;
}
.countbar b{color:var(--warm);font-weight:700}
.countbar .cb-sep{color:var(--line)}
.countbar a{color:var(--accent-lift);text-decoration:none;font-weight:600;white-space:nowrap}
.countbar a:hover{text-decoration:underline;text-decoration-color:var(--spark);
  text-underline-offset:3px;text-decoration-thickness:2px}
@media(max-width:620px){
  .countbar-inner{font-size:11.5px;gap:9px;padding-inline:16px}
  .countbar .cb-hide{display:none}
}

/* ══ HEADER ════════════════════════════════════════════════ */
.site-header{
  position:fixed;inset:42px 0 auto 0;z-index:100;
  background:var(--surface);border-bottom:1px solid rgba(var(--accent-rgb),0.3);
}
.header-inner{
  max-width:1080px;margin:0 auto;padding:0 28px;height:70px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.wordmark{
  font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:22px;
  color:var(--heading);text-decoration:none;letter-spacing:-0.01em;white-space:nowrap;
}
.wordmark em{font-style:italic;font-weight:400;color:var(--accent-lift)}
.site-nav{display:flex;align-items:center;gap:24px}
.site-nav a{font-size:14px;font-weight:500;color:var(--heading);text-decoration:none;
  transition:color .18s ease}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--accent-lift)}
.nav-toggle{display:none;background:none;border:0;color:var(--heading);font-size:22px;
  cursor:pointer;padding:6px 4px;line-height:1}
/* Collapse at 1150px — the links crowd long before 900 (§4). */
@media(max-width:1150px){
  .site-nav{
    display:none;position:absolute;top:70px;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--surface);border-bottom:1px solid var(--line);
    padding:10px 28px 20px;
  }
  .site-nav.open{display:flex}
  .site-nav a{padding:13px 0;border-bottom:1px solid var(--line)}
  .site-nav .btn{margin-top:14px;text-align:center;border-bottom:0}
  .nav-toggle{display:block}
}

/* ══ BUTTONS ═══════════════════════════════════════════════ */
.btn{display:inline-block;font-family:'Inter',sans-serif;text-decoration:none;
  border-radius:5px;cursor:pointer;transition:all .18s ease;white-space:nowrap;
  text-align:center}
.btn-primary{background:var(--accent);color:#08201d;font-size:15px;font-weight:700;
  padding:15px 28px;border:1px solid var(--accent)}
.btn-primary:hover{background:var(--accent-lift);border-color:var(--accent-lift);
  transform:translateY(-1px)}
.btn-ghost{background:transparent;border:1px solid var(--soft);color:var(--heading);
  font-size:15px;font-weight:600;padding:14px 26px}
.btn-ghost:hover{border-color:var(--accent-lift);color:var(--accent-lift)}
.btn-block{display:block;width:100%}
.header-inner .btn-primary{padding:11px 20px;font-size:14px}

/* ══ SECTION RHYTHM ════════════════════════════════════════ */
.block{padding:74px 28px}
.block.alt{background:var(--ground-alt)}
section.block + section.block{border-top:1px solid rgba(var(--warm-rgb),0.16)}
@media(max-width:720px){.block{padding:54px 22px}}

.section-head{max-width:780px;margin:0 auto 46px;text-align:center}
.section-head:last-child{margin-bottom:0}
.section-eyebrow{
  font-size:12px;font-weight:600;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--accent);margin:0 0 14px;
}
.section-eyebrow::before{
  counter-increment:sec;content:counter(sec,decimal-leading-zero);
  color:var(--warm);font-weight:700;letter-spacing:2px;margin-right:10px;
}
/* Eyebrows outside the numbered flow (page headers, sub-labels) opt out. */
.section-eyebrow.nonum::before{content:none;counter-increment:none;margin-right:0}
.section-title{font-size:clamp(26px,3.4vw,36px);margin:0 0 16px}
.block.alt .section-title::after{
  content:"";display:block;width:60px;height:3px;background:var(--spark);margin:18px auto 0;
}
.section-lede{font-size:17px;line-height:1.75;color:var(--soft);max-width:680px;margin:0 auto}

/* ══ HERO ══════════════════════════════════════════════════ */
.hero{
  position:relative;margin-top:112px;min-height:clamp(520px,76vh,740px);
  display:flex;align-items:center;
  background:var(--surface) center/cover no-repeat;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(20,28,29,.93) 0%,rgba(20,28,29,.76) 45%,
             rgba(20,28,29,.2) 70%,rgba(20,28,29,.38) 100%);
}
.hero .container{position:relative;z-index:2;width:100%;padding-block:64px}
.hero-copy{max-width:660px}
.hero-eyebrow{font-size:12px;font-weight:600;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--accent);margin:0 0 18px}
.hero h1{font-size:clamp(36px,5.2vw,58px);line-height:1.1;margin-bottom:20px}
.hero-lede{font-size:17px;line-height:1.75;color:var(--soft);max-width:680px;margin:0 0 30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero-reassure{font-size:13px;color:var(--muted);margin:18px 0 0}
.photo-credit{position:absolute;right:16px;bottom:12px;z-index:3;font-size:10px;
  color:rgba(244,233,200,.5);text-decoration:none;letter-spacing:.4px}
.photo-credit:hover{color:var(--accent-lift)}
@media(max-width:860px){
  .hero-copy{max-width:none;text-align:center;margin-inline:auto}
  .hero-actions{justify-content:center}
  .hero::before{background:linear-gradient(180deg,rgba(20,28,29,.74) 0%,
                rgba(20,28,29,.9) 60%,rgba(20,28,29,.95) 100%)}
}

/* interior page header — no photo, cheaper paint */
.page-head{margin-top:112px;padding:64px 28px 54px;background:var(--surface);
  border-bottom:1px solid rgba(var(--accent-rgb),.22)}
.page-head .inner{max-width:780px;margin:0 auto}
.page-head h1{font-size:clamp(32px,4.6vw,50px);line-height:1.12;margin-bottom:18px}
.page-head .lede{font-size:17px;line-height:1.75;color:var(--soft);max-width:680px;margin:0}
.page-head .section-eyebrow{margin-bottom:14px}

/* ══ STAT STRIP ════════════════════════════════════════════ */
.stat-strip{background:var(--ground-alt);border-bottom:1px solid var(--line)}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}
@media(min-width:760px){.stat-grid{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--ground-alt);padding:30px 20px;text-align:center;
  border:1px solid transparent;transition:background .18s ease,border-color .18s ease}
a.stat{text-decoration:none;display:block}
/* Linked stats stay discoverable without an underline (§4). */
a.stat:hover{background:rgba(var(--accent-rgb),.09);border-color:var(--accent)}
.stat b{display:block;font-family:'Playfair Display',Georgia,serif;font-size:2.4rem;
  font-weight:700;color:var(--accent-lift);line-height:1.05;margin-bottom:8px}
.stat span{font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--soft)}
.provenance{text-align:center;font-size:12px;color:var(--muted);padding:18px 28px 22px;margin:0}

/* ══ CARDS ═════════════════════════════════════════════════ */
.cards{display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:760px){.cards{grid-template-columns:repeat(3,1fr)}}
.cards.two{grid-template-columns:1fr}
@media(min-width:760px){.cards.two{grid-template-columns:repeat(2,1fr)}}
.card{
  border-radius:10px;padding:32px 30px;border:1px solid rgba(255,255,255,.14);
  background:var(--surface);display:flex;flex-direction:column;
  transition:border-color .18s ease,transform .18s ease;
}
.card:hover{border-color:var(--accent);transform:translateY(-3px)}
.card h3{font-size:22px;margin:0 0 12px}
.card p{font-size:15.5px;color:var(--body)}
.card .card-tag{font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--warm);margin:0 0 14px}
.card .card-link{margin-top:auto;padding-top:18px;font-size:14px;font-weight:600;
  color:var(--accent-lift);text-decoration:none}
.card .card-link:hover{text-decoration:underline;text-underline-offset:3px}
.card-photo{margin:-32px -30px 24px;border-radius:10px 10px 0 0;overflow:hidden;aspect-ratio:16/10}
.card-photo img{width:100%;height:100%;object-fit:cover}

/* ══ NUMBERED STEPS ════════════════════════════════════════ */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:20px}
@media(min-width:860px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{background:var(--surface);border:1px solid rgba(255,255,255,.14);
  border-radius:10px;padding:28px 26px;position:relative}
.steps .n{font-family:'Playfair Display',Georgia,serif;font-size:2rem;font-weight:700;
  color:var(--warm);line-height:1;display:block;margin-bottom:14px}
.steps h3{font-size:20px;margin:0 0 10px}
.steps p{font-size:15px;color:var(--body);margin:0}

/* ══ TIMELINE ══════════════════════════════════════════════ */
.timeline{list-style:none;margin:0;padding:0;max-width:780px;margin-inline:auto}
.timeline li{display:grid;grid-template-columns:104px 1fr;gap:24px;
  padding:22px 0;border-top:1px solid var(--line)}
.timeline li:last-child{border-bottom:1px solid var(--line)}
.timeline .when{font-size:12px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--warm);padding-top:3px}
.timeline h3{font-size:19px;margin:0 0 7px}
.timeline p{font-size:15.5px;margin:0}
@media(max-width:620px){
  .timeline li{grid-template-columns:1fr;gap:8px}
}

/* ══ CALLOUTS ══════════════════════════════════════════════ */
.callout{border-left:3px solid var(--spark);background:var(--surface);
  padding:24px 26px;border-radius:0 8px 8px 0;margin:30px 0}
.callout.plain{border-left-color:var(--accent)}
.callout.gold{border-left-color:var(--warm)}
.callout h3{font-size:19px;margin:0 0 10px}
.callout p{font-size:15.5px}
.callout p:last-child{margin-bottom:0}

/* full-width warning band */
.alert-band{background:var(--surface);border-top:1px solid rgba(var(--warm-rgb),.16);
  border-bottom:1px solid rgba(var(--warm-rgb),.16);padding:34px 28px}
.alert-band .inner{max-width:1080px;margin:0 auto;display:grid;gap:20px;align-items:center}
@media(min-width:800px){.alert-band .inner{grid-template-columns:1fr auto}}
.alert-band h3{font-size:22px;margin:0 0 8px}
.alert-band p{font-size:15.5px;color:var(--body);margin:0;max-width:68ch}
.alert-band h3::before{content:"";display:inline-block;width:34px;height:3px;
  background:var(--spark);vertical-align:middle;margin-right:12px}

/* ══ FORMS / TOOLS ═════════════════════════════════════════ */
.field{display:block;margin-bottom:18px}
.field > span{display:block;font-size:11px;font-weight:600;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--soft);margin-bottom:8px}
.field input,.field select{
  width:100%;padding:14px 15px;border-radius:5px;font-family:'Inter',sans-serif;
  font-size:16px;background:var(--ground-alt);color:var(--heading);
  border:1px solid var(--line);
}
.field input::placeholder{color:var(--muted)}
.field input:focus,.field select:focus{border-color:var(--accent)}
.field .hint{font-size:12.5px;color:var(--muted);margin:7px 0 0;letter-spacing:0;
  text-transform:none;font-weight:400}

.pledge{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}
.pledge button{
  flex:1 1 auto;min-width:88px;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  padding:13px 14px;border-radius:5px;cursor:pointer;background:transparent;
  color:var(--heading);border:1px solid var(--line);transition:all .18s ease;
}
.pledge button:hover{border-color:var(--accent-lift);color:var(--accent-lift)}
.pledge button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);
  color:#08201d}
.pledge-note{font-size:13px;color:var(--muted);margin:0 0 22px;min-height:2.6em}

.fineprint{font-size:12.5px;line-height:1.7;color:var(--muted);margin:16px 0 0}

.form-panel{background:var(--surface);border:1px solid rgba(255,255,255,.14);
  border-radius:10px;padding:32px 30px}
.thanks{display:none;background:var(--surface);border:1px solid var(--accent);
  border-radius:10px;padding:32px 30px}
.thanks.on{display:block}
.thanks h3{font-size:24px;margin:0 0 12px}

/* region / tool chips */
.chips{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px;padding:0;list-style:none}
.chips button{
  font-family:'Inter',sans-serif;font-size:13.5px;font-weight:500;padding:10px 16px;
  border-radius:20px;cursor:pointer;background:transparent;color:var(--body);
  border:1px solid var(--line);transition:all .18s ease;
}
.chips button:hover{border-color:var(--accent-lift);color:var(--accent-lift)}
.chips button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);
  color:#08201d;font-weight:600}

.tool-panel{background:var(--surface);border:1px solid rgba(255,255,255,.14);
  border-radius:10px;padding:30px 28px}
.tool-out{margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.tool-figure{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:24px}
@media(min-width:640px){.tool-figure{grid-template-columns:repeat(4,1fr)}}
.tool-figure div{text-align:center}
.tool-figure b{display:block;font-family:'Playfair Display',Georgia,serif;font-size:1.9rem;
  font-weight:700;color:var(--accent-lift);line-height:1.1;margin-bottom:6px}
.tool-figure span{font-size:11px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--soft)}

/* ══ LISTS ═════════════════════════════════════════════════ */
.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding-left:26px;margin-bottom:12px;font-size:15.5px}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;
  background:var(--accent)}
.ticks.warn li::before{background:var(--spark)}
.ticks.gold li::before{background:var(--warm)}
.two-col{display:grid;gap:0 40px}
@media(min-width:700px){.two-col{grid-template-columns:1fr 1fr}}

.pill-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pill-list li{font-size:13.5px;padding:7px 14px;border-radius:20px;
  background:var(--ground-alt);border:1px solid var(--line);color:var(--body)}

/* ══ TABLE ═════════════════════════════════════════════════ */
.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th{text-align:left;font-size:11px;font-weight:600;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--soft);padding:0 14px 12px 0;
  border-bottom:1px solid var(--line)}
.tbl td{padding:16px 14px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr.is-next td{background:rgba(var(--warm-rgb),.09)}
.tbl tr.is-next td:first-child{box-shadow:inset 3px 0 0 var(--warm);padding-left:14px}
.tbl .t-name{font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:700;
  color:var(--heading)}
.tbl .t-tag{font-size:10.5px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--warm);display:block;margin-top:4px}
.tbl-wrap{overflow-x:auto}
@media(max-width:640px){.tbl .col-hide{display:none}}

/* ══ FAQ ═══════════════════════════════════════════════════ */
.faq{max-width:780px;margin-inline:auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;padding:20px 34px 20px 0;position:relative;
  font-family:'Playfair Display',Georgia,serif;font-size:19px;font-weight:600;
  color:var(--heading);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:18px;font-size:22px;
  color:var(--accent);font-family:'Inter',sans-serif;font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{color:var(--accent-lift)}
.faq .answer{padding:0 0 22px;font-size:15.5px;max-width:68ch}

/* ══ PRICE / TIER ══════════════════════════════════════════ */
.tier .amount{font-family:'Playfair Display',Georgia,serif;font-size:2.2rem;font-weight:700;
  color:var(--accent-lift);line-height:1;margin:0 0 4px}
.tier .amount-sub{font-size:12px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--soft);margin:0 0 18px}

/* ══ FOUNDERS ══════════════════════════════════════════════ */
.founders{display:grid;gap:34px}
/* Two columns only from 1040px. Between 780–1039px the old two-column rule left
   each bio ~360px wide, which is too narrow to wrap text beside a portrait — so
   that range now gets one full-width column and keeps the wrap instead. */
@media(min-width:1040px){.founders{grid-template-columns:1fr 1fr}}

/* Portraits are deliberately small — a bio headshot, not a hero image. Was a
   full-column 3:2 block (~500x333 on desktop), which dominated the section. */
.founder .portrait{width:168px;max-width:45%;aspect-ratio:4/5;border-radius:12px;
  overflow:hidden;margin-bottom:20px;background:var(--surface)}
.founder .portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%}

/* Copy wraps around the portrait from 600px up — which is every laptop window,
   every tablet, and large phones in landscape. Below that the column can't spare
   the width, so the portrait stays stacked rather than squeezing the text into an
   unreadable ribbon. */
@media(min-width:600px){
  .founder{overflow-wrap:break-word}
  .founder::after{content:"";display:block;clear:both}
  .founder .portrait{float:left;width:132px;max-width:none;
    margin:5px 20px 12px 0}
  .founder h3,.founder .role,.founder p,.founder .creds{overflow:visible}
}
/* In single-column mode the bio would otherwise run the full container width
   (~844px at a 900px viewport), which is far too long a line to read. Cap it. */
@media(max-width:1039px){
  .founder{max-width:640px;margin-inline:auto}
}
@media(min-width:1040px){
  .founder .portrait{width:150px;margin-right:22px}
}
.founder h3{font-size:23px;margin:0 0 4px}
.founder .role{font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--accent);margin:0 0 16px}
.founder p{font-size:15.5px}
.founder .creds{list-style:none;margin:16px 0 0;padding:0;font-size:13px;color:var(--muted)}
.founder .creds li{padding-left:16px;position:relative;line-height:1.9}
.founder .creds li::before{content:"·";position:absolute;left:3px;color:var(--warm)}

/* ══ FOOTER ════════════════════════════════════════════════ */
.site-footer{background:var(--footer);padding:56px 28px 44px;border-top:1px solid var(--line)}
.footer-grid{max-width:1080px;margin:0 auto 38px;display:grid;gap:30px 36px;
  grid-template-columns:repeat(2,1fr)}
@media(min-width:820px){.footer-grid{grid-template-columns:repeat(4,1fr)}}
.footer-grid h4{font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--accent);margin:0 0 14px;font-family:'Inter',sans-serif}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li{margin-bottom:10px}
.footer-grid a{font-size:14.5px;color:var(--soft);text-decoration:none}
.footer-grid a:hover{color:var(--accent-lift)}
.footer-legal{max-width:1080px;margin:0 auto;padding-top:26px;border-top:1px solid var(--line);
  font-size:12px;line-height:1.9;color:var(--muted)}
.footer-legal strong{color:var(--soft);font-weight:600}
.footer-legal a{color:var(--soft)}

/* ══ MOTION ════════════════════════════════════════════════ */
@media (prefers-reduced-motion: no-preference){
  .rise{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s ease}
  .rise.in{opacity:1;transform:none}
  .rise.delay{transition-delay:.25s}
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
}

/* ══ PHOTOGRAPHY ═══════════════════════════════════════════
   Slots are empty in the markup and hydrated from the photo
   manifest in data/site-data.js, so an image URL is never
   hand-typed into a page. */

.ph{position:relative;overflow:hidden;background:var(--surface);border-radius:10px}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph .cred{
  position:absolute;right:8px;bottom:6px;z-index:2;
  font-size:9px;letter-spacing:.3px;text-decoration:none;
  color:rgba(244,233,200,.55);text-shadow:0 1px 3px rgba(0,0,0,.75);
}
.ph .cred:hover{color:var(--accent-lift)}

/* card photo — pulls to the card edge, so it must match .card padding */
.card-photo{margin:-32px -30px 24px;border-radius:10px 10px 0 0;aspect-ratio:16/10}
/* step photo — .steps li uses 28px/26px padding, so the pull differs */
.step-photo{margin:-28px -26px 20px;border-radius:10px 10px 0 0;aspect-ratio:16/10}

/* full-width photo band between sections */
.band{position:relative;height:clamp(200px,30vw,340px);overflow:hidden;border-radius:0}
.band img{width:100%;height:100%;object-fit:cover}
.band::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(20,28,29,.55),rgba(20,28,29,.78));
}
.band .band-copy{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:28px;
}
.band .band-copy p{
  font-family:'Playfair Display',Georgia,serif;font-size:clamp(20px,2.8vw,30px);
  font-weight:600;color:var(--heading);margin:0;max-width:22ch;line-height:1.3;
}
.band .band-copy em{font-style:italic;font-weight:400;color:var(--accent-lift)}
.band .cred{bottom:8px;right:12px}

/* seasonal image inside the regional guide panel */
.region-photo{aspect-ratio:21/9;margin-bottom:22px}
