:root{--pearl:#F6F4EE;--ink:#15181C;--emerald:#0E5A3F;--emerald-deep:#0A4430;--silver:#C9CCD1;--mist:#ECE9E1;--muted:#5B6168}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--pearl);color:var(--ink);font-family:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.serif{font-family:"Fraunces","Iowan Old Style",Georgia,serif;font-optical-sizing:auto;letter-spacing:-.01em;font-weight:500}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
@media(min-width:1024px){.wrap{padding:0 40px}}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--emerald);font-weight:600;margin:0}
.rule{height:1px;background:var(--silver)}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.6rem;border-radius:999px;padding:.95rem 1.5rem;font-weight:600;font-size:.95rem;text-decoration:none;transition:.25s}
.btn.primary{background:var(--emerald);color:#fff}.btn.primary:hover{background:var(--emerald-deep);transform:translateY(-1px)}
.btn.outline{border:1px solid var(--ink);font-weight:500}.btn.outline:hover{background:var(--ink);color:var(--pearl)}
.btn.sm{padding:.65rem 1.1rem;font-size:.85rem}
.link{text-decoration:none;font-weight:500;border-bottom:1px solid var(--silver);padding-bottom:2px;font-size:.9rem}.link:hover{border-color:var(--emerald)}
header.nav{position:sticky;top:0;z-index:40;background:rgba(246,244,238,.86);backdrop-filter:blur(10px)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px;gap:16px}
header.nav nav{display:none;gap:28px}@media(min-width:768px){header.nav nav{display:flex}}
.brand{font-size:1.5rem;font-weight:600;text-decoration:none}
.photo{overflow:hidden;border-radius:18px;background:var(--mist)}
.photo img{width:100%;height:100%;object-fit:cover}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
h1{margin:0;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.02}
h2{margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.1}
h3{margin:0}
.grid{display:grid;gap:40px}
@media(min-width:900px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g57{grid-template-columns:5fr 7fr}.g75{grid-template-columns:7fr 5fr}.g32{grid-template-columns:3fr 2fr}.g23{grid-template-columns:2fr 3fr}}
section{padding:80px 0}
.journey-panel{position:sticky;top:0;height:100svh;overflow:hidden}
.journey-panel img{width:100%;height:100%;object-fit:cover}
.caption{position:absolute;left:0;right:0;bottom:0;padding:clamp(1.5rem,4vw,3.5rem);background:linear-gradient(to top,rgba(21,24,28,.72),rgba(21,24,28,0));color:#fff}
.caption h3{font-size:clamp(1.8rem,4vw,3rem)}
@media(prefers-reduced-motion:reduce){.journey-panel{position:relative;height:auto}.journey-panel img{aspect-ratio:3/2;height:auto}}
.emerald{background:var(--emerald);color:var(--pearl);border-radius:24px;padding:48px 32px}
@media(min-width:900px){.emerald{padding:64px 56px}}
.emerald .eyebrow{color:#BFD9CC}
.card{background:#fff;border:1px solid var(--silver);border-radius:20px;padding:24px}
.margin{border-left:2px solid var(--emerald);padding-left:18px;font-size:.9rem;line-height:1.55}
.margin b{display:block;margin-bottom:.2rem}
.rail{position:relative}
@media(min-width:900px){.rail{padding-left:56px}.rail:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--silver)}.tick{position:absolute;left:-5px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--emerald);box-shadow:0 0 0 4px var(--pearl)}}
.month{display:grid;gap:40px;align-items:center;position:relative}
@media(min-width:900px){.month{grid-template-columns:1fr 1fr;gap:56px}.month.flip>:first-child{order:2}}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:28px 0;font-size:.75rem;color:var(--muted)}
ul.plain{list-style:none;padding:0;margin:16px 0 0;font-size:.9rem;color:var(--muted)}ul.plain li{margin:6px 0}
