:root {
    --cream:    #0E1B34;
    --cream-2:  #152642;
    --cream-3:  #1B2D4C;
    --ink:      #ECEFF4;
    --ink-2:    #D8DDE7;
    --ink-3:    #AEB7C6;
    --ink-4:    #8B97AC;
    --ember:    #C15B2E;
    --ember-dk: #9A4824;
    --gold:     #C9A456;
    --rule:     rgba(236,239,244,0.13);
    --rule-em:  rgba(193,91,46,0.25);
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }

  body {
    background: var(--cream);
    color: var(--ink);
    font-family: 'Lora', Georgia, serif;
    font-size: 18px;
    line-height: 1.78;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }

  .cg  { font-family: 'Cormorant Garamond', Georgia, serif; }

  @keyframes fadeUp { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
  @keyframes fadeIn { from{opacity:0} to{opacity:1} }
  .reveal { opacity:0; transform:translateY(14px); transition:opacity 0.75s ease, transform 0.75s ease; }
  .reveal.visible { opacity:1; transform:translateY(0); }

  nav {
    position: sticky; top: 0; z-index: 200;
    background: rgba(14,27,52,0.97);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--rule);
    padding: 18px 60px;
    display: flex; justify-content: space-between; align-items: center;
    animation: fadeIn 0.6s ease both;
  }
  .nav-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
  .brand-wm {
    font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 18px;
    letter-spacing: 0.26em; text-transform: uppercase; color: var(--ink);
    display: flex; align-items: center; gap: 10px; line-height: 1;
  }
  .brand-wm .adv { color: var(--ink-4); font-size: 14px; letter-spacing: 0.34em; }

  .nav-links { display: flex; align-items: center; gap: 32px; list-style: none; }
  .nav-links a { font-family: 'Lora', serif; font-size: 17px; color: var(--ink-3); text-decoration: none; transition: color 0.2s; }
  .nav-links a:hover { color: var(--ink); }

  .nav-check, .dd-check { position:absolute; width:1px; height:1px; opacity:0; margin:0; pointer-events:none; }
  .nav-toggle { display:none; cursor:pointer; padding:8px; margin:-8px; -webkit-tap-highlight-color:transparent; user-select:none; }
  .nav-toggle span { display:block; width:23px; height:2px; background:var(--ink); margin:5px 0; transition:transform .25s, opacity .2s; }
  .nav-check:checked ~ .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-check:checked ~ .nav-toggle span:nth-child(2){ opacity:0; }
  .nav-check:checked ~ .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .nav-dd { position: relative; }
  .nav-dd > .dd-btn {
    cursor: pointer; user-select:none; -webkit-tap-highlight-color:transparent;
    font-family: 'Lora', serif; font-size: 17px; color: var(--ink-3);
    display: flex; align-items: center; gap: 6px; transition: color 0.2s; padding: 0;
  }
  .nav-dd > .dd-btn:hover { color: var(--ink); }
  .nav-dd > .dd-btn::after { content: '▾'; font-size: 11px; color: var(--ember); transition: transform 0.2s; }
  .dd-check:checked ~ .dd-btn::after { transform: rotate(180deg); }

  .dd-menu {
    position: absolute; top: calc(100% + 10px); left: 0;
    background: var(--cream-2); border: 1px solid var(--rule); border-top: 2px solid var(--ember);
    min-width: 230px; padding: 4px 0; opacity: 0; pointer-events: none; transform: translateY(-6px);
    transition: opacity 0.18s, transform 0.18s; box-shadow: 0 8px 28px rgba(23,20,15,0.1);
  }
  .dd-check:checked ~ .dd-menu { opacity:1; pointer-events:auto; transform:translateY(0); }
  .dd-menu a {
    display: block; padding: 13px 22px; font-family: 'Lora', serif; font-size: 17px;
    color: var(--ink-2); text-decoration: none; transition: color 0.18s, background 0.18s;
    border-bottom: 1px solid var(--rule);
  }
  .dd-menu a:last-child { border-bottom: none; }
  .dd-menu a:hover { color: var(--ember); background: rgba(193,91,46,0.06); }

  .nav-cta {
    font-family: 'Lora', serif; font-size: 15px !important; letter-spacing: 0.13em; text-transform: uppercase;
    color: var(--ember) !important; border-bottom: 1px solid var(--ember-dk); padding-bottom: 2px;
    transition: color 0.2s, border-color 0.2s !important;
  }
  .nav-cta:hover { color: var(--ink) !important; border-color: var(--ink) !important; }

  .hero { padding: 100px 60px 90px; max-width: 1200px; margin: 0 auto; position: relative; }
  .hero-eyebrow {
    font-family: 'Lora', serif; font-size: 16px; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--ember); margin-bottom: 28px; animation: fadeIn 0.7s ease 0.2s both;
  }
  .hero-hed {
    font-family: 'Cormorant Garamond', serif; font-size: clamp(44px, 5.2vw, 72px);
    font-weight: 400; color: var(--ink); line-height: 1.07; letter-spacing: -0.01em;
    max-width: 20ch; margin-bottom: 44px; animation: fadeUp 0.9s ease 0.35s both;
  }
  .hero-hed em { font-style: italic; color: var(--ink-3); }
  .hero-sub {
    font-family: 'Cormorant Garamond', serif; font-size: clamp(22px, 2.2vw, 30px);
    font-weight: 400; color: var(--ink-3); line-height: 1.48; max-width: 46ch;
    margin-bottom: 52px; animation: fadeUp 0.85s ease 0.5s both;
  }
  .btn-fill {
    display: inline-block; font-family: 'Lora', serif; font-size: 14px;
    letter-spacing: 0.16em; text-transform: uppercase; color: #fff; background: var(--ember);
    padding: 19px 44px; text-decoration: none; transition: background 0.25s; animation: fadeUp 0.8s ease 0.65s both;
  }
  .btn-fill:hover { background: var(--ember-dk); }

  .rule { height: 1px; background: var(--rule); }
  .pad { padding: 80px 0; }

  .sec { padding: 80px 60px; max-width: 1200px; margin: 0 auto; }
  .sec-label {
    font-family: 'Lora', serif; font-size: 16px; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--ember); display: block; margin-bottom: 20px;
  }
  .sec-hed {
    font-family: 'Cormorant Garamond', serif; font-size: clamp(30px, 3.2vw, 44px);
    font-weight: 400; color: var(--ink); line-height: 1.18; margin-bottom: 32px;
  }
  .sec-hed em { font-style: italic; }
  .sec-body { font-size: 18px; color: var(--ink-3); line-height: 1.8; max-width: 64ch; }
  .sec-body p { margin-bottom: 20px; }
  .sec-body p:last-child { margin-bottom: 0; }

  .situation {
    padding: 88px 60px; max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start;
  }
  .situation-left p {
    font-family: 'Cormorant Garamond', serif; font-size: clamp(24px, 2.5vw, 34px);
    font-weight: 400; color: var(--ink); line-height: 1.48; margin-bottom: 28px;
  }
  .situation-left p:last-child { margin-bottom: 0; }
  .situation-right { padding-top: 8px; }
  .pullquote { border-left: 3px solid var(--ember); padding: 32px 36px; background: var(--cream-2); }
  .pullquote-text {
    font-family: 'Cormorant Garamond', serif; font-size: clamp(22px, 2.2vw, 30px);
    font-style: italic; font-weight: 400; color: var(--ink-2); line-height: 1.5; margin-bottom: 20px;
  }
  .pullquote-attr { font-family: 'Lora', serif; font-size: 15px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ember); }

  .not-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 48px; }
  .not-item { border-top: 1px solid var(--rule); padding-top: 28px; position: relative; }
  .not-item::after { content: ''; position: absolute; top: -1px; left: 0; width: 48px; height: 2px; background: var(--ember); }
  .not-item h3 {
    font-family: 'Cormorant Garamond', serif; font-size: 28px; font-style: italic; color: var(--ink-2);
    margin-bottom: 14px; text-decoration: line-through; text-decoration-color: var(--ember); text-decoration-thickness: 2px;
  }
  .not-item p { font-size: 17px; color: var(--ink-3); line-height: 1.72; }

  .registers { display: grid; grid-template-columns: repeat(3,1fr); gap: 36px; margin-top: 48px; }
  .register { background: var(--cream-2); padding: 36px 32px; border-top: 2px solid var(--ember); }
  .register h4 { font-family: 'Cormorant Garamond', serif; font-size: 24px; font-weight: 500; color: var(--ink); margin-bottom: 14px; }
  .register p { font-size: 17px; color: var(--ink-3); line-height: 1.7; }

  .dark-band { background: var(--ink); color: var(--cream); padding: 80px 60px; }
  .dark-band .sec-label { color: var(--ember); font-size: 16px; }
  .dark-band .sec-hed { color: var(--cream); }
  .dark-band .sec-body { color: rgba(237,232,223,0.72); }

  .team-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 36px; margin-top: 48px; }
  .team-item { border-top: 1px solid rgba(237,232,223,0.1); padding-top: 28px; position: relative; }
  .team-item::after { content: ''; position: absolute; top: -1px; left: 0; width: 44px; height: 2px; background: var(--ember); }
  .team-item h4 { font-family: 'Cormorant Garamond', serif; font-size: 24px; font-weight: 500; color: var(--cream); margin-bottom: 12px; }
  .team-item p { font-size: 17px; color: rgba(237,232,223,0.6); line-height: 1.7; }

  /* Referrer band (light) */
  .refer-band { background: var(--cream-2); padding: 80px 60px; }
  .refer-inner { max-width: 1200px; margin: 0 auto; }
  .refer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 36px; margin-top: 48px; }
  .refer-item { border-top: 1px solid var(--rule); padding-top: 26px; position: relative; }
  .refer-item::after { content:''; position:absolute; top:-1px; left:0; width:44px; height:2px; background:var(--ember); }
  .refer-item h4 { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:500; color:var(--ink); margin-bottom:12px; }
  .refer-item p { font-size:17px; color:var(--ink-3); line-height:1.7; }

  .notes-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; margin-top: 48px; }

  .stats-strip { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin: 0; }
  .stat { padding: 52px 44px; border-right: 1px solid var(--rule); }
  .stat:last-child { border-right: none; }
  .stat-num { font-family: 'Cormorant Garamond', serif; font-size: 48px; font-weight: 400; color: var(--ember); line-height: 1; margin-bottom: 10px; }
  .stat-label { font-size: 16px; color: var(--ink-3); line-height: 1.6; }

  .about-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: center; }
  .about-name { font-family: 'Cormorant Garamond', serif; font-size: clamp(38px, 4vw, 56px); font-weight: 400; color: var(--ink); line-height: 1.06; margin-bottom: 6px; }
  .about-name em { font-style: italic; color: var(--ink-4); }
  .about-title { font-family: 'Lora', serif; font-size: 16px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ember); margin-bottom: 36px; display: block; }
  .about-body p { font-size: 18px; color: var(--ink-3); line-height: 1.82; margin-bottom: 20px; }
  .about-body p:last-child { margin-bottom: 0; }

  .areas-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--rule); margin-top: 48px; }
  .area-photo { display: block; text-decoration: none; background-size: cover; background-position: center; position: relative; min-height: 320px; overflow: hidden; }
  .area-photo::before { content: ''; position: absolute; inset: 0; background: rgba(12,10,8,0.52); transition: background 0.35s; }
  .area-photo:hover::before { background: rgba(12,10,8,0.35); }
  .area-photo-inner { position: relative; z-index: 1; height: 100%; min-height: 320px; display: flex; align-items: flex-end; padding: 32px 36px; }
  .area-photo-label { font-size: clamp(24px, 2.5vw, 36px); font-weight: 400; color: #fff; line-height: 1.15; }

  .testi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 48px; }
  .testi { background: var(--cream-2); padding: 36px 36px 32px; border-left: 3px solid var(--ember); }
  .testi-q { font-family: 'Cormorant Garamond', serif; font-size: 21px; font-style: italic; font-weight: 400; color: var(--ink-2); line-height: 1.56; margin-bottom: 20px; }
  .testi-attr { font-family: 'Lora', serif; font-size: 15px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ember); }

  .engage-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 36px; margin-top: 48px; }
  .engage-item { border-top: 1px solid var(--rule); padding-top: 24px; position: relative; }
  .engage-item::after { content: ''; position: absolute; top: -1px; left: 0; width: 40px; height: 2px; background: var(--ember); }
  .engage-label { font-family: 'Lora', serif; font-size: 15px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ember); margin-bottom: 10px; display: block; }
  .engage-val { font-family: 'Cormorant Garamond', serif; font-size: 26px; font-weight: 400; color: var(--ink); line-height: 1.22; margin-bottom: 10px; }
  .engage-note { font-size: 16px; color: var(--ink-4); line-height: 1.65; font-style: italic; }

  .cta-outer { background: var(--ink); padding: 100px 60px; }
  .cta-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.5fr 1fr; gap: 80px; align-items: end; }
  .cta-hed { font-family: 'Cormorant Garamond', serif; font-size: clamp(44px, 5vw, 76px); font-weight: 400; color: var(--cream); line-height: 1.08; }
  .cta-hed em { font-style: italic; color: var(--ember); }
  .cta-note { font-size: 18px; color: rgba(237,232,223,0.48); line-height: 1.75; font-style: italic; margin-bottom: 36px; }
  .btn-fill-cream { display: inline-block; font-family: 'Lora', serif; font-size: 14px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); background: var(--cream); padding: 19px 44px; text-decoration: none; transition: background 0.25s, color 0.25s; }
  .btn-fill-cream:hover { background: var(--ember); color: #fff; }
  .cta-contact { margin-top: 24px; font-size: 17px; color: rgba(237,232,223,0.38); line-height: 1.75; }
  .cta-contact a { color: rgba(237,232,223,0.58); text-decoration: none; transition: color 0.2s; }
  .cta-contact a:hover { color: var(--ember); }

  footer { background: var(--cream-3); border-top: 1px solid var(--rule); padding: 32px 60px; display: flex; justify-content: space-between; align-items: center; }
  .foot-brand { display: flex; align-items: center; gap: 10px; font-family: 'Cormorant Garamond', serif; font-size: 17px; font-weight: 500; color: var(--ink-2); letter-spacing: 0.02em; }
  .foot-links { display: flex; gap: 24px; }
  .foot-links a { font-family: 'Lora', serif; font-size: 14px; color: var(--ink-4); text-decoration: none; transition: color 0.2s; }
  .foot-links a:hover { color: var(--ember); }
  .foot-note { font-family: 'Lora', serif; font-size: 13px; color: var(--ink-4); font-style: italic; }

  /* sub-page */
  .page-hero { width:100%; height:480px; background-size:cover; background-position:center; position:relative; display:flex; align-items:flex-end; }
  .page-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(8,15,28,0.92) 0%, rgba(8,15,28,0.70) 30%, rgba(8,15,28,0.34) 58%, rgba(8,15,28,0.08) 82%); }
  .page-hero-inner { position:relative; z-index:1; padding:48px 60px; width:100%; }
  .page-hero-label { font-family:'Lora',serif; font-size:14px; letter-spacing:0.26em; text-transform:uppercase; color:#E07A42; margin-bottom:14px; display:block; text-shadow:0 1px 14px rgba(0,0,0,0.85), 0 0 3px rgba(0,0,0,0.6); }
  .page-hero-title { font-family:'Cormorant Garamond',serif; font-size:clamp(40px,5vw,66px); font-weight:400; color:#fff; line-height:1.08; text-shadow:0 2px 24px rgba(0,0,0,0.6); }
  .page-content { max-width:900px; margin:0 auto; padding:72px 60px; }
  .lede { font-family:'Cormorant Garamond',serif; font-size:clamp(22px,2.2vw,30px); font-weight:400; color:var(--ink-2); line-height:1.5; border-left:3px solid var(--ember); padding:28px 36px; background:var(--cream-2); margin-bottom:56px; font-style:italic; }
  .body-text p { font-size:18px; color:var(--ink-3); line-height:1.82; margin-bottom:22px; }
  .body-text p:last-child { margin-bottom:0; }
  .sec-head { font-family:'Lora',serif; font-size:15px; letter-spacing:0.24em; text-transform:uppercase; color:var(--ember); margin:56px 0 24px; display:block; }
  .serves-list { list-style:none; margin-bottom:48px; }
  .serves-list li { font-size:18px; color:var(--ink-3); line-height:1.72; padding:16px 0; border-bottom:1px solid var(--rule); display:flex; align-items:baseline; gap:14px; }
  .serves-list li::before { content:'–'; color:var(--ember); flex-shrink:0; }
  .issues-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:48px; }
  .issue-card { background:var(--cream-2); padding:28px 28px; border-top:2px solid var(--ember); }
  .issue-card p { font-size:17px; color:var(--ink-3); line-height:1.7; }
  .brings-list { list-style:none; margin-bottom:48px; }
  .brings-item { padding:24px 0; border-bottom:1px solid var(--rule); }
  .brings-item:first-child { border-top:1px solid var(--rule); }
  .brings-title { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:500; color:var(--ink); margin-bottom:8px; }
  .brings-body { font-size:17px; color:var(--ink-3); line-height:1.7; }
  .engage-outer { background:var(--ink); padding:72px 60px; margin-top:72px; }
  .engage-inner { max-width:900px; margin:0 auto; }
  .e-label { font-family:'Lora',serif; font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ember); margin-bottom:8px; }
  .e-val { font-family:'Cormorant Garamond',serif; font-size:26px; color:#0E1B34; line-height:1.2; margin-bottom:8px; }
  .e-note { font-size:16px; color:rgba(237,232,223,0.45); line-height:1.65; font-style:italic; }
  .engage-outer .engage-label { font-family:'Lora',serif; font-size:16px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ember); margin-bottom:16px; display:block; }
  .engage-outer .engage-hed { font-family:'Cormorant Garamond',serif; font-size:clamp(32px,3.5vw,50px); font-weight:400; color:#0E1B34; line-height:1.14; margin-bottom:48px; }
  .engage-outer .engage-hed em { font-style:italic; color:var(--ember); }
  .cta-band { background:var(--ink); padding:0 60px 80px; }
  .cta-band .cta-inner { max-width:900px; margin:0 auto; display:block; border-top:1px solid rgba(237,232,223,0.08); padding-top:48px; }
  .cta-label { font-family:'Lora',serif; font-size:16px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ember); margin-bottom:16px; display:block; }
  .cta-band .cta-hed { font-family:'Cormorant Garamond',serif; font-size:clamp(38px,4vw,60px); font-weight:400; color:#0E1B34; line-height:1.1; margin-bottom:20px; }
  .btn-cream { display:inline-block; font-family:'Lora',serif; font-size:14px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink); background:#0E1B34; padding:18px 44px; text-decoration:none; transition:background 0.25s, color 0.25s; }
  .btn-cream:hover { background:var(--ember); color:#fff; }

  .page-section { display:none; }
  .page-section.active { display:block; }
  /* No-JS fallback: let :target switch pages when scripts can't run (e.g. file previews) */
  html:not(.js) .page-section:target { display:block; }
  html:not(.js):has(.page-section:target) #page-home { display:none; }

  @media(max-width:960px){
    /* Mobile: show all content immediately — scroll-reveal is unreliable on phones and was leaving sections blank */
    .reveal { opacity:1 !important; transform:none !important; }
    nav { padding:15px 24px; }
    .nav-toggle { display:block; }
    .nav-links {
      display:none; position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:stretch; gap:0;
      background:var(--cream); border-bottom:1px solid var(--rule);
      box-shadow:0 20px 42px -26px rgba(23,20,15,0.45); padding:6px 24px 18px;
      max-height:calc(100vh - 58px); overflow-y:auto; -webkit-overflow-scrolling:touch;
    }
    .nav-check:checked ~ .nav-links { display:flex; }
    .nav-links > li { width:100%; border-top:1px solid var(--rule); }
    .nav-links > li:first-child { border-top:none; }
    .nav-links > li > a, .nav-dd > .dd-btn { display:block; width:100%; text-align:left; padding:16px 0; font-size:18px; }
    .nav-dd { position:static; }
    .nav-dd .dd-menu {
      position:static; min-width:0; opacity:1; pointer-events:auto; transform:none; transition:none;
      background:transparent; border:none; border-top:none; box-shadow:none; padding:0 0 8px 14px; display:none;
    }
    .dd-check:checked ~ .dd-menu { display:block; }
    .nav-dd .dd-menu a { padding:11px 0; font-size:16px; border-bottom:none; }
    .nav-links .nav-cta { border-bottom:none; }
    .hero { padding:64px 24px 56px; }
    .situation { grid-template-columns:1fr; gap:36px; padding:64px 24px; }
    .sec { padding:64px 24px; }
    .not-grid,.registers,.team-grid,.refer-grid,.notes-grid,.engage-grid { grid-template-columns:1fr; }
    .areas-grid { grid-template-columns:1fr; }
    .areas-tiles { grid-template-columns:1fr !important; }
    .bench-roster { grid-template-columns:1fr !important; }
    .fn-grid { grid-template-columns:1fr !important; }
    .testi-grid { grid-template-columns:1fr; }
    .about-grid { grid-template-columns:1fr; gap:40px; }
    .stats-strip { grid-template-columns:1fr 1fr; }
    .stat { border-right:none; border-bottom:1px solid var(--rule); }
    .stat:nth-child(odd) { border-right:1px solid var(--rule); }
    .cta-outer { padding:64px 24px; }
    .cta-inner { grid-template-columns:1fr; gap:36px; }
    .dark-band,.refer-band { padding:64px 24px; }
    .page-hero { height:320px; } .page-hero-inner { padding:32px 24px; }
    .page-content { padding:48px 24px; }
    .issues-grid { grid-template-columns:1fr; }
    .engage-outer,.cta-band { padding-left:24px; padding-right:24px; }
    footer { flex-direction:column; gap:14px; text-align:center; padding:26px 24px; }
    .foot-links { flex-wrap:wrap; justify-content:center; }
  }
  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after {
      animation-duration:0.001ms !important; animation-iteration-count:1 !important;
      transition-duration:0.001ms !important; scroll-behavior:auto !important;
    }
    .reveal { opacity:1 !important; transform:none !important; }
  }

  /* --- Theme adjustments --- */
  .page-hero .cg, .page-hero-inner h1 { color:#ECEFF4 !important; }
  .page-hero-inner p { color:#C2CBD8 !important; }
  .area-photo-inner, .area-photo-inner *, .area-photo-label { color:#ECEFF4 !important; }
  .area-tile { border:1px solid rgba(201,164,86,0.45) !important; box-shadow:0 12px 34px -20px rgba(6,14,30,0.65); }
  .area-tile:hover { box-shadow:0 20px 44px -18px rgba(6,14,30,0.7) !important; }

/* ── Site fixes ───────────────────────────────────────────────────────────────
   Appended to Stephen's stylesheet by scripts/import-site.mjs, so they carry over
   to every new version of his file. Keep these small and targeted. */

/* 1. Ember text on navy measures about 4:1, under the 4.5:1 needed for small text.
      Text uses a lighter ember on navy and a darker one on the light sections. */
:root {
  --ember: #E07A42;    /* 5.7:1 on navy */
  --ember-dk: #D06A36; /* underlines and the "Stay human." sign-off */
}
.dark-band,
.cta-outer,
.engage-outer,
.cta-band,
.area-tile,
div[style*="background:var(--ink)"],
div[style*="background:#EEF1F6"] {
  --ember: #9A4824;    /* 5.5:1 on the light grey */
  --ember-dk: #7E3A1C;
}
div[style*="background:#EEF1F6"] [style*="color:#C15B2E"] { color: #9A4824 !important; }

/* Filled buttons keep white text readable. */
.btn-fill { background: #B3522A; }
.btn-fill:hover { background: #9A4824; }

/* 2. Several light sections inherited near-white text and were unreadable. */
.dark-band .sec-body { color: #3D4B63; }
.cta-outer .cta-note,
.cta-band .cta-note { color: #4C5D77; }
.cta-outer .cta-contact,
.cta-band .cta-contact { color: #4C5D77; }
.cta-outer .cta-contact a,
.cta-band .cta-contact a { color: #2B3A55; }
.cta-outer .cta-contact a:hover,
.cta-band .cta-contact a:hover { color: var(--ember); }
.engage-outer .e-note { color: #4C5D77; }
.cta-band .cta-inner { border-top-color: rgba(14, 27, 52, 0.12); }

/* 3. Content stays visible if scripts don't run (scroll-reveal starts at opacity 0). */
html:not(.js) .reveal { opacity: 1; transform: none; }

/* 4. On phones the headline's hand-placed line breaks strand single words; let it wrap naturally. */
@media (max-width: 600px) {
  .hero-hed br { display: none; }
}

/* 5. In-page anchors land below the sticky nav. */
#contact, #field-notes { scroll-margin-top: 72px; }

/* 6. Essays published through Payload: keep them in the look of his hand-built essays. */
.body-text h2,
.body-text h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.25;
  margin: 44px 0 16px;
}
.body-text h2 { font-size: 30px; }
.body-text h3 { font-size: 25px; }
.body-text blockquote {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 22px;
  line-height: 1.5;
  color: var(--ink-2);
  margin: 0 0 22px;
}
.body-text blockquote p { font-size: inherit; color: inherit; margin-bottom: 0; }
/* A quote that is entirely bold is a sign-off line, like "Stay human." at the end of the series. */
.body-text blockquote:has(> strong:only-child) { font-size: 30px; line-height: 1.3; color: var(--ember-dk); margin-top: 10px; }
.body-text blockquote > strong:only-child { font-weight: 400; color: inherit; }
.body-text ul,
.body-text ol { margin: 0 0 22px 1.3em; }
.body-text li { margin-bottom: 8px; }
.body-text a { color: var(--ember); text-decoration: none; border-bottom: 1px solid var(--ember-dk); }
.body-text a:hover { color: var(--ink); }
.body-text strong { color: var(--ink-2); font-weight: 500; }
.body-text hr { border: 0; border-top: 1px solid var(--rule); margin: 40px 0; }
.body-text img { max-width: 100%; height: auto; display: block; margin: 0 0 22px; }
