
:root {
  --v3-forest: #063d2d;
  --v3-forest-deep: #032c22;
  --v3-sage: #d9eccb;
  --v3-ivory: #faf9f3;
  --v3-celadon: #edf6e9;
  --v3-moss: #2c6851;
  --v3-champagne: #e5cfaa;
  --v3-ease: cubic-bezier(.22, 1, .36, 1);
}
body { background: var(--v3-ivory); }
.site-header { background: color-mix(in srgb, #fbfbf6 92%, transparent); }
.site-header .wrap { padding-block: 18px; }
.site-header.is-scrolled { box-shadow: 0 6px 25px rgba(6,50,33,.06); }
.mark-name { font-size: 29px; }
.nav-cta { font-weight: 600; }
.section, .page-hero { scroll-margin-top: 90px; }


.v3-hero {
  background: radial-gradient(ellipse at 68% 18%, rgba(99,164,103,.22), transparent 39%),
              radial-gradient(ellipse at 9% 92%, rgba(48,122,82,.25), transparent 38%),
              linear-gradient(128deg, #033227 0%, #065039 60%, #013224 100%);
  color: #f5f8ee;
  position: relative;
  isolation: isolate;
  overflow: clip;
}
.v3-hero::before {
  content: "";
  position: absolute;
  width: 58vw;
  height: 58vw;
  border: 1px solid rgba(226,238,208,.19);
  border-radius: 50%;
  left: -33vw;
  bottom: -40vw;
  box-shadow: 0 0 0 6vw rgba(214,233,199,.025), 0 0 0 12vw rgba(214,233,199,.022);
  pointer-events: none;
}
.v3-hero::after {
  content: "H / L";
  position: absolute;
  right: 2.8vw;
  bottom: 2vw;
  color: rgba(221,236,213,.09);
  font-family: var(--f-display);
  font-size: clamp(90px, 14vw, 240px);
  font-style: italic;
  line-height: 1;
  pointer-events: none;
  z-index: -1;
}
.v3-hero .wrap {
  grid-template-columns: minmax(0,1.06fr) minmax(0,.94fr);
  gap: clamp(42px, 5vw, 90px);
  min-height: min(760px, calc(100svh - 74px));
  padding-block: clamp(65px, 7vw, 116px);
}
.v3-hero .copy { position: relative; z-index: 2; max-width: 730px; }
.v3-hero-edition {
  display: inline-block;
  color: #a9d8b5;
  font-size: 10px;
  letter-spacing: .24em;
  font-weight: 600;
  margin-bottom: clamp(24px, 3.8vw, 46px);
}
.v3-hero .eyebrow { color: #d4e8d8; font-weight: 500; margin-bottom: 24px; }
.v3-hero .eyebrow::before { background: #bce4a6; width: 48px; }
.v3-hero .v3-hero-title {
  color: #f8faf1;
  font-size: clamp(62px, 6.7vw, 110px);
  line-height: .96;
  letter-spacing: -.042em;
  max-width: 11.5ch;
  text-wrap: pretty;
}
.v3-hero .v3-hero-title .line { display: block; }
.v3-hero h1 em { color: #cfeab3; font-weight: 500; }
.v3-hero .lede { color: #e1e9df; font-size: clamp(17px,1.42vw,20px); max-width: 48ch; line-height: 1.75; }
.v3-hero .actions { margin-top: 36px; gap: 20px 32px; }
.v3-hero .btn--primary {
  background: #d9eabb;
  color: #083a2b;
  border-radius: 100px;
  padding: 20px 26px;
  font-weight: 600;
  box-shadow: 0 10px 26px rgba(1,26,15,.2);
  position: relative;
  overflow: hidden;
}
.v3-hero .btn--primary:hover { background: #f4f8d8; box-shadow: 0 14px 28px rgba(1,26,15,.24); }
.v3-hero .link { color: #f2f8ee; }
.v3-hero .creed { border-color: rgba(234,250,229,.23); margin-top: clamp(48px,6vw,72px); gap: 16px; }
.v3-hero .creed li { color: #e2eee5; font-size: 13px; }
.v3-hero .creed b { color: #b9e99f; }
.v3-hero-portrait { position: relative; max-width: 510px; margin-inline: 0 4%; isolation: isolate; }
.v3-hero-portrait .arch-box {
  width: 100%;
  border-radius: 49% 49% 0 0;
  background: #d3e4d1;
  box-shadow: 0 32px 75px rgba(2,21,15,.28);
  transform: translate3d(0,0,0) rotateY(var(--v3-tilt-x,0deg)) rotateX(var(--v3-tilt-y,0deg));
  transition: transform .45s var(--v3-ease), box-shadow .45s var(--v3-ease);
  will-change: auto;
}
.v3-hero-portrait .arch { background: #d1e1d2; }
.v3-hero-portrait .arch-line path { stroke: #b6e5a5; stroke-width: 1.2; }
.v3-hero-portrait .plate-name-row { border-color: rgba(230,245,228,.35); padding-top: 23px; }
.v3-hero-portrait .plate-name { color: #e4f1d1; }
.v3-hero-portrait .plate-meta, .v3-hero-portrait .plate-meta strong { color: #eaf3e7; }
.v3-hero-portrait .plate-meta .tag { color: #c3dcc6; border-color: rgba(207,235,203,.65); }
.v3-portrait-halo {
  position: absolute;
  inset: -13px -15px 18px 18px;
  pointer-events: none;
  z-index: -1;
  border-radius: 49% 49% 0 0;
  border: 1px solid rgba(188,229,182,.65);
  transform: translate(11px,-8px);
}
.v3-floating-photo {
  position: absolute;
  left: -13%;
  bottom: 20%;
  z-index: 3;
  width: clamp(130px, 34%, 185px);
  aspect-ratio: 4/4.3;
  overflow: hidden;
  background: #dae2d1;
  border: 7px solid #eff3e7;
  box-shadow: 0 14px 45px rgba(1,27,17,.28);
  transform: rotate(-6deg) translate3d(var(--v3-photo-x,0px),var(--v3-photo-y,0px),0);
  transition: transform .55s var(--v3-ease);
  pointer-events: none;
}
.v3-floating-photo picture, .v3-floating-photo img { display: block; height: 100%; width: 100%; object-fit: cover; }
.v3-floating-caption {
  position: absolute;
  right: -4%;
  top: 17%;
  color: #143e2d;
  background: #e5eccf;
  border-radius: 50px;
  z-index: 4;
  padding: 10px 14px;
  font-size: 10px;
  letter-spacing: .03em;
  font-weight: 600;
  box-shadow: 0 12px 28px rgba(0,40,22,.18);
  transform: rotate(6deg);
  pointer-events: none;
}
.v3-floating-caption span { margin-left: 10px; font-size: 13px; }
.v3-hero-foot { background: #f0f4e9; border-bottom: 1px solid #d5e3d2; }
.v3-hero-foot .wrap { padding-block: 18px; }
.v3-hero-foot p { max-width: 80ch; }


.v3-intro { background: var(--v3-ivory); }
.v3-intro .wrap { gap: clamp(50px,6vw,120px); }
.v3-intro h2 { max-width: 13ch; font-size: clamp(42px,4.7vw,74px); line-height: 1.02; letter-spacing: -.026em; }
.v3-intro .photo-frame {
  aspect-ratio: 5/5;
  box-shadow: 32px 32px 0 #dae9d4;
  border-radius: 2px;
}
.v3-intro .photo-frame img { object-fit: cover; height: 100%; width: 100%; }
.v3-intro .facts { margin-top: 36px; }


.v3-life-map {
  position: relative;
  background: #e5eee0;
  overflow: clip;
  padding-block: clamp(86px, 10vw, 152px);
}
.v3-map-layout {
  display: grid;
  grid-template-columns: minmax(0,.91fr) minmax(0,1.09fr);
  align-items: center;
  gap: clamp(32px,7vw,114px);
}
.v3-map-copy h2 { font-size: clamp(48px, 5.1vw, 82px); max-width: 11ch; line-height: 1.02; }
.v3-map-copy .lede { margin-top: 28px; max-width: 38ch; }
.v3-map-copy .arrow-link { margin-top: 28px; font-weight: 600; }
.v3-map-art {
  position: relative;
  isolation: isolate;
  min-height: 580px;
  width: 100%;
  background: radial-gradient(circle at center, rgba(250,251,243,.5), transparent 70%);
}
.v3-map-rings { position: absolute; inset: 7%; pointer-events: none; }
.v3-map-rings span { position: absolute; border: 1px solid #9ebdab; border-radius: 50%; inset: 0; opacity: .8; }
.v3-map-rings span:nth-child(2) { inset: 13%; border-style: dashed; border-color: #aac0b0; }
.v3-map-rings span:nth-child(3) { inset: 27%; border-color: #8bbca1; }
.v3-map-core {
  position: absolute;
  width: 42%;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  align-content: center;
  place-items: center;
  text-align: center;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  background: #0b563c;
  color: #f8faee;
  box-shadow: 0 24px 50px rgba(10,70,45,.18);
}
.v3-map-core span { font-size: 10px; letter-spacing: .19em; color: #badcc2; }
.v3-map-core strong { margin-top: 10px; font: italic 500 clamp(24px,3vw,38px)/1.08 var(--f-display); }
.v3-map-node {
  position: absolute; z-index: 3;
  display: grid; gap: 5px;
  min-width: clamp(144px,16vw,210px);
  padding: 18px 22px;
  border: 1px solid rgba(54,117,81,.28);
  background: #fbfcf5;
  border-radius: 9px;
  text-decoration: none;
  color: #174630;
  box-shadow: 0 18px 35px rgba(13,76,46,.11);
  overflow: hidden;
  transition: transform .3s var(--v3-ease), box-shadow .3s var(--v3-ease), background .3s;
}
.v3-map-node span { font-size: 10px; letter-spacing: .1em; color: #496f58; }
.v3-map-node b { font: 500 clamp(22px,2.1vw,31px)/1.05 var(--f-display); }
.v3-map-node:hover { transform: translateY(-6px); box-shadow: 0 24px 40px rgba(13,76,46,.2); background: #f5faeb; }
.v3-map-node--health { left: 5%; top: 9%; }
.v3-map-node--income { right: 1%; top: 13%; }
.v3-map-node--family { left: -1%; bottom: 14%; }
.v3-map-node--future { right: 4%; bottom: 10%; }


.v3-needs {
  background: #063e2e;
  position: relative; isolation: isolate;
  overflow: clip;
  color: #f5f8ef;
}
.v3-needs::before {
  content: "";
  position: absolute;
  width: 650px; height: 650px;
  right: -210px; top: -200px;
  border: 1px solid rgba(230,242,214,.2);
  box-shadow: 0 0 0 110px rgba(221,245,205,.035);
  border-radius: 50%;
  pointer-events: none;
}
.v3-needs .eyebrow { color: #b4d6bf; }
.v3-needs .eyebrow::before { background: #b1da9d; }
.v3-needs h2 { color: #f3f9ef; max-width: 19ch; font-size: clamp(50px,4.7vw,72px); }
.v3-needs h2 em { color: #c6e7b5; }
.v3-needs .ledger--grid { gap: 22px; }
.v3-needs .ledger--grid > li {
  border: 1px solid rgba(205,234,209,.22);
  background: linear-gradient(160deg,rgba(255,255,255,.085),rgba(255,255,255,.015));
  border-radius: 12px;
  overflow: hidden;
  transition: background .35s, transform .35s var(--v3-ease);
}
.v3-needs .ledger--grid > li:hover { transform: translateY(-4px); background: rgba(218,242,212,.12); }
.v3-needs .ledger-row { position: relative; padding: clamp(28px,3.5vw,52px); min-height: 245px; align-content: start; gap: 16px; }
.v3-needs .ledger-row::after {
  content: "";
  position: absolute;
  width: 180px; height: 180px; right: -42px; top: -45px;
  border-radius: 50%; border: 1px solid rgba(225,248,222,.2);
  box-shadow: 0 0 0 26px rgba(225,248,222,.025),0 0 0 52px rgba(225,248,222,.025);
}
.v3-needs .ledger-row h3 { color: #f4f9ee; font-size: clamp(32px,2.9vw,48px); }
.v3-needs .ledger-row p { color: #d7e7dd; font-size: 15px; line-height: 1.75; max-width: 44ch; }
.v3-needs .ledger-row .num { color: #c5e8ac; font-size: 19px; }
.v3-needs .ledger-row .arrow-link { color: #e8f5df; font-size: 14px; }
.v3-needs .ledger-row:hover h3 { color: #daefc1; }
.v3-needs .ledger-row .arrow-link svg { stroke: currentColor; }


.v3-quote {
  position: relative;
  background: #f0ebdf;
  overflow: hidden;
  padding-block: clamp(115px, 12vw, 190px);
}
.v3-quote::before {
  content: "“";
  font: 500 clamp(180px, 30vw, 520px)/1 var(--f-display);
  position: absolute;
  right: 8%;
  top: -22%;
  color: rgba(10,76,51,.085);
  pointer-events: none;
}
.v3-quote .quote-inner { max-width: 1040px; }
.v3-quote .pull--xl { font-size: clamp(54px, 7vw, 112px); line-height: .97; letter-spacing: -.035em; max-width: 15ch; }
.v3-quote .pull--xl em { color: #136842; }
.v3-process { background: #e8efdd; }
.v3-process h2 { max-width: 14ch; font-size: clamp(42px,4.2vw,66px); }
.v3-process .steps { gap: clamp(22px,3.3vw,54px); }
.v3-process .steps li { padding-top: 30px; border-top: 2px solid #9dbbac; }
.v3-process .steps li::before { width: 56px; height: 3px; top: -2px; background: #00975d; }
.v3-process .steps .num { font-size: 28px; }
.v3-process .steps h3 { font-size: 18px; color: #0b5037; }
.cta-band { background: linear-gradient(135deg,#03432f,#07583e 65%,#06412f); }
.cta-band h2 { max-width: 15ch; }


.v3-about-hero {
  background: linear-gradient(117deg, #e2efe4 0%, #f4f6ec 62%, #e9eee0 100%);
  overflow: clip;
  padding-block: clamp(80px,8vw,140px);
}
.v3-about-hero .wrap { align-items: center; }
.v3-about-hero h1 { font-size: clamp(70px, 8.8vw, 144px); letter-spacing: -.065em; }
.v3-about-hero h1 em { color: #075b3b; }
.v3-about-photo { max-width: 510px; aspect-ratio: 4/5; justify-self: center; position: relative; }
.v3-about-photo::before { content:""; position: absolute; inset: -16px -18px 18px 18px; border: 1px solid #87b68e; pointer-events:none; z-index:0; }
.v3-about-photo picture { position: relative; z-index: 1; display:block; height: 100%; }
.v3-about-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.v3-about-hero .lede { color: #3b5346; max-width: 46ch; }
.v3-about-hero .about-meta { margin-top: 36px; }


.v3-article-hero {
  position: relative; isolation: isolate;
  background: #07432f;
  padding-block: clamp(78px,8vw,128px) clamp(78px,8vw,128px) !important;
  color: #f9faee;
  overflow: clip;
}
.v3-article-hero::before {
  content: "";
  position: absolute; top: -230px; right: -150px;
  width: 670px; height: 670px;
  border-radius: 50%;
  border: 1px solid rgba(230,242,220,.28);
  box-shadow: 0 0 0 78px rgba(227,241,213,.035), 0 0 0 150px rgba(227,241,213,.025);
  z-index: -1;
}
.v3-article-head { max-width: 1050px; }
.v3-article-head h1 { font-size: clamp(52px,6vw,94px); line-height: .99; letter-spacing: -.028em; margin: 26px 0 0; max-width: 18ch; }
.v3-article-head .meta, .v3-article-head .meta a { color: #d7eddf; }
.v3-article-head .meta { letter-spacing: .15em; }
.v3-article-head .meta .cat { color: #baf0ad; }
.v3-article-head .lede { font-size: clamp(18px,1.5vw,22px); color:#dcece2; max-width: 49ch; margin-top: 28px; }
.v3-article-content { padding-block: clamp(60px,7vw,110px); background: #fafaf5; }
.v3-article-content .article-body { max-width: 66ch; font-size: 18px; line-height: 1.88; }
.v3-article-content .article-aside {
  border: 1px solid #d1e1d4;
  background: #f0f5ed;
  border-radius: 12px;
  padding: 26px;
  box-shadow: 0 18px 32px rgba(8,66,43,.045);
}
.v3-article-content .callout { border-left: 3px solid #17895c; padding: 24px; background: #eaf1e8; }
.v3-article-content .article-body > p:first-of-type::first-letter { font-family: var(--f-display); font-size: 1.25em; color: #0c6644; }
.v3-article-content .aside-author { border-bottom: 1px solid #cadecb; padding-bottom: 18px; }


.photo-frame { overflow: visible; }
.photo-frame picture, .photo-frame img { transition: filter .65s var(--v3-ease), transform .65s var(--v3-ease); }
@media (hover:hover) and (pointer:fine) {
  .v3-intro .photo-frame:hover img, .v3-about-photo:hover img { filter: saturate(1.06) contrast(1.015); }
  .post:hover .plate img, .activity-card:hover img { transform: scale(1.025); }
  .btn--primary:hover { filter: brightness(1.02); }
}
.v3-map-node:focus-visible, .v3-hero .btn:focus-visible { outline: 3px solid #f0c77f; outline-offset: 5px; }
.v3-life-map a:focus-visible { outline: 3px solid #116846; outline-offset: 5px; }


.v3-appear { opacity: 1; transform: none; }
.v3-appear.v3-seen { animation: v3-soft-rise .76s var(--v3-ease) both; }
@keyframes v3-soft-rise { from { opacity: .34; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes v3-soft-orbit { from {transform: rotate(-10deg)} to {transform: rotate(0deg)} }
.v3-map-art.v3-seen .v3-map-rings { animation: v3-soft-orbit 1.2s var(--v3-ease) both; }


@media (max-width: 1150px) and (min-width: 901px) {
  .v3-hero .wrap { gap: 36px; }
  .v3-hero .v3-hero-title { font-size: clamp(52px,6vw,78px); }
  .v3-map-layout { gap: 30px; }
}
@media (max-width: 900px) {
  .v3-hero .wrap { grid-template-columns: 1fr; min-height: 0; padding-block: 55px 65px; gap: 45px; }
  .v3-hero .copy { order: 1; margin-top: 0; }
  .v3-hero .portrait { order: 2; max-width: 490px; justify-self: center; width: 80%; margin-left: 6%; }
  .v3-hero .v3-hero-title { font-size: clamp(58px,8.6vw,94px); max-width: 14ch; }
  .v3-hero .eyebrow { margin-bottom: 20px; }
  .v3-hero .arch-box { width: 100%; margin: 0 auto; }
  .v3-hero .actions { flex-direction: row; justify-content:flex-start; }
  .v3-hero .btn--primary { justify-content: center; }
  .v3-hero .creed { margin-top: 32px; grid-template-columns: repeat(4,minmax(0,1fr)); }
  .v3-hero .plate-name { font-size: 62px; }
  .v3-map-layout { grid-template-columns: 1fr; }
  .v3-map-copy h2 { max-width: 18ch; }
  .v3-map-art { min-height: 560px; max-width: 650px; margin: 0 auto; }
  .v3-intro .photo-frame { max-width: 650px; }
  .v3-about-photo { max-width: 450px; margin: 12px auto; }
  .v3-article-content .article-aside { max-width: 620px; }
  .v3-needs .ledger--grid { grid-template-columns: repeat(2,minmax(0,1fr)); border-top:0; }
  .v3-needs .ledger--grid > li { border:1px solid rgba(205,234,209,.22); }
}
@media (max-width: 640px) {
  .site-header .wrap { padding-block: 14px; }
  .v3-hero .wrap { padding-block: 38px 58px; gap: 36px; }
  .v3-hero-edition { font-size: 9px; margin-bottom: 24px; }
  .v3-hero .v3-hero-title { font-size: clamp(49px,12.4vw,68px); line-height: 1.02; letter-spacing: -.04em; }
  .v3-hero .lede { margin-top: 20px; }
  .v3-hero .actions { flex-direction: column; align-items: stretch; margin-top: 24px; }
  .v3-hero .btn--primary { justify-content: space-between; }
  .v3-hero .link { align-self: start; }
  .v3-hero .creed { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v3-hero .portrait { margin-left: 4%; width: 84%; }
  .v3-hero .plate-name { font-size: 49px; }
  .v3-floating-photo { width: 39%; left: -11%; bottom: 25%; border-width: 5px; }
  .v3-floating-caption { display: none; }
  .v3-intro h2 { font-size: 46px; }
  .v3-intro .photo-frame { box-shadow: 16px 16px 0 #dae9d4; }
  .v3-life-map { padding-block: 72px; }
  .v3-map-copy h2 { font-size: 47px; }
  .v3-map-art { min-height: 430px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: end; gap: 12px; }
  .v3-map-rings { inset: 4% 21% 38%; }
  .v3-map-core { top: 27%; width: 38%; }
  .v3-map-core span { font-size: 8px; }
  .v3-map-core strong { font-size: 24px; }
  .v3-map-node { position: relative; left: auto; top: auto; right: auto; bottom: auto; min-width:0; padding: 14px; }
  .v3-map-node b { font-size: 22px; }
  .v3-needs .ledger--grid { grid-template-columns: 1fr; gap: 12px; }
  .v3-needs .ledger-row { min-height: 0; padding: 28px; }
  .v3-needs h2, .v3-quote .pull--xl { font-size: 51px; }
  .v3-article-hero { padding-block: 65px 72px !important; }
  .v3-article-head h1 { font-size: clamp(43px,11vw,64px); }
  .v3-article-head .lede { font-size: 17px; }
  .v3-article-content .article-body { font-size: 16.5px; }
  .v3-about-hero h1 { font-size: 62px; }
  .v3-about-photo { width: 84%; }
}
@media (max-width: 385px) {
  .v3-hero .v3-hero-title { font-size: 46px; }
  .v3-hero .plate-name { font-size: 42px; }
  .v3-floating-caption { display: none; }
}

html:not(.no-js) .v3-hero .reveal { animation-name: v31-visible-rise; }
@keyframes v31-visible-rise { from { opacity: .25; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.v3-hero .arch { animation: none; }

@media (max-width: 640px) {
  .v3-hero-portrait .plate-name-row { flex-direction: column; align-items: flex-start; gap: 12px; }
  .v3-hero-portrait .plate-meta { max-width: 100%; text-align: left; }
  .v3-hero-portrait .photo-credit { letter-spacing: .12em; }
  .site-footer li a { display: inline-flex; align-items: center; min-height: 24px; }
}
@media (prefers-reduced-motion: reduce) {
html:not([data-hly-tier="full"]) .v3-appear.v3-seen,
html:not([data-hly-tier="full"]) .v3-map-art.v3-seen .v3-map-rings{ animation: none !important; }
html:not([data-hly-tier="full"]) .v3-hero-portrait .arch-box,
html:not([data-hly-tier="full"]) .v3-floating-photo,
html:not([data-hly-tier="full"]) .v3-needs .ledger--grid > li,
html:not([data-hly-tier="full"]) .v3-map-node,
html:not([data-hly-tier="full"]) .v3-intro img{ transform: none !important; transition: none !important; }
}


@media (max-width: 640px) {
  .v3-hero .wrap { row-gap: 0; }
  .v3-hero .copy { display: contents; }
  .v3-hero-edition { order: 1; margin-bottom: 22px; }
  .v3-hero .eyebrow { order: 2; margin-bottom: 16px; }
  .v3-hero .v3-hero-title { order: 3; }
  .v3-hero .actions { order: 4; margin-top: 28px; }
  .v3-hero .portrait { order: 5; width: 77%; margin: 36px auto 0; }
  .v3-hero .lede { order: 6; margin-top: 34px; }
  .v3-hero .creed { order: 7; margin-top: 38px; }
}
