/* Living woodland: presentation and progressive motion, with no dependencies. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.hero{min-height:clamp(650px,calc(100svh - 132px),820px);overflow:hidden}
.hero-inner{padding-block:88px 116px}
.hero-copy{max-width:650px}
.hero h1{font-size:clamp(78px,8.5vw,124px);letter-spacing:-.055em;line-height:.98;margin-bottom:29px}
.hero-line{display:block;overflow:hidden;padding-bottom:.13em;margin-bottom:-.13em}
.hero-line>span{display:block}
.hero h1 em{position:relative;display:inline-block}
.hero h1 em::after{content:"";position:absolute;bottom:.03em;left:.05em;right:0;height:1px;background:var(--gold);opacity:.55;transform-origin:left}
.hero-description{max-width:390px;font-size:18px}
.hero-media{top:-5%;height:110%;overflow:hidden}
.hero-media img{transform-origin:67% 45%}
.hero-shade{background:linear-gradient(90deg,#071c17ee 0%,#0a201ac9 32%,#0a201a29 65%,#0a201a0a),linear-gradient(0deg,#071c17b8,transparent 32%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at var(--light-x,72%) var(--light-y,35%),#f2d7a31c,transparent 50%);opacity:.8}
.hero-caption{right:max(48px,calc((100vw - 1180px)/2));bottom:34px;font-size:11px;letter-spacing:.02em}
.scroll-cue{position:absolute;bottom:31px;left:max(48px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:14px;font-size:10px;text-transform:uppercase;letter-spacing:.17em;color:#f2e7ce;padding-block:8px}
.scroll-cue-line{width:44px;height:1px;background:var(--gold);position:relative;overflow:hidden}
.scroll-cue>span:last-child{font-size:18px;line-height:1}
.site-header{transition:box-shadow .5s,border-color .5s}
.site-header.is-scrolled{box-shadow:0 8px 36px #0e2b2412;border-bottom-color:#d9dfd3}
.reading-progress{display:none;position:fixed;inset:0 0 auto;height:3px;background:var(--gold);transform:scaleX(var(--page-progress,0));transform-origin:left;z-index:100;pointer-events:none}
.photo-window{position:relative;width:100%;overflow:hidden;background:#d4dccb}
.photo-window img{width:100%;height:100%;object-fit:cover}
.welcome-photo .photo-window{aspect-ratio:1.22}
.learning-photo .photo-window{aspect-ratio:1.12}
.welcome-photo figcaption{padding-top:15px}
.photo-label{box-shadow:0 8px 24px #0e2b2414}
.encounter-grid{align-items:start;gap:34px}
.encounter:nth-child(2){margin-top:64px}
.encounter:nth-child(3){margin-top:28px}
.encounter-image{isolation:isolate;transform-origin:center;overflow:hidden}
.encounter-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--glow-x,50%) var(--glow-y,35%),#fff5d84a,transparent 58%);opacity:0;mix-blend-mode:soft-light;transition:opacity .6s}
.image-arrow{z-index:2;transition:background .3s,color .3s,transform .6s var(--motion-ease)}
.gift-section{position:relative;display:flex;align-items:center;justify-content:flex-end;isolation:isolate;overflow:hidden;min-height:clamp(660px,88svh,900px)}
.gift-image{position:absolute;inset:0;z-index:-2;height:auto;overflow:hidden}
.gift-image img{object-position:50% 35%;transform-origin:16% 33%}
.gift-section::before{content:"";position:absolute;inset:20px;border:1px solid #fffefa38;z-index:0;pointer-events:none}
.gift-section::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#071c1710 10%,#071c1740 36%,#071c17c9 63%,#071c17f2 100%),linear-gradient(0deg,#071c1770,transparent 55%)}
.gift-copy{position:relative;z-index:1;width:50%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:100px clamp(38px,6.5vw,110px) 100px 40px}
.gift-copy h2{font-size:clamp(58px,6.7vw,96px);line-height:1.01;letter-spacing:-.045em;max-width:480px}
.gift-copy>p:not(.eyebrow){max-width:370px;color:#e5ebdf}
.gift-copy .gift-small-link{margin-top:24px}
.gift-image::after{display:none}
.scene-meta{position:absolute;top:39px;left:46px;right:46px;z-index:1;display:flex;justify-content:space-between;gap:24px;color:#f8f0df;font-size:10px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;text-shadow:0 1px 14px #071c17}
.section-heading{position:relative;padding-bottom:32px;border-bottom:1px solid #c9d2bf}
.quotes-grid blockquote{font-size:clamp(28px,2.6vw,38px);line-height:1.3}
.button{position:relative;isolation:isolate;overflow:hidden}
.button::before{content:"";position:absolute;inset:-50% auto -50% -60%;width:40%;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,#fff8e977,transparent);transform:skewX(-20deg) translateX(-150%)}
.button span,.text-link span{transition:transform .5s var(--motion-ease)}
.motion-toggle{position:fixed;right:24px;bottom:22px;z-index:45;display:inline-flex;gap:9px;align-items:center;min-height:44px;padding:11px 16px;background:#fffefaf2;color:var(--forest);border:1px solid #c8d1bf;border-radius:30px;font:700 10px/1.4 var(--sans);letter-spacing:.025em;box-shadow:0 4px 24px #0e2b2426;cursor:pointer}
.motion-toggle[hidden]{display:none}
.motion-toggle-icon{display:block;width:12px;height:12px;border-inline:3px solid currentColor}
.motion-toggle[aria-pressed="true"] .motion-toggle-icon{width:0;height:0;border:6px solid transparent;border-left:9px solid currentColor;border-right:0}
.motion-ready .site-footer{padding-bottom:62px}
@supports(backdrop-filter:blur(12px)){.motion-toggle{background:#fffefacb;backdrop-filter:blur(12px)}}

@media(prefers-reduced-motion:no-preference){
  .motion-ready .reading-progress{display:block}
  .motion-ready .hero-media{transform:translate3d(0,var(--scene-shift,0px),0)}
  .motion-ready [data-photo] img{animation:photo-breathe var(--photo-duration,18s) linear infinite alternate;animation-play-state:paused;transform:scale(1.025)}
  .motion-ready .hero-media img{animation-name:hero-breathe;animation-duration:20s}
  .motion-ready [data-photo].is-inview img{animation-play-state:running;will-change:transform}
  .motion-ready .hero-line>span{animation:headline-enter 1.5s var(--motion-ease) both}
  .motion-ready .hero-line:nth-child(2)>span{animation-delay:.16s}
  .motion-ready .hero h1 em::after{animation:line-enter 1.8s var(--motion-ease) .8s both}
  .motion-ready .hero-copy>.eyebrow{animation:copy-enter 1.2s var(--motion-ease) .12s both}
  .motion-ready .hero-description{animation:copy-enter 1.5s var(--motion-ease) .38s both}
  .motion-ready .hero-copy>.button-row{animation:copy-enter 1.5s var(--motion-ease) .5s both}
  .motion-ready .hero-location{animation:copy-enter 1.5s var(--motion-ease) .64s both}
  .motion-ready .scroll-cue-line::after{content:"";position:absolute;inset:0;background:#fff9e9;transform:translateX(-110%);animation:trail-light 3.8s ease-in-out infinite}
  .motion-ready [data-reveal]{transition:opacity 1s var(--motion-ease) var(--reveal-delay,0ms),transform 1.25s var(--motion-ease) var(--reveal-delay,0ms)}
  .motion-ready [data-reveal]:not(.is-revealed){opacity:0;transform:translate3d(0,38px,0)}
  .motion-ready [data-reveal="photo"] .photo-window{transition:clip-path 1.5s var(--motion-ease) var(--reveal-delay,0ms);clip-path:inset(0)}
  .motion-ready [data-reveal="photo"]:not(.is-revealed) .photo-window{clip-path:inset(0 0 22% 0)}
  .motion-ready [data-reveal="scene"]{opacity:1;clip-path:inset(0);transition:clip-path 1.8s var(--motion-ease),transform 1.8s var(--motion-ease)}
  .motion-ready [data-reveal="scene"]:not(.is-revealed){opacity:1;transform:translate3d(0,24px,0);clip-path:inset(3% 5% round 4px)}
  .motion-ready [data-reveal]:focus-within{opacity:1;transform:none}
  .motion-ready [data-reveal="scene"]:focus-within{clip-path:none}
  .motion-ready .encounter-image{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .65s var(--motion-ease),box-shadow .65s}
  .motion-ready .encounter-image.is-pointing{transition:transform .12s ease-out,box-shadow .65s;box-shadow:0 18px 38px #0e2b2425}
  .motion-ready .encounter-image.is-pointing::after{opacity:1}
  .button:hover::before,.button:focus-visible::before{transition:transform .85s var(--motion-ease);transform:skewX(-20deg) translateX(620%)}
  .button:hover span,.button:focus-visible span,.text-link:hover span{transform:translateX(4px)}
  .encounter-image:hover .image-arrow,.encounter-image:focus-visible .image-arrow{transform:translate(-7px,-7px);background:var(--forest);color:var(--gold)}
}
@keyframes photo-breathe{from{transform:scale(1.025) translate3d(-.4%,.3%,0)}to{transform:scale(var(--photo-zoom-end,1.235)) translate3d(.8%,-.8%,0)}}
@keyframes hero-breathe{from{transform:scale(1.035) translate3d(-.3%,.25%,0)}to{transform:scale(var(--hero-zoom-end,1.27)) translate3d(.7%,-.7%,0)}}
@keyframes headline-enter{from{opacity:0;transform:translate3d(0,112%,0) rotate(2deg)}to{opacity:1;transform:none}}
@keyframes copy-enter{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}
@keyframes line-enter{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes trail-light{0%,20%{transform:translateX(-110%)}70%,100%{transform:translateX(110%)}}

/* A manual pause also reveals content immediately, including during the intro. */
.motion-paused [data-photo] img,.motion-suspended [data-photo] img,.motion-paused .scroll-cue-line::after,.motion-suspended .scroll-cue-line::after{animation-play-state:paused!important;will-change:auto!important}
.motion-paused [data-reveal],.motion-paused .hero-line>span,.motion-paused .hero-copy>.eyebrow,.motion-paused .hero-description,.motion-paused .hero-copy>.button-row,.motion-paused .hero-location{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
.motion-paused [data-reveal] .photo-window{clip-path:none!important;transition:none!important}
.motion-paused [data-reveal="scene"]{clip-path:none!important}
.motion-paused .hero-media,.motion-paused .encounter-image{transform:none!important}
.motion-paused .hero h1 em::after{animation:none!important}
html.motion-paused{scroll-behavior:auto}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{transition:none!important}
.motion-suspended *,.motion-suspended *::before,.motion-suspended *::after{animation-play-state:paused!important}

@media(max-width:1150px){.hero h1{font-size:clamp(78px,9vw,112px)}.hero-caption{right:36px}.scroll-cue{left:36px}.encounter-grid{gap:24px}.encounter:nth-child(2){margin-top:45px}}
@media(max-width:950px){
  .hero{min-height:660px}.hero h1{font-size:86px}.hero-inner{padding-block:76px 106px}.hero-copy{max-width:530px}
  .hero-caption{right:24px}.scroll-cue{left:24px;font-size:9px;gap:10px}.scroll-cue-line{width:28px}
  .welcome-photo .photo-window{aspect-ratio:.85}.learning-photo .photo-window{aspect-ratio:.9}
  .encounter:nth-child(2){margin-top:34px}.encounter:nth-child(3){margin-top:16px}
  .gift-section{min-height:680px}.gift-copy{width:53%;padding:100px 32px 75px 20px}.gift-copy h2{font-size:62px}
  .gift-image img{object-position:30% 35%}.scene-meta{left:32px;right:32px;top:34px;font-size:9px}
}
@media(max-width:650px){
  .hero{min-height:0}.hero-media{position:relative;inset:auto;width:100%;height:clamp(270px,40svh,380px);transform:none!important}
  .hero-media img{transform-origin:55% 45%;object-position:center 46%}.hero::after{display:none}
  .hero-inner{padding-block:34px 38px}.hero h1{font-size:clamp(54px,12.9vw,76px);margin-bottom:24px;line-height:1}
  .hero-description{font-size:15px}.hero-location{font-size:10px}.scroll-cue{display:none}
  .welcome-photo .photo-window{aspect-ratio:1.25}.learning-photo .photo-window{aspect-ratio:1.3}
  .encounter-grid{gap:42px}.encounter:nth-child(2),.encounter:nth-child(3){margin-top:0}
  [data-photo]{--photo-zoom-end:1.19;--hero-zoom-end:1.21}
  .gift-section{min-height:740px;align-items:flex-end}.gift-image{height:auto}.gift-image img{object-position:0% 30%;transform-origin:18% 30%}
  .gift-section::before{inset:12px}.gift-section::after{background:linear-gradient(0deg,#071c17f5 0%,#071c17d9 28%,#071c1770 51%,#071c170d 80%)}
  .gift-copy{width:100%;padding:300px 28px 48px}.gift-copy h2{font-size:clamp(58px,14vw,78px)}
  .gift-copy>p:not(.eyebrow){max-width:360px;font-size:15px}.scene-meta{left:28px;right:28px;top:28px;font-size:8px;letter-spacing:.12em}
  .section-heading{padding-bottom:25px}.quotes-grid blockquote{font-size:29px}
  .motion-toggle{right:12px;bottom:12px;width:44px;height:44px;justify-content:center;padding:0;font-size:10px}
  .motion-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
}
@media(max-width:360px){.hero h1{font-size:49px}.gift-copy h2{font-size:47px}}
@media(prefers-reduced-motion:reduce){
  .motion-ready [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
  .motion-ready [data-reveal] .photo-window{clip-path:none!important}
  .motion-ready .hero-media,.motion-ready .encounter-image,.motion-ready [data-photo] img{transform:none!important;animation:none!important;will-change:auto!important}
  .reading-progress,.motion-toggle{display:none!important}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{.reading-progress,.motion-toggle,.scroll-cue{display:none!important}[data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}[data-reveal] .photo-window{clip-path:none!important}*,*::before,*::after{animation:none!important;transition:none!important}}
