@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
/* Movement stays subtle; content remains visible without JavaScript. */
.header{position:sticky;top:0;z-index:5;transition:box-shadow .3s,background .3s}
.header.scrolled{background:rgba(255,255,255,.97);box-shadow:0 4px 24px #24291c10}
.header::after{content:'';position:absolute;bottom:0;left:0;width:var(--progress,0%);height:2px;background:#87954e;transition:width .1s linear}
.hero-photo{transform:translateY(var(--parallax,0px)) scale(1.12);will-change:transform}
.hero-content>*{animation:hero-arrive 1s cubic-bezier(.2,.7,.2,1) both}
.hero-content>h1{animation-delay:.1s}.hero-content>p:not(.eyebrow){animation-delay:.2s}.hero-content>.button{animation-delay:.3s}
@keyframes hero-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.experience:nth-child(2){transition-delay:90ms}.experience:nth-child(3){transition-delay:180ms}
.gallery-grid.is-filtered{grid-auto-rows:360px}.gallery-grid.is-filtered .gallery-item{grid-row:auto;grid-column:auto}
.photo-wrap,.gather-photo{background:#e8eadf}.gather-photo{overflow:hidden}
.button{position:relative;overflow:hidden;transition:background .25s,box-shadow .25s,translate .25s}
.button:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#ffffff26 50%,transparent 75%);transform:translateX(-110%);transition:transform .7s}
.button:hover:after{transform:translateX(110%)}
.button:hover{translate:0 -3px;box-shadow:0 8px 18px #24291c20}
.experience>a span{transition:transform .25s}.experience>a:hover span{transform:translate(3px,-3px)}
.gallery-item span{transition:padding-bottom .3s}.gallery-item:hover span{padding-bottom:28px}
.filters button{transition:background .2s,color .2s,transform .2s}.filters button:hover{transform:translateY(-2px)}
.lightbox[open]{animation:dialog-arrive .3s ease}.lightbox[open]::backdrop{animation:backdrop-arrive .3s ease}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@keyframes backdrop-arrive{from{background:#1110}to{background:#111b}}
@media(max-width:700px){.gallery-grid.is-filtered{grid-auto-rows:260px}.experience:nth-child(n){transition-delay:0s}}
@media(prefers-reduced-motion:reduce){.hero-content>*,.lightbox[open],.lightbox[open]::backdrop{animation:none!important}.reveal{opacity:1;transform:none}.hero-photo{transform:none;will-change:auto}.button:hover{translate:none}.header::after{display:none}}
:root{--olive:#454b18;--ink:#24291c;--muted:#656956;--line:#dfe2d7;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:white;color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;object-fit:cover}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #a3b360;outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;z-index:10;background:white;padding:16px}.skip:focus{top:12px}.header{height:104px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:28px;background:white}.brand{display:flex;align-items:center;gap:12px}.brand img{width:58px;height:58px;object-fit:contain}.brand>span{font-size:24px;font-weight:600;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:3px;margin-top:4px;font-weight:500}.header nav{display:flex;gap:32px;font-size:14px}.header nav a:hover{color:var(--olive);text-decoration:underline;text-underline-offset:7px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:16px 28px;border-radius:40px;background:var(--olive);color:white;font-size:14px;font-weight:600;transition:background .2s}.button:hover{background:#30360d}.booking{text-transform:uppercase;letter-spacing:1px;font-size:12px}.light{background:white;color:var(--olive)}.light:hover{background:#edf0e5}.hero{height:min(800px,calc(100svh - 104px));min-height:600px;position:relative;color:white;background:var(--olive);overflow:hidden}.hero-photo{position:absolute;inset:0;height:100%;object-position:center 56%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,23,12,.65),rgba(10,23,12,.04) 85%),linear-gradient(0deg,rgba(10,23,12,.4),transparent 30%)}.hero-content{position:relative;z-index:1;padding:65px 7%;max-width:780px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;line-height:1.6;margin:0 0 28px}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;letter-spacing:-2px;margin:0;line-height:.97}h1{font-size:clamp(72px,7.5vw,112px)}h1 em,h2 em{font-weight:400}h1 em{color:#e7efc9}.hero-content>p:not(.eyebrow){font-size:17px;line-height:1.7;margin:28px 0}.hero-foot{position:absolute;bottom:25px;left:7%;right:7%;z-index:1;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1.8px;border-top:1px solid #ffffff50;padding-top:22px}.hero-foot a{letter-spacing:0;font-size:13px}.section{padding:100px 7%}h2{font-size:clamp(48px,5vw,76px)}.intro{display:grid;grid-template-columns:1fr 2.1fr 1fr;gap:40px;align-items:start}.intro .eyebrow{padding-top:8px}.intro h2{margin-bottom:32px}.intro p:not(.eyebrow){max-width:580px;color:var(--muted);font-size:15px;line-height:1.8}.intro .lead{font-size:21px!important;color:var(--ink)!important;line-height:1.55!important}.intro-note{align-self:center;text-align:center;transform:rotate(-8deg);color:var(--olive);font-family:Georgia,serif;font-style:italic;font-size:22px;line-height:1.3}.intro-note img{height:76px;width:76px;object-fit:contain;margin:25px auto}.experiences{padding-top:20px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:50px}.section-head .eyebrow{margin-bottom:18px}.section-head>p{color:var(--muted);font-size:14px;line-height:1.8}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.photo-wrap{position:relative;height:430px;overflow:hidden}.photo-wrap img{height:100%;transition:transform .5s}.experience:hover .photo-wrap img{transform:scale(1.035)}.photo-wrap span{position:absolute;bottom:18px;left:18px;color:white;border:1px solid #ffffff80;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:12px}h3{font-size:25px;font-weight:500;letter-spacing:-.7px;margin:24px 0 10px}.experience p{font-size:15px;line-height:1.7;color:var(--muted);min-height:76px}.experience>a{font-size:13px;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between}.gather{display:grid;grid-template-columns:1fr 1fr;background:var(--olive);color:white}.gather-photo{min-height:630px}.gather-photo img{height:100%;max-height:720px}.gather-copy{padding:80px 13%;align-self:center}.gather-copy p:not(.eyebrow){font-size:16px;line-height:1.8;color:#e1e3d1;margin:30px 0}.gather-copy .occasion{font-size:11px!important;letter-spacing:1px;line-height:2!important;border-top:1px solid #ffffff40;padding-top:20px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:white;border-radius:30px;padding:10px 18px;font-size:13px;cursor:pointer}.filters button[aria-pressed=true]{background:var(--olive);color:white;border-color:var(--olive)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-auto-rows:260px;gap:20px}.gallery-item{position:relative;border:0;padding:0;overflow:hidden;cursor:zoom-in;background:#e5e8dc}.gallery-item img{height:100%;transition:transform .4s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item span{position:absolute;bottom:0;left:0;right:0;color:white;text-align:left;font-size:13px;padding:35px 20px 20px;background:linear-gradient(transparent,#0009)}.tall{grid-row:span 2}.wide{grid-column:span 2}.gallery-item[hidden]{display:none}.contact{text-align:center;border-top:1px solid var(--line);padding-top:80px}.contact h2{font-size:clamp(48px,5vw,80px)}.contact p:not(.eyebrow){line-height:1.8;font-size:16px;color:var(--muted);margin:30px 0}.contact-note{display:block;font-size:12px;color:var(--muted);margin-top:20px}footer{border-top:1px solid var(--line);padding:35px 7%;display:flex;align-items:center;justify-content:space-between;gap:20px}footer p{font-size:10px;letter-spacing:1.5px}footer>a:last-child{font-size:12px}.footer-brand{font-size:25px;font-family:Georgia,serif}.lightbox{background:#fff;border:0;padding:20px;width:min(950px,94vw);max-height:94svh;color:var(--ink)}.lightbox::backdrop{background:#111b}.lightbox img{max-height:75svh;object-fit:contain}.lightbox p{text-align:center;font-size:14px}.close{position:absolute;right:25px;top:25px;background:white;border:0;width:44px;height:44px;border-radius:50%;font-size:30px;cursor:pointer}
@media(min-width:1600px){.section{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}}@media(max-width:1000px){.header nav{gap:18px}.brand>span{font-size:21px}.intro{grid-template-columns:1fr 2fr}.intro-note{display:none}.photo-wrap{height:330px}.gather-copy{padding:55px 9%}.gather-photo{min-height:550px}}@media(max-width:700px){html{scroll-padding-top:20px}.header{height:88px;padding:0 5%;gap:15px}.brand img{width:44px;height:44px}.brand>span{font-size:21px}.header nav{display:none}.booking{padding:13px 20px;min-height:46px;font-size:11px}.hero{height:calc(100svh - 88px);min-height:640px;max-height:850px}.hero-content{padding:58px 7%}.hero h1{font-size:74px}.hero-content>p:not(.eyebrow){font-size:16px}.hero-foot{display:block;line-height:2}.hero-foot a{display:block}.hero-photo{object-position:60% center}.section{padding:65px 7%}.intro{display:block}.intro h2{font-size:60px}.intro .lead{font-size:20px!important}.section-head{display:block;margin-bottom:30px}.section-head h2{font-size:52px}.experience-grid{grid-template-columns:1fr;gap:38px}.photo-wrap{height:440px}.experience p{min-height:0}.gather{grid-template-columns:1fr}.gather-photo{min-height:0;height:390px}.gather-copy{padding:55px 7% 65px}.gather-copy h2{font-size:66px}.filters{margin-top:25px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:230px;gap:12px}.tall{grid-row:span 2}.wide{grid-column:span 2}.contact h2{font-size:52px}.contact br{display:none}footer{flex-wrap:wrap;padding:28px 7%}footer p{width:100%;order:3;line-height:1.8}.hero-content .eyebrow{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
