/* Lakefalls Estate, the website. Built on the look of the July preview site (Zander's ruling,
   Sept 28, 2026: "this is what was closer already"), with every word and photograph from
   the wedding weekend guide. Tokens are the July site's own. */
:root{
  --forest:#1f3527; --forest-deep:#16281d; --forest-mid:#2a4634;
  --gold:#b3894a; --gold-soft:#c9a45c; --caramel:#c89a5b;
  --cream:#f6f1e6; --cream-warm:#efe7d6; --paper:#ebe2cf;
  --ink:#232620; --ink-soft:#4c5148; --white:#fdfcf9;
  --rule:rgba(31,53,39,.18);
  --display:"Cormorant Garamond", Garamond, serif;
  --body:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --mono:"IBM Plex Mono", "Courier New", monospace;
  --pad:clamp(1.25rem, 4vw, 3rem);
  --section:clamp(4.5rem, 9vw, 8rem);
  --wide:1320px;
  --hh:60px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (min-width:1024px){html{font-size:93.75%}}
body{font-family:var(--body);font-weight:400;font-size:1.02rem;line-height:1.75;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--pad)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* type */
.kicker{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.h-display{font-family:var(--display);font-style:italic;font-weight:500;line-height:1.04;letter-spacing:-.005em;text-wrap:balance}
h2.h-display{font-size:clamp(2.2rem,4.6vw,3.6rem)}
.lede{font-size:1.12rem;line-height:1.8;color:var(--ink-soft);max-width:62ch}
.mono-link{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--forest);border-bottom:1px solid var(--rule);padding-bottom:.55rem;transition:border-color .3s,color .3s}
.mono-link:hover{border-color:var(--gold);color:var(--gold)}
.btn{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:var(--forest-deep);padding:1em 1.8em;border-radius:999px;transition:background .3s}
.btn:hover{background:var(--gold-soft)}
.btn-ghost{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px rgba(246,241,230,.5)}
.btn-ghost:hover{background:rgba(246,241,230,.12)}
.credit{font-family:var(--body);font-style:italic;font-size:.78rem;color:var(--ink-soft);opacity:.85}

/* ===== header, the settled July V8 header ===== */
.hh{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:clamp(1.4rem,3vw,2.8rem);padding:1.2rem clamp(1.2rem,4vw,2.4rem);transition:background .35s ease,padding .3s ease}
.hh.solid,.hh.on-light{background:var(--forest-deep);padding-top:.6rem;padding-bottom:.6rem;box-shadow:0 12px 30px -22px rgba(0,0,0,.7)}
.hh-side{display:flex;gap:clamp(1.2rem,2.4vw,2.2rem)}
.hh-side a{position:relative;font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,230,.92);padding:.35em 0;transition:color .3s}
.hh-side a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--gold-soft);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.hh-side a:hover,.hh-side a[aria-current]{color:var(--gold-soft)}
.hh-side a:hover::after,.hh-side a[aria-current]::after{transform:scaleX(1)}
.hh-mark{font-family:var(--display);letter-spacing:.16em;font-size:clamp(1.3rem,2.8vw,1.7rem);color:var(--cream);white-space:nowrap}
.hh-cta{position:absolute;right:clamp(1.2rem,4vw,2.4rem);top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;background:var(--gold);color:var(--forest-deep);padding:.6em 1.15em;border-radius:999px}
.hh-burger{display:none;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:var(--cream);padding:10px;margin:-10px}
.hh-burger i{position:relative;display:block;width:22px;height:1.5px;background:currentColor}
.hh-burger i::before,.hh-burger i::after{content:"";position:absolute;left:0;width:22px;height:1.5px;background:currentColor}
.hh-burger i::before{top:-6px}.hh-burger i::after{top:6px}
.fh-rev{position:fixed;inset:0;z-index:40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility .35s ease}
.fh-rev.on{opacity:1;visibility:visible}
.fh-rev .p{position:absolute;inset:0;background-size:cover;background-position:center;clip-path:inset(50% 0 50% 0);transition:clip-path .6s cubic-bezier(.16,1,.3,1)}
.fh-rev.on .p{clip-path:inset(0 0 0 0)}
.fh-rev .scrim{position:absolute;inset:0;background:rgba(16,24,20,.5)}
.fh-rev .nm{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--pad)}
.fh-rev .nm b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.6rem,8vw,5rem);color:var(--white);opacity:0;transform:translateY(16px);transition:opacity .5s ease .12s,transform .5s ease .12s}
.fh-rev .nm em{display:block;margin-top:.6rem;font-family:var(--mono);font-style:normal;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);opacity:0;transition:opacity .5s ease .22s}
.fh-rev.on .nm b,.fh-rev.on .nm em{opacity:1;transform:none}
.fm-menu{position:fixed;inset:0;z-index:60;background:var(--forest-deep);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}
.fm-menu.open{opacity:1;visibility:visible}
.fm-close{position:fixed;top:calc(1rem + env(safe-area-inset-top));right:1rem;z-index:62;width:44px;height:44px;border-radius:50%;border:0;background:rgba(246,241,230,.16);color:var(--cream);font-size:1.5rem;cursor:pointer}
.fm-set{display:flex;flex-direction:column;height:100%}
.fm-panel{position:relative;flex:1;min-height:58px;overflow:hidden;cursor:pointer;transition:flex .5s cubic-bezier(.16,1,.3,1)}
.fm-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55);transition:filter .4s ease}
.fm-panel.active{flex:5}.fm-panel.active img{filter:brightness(.82)}
.fm-panel .lbl{position:absolute;z-index:2;left:1.3rem;bottom:1rem;font-family:var(--display);font-style:italic;font-size:1.3rem;color:var(--cream);text-shadow:0 2px 12px rgba(0,0,0,.55)}
.fm-panel::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(11,18,14,.92) 0%,rgba(11,18,14,.58) 28%,rgba(11,18,14,0) 62%);opacity:0;transition:opacity .4s ease;pointer-events:none}
.fm-panel.active::after{opacity:1}
.fm-panel .det{position:absolute;z-index:2;left:1.4rem;right:1.4rem;bottom:1.35rem;opacity:0;transform:translateY(12px);transition:opacity .45s ease .1s,transform .45s ease .1s}
.fm-panel.active .lbl{opacity:0}.fm-panel.active .det{opacity:1;transform:none}
.fm-panel .det b{display:block;font-family:var(--display);font-style:italic;font-size:1.9rem;line-height:1.05;color:var(--white);margin-bottom:.5rem}
.fm-panel .det em{display:block;font-family:var(--mono);font-style:normal;font-size:.62rem;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}
.fm-panel .det a{display:inline-flex;margin-top:1.05rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--forest-deep);background:var(--gold);padding:.75em 1.35em;border-radius:999px}
@media (max-width:760px){
  .hh{justify-content:flex-start;gap:.9rem;padding-right:1.2rem}
  .hh-side,.hh-cta{display:none}
  .hh-mark{order:1;margin-right:auto}
  .hh-burger{display:flex;order:3}
}
@media (min-width:761px){.fm-menu,.fm-close{display:none}}

/* ===== heroes ===== */
.hero{position:relative;height:100svh;min-height:560px;margin-top:-76px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--forest-deep)}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 42% at 50% 52%,rgba(14,22,17,.42),rgba(14,22,17,0) 100%),linear-gradient(180deg,rgba(16,24,20,.55) 0%,rgba(22,40,29,.28) 42%,rgba(22,40,29,.58) 100%)}
.hero-in{position:relative;z-index:2;padding:0 var(--pad);max-width:60rem}
.hero-in .kicker{color:var(--gold-soft)}
.hero-in h1{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.7rem,7vw,5.4rem);line-height:1.02;color:var(--white);margin:.8rem 0 .9rem}
.hero-in p{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,230,.85)}
.hero .credit{position:absolute;z-index:2;right:var(--pad);bottom:1.2rem;color:rgba(246,241,230,.72)}
.page-hero{height:78svh;min-height:480px}
@media (max-width:760px){.hero{margin-top:-64px}}

/* ===== doors, three slices that widen on hover (Home A) ===== */
.doors{display:flex;height:min(76svh,720px);min-height:460px;background:var(--forest-deep)}
.door{position:relative;flex:1;overflow:hidden;display:flex;align-items:flex-end;padding:0 clamp(1.2rem,2.4vw,2.2rem) clamp(1.4rem,3vw,2.4rem);transition:flex .7s cubic-bezier(.16,1,.3,1)}
.door.main{flex:1.35}
.doors:hover .door{flex:.8}
.doors:hover .door:hover{flex:1.9}
.door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.door::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,18,14,.85) 0%,rgba(11,18,14,.35) 34%,rgba(11,18,14,0) 62%)}
.door .t{position:relative;z-index:2;color:var(--white)}
.door .nm{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.9rem,2.8vw,2.6rem);line-height:1}
.door .sub{display:block;margin-top:.6rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.door .more{display:block;max-width:26rem;margin-top:.9rem;font-size:.95rem;line-height:1.6;color:rgba(246,241,230,.88);opacity:0;max-height:0;overflow:hidden;transition:opacity .5s ease,max-height .5s ease}
.door:hover .more,.door:focus-visible .more{opacity:1;max-height:9rem}
@media (max-width:760px){
  .doors{flex-direction:column;height:auto;min-height:0}
  .door,.door.main,.doors:hover .door,.doors:hover .door:hover{flex:none;height:32svh;min-height:190px}
  .door.main{order:-1;height:42svh}
  .door .more{opacity:1;max-height:none;font-size:.9rem}
}

/* ===== the whole place (Home I), a photograph inside the type ===== */
.whole{padding:clamp(3.5rem,7vw,5.5rem) var(--pad);text-align:center;background:var(--cream)}
.whole .mask{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(2.7rem,6.2vw,6rem);line-height:1.02;background-size:cover;background-position:center 38%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:maskpan 24s ease-in-out infinite alternate;margin:1rem auto 0;max-width:none;text-transform:lowercase;padding-bottom:.08em}
.whole .ln{display:block}
@media (max-width:760px){.whole .ln{display:inline}}
.whole .mono-link{margin-top:1.8rem}
@keyframes maskpan{from{background-position:10% 30%}to{background-position:90% 62%}}
.whole-lede{max-width:44ch;margin:1.6rem auto 0;font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.45;color:var(--forest)}
.whole-list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 0;max-width:74rem;margin:1.5rem auto 0}
.whole-list li{font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);padding:0 1rem;border-left:1px solid var(--rule)}
.whole-list li:first-child{border-left:0}
.whole-note{margin:1.2rem auto 0;color:var(--ink-soft);font-size:1rem}
@media (prefers-reduced-motion:reduce){.whole .mask{animation:none}}

/* ===== stat band (Home A's count, Home C's colors), five separate pieces, labels level ===== */
.stats{background:var(--forest-deep);color:var(--white);padding:clamp(3.2rem,6vw,4.8rem) 0}
.stats ul{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:1440px;margin:0 auto;padding:0 var(--pad);text-align:center}
.stats li{display:flex;flex-direction:column;align-items:center;padding:.6rem clamp(1rem,3vw,3rem);border-left:1px solid rgba(201,164,92,.28)}
.stats li:first-child{border-left:0}
.stats b{display:block;font-family:var(--display);font-weight:600;font-size:clamp(2.1rem,3.3vw,3.1rem);line-height:1;height:1em;color:var(--gold-soft);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.stats span{display:block;margin-top:1.1rem;max-width:17ch;font-family:var(--mono);font-size:.6rem;line-height:1.7;letter-spacing:.18em;text-transform:uppercase;color:rgba(253,252,249,.9)}
@media (max-width:760px){
  .stats ul{grid-template-columns:1fr 1fr;row-gap:0}
  .stats li{border-left:0;padding:1.4rem .6rem;border-top:1px solid rgba(201,164,92,.22)}
  .stats li:nth-child(2),.stats li:nth-child(5){border-left:1px solid rgba(201,164,92,.22)}
  .stats li.mid{grid-column:1/-1;order:-1;border-top:0;padding-top:.4rem}
}
/* ===== a photograph beside words, balanced so the words fill their side ===== */
.pair{padding:var(--section) 0}
.pair .wrap{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.pair.flip .wrap{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.pair.flip figure{order:2}
.pair figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.pair figure.wide img{aspect-ratio:4/3}
.pair figcaption{margin-top:.6rem}
.pair .copy .kicker{margin-bottom:1rem}
.pair .copy h2{margin-bottom:1.3rem}
.pair .copy p{color:var(--ink-soft);margin-bottom:1rem;font-size:1.06rem}
.pair .copy .mono-link{margin-top:1rem}
.pair.tint{background:var(--cream-warm)}
@media (max-width:860px){.pair .wrap,.pair.flip .wrap{grid-template-columns:1fr}.pair.flip figure{order:0}}

/* ===== four ceremony sites (Weddings A rail) ===== */
.sites{padding:var(--section) 0;background:var(--forest-deep);color:var(--cream)}
.sites .head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.6rem}
.sites .head p{max-width:38ch;color:rgba(246,241,230,.78)}
.sites .kicker{color:var(--gold-soft);margin-bottom:.8rem}
.rail{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,1.6vw,1.4rem)}
.site-card figure{position:relative;overflow:hidden}
.site-card img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.site-card:hover img{transform:scale(1.03)}
.site-card .cap{display:block;margin-top:1rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.site-card h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.7rem;line-height:1.1;margin:.35rem 0 .45rem}
.site-card p{font-size:.94rem;line-height:1.65;color:rgba(246,241,230,.8)}
.sites .foot{margin-top:2.4rem}
.sites .mono-link{color:var(--cream);border-color:rgba(246,241,230,.3)}
@media (max-width:960px){.rail{grid-template-columns:repeat(4,78%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem}.site-card{scroll-snap-align:start}.sites .head{flex-direction:column;align-items:start}}

/* ===== quote over a photograph ===== */
.qphoto{position:relative;min-height:78svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:var(--white);padding:var(--section) var(--pad)}
.qphoto > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.qphoto::after{content:"";position:absolute;inset:0;background:rgba(14,22,17,.52)}
.qphoto blockquote{position:relative;z-index:2;max-width:46rem}
.qphoto blockquote p{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3.6vw,2.9rem);line-height:1.22}
.qphoto cite{display:block;margin-top:1.6rem;font-style:normal;font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft)}
.qphoto .credit{position:absolute;z-index:2;right:var(--pad);bottom:1rem;color:rgba(246,241,230,.7)}

/* ===== drag through the seasons (Home E, melding) ===== */
.seasons{padding:var(--section) 0;background:var(--cream-warm)}
.seasons .head{text-align:center;margin-bottom:2.2rem}
.seasons .head h2{margin-top:.8rem}
.sframe{position:relative;aspect-ratio:16/9;overflow:hidden;max-width:1180px;margin:0 auto;background:#222;touch-action:pan-y}
.sframe img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sframe .gl-canvas{z-index:1}
.sframe .tag{position:absolute;z-index:2;left:1.1rem;bottom:1rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--white);background:rgba(14,22,17,.55);padding:.5em .8em}
.sdrag{max-width:1180px;margin:1.4rem auto 0;padding:0 .2rem}
.sdrag input{width:100%;accent-color:var(--gold);height:28px;cursor:grab}
.sdrag .stops{display:flex;justify-content:space-between;margin-top:.4rem}
.sdrag .stops button{background:none;border:0;cursor:pointer;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding:.4rem 0}
.sdrag .stops button[aria-pressed=true]{color:var(--gold)}
.sframe img{transition:opacity .9s ease}.sframe img:first-of-type{opacity:1}
.seasons .note{max-width:52ch;margin:1.6rem auto 0;text-align:center;color:var(--ink-soft)}

/* ===== press strip (Home B) ===== */
.press{background:var(--forest);overflow:hidden;padding:1.7rem 0}
.press .track{display:flex;width:max-content;animation:press 46s linear infinite}
.press ul{display:flex;list-style:none;gap:3.4rem;padding-right:3.4rem;font-family:var(--display);font-style:italic;font-size:clamp(1.35rem,2.2vw,1.8rem);color:var(--cream);white-space:nowrap}
.press li::before{content:"\2022";color:var(--gold-soft);margin-right:3.4rem;font-style:normal}
.press:hover .track{animation-play-state:paused}
@keyframes press{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.press .track{animation:none;flex-wrap:wrap}}

/* ===== keep exploring (Home D) ===== */
.next3{display:grid;grid-template-columns:repeat(3,1fr);height:clamp(220px,26vw,330px)}
.next3 a{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:1.3rem 1.5rem}
.next3 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.next3 a::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,18,14,.78),rgba(11,18,14,0) 60%)}
.next3 a:hover img{transform:scale(1.03)}
.next3 span{position:relative;z-index:2;color:var(--white)}
.next3 .k{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft)}
.next3 .n{display:block;font-family:var(--display);font-style:italic;font-size:1.8rem;line-height:1.1}
.next-head{padding:clamp(3rem,6vw,4.5rem) 0 1.6rem;text-align:center}
@media (max-width:760px){.next3{grid-template-columns:1fr;height:auto}.next3 a{height:180px}}

/* ===== ending ===== */
.ending{position:relative;background:var(--forest-deep);color:var(--cream);text-align:center;padding:clamp(5rem,11vw,9rem) var(--pad);overflow:hidden}
.ending .watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);font-family:var(--display);font-size:clamp(14rem,30vw,26rem);line-height:1;color:rgba(246,241,230,.05);pointer-events:none;user-select:none}
.ending .kicker{color:var(--gold-soft)}
.ending h2{position:relative;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.4rem,5vw,4rem);margin:.9rem 0 1rem}
.ending p{position:relative;max-width:48ch;margin:0 auto 2rem;color:rgba(246,241,230,.8)}
.ending .row{position:relative;display:flex;flex-wrap:wrap;gap:1rem 1.6rem;justify-content:center;align-items:center}
.ending .row a.txt{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);border-bottom:1px solid rgba(246,241,230,.35);padding-bottom:.3rem}

/* ===== footer ===== */
.foot{background:var(--forest-deep);color:var(--cream);padding:clamp(3rem,7vw,5.5rem) 0 2rem;border-top:1px solid rgba(246,241,230,.08)}
.foot .mark{display:block;font-family:var(--display);letter-spacing:.3em;text-transform:uppercase;font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:2.6rem}
.foot .cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.foot h4{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.2rem;margin-bottom:.8rem;color:var(--gold-soft)}
.foot ul{list-style:none}
.foot li{margin-bottom:.4rem}
.foot li a,.foot .cols p{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,241,230,.82)}
.foot li a:hover{color:var(--gold-soft)}
.foot .base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(246,241,230,.12);font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,241,230,.6)}
@media (max-width:760px){.foot .cols{grid-template-columns:1fr 1fr}}

/* ===== quiet reveal, used sparingly ===== */
.rv{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
.no-js .rv{opacity:1;transform:none}

/* ===== directional fill (lab 46): the colour arrives from the side the pointer came in ===== */
.btn{position:relative}
.btn,.hh-cta{overflow:hidden;isolation:isolate}
.btn::before,.hh-cta::before{content:"";position:absolute;z-index:-1;left:var(--fx,50%);top:var(--fy,50%);width:260%;aspect-ratio:1;border-radius:50%;background:var(--gold-soft);transform:translate(-50%,-50%) scale(0);transition:transform .55s cubic-bezier(.16,1,.3,1)}
.btn-ghost::before{background:rgba(246,241,230,.16)}
.btn:hover::before,.hh-cta:hover::before{transform:translate(-50%,-50%) scale(1)}
.btn:hover{background:var(--gold)}.btn-ghost:hover{background:transparent}
@media (prefers-reduced-motion:reduce){.btn::before,.hh-cta::before{transition:none}}

/* ===== section heads ===== */
.shead{text-align:center;max-width:46rem;margin:0 auto clamp(2rem,4vw,3rem);padding:0 var(--pad)}
.shead h2{margin:.8rem 0 1rem}
.shead p{color:var(--ink-soft);font-size:1.06rem;line-height:1.8}
.dark .shead p{color:rgba(246,241,230,.8)}
.dark .kicker{color:var(--gold-soft)}

/* ===== the four days, cards that rise gradually with the scroll (lab 06, rebuilt twice) ===== */
.rtabs{background:var(--forest-deep);color:var(--cream)}
.rt-card{background:var(--c);color:var(--ink)}
.rt-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;height:64px;padding:0 var(--pad);background:none;border:0;cursor:pointer;color:inherit;text-align:left}
.rt-bar .d{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.rt-bar .t{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(1.5rem,2.8vw,2.1rem)}
.rt-panel{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.4rem,4vw,4rem);padding:.4rem var(--pad) clamp(1rem,2.4vh,1.8rem)}
.rt-media{display:flex;flex-direction:column;gap:.7rem;min-height:0}
.rt-main{position:relative;flex:1;min-height:0;overflow:hidden;border-radius:4px;background:rgba(0,0,0,.08)}
.rt-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s ease}
.rt-main img.fade{opacity:0}
.rt-thumbs{display:flex;gap:.5rem;flex:0 0 auto}
.rt-th{position:relative;width:clamp(56px,5.2vw,78px);aspect-ratio:1;padding:0;border:0;border-radius:3px;overflow:hidden;cursor:pointer;background:none;opacity:.62;transition:opacity .25s,box-shadow .25s}
.rt-th img{width:100%;height:100%;object-fit:cover}
.rt-th:hover{opacity:.9}
.rt-th.on{opacity:1;box-shadow:0 0 0 2px var(--gold-soft)}
.rt-copy{align-self:center;min-height:0;overflow:auto;scrollbar-width:none}
.rt-copy::-webkit-scrollbar{display:none}
.rt-copy h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05;margin-bottom:1rem}
.rt-copy ul{list-style:none;display:grid;gap:.7rem}
.rt-copy li{position:relative;padding-left:1.1rem;font-size:.97rem;line-height:1.6}
.rt-copy li::before{content:"";position:absolute;left:0;top:.66em;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.6}
.c-cream{--c:var(--cream-warm)}.c-forest{--c:var(--forest-mid);color:var(--cream)}.c-caramel{--c:var(--caramel)}.c-forest-deep{--c:#24402e;color:var(--cream)}
.c-forest .rt-bar .d,.c-forest-deep .rt-bar .d{color:var(--gold-soft)}
/* pinned only when the script runs, otherwise the four days simply stack */
.js .rt-track{height:calc(100svh + 3 * 95svh)}
.js .rt-stage{position:sticky;top:0;height:100svh;overflow:hidden;padding-top:calc(var(--hh) + 4px)}
.js .rt-card{position:absolute;left:0;right:0;top:0;border-radius:22px 22px 0 0;box-shadow:0 -18px 40px -24px rgba(0,0,0,.55);will-change:transform;display:flex;flex-direction:column}
.js .rt-card .rt-panel{flex:1;min-height:0}
.no-js .rt-main{height:420px}
@media (max-width:760px){
  .rt-bar{height:54px}
  .rt-panel{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:.8rem}
  .rt-main{flex:none;height:24svh}
  .rt-thumbs{gap:.35rem}
  .rt-copy{align-self:start}
  .rt-copy h3{font-size:1.5rem;margin-bottom:.5rem}
  .rt-copy li{font-size:.88rem;line-height:1.5}
  .rt-th{width:44px}
}
/* ===== filmstrip drift (lab 21) ===== */
.film{padding:clamp(3rem,6vw,5rem) 0;background:var(--cream);overflow:hidden}
.film .rows{display:grid;gap:clamp(.7rem,1.4vw,1.1rem);-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.film .track{display:flex;width:max-content;animation:filmL 80s linear infinite}
.film .row.b .track{animation:filmR 90s linear infinite}
.film .grp{display:flex;gap:clamp(.7rem,1.4vw,1.1rem);padding-right:clamp(.7rem,1.4vw,1.1rem)}
.film img{height:clamp(150px,19vw,250px);width:auto}
.film:hover .track{animation-play-state:paused}
@keyframes filmL{to{transform:translateX(-50%)}}
@keyframes filmR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.film .credit{display:block;text-align:center;margin-top:1rem}
@media (prefers-reduced-motion:reduce){.film .track{animation:none}.film .row{overflow-x:auto}}

/* ===== the video quote (lab 12), a still for now ===== */
.vquote{position:relative;min-height:84svh;display:flex;align-items:center;justify-content:center;isolation:isolate;padding:var(--section) var(--pad);overflow:hidden}
.vquote > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.vquote::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(22,40,29,.42)}
.vq-card{background:var(--cream);max-width:640px;padding:clamp(2rem,4vw,3.2rem) clamp(1.6rem,3.6vw,3.2rem);border-radius:6px;text-align:center;box-shadow:0 24px 60px rgba(22,40,29,.35)}
.vq-card p{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.4;color:var(--forest);text-wrap:balance}
.vq-card cite{display:block;margin-top:1.4rem;font-family:var(--mono);font-style:normal;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.vquote .credit{position:absolute;right:var(--pad);bottom:1rem;color:rgba(246,241,230,.75)}

/* ===== vertical pill rail, the six houses (lab 37) ===== */
.houses{padding:clamp(3.5rem,6vw,4.5rem) 0;background:var(--cream)}
.houses .shead{margin-bottom:clamp(1.4rem,2.6vw,2rem)}
.houses .shead h2{margin:.5rem 0 .6rem}
.vrail{display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(1.4rem,3.4vw,3.2rem);align-items:stretch}
.vr-pills{display:flex;flex-direction:column;gap:.45rem}
.vr-pill{display:flex;flex-direction:column;gap:.1rem;text-align:left;border:1px solid var(--rule);background:var(--white);border-radius:16px;padding:.62rem 1.2rem;cursor:pointer;transition:background .3s ease,border-color .3s ease;font:inherit}
.vr-pill .n{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.2rem;color:var(--forest)}
.vr-pill .m{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.vr-pill:hover{border-color:var(--gold)}
.vr-pill.on{background:var(--forest);border-color:var(--forest)}
.vr-pill.on .n{color:var(--cream)}.vr-pill.on .m{color:var(--gold-soft)}
.vr-panel{display:none}
.vr-stage{position:relative}
.vr-panel.on{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:clamp(1.2rem,3vw,2.6rem);align-items:center;height:100%;animation:vrIn .5s ease}
.vr-panel figure{height:100%;min-height:340px}
@keyframes vrIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.vr-panel figure img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.vr-panel .mono-link.all{margin-left:1.2rem;color:var(--ink-soft)}
.vr-panel .kicker{margin-bottom:.7rem}
.vr-panel h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.05;color:var(--forest);margin-bottom:.9rem}
.vr-panel p{color:var(--ink-soft);margin-bottom:1rem}
.houses .foot-link{margin-top:2.4rem;text-align:center}
@media (max-width:900px){.vr-panel figure{height:auto;min-height:0}.vr-panel figure img{aspect-ratio:4/3;height:auto}.vrail{grid-template-columns:1fr}.vr-pills{flex-direction:row;overflow-x:auto;scrollbar-width:none;padding-bottom:.3rem}.vr-pill{flex:0 0 auto}.vr-panel.on{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.vr-panel.on{animation:none}}

/* ===== the ending, 1927 with Lakefalls beneath ===== */
.ending .ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;user-select:none;line-height:.85}
.ending .ghost b{display:block;font-family:var(--display);font-weight:500;font-size:clamp(11rem,30vw,25rem);color:rgba(246,241,230,.045)}
.ending .ghost i{display:block;font-family:var(--display);font-style:normal;letter-spacing:.5em;text-transform:uppercase;font-size:clamp(1.2rem,3vw,2.4rem);color:rgba(246,241,230,.07);margin-top:.4rem;padding-left:.5em}
.ending .contacts{position:relative;margin-top:2.2rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,230,.7)}
.ending .contacts a{color:var(--cream);border-bottom:1px solid rgba(246,241,230,.3)}

/* ===== vertical slices above the footer, the smaller pages (lab 17) ===== */
.vslices{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--cream-warm)}
.vslices .wrap{display:grid;grid-template-columns:1.15fr repeat(4,1fr);gap:clamp(.9rem,1.8vw,1.5rem);align-items:center}
.vs-text h2{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.12;color:var(--forest);margin:.7rem 0 .8rem}
.vs-text p{font-size:.95rem;color:var(--ink-soft)}
.vs{position:relative;display:block;overflow:hidden;border-radius:4px;isolation:isolate}
.vs img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.vs::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,24,20,.55),rgba(16,24,20,.12) 55%)}
.vs:hover img{transform:scale(1.05)}
.vs span{position:absolute;z-index:1;left:0;right:0;bottom:1.3rem;text-align:center}
.vs span b{display:inline-block;font-family:var(--mono);font-weight:400;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--white);border-bottom:1px solid rgba(253,252,249,.8);padding-bottom:.35rem}
@media (max-width:960px){.vslices .wrap{grid-template-columns:repeat(2,1fr)}.vs-text{grid-column:1/-1}.vs img{aspect-ratio:4/3}}

/* ===== small helpers ===== */
.center{text-align:center}
.mt2{margin-top:2rem}
.stub{padding:var(--section) 0;text-align:center}
.stub p{max-width:52ch;margin:1rem auto 0;color:var(--ink-soft)}

/* ===== the property, one parchment band that inks in whole (lab 29, 38, 39; second pass) ===== */
.mapband{--paper:#f5f1e6;position:relative;background:var(--paper);color:var(--ink);overflow:hidden;isolation:isolate}
.mapband::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.6;mix-blend-mode:multiply;
  background:radial-gradient(ellipse 70% 60% at 50% 45%,rgba(0,0,0,0),rgba(120,96,60,.10) 100%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .26 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.mb-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.8fr) auto minmax(0,1.2fr);grid-template-areas:"left map right";gap:clamp(1.5rem,3vw,3.4rem);max-width:1520px;margin:0 auto;padding:clamp(2.2rem,5vh,3.6rem) var(--pad)}
.mb-left{grid-area:left;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.mb-right{grid-area:right;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(1.5rem,5vh,3.5rem) 0 clamp(.5rem,2vh,1.5rem)}
.mapbox{grid-area:map}
.mb-left h2{margin:.8rem 0 1rem;color:var(--forest)}
.mb-left p{color:var(--ink-soft);font-size:1rem;line-height:1.75}
.mb-left .kicker{color:#8a5a2b}
.mapbox{position:relative;height:min(calc(100svh - 140px),1000px);min-height:560px;aspect-ratio:1200/1575;margin:0 auto}
.mapbox > picture{display:contents}
.mapbox > img,.mapbox > picture > img{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 3%,#000 97%,transparent);mask-composite:intersect}
.pin{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border:0;background:none;padding:0;cursor:pointer;z-index:3;transition:opacity .35s ease}
.pin::before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 2px #8a5a2b;transition:background .25s,transform .25s}
.pin::after{content:"";position:absolute;inset:2px;border-radius:50%;box-shadow:0 0 0 1px rgba(138,90,43,.35);opacity:0;transition:opacity .25s}
.pin:hover::before,.pin.on::before{background:#8a5a2b;transform:scale(1.15)}
.pin.on::after{opacity:1}
.pin span{position:absolute;left:50%;top:-2px;transform:translate(-50%,-100%);white-space:nowrap;font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:var(--forest-deep);padding:.35em .6em;opacity:0;pointer-events:none;transition:opacity .2s}
.pin:hover span,.pin.on span,.pin:focus-visible span{opacity:1}
.pin.dim{opacity:.15;pointer-events:none}
.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.5rem}
.chips button{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;padding:.7em 1.15em;border-radius:999px;border:1px solid rgba(138,90,43,.45);background:transparent;color:var(--forest);cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.chips button:hover{border-color:#8a5a2b}
.chips button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.mb-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.4rem;align-items:center;background:rgba(255,253,247,.78);box-shadow:0 1px 0 rgba(138,90,43,.25),0 22px 44px -26px rgba(60,40,20,.5);padding:1rem;min-height:280px}
.mb-card img{width:100%;height:100%;min-height:250px;max-height:300px;object-fit:cover}
.mb-card b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:1.9rem;line-height:1.08;color:var(--forest)}
.mb-card span{display:block;margin-top:.5rem;font-family:var(--body);font-size:.98rem;line-height:1.6;color:var(--ink-soft)}
.mb-card a{display:inline-block;margin-top:.9rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#8a5a2b;border-bottom:1px solid rgba(138,90,43,.4);padding-bottom:.25rem}
.mb-card.swap{animation:cardIn .35s ease}
@keyframes cardIn{from{opacity:.2;transform:translateY(6px)}to{opacity:1;transform:none}}
.mapband .mb-hint{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(76,81,72,.8);margin-bottom:.6rem}
.mb-index{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.mb-index h3{font-family:var(--mono);font-weight:400;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#8a5a2b;margin:1.6rem 0 .5rem}
.mb-index .col > h3:first-child{margin-top:0}
.mb-index ul{list-style:none}
.mb-index a{display:block;font-family:var(--display);font-style:italic;font-size:1.3rem;line-height:1.5;color:var(--forest);transition:color .2s,padding .3s}
.mb-index a:hover,.mb-index a.on{color:#8a5a2b;padding-left:.4rem}
.mb-index li.dim a{opacity:.3}
.mapband .mb-addr{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:2rem}
.mapband > .gl-canvas{z-index:6}
.mapband.veiled .mb-in{visibility:hidden}
/* layout B (?map=b): the map on the left, everything else stacked on the right */
.lay-b .mb-in{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"map top" "map idx" "map card" "map addr";align-items:start;row-gap:1.6rem}
.lay-b .mb-left,.lay-b .mb-right{display:contents}
.lay-b .mb-top{grid-area:top}.lay-b .mb-index{grid-area:idx}.lay-b .mb-bottom{grid-area:card;align-self:end}.lay-b .mb-addr{grid-area:addr}
.lay-b .mb-card{max-width:620px}
/* layout C (?map=c): the title across the top, the index left of the map, the preview right of it */
.lay-c .mb-in{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"top top top" "idx map card";align-items:center;row-gap:1.8rem}
.lay-c .mb-left,.lay-c .mb-right{display:contents}
.lay-c .mb-top{grid-area:top;text-align:center;max-width:48rem;margin:0 auto}
.lay-c .chips{justify-content:center}
.lay-c .mb-index{grid-area:idx;justify-self:end}.lay-c .mb-bottom{grid-area:card}.lay-c .mb-addr{display:none}
.lay-c .mb-card{grid-template-columns:1fr}.lay-c .mb-card img{max-height:230px}
/* layout D (?map=d): the map right-aligned, the preview in the middle at the top, the legend under the title */
.lay-d .mb-in{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;grid-template-areas:"top card map" "idx card map" "addr card map";align-items:start;row-gap:2rem}
.lay-d .mb-left,.lay-d .mb-right{display:contents}
.lay-d .mb-top{grid-area:top}.lay-d .mb-index{grid-area:idx;align-self:end}.lay-d .mb-addr{grid-area:addr}
.lay-d .mb-bottom{grid-area:card;align-self:start;margin-top:clamp(2rem,9vh,6rem)}
.lay-d .mb-card{grid-template-columns:1fr}.lay-d .mb-card img{max-height:280px}
.lay-d .mapbox{margin-right:0}
.lay-d .mb-index a{font-size:1.15rem}
@media (max-width:1180px){
  .mb-in,.lay-b .mb-in,.lay-c .mb-in,.lay-d .mb-in{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"top map" "card map" "addr map";align-items:start}
  .mb-left,.mb-right{display:contents}
  .mb-top{grid-area:top}.mb-bottom{grid-area:card;align-self:end}.mb-addr{grid-area:addr}.mapbox{grid-area:map}
  .mb-index{display:none!important}
  .mb-card{grid-template-columns:1fr}.mb-card img{max-height:200px}
}
@media (max-width:760px){
  .mb-in,.lay-b .mb-in,.lay-c .mb-in,.lay-d .mb-in{grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "map" "card" "addr";gap:1.4rem}
  .lay-c .mb-top{text-align:left}.lay-c .chips{justify-content:flex-start}
  .mapbox{height:auto;min-height:0;width:100%}
  .mb-card{grid-template-columns:120px minmax(0,1fr);min-height:0}.mb-card img{min-height:96px;height:96px}
  .mb-card b{font-size:1.45rem}
}
}

/* ===== the estate, a full-bleed split (third pass) ===== */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:min(88svh,820px);background:var(--cream-warm)}
.split figure{position:relative;overflow:hidden}
.split figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split figure .credit{position:absolute;right:1rem;bottom:.8rem;color:rgba(246,241,230,.8)}
.split .copy{align-self:center;max-width:34rem;padding:clamp(3rem,6vw,5rem) clamp(1.5rem,5vw,5rem)}
.split .copy h2{margin:.9rem 0 1.2rem;color:var(--forest)}
.split .copy p{color:var(--ink-soft);margin-bottom:1rem;font-size:1.06rem}
.split .copy .mono-link{margin-top:1rem}
@media (max-width:860px){.split{grid-template-columns:1fr}.split figure{min-height:62svh}}

/* ===== map, a selected place and a chosen filter are unmistakable (11:20 PM note) ===== */
.pin.on::before{background:var(--forest);box-shadow:0 0 0 2px var(--gold-soft);transform:scale(1.25)}
.pin.on::after{opacity:1;box-shadow:0 0 0 2px rgba(179,137,74,.9);animation:pinPulse 1.6s ease-out infinite}
@keyframes pinPulse{0%{transform:scale(.55);opacity:1}100%{transform:scale(1.9);opacity:0}}
.pin.ping::after{opacity:1;box-shadow:0 0 0 2px rgba(31,53,39,.8);animation:pinPulse 1.1s ease-out 2}
.chips button[aria-pressed=true]{background:#8a5a2b;border-color:#8a5a2b;color:var(--paper);box-shadow:0 0 0 0 rgba(138,90,43,.45);animation:chipOn .9s ease-out 1}
@keyframes chipOn{0%{box-shadow:0 0 0 0 rgba(138,90,43,.55)}100%{box-shadow:0 0 0 10px rgba(138,90,43,0)}}
@media (prefers-reduced-motion:reduce){.pin.on::after,.pin.ping::after,.chips button[aria-pressed=true]{animation:none}}

/* ===== the estate, a horizontal timeline teaser (11:36 PM, the fuller history) ===== */
.tl-tease{--d:clamp(92px,8.4vw,116px);--col:clamp(230px,19vw,280px);--gap:clamp(1.2rem,2.2vw,2rem);padding:clamp(3.5rem,7vw,5.5rem) 0;background:var(--cream-warm);overflow:hidden}
.tl-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.tl-head h2{margin-top:.8rem;color:var(--forest)}
.tl-head p{color:var(--ink-soft);font-size:1.04rem;max-width:46ch}
.tl-nav{display:flex;gap:.6rem;margin-top:1.2rem}
.tl-nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(31,53,39,.3);background:transparent;color:var(--forest);font-size:1.1rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.tl-nav button:hover{background:var(--forest);color:var(--cream);border-color:var(--forest)}
.tl-nav button:disabled{opacity:.3;cursor:default;background:transparent;color:var(--forest)}
.tl-track{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:var(--col);gap:0 var(--gap);overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;scrollbar-width:none;padding:0 max(var(--pad),calc((100vw - var(--wide))/2 + var(--pad))) 1rem;scroll-padding-left:max(var(--pad),calc((100vw - var(--wide))/2 + var(--pad)));cursor:grab}
.tl-track::-webkit-scrollbar{display:none}
.tl-track.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.tl-track.dragging *{pointer-events:none}
.tl-track li{position:relative;display:flex;flex-direction:column;align-items:flex-start;scroll-snap-align:start;opacity:0;transform:translateY(10px);transition:opacity .7s ease,transform .7s ease}
.tl-track.in li{opacity:1;transform:none}
.tl-track.in li:nth-child(2){transition-delay:.1s}.tl-track.in li:nth-child(3){transition-delay:.2s}.tl-track.in li:nth-child(4){transition-delay:.3s}.tl-track.in li:nth-child(5){transition-delay:.4s}.tl-track.in li:nth-child(n+6){transition-delay:.5s}
.tl-track .era{display:block;height:1.3rem;font-family:var(--mono);font-style:normal;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.7rem;white-space:nowrap}
.tl-track li.era-start .era{padding-left:.9rem;border-left:2px solid var(--gold)}
/* the line runs through every node and on into the gap, so it reads as one continuous line */
.tl-track li::before{content:"";position:absolute;left:0;right:calc(-1 * var(--gap));top:calc(2rem + var(--d) + 30px);height:1px;background:repeating-linear-gradient(90deg,var(--gold) 0 10px,transparent 10px 16px)}
.tl-track li:last-child::before{right:40%}
.tl-track li::after{content:"";position:absolute;left:calc(var(--d)/2 - 6px);top:calc(2rem + var(--d) + 25px);width:11px;height:11px;border-radius:50%;background:var(--forest);box-shadow:0 0 0 3px var(--cream-warm)}
.tl-track li.era-start::after{background:var(--gold);width:13px;height:13px;left:calc(var(--d)/2 - 7px);top:calc(2rem + var(--d) + 24px)}
.tl-track figure{width:var(--d);aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--paper);box-shadow:0 0 0 4px var(--cream-warm),0 0 0 5px rgba(179,137,74,.45)}
.tl-track figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.tl-track figure.icon{display:grid;place-items:center;color:var(--forest);background:var(--cream)}
.tl-track figure.icon svg{width:52%;height:52%}
.tl-track li:hover figure img{transform:scale(1.08)}
.tl-track b{margin-top:2.7rem;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.7rem,2.3vw,2.1rem);line-height:1;color:var(--forest);white-space:nowrap}
.tl-track strong{margin-top:.5rem;font-family:var(--mono);font-weight:400;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.tl-track span{margin-top:.5rem;font-size:.9rem;line-height:1.6;color:var(--ink-soft);max-width:28ch}
.tl-foot{margin-top:clamp(1.4rem,3vw,2.2rem)}
@media (max-width:900px){.tl-head{grid-template-columns:1fr}.tl-tease{--col:min(74vw,260px)}}
@media (prefers-reduced-motion:reduce){.tl-track{scroll-behavior:auto}.tl-track li{opacity:1;transform:none;transition:none}}
.no-js .tl-track li{opacity:1;transform:none}

/* ======================= the Weddings page (Sept 29) ======================= */
.subnav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem 1.8rem;padding:1.1rem var(--pad);background:var(--cream-warm);border-bottom:1px solid var(--rule)}
.subnav a{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--forest)}
.subnav a:not(.btn):hover{color:var(--gold)}
.subnav .btn{padding:.75em 1.4em;color:var(--forest-deep)}
@media (max-width:760px){.subnav{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.subnav a{white-space:nowrap}}

/* the estate and the opening photographs */
.w-intro{padding:var(--section) 0}
.w-intro .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.w-intro .copy h2{margin:.9rem 0 1.2rem;color:var(--forest)}
.w-intro .copy p{color:var(--ink-soft);margin-bottom:1rem;font-size:1.04rem}
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(80px,7.5vw,110px);gap:.6rem}
.mosaic figure{position:relative;overflow:hidden;border-radius:3px}
.mosaic img,.moments img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.mosaic figure:hover img,.moments figure:hover img{transform:scale(1.04)}
.mosaic figcaption,.moments figcaption{position:absolute;left:.7rem;bottom:.55rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--white);text-shadow:0 1px 8px rgba(0,0,0,.7)}
.mosaic .m1{grid-column:1/5;grid-row:1/4}.mosaic .m2{grid-column:5/7;grid-row:1/3}.mosaic .m3{grid-column:5/7;grid-row:3/5}
.mosaic .m4{grid-column:1/3;grid-row:4/6}.mosaic .m5{grid-column:3/5;grid-row:4/6}.mosaic .m6{grid-column:5/7;grid-row:5/6}
@media (max-width:860px){.w-intro .wrap{grid-template-columns:1fr}.mosaic{grid-auto-rows:70px}}


/* the fireworks story (lab 23), tap or click, arrows and keys */
.story-band{padding:var(--section) 0;background:var(--forest-deep);color:var(--cream)}
.story-band .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.story-band h2{color:var(--white);margin:.9rem 0 1.1rem}
.story-band .kicker{color:var(--gold-soft)}
.story-band p{color:rgba(246,241,230,.82)}
.story-band .hint{margin-top:1.4rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,230,.55)}
.story{position:relative;aspect-ratio:4/5;max-height:78svh;margin-left:auto;width:100%;max-width:520px;border-radius:10px;overflow:hidden;background:#000;cursor:pointer;outline-offset:4px}
.story figure{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.story figure.on{opacity:1}
.story figure img{width:100%;height:100%;object-fit:cover}
.story .bars{position:absolute;z-index:3;left:.8rem;right:.8rem;top:.8rem;display:flex;gap:.35rem}
.story .bars i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.35);overflow:hidden;position:relative}
.story .bars i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(var(--p,0));transform-origin:left}
.story .prev,.story .next{position:absolute;z-index:2;top:0;bottom:0;width:40%;border:0;background:none;cursor:pointer}
.story .prev{left:0;cursor:w-resize}.story .next{right:0;cursor:e-resize}
@media (max-width:860px){.story-band .wrap{grid-template-columns:1fr}.story{margin:0 auto}}

/* ceremony spaces, beyond the ceremony */
.site-card{display:block}
.beyond{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,1.6vw,1.4rem);margin-top:clamp(2.4rem,4vw,3.4rem);align-items:start}
.beyond .site-card.wide{grid-column:1/3;grid-row:1/3;display:block}
.beyond .site-card.wide img{aspect-ratio:4/3}
.beyond-head{grid-column:3/5;padding-top:.2rem}
.beyond-head p{margin-top:.7rem;color:rgba(246,241,230,.78)}
.beyond .site-card:not(.wide) img{aspect-ratio:4/3}
@media (max-width:960px){.beyond{grid-template-columns:1fr}.beyond .site-card.wide,.beyond-head{grid-column:auto;grid-row:auto}}

/* what's included, its own section, a framed card beside the heading (Sept 29 review) */
.included{padding:var(--section) 0;background:var(--paper)}
.inc-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.inc-head{position:sticky;top:6rem}
.inc-head h2{margin:.9rem 0 1rem;color:var(--forest)}
.inc-head p{color:var(--ink-soft)}
.inc-card{background:var(--white);border:1px solid rgba(31,53,39,.12);border-radius:10px;padding:clamp(1.4rem,3vw,2.6rem);box-shadow:0 30px 60px -40px rgba(22,40,29,.45)}
.pilltabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.8rem}
.pilltabs button{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;padding:1em 1.5em;border-radius:999px;border:1px solid var(--rule);background:var(--white);color:var(--forest);cursor:pointer;transition:background .3s,color .3s,border-color .3s,padding .3s}
.pilltabs button[aria-selected=true]{background:var(--forest);color:var(--cream);border-color:var(--forest);padding-left:2em;padding-right:2em}
.pilltabs.small button{padding:.8em 1.2em;font-size:.58rem}
.pillpanel{display:none}
.pillpanel.on{display:block;animation:vrIn .45s ease}
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1rem 2.4rem}
.checks li{position:relative;padding-left:1.8rem;color:var(--ink-soft);line-height:1.6}
.checks li::before{content:"";position:absolute;left:0;top:.3em;width:1rem;height:.55rem;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.pillpanel[data-panel=you] .checks li::before{width:.7rem;height:.7rem;border:2px solid var(--gold);border-radius:50%;transform:none;top:.35em}
.checks a{color:var(--forest);border-bottom:1px solid var(--gold)}
@media (max-width:900px){.inc-grid{grid-template-columns:1fr}.inc-head{position:static}.checks{grid-template-columns:1fr}}
/* the moments */
.moments{padding:0 0 var(--section);background:var(--cream)}
.moments .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:repeat(2,clamp(160px,17vw,250px));gap:.6rem}
.moments figure{position:relative;overflow:hidden;border-radius:3px}
.moments .mo1{grid-row:1/3}.moments .mo4{grid-column:2/4}
@media (max-width:760px){.moments .wrap{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:160px}.moments .mo1{grid-row:auto;grid-column:1/-1}.moments .mo4{grid-column:1/-1}}

/* the bar */
.bar-band{padding:var(--section) 0;background:var(--forest);color:var(--cream)}
.bar-band .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.bar-band h2{color:var(--white);margin:.9rem 0 1.1rem}
.bar-band .kicker{color:var(--gold-soft)}
.bar-band p{color:rgba(246,241,230,.82)}
.barcalc .pilltabs{justify-content:flex-start;margin:1rem 0 1.4rem}
.barcalc .pilltabs button{background:transparent;color:var(--cream);border-color:rgba(246,241,230,.3)}
.barcalc .pilltabs button[aria-selected=true]{background:var(--gold);color:var(--forest-deep);border-color:var(--gold)}
.bc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.bc{padding:1.2rem 1.1rem;border-radius:6px;background:rgba(246,241,230,.06);border:1px solid rgba(246,241,230,.12)}
.bc span{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.bc em{display:block;font-style:normal;font-size:.82rem;color:rgba(246,241,230,.7);margin-top:.3rem;min-height:2.6em}
.bc b{display:block;font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1;margin-top:.6rem;color:var(--white)}
.bc.old b{text-decoration:line-through;text-decoration-thickness:1px;color:rgba(246,241,230,.6)}
.bc.keep{background:var(--gold);border-color:var(--gold)}.bc.keep span,.bc.keep em,.bc.keep b{color:var(--forest-deep)}
.bc-note{margin-top:1rem;font-size:.85rem}
@media (max-width:860px){.bar-band .wrap{grid-template-columns:1fr}.bc-row{grid-template-columns:1fr}}

/* the accommodations, stacking bars (lab 13) */
.houses-stack{--bar:42px;padding-top:var(--section);background:var(--forest-deep);color:var(--cream)}
.houses-stack .shead h2{color:var(--white)}
.houses-stack .shead p{color:rgba(246,241,230,.78)}
.houses-stack .kicker{color:var(--gold-soft)}
.heat-note{display:inline-flex;align-items:center;gap:.7rem;margin-top:1.2rem;padding:.7rem 1.2rem;border:1px solid rgba(201,164,92,.4);border-radius:999px;font-size:.92rem;color:var(--cream)!important}
.heat-ico{width:18px;height:18px;flex:none;background:linear-gradient(transparent 0 0);border-bottom:2px solid var(--gold-soft);position:relative}
.heat-ico::before{content:"";position:absolute;left:1px;right:1px;bottom:4px;height:10px;background:repeating-linear-gradient(90deg,var(--gold-soft) 0 2px,transparent 2px 5px);border-radius:2px 2px 0 0}
.heat{display:inline-block;margin:0 0 .7rem;padding:.35em .8em;border-radius:999px;background:rgba(201,164,92,.16);color:var(--gold-soft);font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase}
.house-stack{position:relative}
.house-bar{position:sticky;z-index:5;height:var(--bar);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:0 var(--pad);font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden}
.house-bar i{font-style:normal;opacity:.6;margin-right:1rem}
.hs-1{top:var(--hh);background:#8f6a35;color:var(--white)}.hs-2{top:calc(var(--hh) + var(--bar));background:#a37a3f;color:var(--white)}.hs-3{top:calc(var(--hh) + 2 * var(--bar));background:#b3894a;color:var(--forest-deep)}
.hs-4{top:calc(var(--hh) + 3 * var(--bar));background:#c49c5f;color:var(--forest-deep)}.hs-5{top:calc(var(--hh) + 4 * var(--bar));background:#d6b782;color:var(--forest-deep)}.hs-6{top:calc(var(--hh) + 5 * var(--bar));background:#e7d4ab;color:var(--forest-deep)}
.house-body{min-height:calc(100svh - var(--hh) - 6 * var(--bar));display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:center;max-width:1240px;margin:0 auto;padding:clamp(1.2rem,2.5vh,2rem) var(--pad) clamp(3rem,8vh,6rem)}
.gal{display:flex;flex-direction:column;gap:.55rem}
.gal-main{position:relative;height:min(400px,calc(100svh - var(--hh) - 6 * var(--bar) - 6.2rem));overflow:hidden;border-radius:4px}
.gal-main img{width:100%;height:100%;object-fit:cover;transition:opacity .45s ease}
.gal-main img.fade{opacity:0}
.gal-th{display:flex;gap:.45rem}
.gal-t{flex:1;max-width:84px;aspect-ratio:4/3;padding:0;border:0;border-radius:3px;overflow:hidden;cursor:pointer;background:none;opacity:.55;transition:opacity .25s,box-shadow .25s}
.gal-t img{width:100%;height:100%;object-fit:cover}
.gal-t:hover{opacity:.9}.gal-t.on{opacity:1;box-shadow:0 0 0 2px var(--gold-soft)}
.house-info{max-height:calc(100svh - var(--hh) - 6 * var(--bar) - 2rem);overflow:auto;scrollbar-width:none}
.house-info h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.7rem,2.5vw,2.2rem);color:var(--white);margin:.5rem 0 .6rem}
.house-info p{color:rgba(246,241,230,.8);font-size:.93rem;line-height:1.6;margin-bottom:.7rem;max-width:56ch}
.house-info .mono-link{color:var(--cream);border-color:rgba(246,241,230,.3)}
.house-info .kicker{color:var(--gold-soft)}
.house-info .beds{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft)}
.capacity{padding:clamp(2rem,4vw,3rem) var(--pad) var(--section)}
.capacity > p{max-width:70ch;color:rgba(246,241,230,.78)}
.beds-table{margin-top:1.8rem;padding:0 1.6rem}
.beds-table summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.2rem 1rem;padding:1.3rem 1.6rem;margin:0 -1.6rem;border-radius:8px;background:var(--gold);color:var(--forest-deep);transition:background .3s}
.beds-table summary::-webkit-details-marker{display:none}
.beds-table summary:hover{background:var(--gold-soft)}
.beds-table .bt-k{font-family:var(--display);font-style:italic;font-size:1.5rem}
.beds-table .bt-l{grid-column:1;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(22,40,29,.75)}
.beds-table .bt-i{grid-column:2;grid-row:1/3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(22,40,29,.4);display:grid;place-items:center;font-size:1.4rem;transition:transform .3s}
.beds-table[open] .bt-i{transform:rotate(45deg)}
.beds-table[open] summary{margin-bottom:1rem}
.beds-table table{width:100%;border-collapse:collapse;margin:0 0 1.2rem;font-size:.92rem;background:var(--cream);border-radius:6px;overflow:hidden}
.beds-table th{text-align:left;font-family:var(--mono);font-weight:400;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding:.5rem .4rem;border-bottom:1px solid var(--rule)}
.beds-table th,.beds-table td{padding-left:1rem}
.beds-table td{padding:.45rem .4rem;border-bottom:1px solid rgba(31,53,39,.08);color:var(--ink-soft)}
.beds-table tr.h td{padding-top:1rem;font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--forest)}
.beds-table tr.t td{font-weight:500;color:var(--forest);padding-top:1rem}
@media (max-width:760px){.houses-stack{--bar:36px}.house-bar{font-size:.56rem;letter-spacing:.08em}.house-bar i{display:none}.house-body{grid-template-columns:1fr;gap:1rem;min-height:0}.gal-main{height:220px}.house-info{max-height:none}}

/* dogs, the stacked deck (lab 05) */
.dogs{padding:var(--section) 0;background:var(--cream-warm)}
.dogs .wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.dogs-head{position:sticky;top:calc(var(--hh) + 2rem)}
.dogs-head h2{margin:.9rem 0 1rem;color:var(--forest)}
.dogs-head p{color:var(--ink-soft)}
.deck{display:grid;gap:clamp(3rem,12vh,6rem)}
.deck-card{position:sticky;background:var(--white);border:1px solid var(--rule);border-radius:8px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 -10px 30px -22px rgba(22,40,29,.5)}
.deck-card:nth-child(1){top:6.5rem}.deck-card:nth-child(2){top:calc(6.5rem + 16px)}.deck-card:nth-child(3){top:calc(6.5rem + 32px)}
.deck-card img{width:100%;height:100%;min-height:300px;object-fit:cover}
.deck-card > div{padding:clamp(1.6rem,3vw,2.6rem);display:flex;flex-direction:column;justify-content:center}
.deck-card h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.5rem,2.4vw,2rem);color:var(--forest);margin:.6rem 0 .5rem}
.deck-card p{color:var(--ink-soft)}
@media (max-width:860px){.dogs .wrap{grid-template-columns:1fr}.dogs-head{position:static}.deck-card{grid-template-columns:1fr}.deck-card img{min-height:220px;max-height:280px}}

/* questions */
.faq{padding:var(--section) 0;background:var(--cream)}
.faq .wrap{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.faq-head h2{margin-top:.9rem;color:var(--forest)}
.faq-list details{border-top:1px solid var(--rule)}
.faq-list details:last-child{border-bottom:1px solid var(--rule)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;font-family:var(--display);font-style:italic;font-size:clamp(1.25rem,1.8vw,1.5rem);color:var(--forest)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-style:normal;font-family:var(--body);color:var(--gold);transition:transform .3s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding:0 0 1.3rem;color:var(--ink-soft);max-width:62ch}
@media (max-width:860px){.faq .wrap{grid-template-columns:1fr}}

.ending .after{position:relative;max-width:50ch;margin:-1rem auto 2rem;font-size:.95rem;color:rgba(246,241,230,.7)}

/* ---------- house pages (/stays/<house>/) ---------- */
.house-page{padding:var(--section) 0 clamp(3rem,6vw,5rem);background:var(--cream)}
.hp-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.hp-copy{position:sticky;top:calc(var(--hh) + 2rem)}
.hp-copy .kicker{margin-bottom:.8rem}
.hp-copy h2{color:var(--forest);margin-bottom:1rem}
.hp-copy .heat{background:rgba(179,137,74,.14);color:#8f6a35}
.hp-copy p{color:var(--ink-soft);font-size:1.04rem;margin-bottom:1rem;max-width:56ch}
.hp-facts{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:1.8rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.hp-facts li{padding:1.1rem .8rem 1.1rem 0}
.hp-facts li + li{padding-left:1rem;border-left:1px solid var(--rule)}
.hp-facts b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:1.55rem;line-height:1.1;color:var(--forest)}
.hp-facts span{display:block;margin-top:.3rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.hp-book{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem}
.note{font-size:.95rem;line-height:1.6;color:var(--ink-soft);max-width:50ch}
.note a{color:var(--forest);border-bottom:1px solid var(--gold)}
.gal-big{gap:.7rem}
.gal-big .gal-main{height:auto;aspect-ratio:3/2;max-height:calc(100svh - var(--hh) - 9rem)}
.gal-big .gal-th{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem}
.gal-big .gal-t{max-width:none}
.hp-detail{background:var(--cream-warm);padding:clamp(3rem,6vw,5rem) 0}
.hp-detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem)}
.hp-detail .kicker{margin-bottom:1.1rem}
.hp-detail p{color:var(--ink-soft);margin-bottom:1.2rem}
.hp-rooms{width:100%;border-collapse:collapse;font-size:.94rem}
.hp-rooms th{text-align:left;font-family:var(--mono);font-weight:400;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding:0 .6rem .6rem 0;border-bottom:1px solid var(--rule)}
.hp-rooms td{padding:.6rem .6rem .6rem 0;border-bottom:1px solid rgba(31,53,39,.08);color:var(--ink-soft);vertical-align:top}
.hp-rooms td:first-child{font-family:var(--display);font-style:italic;font-size:1.12rem;color:var(--forest)}
.hp-amen{list-style:none}
.hp-amen li{position:relative;padding:.5rem 0 .5rem 1.3rem;border-bottom:1px solid rgba(31,53,39,.08);color:var(--ink-soft);font-size:.96rem}
.hp-amen li::before{content:"";position:absolute;left:0;top:1.05rem;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.other-houses{background:var(--forest-deep);color:var(--cream);padding:clamp(3rem,6vw,5rem) 0}
.oh-head{margin-bottom:1.6rem}
.oh-head .kicker{color:var(--gold-soft)}
.oh-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.oh{display:block;color:var(--cream)}
.oh img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .3s}
.oh{overflow:hidden}
.oh:hover img{opacity:.88}
.oh span{display:block;margin-top:.8rem}
.oh i{display:block;font-style:normal;font-family:var(--mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.oh b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:1.35rem;line-height:1.15;margin:.2rem 0}
.oh em{display:block;font-style:normal;font-size:.85rem;color:rgba(246,241,230,.7)}
@media (max-width:1000px){.hp-grid{grid-template-columns:1fr}.hp-copy{position:static}.hp-gal{order:-1}.hp-detail-grid{grid-template-columns:1fr 1fr}.hp-detail-grid > :last-child{grid-column:1/-1}.oh-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.gal-big .gal-main{height:auto}.gal-big .gal-th{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.gal-big .gal-t{flex:0 0 22%;scroll-snap-align:start}.hp-facts b{font-size:1.25rem}.hp-detail-grid{grid-template-columns:1fr}.oh-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.8rem;scrollbar-width:none}.oh{flex:0 0 62%;scroll-snap-align:start}}
.hi-links{display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;margin-top:.4rem}
.hp-rooms td:first-child{white-space:nowrap}
.caveat{font-family:var(--mono);font-size:.6rem!important;letter-spacing:.12em;text-transform:uppercase;color:#8f6a35!important;line-height:1.6!important;margin:.2rem 0 .9rem}
.houses-stack .caveat{color:var(--gold-soft)!important}

/* =================== Retreats, The Estate, Contact (Sept 29) =================== */
.dark{background:var(--forest-deep);color:var(--cream)}
.dark .kicker{color:var(--gold-soft)}
.dark h2{color:var(--white)}
.dark .mono-link{color:var(--cream);border-color:rgba(246,241,230,.3)}
.sec{padding:var(--section) 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2rem,4vw,3rem)}
.sec-head h2{margin-top:.8rem;color:var(--forest)}
.dark .sec-head h2{color:var(--white)}
.sec-head p{max-width:44ch;color:var(--ink-soft)}
.dark .sec-head p{color:rgba(246,241,230,.78)}

/* the day reel (lab 27, by segment) */
.reel{position:relative;height:calc(var(--n,5) * 100svh);background:var(--forest-deep);color:var(--cream)}
.rl-stage{position:sticky;top:0;height:100svh;overflow:hidden}
.rl-seg{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}
.rl-seg.on{opacity:1}
.rl-seg figure{position:absolute;inset:0}
.rl-seg img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 6s cubic-bezier(.16,1,.3,1)}
.rl-seg.on img{transform:scale(1)}
.rl-seg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,26,19,.78) 0,rgba(14,26,19,.35) 45%,rgba(14,26,19,0) 70%)}
.rl-copy{position:absolute;z-index:2;left:clamp(1.5rem,6vw,6rem);bottom:clamp(3rem,12vh,8rem);max-width:34rem;transform:translateY(24px);opacity:0;transition:opacity .8s ease .15s,transform .9s cubic-bezier(.16,1,.3,1) .15s}
.rl-seg.on .rl-copy{opacity:1;transform:none}
.rl-copy .t{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.9rem}
.rl-copy h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1;color:var(--white);margin-bottom:1rem}
.rl-copy p{color:rgba(246,241,230,.86);font-size:1.06rem;max-width:40ch}
.rl-head{position:absolute;z-index:3;left:clamp(1.5rem,6vw,6rem);top:calc(var(--hh) + 2rem)}
.rl-head .kicker{color:var(--gold-soft)}
.rl-dots{position:absolute;z-index:3;right:clamp(1.2rem,3vw,2.6rem);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.9rem}
.rl-dots button{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;background:none;border:0;cursor:pointer;color:rgba(246,241,230,.55);font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;padding:.2rem 0}
.rl-dots button::after{content:"";width:8px;height:8px;border-radius:50%;border:1px solid currentColor;transition:background .3s,transform .3s}
.rl-dots button[aria-current="true"]{color:var(--white)}
.rl-dots button[aria-current="true"]::after{background:var(--gold-soft);border-color:var(--gold-soft);transform:scale(1.3)}
.rl-prog{position:absolute;z-index:3;left:0;right:0;bottom:0;height:3px;background:rgba(246,241,230,.12)}
.rl-prog i{display:block;height:100%;background:var(--gold-soft);transform-origin:left;transform:scaleX(var(--p,0))}

/* the Lodge block with a big gallery */
.lodge-block{padding:var(--section) 0;background:var(--cream)}
.lodge-block .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.lodge-block .copy{position:sticky;top:calc(var(--hh) + 2rem)}
.lodge-block h2{color:var(--forest);margin:.8rem 0 1.1rem}
.lodge-block p{color:var(--ink-soft);margin-bottom:1rem}
.facts{list-style:none;margin:1.6rem 0;border-top:1px solid var(--rule)}
.facts li{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--rule);font-size:.96rem;color:var(--ink-soft)}
.facts b{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.2rem;color:var(--forest)}

/* the accordion swap (lab 11) */
.accord{display:flex;gap:.6rem;height:min(78svh,720px);min-height:480px}
.ac-p{position:relative;flex:1 1 0;min-width:0;overflow:hidden;border-radius:6px;cursor:pointer;transition:flex-grow .8s cubic-bezier(.16,1,.3,1);background:#0e1a13;outline-offset:3px}
.ac-p.on{flex-grow:5.2}
.ac-p img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.16,1,.3,1),filter .6s}
.ac-p:not(.on) img{filter:brightness(.62) saturate(.85)}
.ac-p.on img{transform:scale(1.03)}
.ac-p::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,14,.82),rgba(10,20,14,0) 55%);pointer-events:none}
.ac-p .lbl{position:absolute;z-index:2;left:50%;bottom:1.4rem;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;white-space:nowrap;font-family:var(--display);font-style:italic;font-size:1.45rem;color:var(--white);transition:opacity .4s}
.ac-p .lbl i{font-style:normal;font-family:var(--mono);font-size:.56rem;letter-spacing:.2em;margin-bottom:.8rem;color:var(--gold-soft)}
.ac-p.on .lbl{opacity:0}
.ac-p .ac-copy{position:absolute;z-index:2;left:clamp(1.2rem,2.5vw,2.2rem);right:clamp(1.2rem,2.5vw,2.2rem);bottom:clamp(1.2rem,2.5vw,2.2rem);max-width:36rem;opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.ac-p.on .ac-copy{opacity:1;transform:none;transition-delay:.3s}
.ac-copy .kicker{color:var(--gold-soft);margin-bottom:.5rem}
.ac-copy h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05;color:var(--white);margin-bottom:.6rem}
.ac-copy p{color:rgba(246,241,230,.86);font-size:.98rem;line-height:1.6}

/* the hover index (lab 41) */
.hindex .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.hx-list{list-style:none;border-top:1px solid var(--rule)}
.hx-i{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:baseline;gap:.4rem 1rem;padding:1.05rem 0;border-bottom:1px solid var(--rule);cursor:default;outline:none}
.hx-i .n{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:var(--gold)}
.hx-i b{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1.1;color:rgba(31,53,39,.42);transition:color .35s,padding .45s cubic-bezier(.16,1,.3,1)}
.hx-i p{grid-column:2;max-height:0;overflow:hidden;opacity:0;color:var(--ink-soft);font-size:.96rem;transition:max-height .6s ease,opacity .4s}
.hx-i.on b{color:var(--forest);padding-left:.6rem}
.hx-i.on p{max-height:9rem;opacity:1}
.hx-media{position:relative;aspect-ratio:4/5;max-height:76svh;border-radius:6px;overflow:hidden}
.hx-media figure{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity .7s ease,transform 1.2s cubic-bezier(.16,1,.3,1)}
.hx-media figure.on{opacity:1;transform:none}
.hx-media img{width:100%;height:100%;object-fit:cover}

/* the houses strip, for groups */
.grp-houses .oh-row{grid-template-columns:repeat(6,minmax(0,1fr))}
.grp-houses .oh img{aspect-ratio:3/4}
.grp-houses .caveat{margin:.4rem 0 0}
.sleeps-line{display:flex;flex-wrap:wrap;gap:1.4rem 3rem;align-items:baseline;margin:2.4rem 0 0;padding-top:1.6rem;border-top:1px solid rgba(246,241,230,.16)}
.sleeps-line b{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.2rem,3.4vw,3rem);color:var(--gold-soft);line-height:1}
.sleeps-line span{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,230,.7);margin-top:.5rem}

/* solar */
.solar{position:relative;overflow:hidden;padding:var(--section) 0;background:#132219;color:var(--cream)}
.solar .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.solar h2{color:var(--white);margin:.8rem 0 1.1rem}
.solar p{color:rgba(246,241,230,.82);margin-bottom:1rem;max-width:52ch}
.sun{width:100%;max-width:440px;margin:0 auto;display:block;color:var(--gold-soft)}
.sun .rays line{stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset 1.6s cubic-bezier(.16,1,.3,1)}
.sun .disc{fill:none;stroke:currentColor;stroke-width:1.4;stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset 2.2s cubic-bezier(.16,1,.3,1)}
.sun .panels path{fill:none;stroke:rgba(246,241,230,.55);stroke-width:1.2;stroke-dasharray:300;stroke-dashoffset:300;transition:stroke-dashoffset 2.4s ease .6s}
.solar .rv.in .sun .rays line,.solar .sun.in .rays line{stroke-dashoffset:0}
.solar .rv.in .sun .disc,.solar .rv.in .sun .panels path{stroke-dashoffset:0}
.sun .rays{transform-origin:220px 170px;animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.solar-figs{display:flex;gap:3rem;margin-top:1.8rem}
.solar-figs b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:2.6rem;line-height:1;color:var(--gold-soft)}
.solar-figs span{display:block;margin-top:.4rem;font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,230,.7)}

/* details, what to know */
.details .wrap{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.details .faq-head{position:sticky;top:calc(var(--hh) + 2rem)}
.dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2.4rem}
.dl div{padding:1.3rem 0;border-top:1px solid var(--rule)}
.dl dt{font-family:var(--display);font-style:italic;font-size:1.35rem;color:var(--forest);margin-bottom:.4rem}
.dl dd{color:var(--ink-soft);font-size:.97rem;line-height:1.65}
.dl dd a{color:var(--forest);border-bottom:1px solid var(--gold)}

/* the split screen of years (lab 16) */
.split{position:relative;background:var(--cream)}
.split .sp-grid{display:grid;grid-template-columns:1fr 1fr}
.sp-media{position:sticky;top:0;height:100svh;overflow:hidden;background:#0e1a13}
.sp-media figure{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.sp-media figure.on{opacity:1}
.sp-media img{width:100%;height:100%;object-fit:cover}
.sp-media figure.doc img{object-fit:contain;background:#efe9dc;padding:clamp(1.5rem,4vw,4rem)}
.sp-media figure.hist img{filter:sepia(.25) contrast(1.02)}
.sp-media figcaption{position:absolute;left:1.2rem;bottom:1rem;right:1.2rem;font-family:var(--body);font-style:italic;font-size:.8rem;color:rgba(246,241,230,.85);text-shadow:0 1px 8px rgba(0,0,0,.6)}
.sp-media figure.doc figcaption{color:var(--ink-soft);text-shadow:none}
.sp-year{position:absolute;z-index:2;right:1.4rem;top:calc(var(--hh) + 1rem);font-family:var(--display);font-weight:500;font-size:clamp(3rem,6vw,5.4rem);line-height:1;color:rgba(255,255,255,.9);text-shadow:0 2px 24px rgba(0,0,0,.45);font-variant-numeric:lining-nums}
.sp-prog{position:absolute;z-index:2;left:0;top:0;bottom:0;width:3px;background:rgba(255,255,255,.15)}
.sp-prog i{display:block;height:100%;background:var(--gold-soft);transform-origin:top;transform:scaleY(0);transition:transform .8s cubic-bezier(.16,1,.3,1)}
.sp-steps{padding:0 clamp(2rem,6vw,6rem)}
.sp-step{min-height:88svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;opacity:.28;transition:opacity .6s ease}
.sp-step.on{opacity:1}
.sp-step .era{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.sp-step .y{display:block;font-family:var(--display);font-weight:500;font-size:clamp(3.4rem,7vw,6rem);line-height:1;color:var(--forest);margin:.6rem 0 .4rem;font-variant-numeric:lining-nums}
.sp-step h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.7rem,2.6vw,2.3rem);color:var(--forest);margin-bottom:1rem}
.sp-step p{max-width:42ch;color:var(--ink-soft);font-size:1.05rem;line-height:1.75}
.sp-step p + p{margin-top:.8rem}
.sp-intro{min-height:70svh}
.sp-intro h2{color:var(--forest);margin:.8rem 0 1rem}
.sp-sources{max-width:44ch;margin:0 auto;padding:0 0 var(--section);text-align:center;font-size:.82rem;color:var(--ink-soft);font-style:italic}

/* inset to full (lab 25) */
.inset{position:relative;height:120svh;background:var(--cream)}
.inset .in-stage{position:sticky;top:0;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.inset figure{position:relative;width:calc(56% + 44% * var(--g,0));height:calc(58% + 42% * var(--g,0));border-radius:calc(10px * (1 - var(--g,0)));overflow:hidden;will-change:width,height}
.inset img{width:100%;height:100%;object-fit:cover}
.inset .in-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--pad);color:var(--white);background:rgba(14,26,19,calc(.45 * var(--g,0)));opacity:calc(var(--g,0) * 1.4 - .4)}
.inset .in-copy b{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.4rem,5.4vw,4.6rem);line-height:1.04;max-width:18ch;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.inset .in-copy span{margin-top:1.1rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft)}

/* snap rail of the grounds and landmarks (lab 15) */
.snaprail{padding:var(--section) 0;background:var(--forest-deep);color:var(--cream);overflow:hidden}
.snaprail .sec-head h2{color:var(--white)}
.sr-nav{display:flex;align-items:center;gap:.8rem}
.sr-nav button{width:48px;height:48px;border-radius:50%;border:1px solid rgba(246,241,230,.35);background:none;color:var(--cream);font-size:1.2rem;cursor:pointer;transition:background .3s,opacity .3s}
.sr-nav button:hover{background:rgba(246,241,230,.1)}
.sr-nav button:disabled{opacity:.3;cursor:default}
.sr-count{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;color:rgba(246,241,230,.7);min-width:4.5rem;text-align:right}
.sr-track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(280px,30vw,440px);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 max(var(--pad),calc((100vw - var(--wide))/2 + var(--pad))) .5rem;scroll-padding-left:max(var(--pad),calc((100vw - var(--wide))/2 + var(--pad)));cursor:grab;outline:none}
.sr-track::-webkit-scrollbar{display:none}
.sr-track.dragging{cursor:grabbing;scroll-behavior:auto}
.sr-track.dragging *{pointer-events:none}
.sr-card{scroll-snap-align:start;display:block;color:inherit}
.sr-card figure{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:5px}
.sr-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.sr-card:hover img{transform:scale(1.04)}
.sr-card .n{position:absolute;left:1rem;top:.9rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:var(--white);text-shadow:0 1px 6px rgba(0,0,0,.6)}
.sr-card h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.65rem;line-height:1.1;margin:1rem 0 .4rem;color:var(--white)}
.sr-card p{font-size:.93rem;line-height:1.6;color:rgba(246,241,230,.76);max-width:38ch}
.sr-card .tag{display:inline-block;margin-top:.7rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}

/* the sliding segment (lab 36), larger and clickable */
.segment{padding:var(--section) 0;background:var(--cream-warm)}
.sg-bar{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:780px;margin:0 auto clamp(2rem,4vw,3rem);padding:.4rem;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--rule)}
.sg-bar button{position:relative;z-index:2;border:0;background:none;padding:1.05rem .5rem;font-family:var(--display);font-style:italic;font-size:clamp(1.2rem,2vw,1.6rem);color:var(--forest);cursor:pointer;transition:color .4s}
.sg-bar button[aria-selected="true"]{color:var(--white)}
.sg-pill{position:absolute;z-index:1;left:0;top:.4rem;bottom:.4rem;border-radius:999px;background:var(--forest);transition:transform .6s cubic-bezier(.16,1,.3,1),width .6s cubic-bezier(.16,1,.3,1)}
.sg-panes{position:relative}
.sg-pane{display:none;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,3vw,3rem);align-items:stretch}
.sg-pane.on{display:grid;animation:paneIn .8s cubic-bezier(.16,1,.3,1)}
@keyframes paneIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sg-pane{height:min(66svh,640px)}
.sg-pane .big{min-width:0;height:100%;border-radius:6px;overflow:hidden}
.sg-pane .side{display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr);gap:1rem;min-height:0}
.sg-pane .side figure{border-radius:6px;overflow:hidden;min-height:0}
.sg-pane img{width:100%;height:100%;object-fit:cover}
.sg-pane h3{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3vw,2.5rem);color:var(--forest);line-height:1.05}
.sg-pane p{color:var(--ink-soft);margin-top:.6rem;font-size:1rem}

/* wildlife, a quiet pair on dark */
.wild ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.wild li{padding:.5em 1em;border:1px solid rgba(246,241,230,.3);border-radius:999px;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream)}
.wild .pair .copy p{color:rgba(246,241,230,.8)}
.wild .pair .copy h2{color:var(--white)}

/* the lightbox (lab 42) */
.lb-on{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(8,14,10,.94);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
.lb.on{opacity:1;visibility:visible}
.lb figure{max-width:min(92vw,1600px);max-height:88svh;display:flex;flex-direction:column;align-items:center}
.lb img{max-width:100%;max-height:82svh;object-fit:contain;border-radius:3px}
.lb figcaption{margin-top:.9rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,241,230,.72);text-align:center}
.lb button{position:absolute;border:0;background:rgba(246,241,230,.12);color:var(--cream);width:52px;height:52px;border-radius:50%;font-size:1.3rem;cursor:pointer;transition:background .3s}
.lb button:hover{background:rgba(246,241,230,.24)}
.lb-x{top:1.2rem;right:1.2rem;font-size:1.7rem!important}
.lb-p{left:1.2rem;top:50%;transform:translateY(-50%)}
.lb-n{right:1.2rem;top:50%;transform:translateY(-50%)}

/* contact */
.contact{padding:clamp(2.5rem,5vw,4rem) 0 var(--section);background:var(--cream)}
.contact .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.ct-side{position:sticky;top:calc(var(--hh) + 2rem)}
.ct-side h1{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.8rem,5vw,4.4rem);line-height:1.02;color:var(--forest);margin:.8rem 0 1rem}
.ct-side .lede{margin-bottom:1.6rem}
.ct-photo{border-radius:6px;overflow:hidden;aspect-ratio:4/3;margin-bottom:1.6rem}
.ct-photo img{width:100%;height:100%;object-fit:cover}
.ct-direct{list-style:none;border-top:1px solid var(--rule)}
.ct-direct li{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--rule);font-size:.97rem}
.ct-direct span{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding-top:.3rem}
.ct-direct a{color:var(--forest);border-bottom:1px solid rgba(179,137,74,.5)}
.inq{background:var(--white);border-radius:10px;padding:clamp(1.6rem,3.5vw,3rem);box-shadow:0 30px 60px -40px rgba(22,40,29,.35),0 0 0 1px var(--rule)}
.inq h2{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(1.8rem,2.6vw,2.3rem);color:var(--forest);margin-bottom:1.2rem}
.inq fieldset{border:0;padding:0;margin:0 0 1.6rem}
.inq legend{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
.types{display:flex;flex-wrap:wrap;gap:.5rem}
.types label{position:relative;cursor:pointer}
.types input{position:absolute;opacity:0;pointer-events:none}
.types span{display:inline-block;padding:.8em 1.3em;border-radius:999px;border:1px solid var(--rule);font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);background:var(--white);transition:background .3s,color .3s,border-color .3s}
.types input:checked + span{background:var(--forest);color:var(--white);border-color:var(--forest)}
.types input:focus-visible + span{outline:2px solid var(--gold-soft);outline-offset:3px}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem}
.fgrid .full{grid-column:1/-1}
.fld label{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.45rem}
.fld label em{font-style:normal;text-transform:none;letter-spacing:0;font-family:var(--body);opacity:.7}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--cream);border:1px solid transparent;border-bottom-color:var(--rule);border-radius:4px;padding:.8rem .9rem;transition:border-color .3s,background .3s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--gold);background:var(--white)}
.fld textarea{min-height:130px;resize:vertical}
.inq-note{margin:1.2rem 0 0;padding:1rem 1.2rem;border-left:2px solid var(--gold);background:var(--cream);font-size:.94rem;color:var(--ink-soft)}
.inq-note a{color:var(--forest);border-bottom:1px solid var(--gold)}
.inq-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem}
.inq-foot small{color:var(--ink-soft);font-size:.85rem;max-width:36ch}
.inq button[type="submit"]{border:0;cursor:pointer}
.hp-field{position:absolute;left:-9999px}
.next-steps{padding:var(--section) 0;background:var(--forest-deep);color:var(--cream)}
.ns-row{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);counter-reset:ns}
.ns-row li{counter-increment:ns;padding-top:1.2rem;border-top:1px solid rgba(246,241,230,.2)}
.ns-row li::before{content:counter(ns,decimal-leading-zero);display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;color:var(--gold-soft);margin-bottom:.9rem}
.ns-row b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:1.6rem;line-height:1.15;color:var(--white);margin-bottom:.5rem}
.ns-row p{color:rgba(246,241,230,.78);font-size:.97rem}
.getting .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.getting figure{border-radius:6px;overflow:hidden;background:var(--paper)}
.getting figure img{width:100%}
.drive{list-style:none;margin-top:1.4rem;border-top:1px solid var(--rule)}
.drive li{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--rule);color:var(--ink-soft)}
.drive b{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--forest)}

/* not found */
.nf{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--forest-deep);margin-top:-76px}
.nf > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.nf .nf-in{position:relative;z-index:2;padding:var(--pad);max-width:44rem;color:var(--white)}
.nf h1{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(2.8rem,6.5vw,5rem);line-height:1.02;margin:.8rem 0 1rem}
.nf p{color:rgba(246,241,230,.88);margin-bottom:2rem}
.nf .kicker{color:var(--gold-soft)}
.nf-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
.nf-links a{padding:.85em 1.4em;border-radius:999px;border:1px solid rgba(246,241,230,.45);font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--white);transition:background .3s}
.nf-links a:hover{background:rgba(246,241,230,.14)}
.nf-links a.btn{border-color:var(--gold);color:var(--forest-deep)}
.nf .ghost404{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--display);font-size:clamp(14rem,34vw,30rem);line-height:1;color:rgba(246,241,230,.06);pointer-events:none}

@media (max-width:1000px){
  .lodge-block .wrap,.hindex .wrap,.solar .wrap,.details .wrap,.contact .wrap,.getting .wrap{grid-template-columns:1fr}
  .lodge-block .copy,.details .faq-head,.ct-side{position:static}
  .accord{flex-direction:column;height:auto}.ac-p{flex:none;height:88px}.ac-p.on{height:62svh}.ac-p .lbl{writing-mode:horizontal-tb;transform:none;left:1.2rem;bottom:1.8rem}
  .split .sp-grid{grid-template-columns:1fr}.sp-media{height:52svh;top:var(--hh);z-index:1}.sp-step{min-height:70svh}
  .grp-houses .oh-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dl{grid-template-columns:1fr}
  .ns-row{grid-template-columns:1fr}
  .sg-pane{grid-template-columns:1fr}
}
@media (max-width:760px){.fgrid{grid-template-columns:1fr}.sg-bar button{font-size:1.05rem;padding:.9rem .2rem}.rl-dots{display:none}.hx-media{display:none}.hx-i p{max-height:none;opacity:1}}
.sp-year{display:none}
.wild-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding-bottom:var(--section);margin-top:-2rem}
.wild-row figure{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:5px}
.wild-row img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.wild-row figure:hover img{transform:scale(1.04)}
.wild-row figcaption{position:absolute;left:.8rem;bottom:.7rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--white);text-shadow:0 1px 6px rgba(0,0,0,.6)}
@media (max-width:760px){.wild-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* accommodations in pairs, the second sliding in beside the first (Sept 29, 2:03 AM) */
.rv.from-right{transform:translateX(7vw)}
.rv.from-right.in{transform:none}
.paired .house-bar{position:relative;top:auto!important;z-index:auto}
.hs-pair-bars{position:sticky;z-index:5;display:grid;grid-template-columns:1fr 1fr}
.hp-1{top:var(--hh)}.hp-2{top:calc(var(--hh) + var(--bar))}.hp-3{top:calc(var(--hh) + 2 * var(--bar))}
.hs-pair-bodies{display:grid;grid-template-columns:1fr 1fr}
.paired .house-body{display:flex;flex-direction:column;gap:1rem;max-width:none;margin:0;min-height:0;height:calc(100svh - var(--hh) - 3 * var(--bar));padding:1.1rem clamp(1.2rem,2.6vw,2.6rem) 1.4rem}
.paired .house-body + .house-body{border-left:1px solid rgba(246,241,230,.1)}
.paired .gal{flex:1 1 auto;min-height:0}
.paired .gal-main{flex:1 1 auto;height:auto;min-height:0}
.paired .gal-t{max-width:74px}
.paired .house-info{flex:0 1 auto;max-height:44%;overflow:auto}
.paired .house-info h3{font-size:clamp(1.5rem,2vw,1.9rem);margin:.3rem 0 .4rem}
.paired .house-info p{font-size:.9rem;line-height:1.55;margin-bottom:.5rem}
.paired .house-info p + p:not(.beds):not(.caveat){display:none}
.paired .house-info .heat{margin-bottom:.45rem}
/* the heat line, smaller and without the bubble */
.heat-note{display:inline-flex;align-items:center;gap:.55rem;margin-top:1rem;padding:0;border:0;border-radius:0;font-size:.82rem;color:rgba(246,241,230,.72)!important}
.heat-ico{width:14px;height:14px}
.heat-ico::before{bottom:3px;height:8px}
.heat{padding:0;background:none;border-radius:0;font-size:.54rem;color:var(--gold-soft)}
.heat::before{content:"";display:inline-block;width:6px;height:6px;margin-right:.45rem;border-radius:50%;background:currentColor;vertical-align:1px}
@media (max-width:760px){.hs-pair-bodies{grid-template-columns:1fr}.paired .house-body{height:auto}.paired .house-body + .house-body{border-left:0}.paired .gal-main{height:240px;flex:none}.paired .house-info{max-height:none}.house-bar span:first-child{overflow:hidden;text-overflow:ellipsis}}
.hp-copy .heat{background:none;padding:0}
.paired .house-info{flex:0 0 36%;max-height:none}
@media (max-width:760px){.paired .house-info{flex:none}}
/* who comes, steadier: the photograph never moves, only fades (2:03 AM) */
.hindex .wrap{align-items:start}
.hx-media{position:sticky;top:calc(var(--hh) + 2rem)}
.hx-media figure,.hx-media figure.on{transform:none;transition:opacity .6s ease}
.hx-i b{transition:color .35s}
.hx-i.on b{padding-left:0}
.hx-i p{display:grid;max-height:none;grid-template-rows:0fr;transition:grid-template-rows .5s ease,opacity .4s}
.hx-i p > span{overflow:hidden}
.hx-i.on p{grid-template-rows:1fr;max-height:none}
@media (max-width:760px){.hx-i p{grid-template-rows:1fr;opacity:1}}
.solar.center .wrap{display:block;text-align:center;max-width:52rem}
.solar.center .sun{max-width:220px;margin:0 auto 1.4rem}
.solar.center p{margin:0 auto 1.6rem}
.rl-copy .mono-link{display:inline-flex}
.house-stack.paired{overflow-x:clip}
.solar .mono-link{color:var(--cream);border-color:rgba(246,241,230,.3)}
.paired .house-body{align-items:stretch}
/* the weekend reel on Weddings, the guide's full day lists */
.rl-copy ul{list-style:none;margin-top:.2rem}
.rl-copy li{position:relative;padding-left:1.1rem;margin-bottom:.45rem;color:rgba(246,241,230,.88);font-size:.97rem;line-height:1.55}
.rl-copy li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--gold-soft)}
.reel.wk .rl-copy{max-width:36rem;bottom:clamp(2.2rem,8vh,5rem)}
.reel.wk .rl-copy h3{font-size:clamp(2.3rem,4.2vw,3.6rem)}
.reel.wk .rl-seg::after{background:linear-gradient(90deg,rgba(14,26,19,.86) 0,rgba(14,26,19,.5) 42%,rgba(14,26,19,0) 72%)}
.rl-seg figure.top img{object-position:center 30%}

/* accommodations, one house at a time, the bars stacking left then right (Sept 29, 2:20 AM) */
.house-stack.alt{overflow-x:clip}
.alt .house-bar{width:100%;transition:width .55s cubic-bezier(.16,1,.3,1),margin-left .55s cubic-bezier(.16,1,.3,1)}
.alt .house-bar.row-1{top:var(--hh)!important}.alt .house-bar.row-2{top:calc(var(--hh) + var(--bar))!important}.alt .house-bar.row-3{top:calc(var(--hh) + 2 * var(--bar))!important}
.alt .house-bar.stuck{width:50%}
.alt .house-bar.side-r.stuck{margin-left:50%}
.alt .house-bar.side-r{box-shadow:-1px 0 0 rgba(22,40,29,.25)}
.alt .house-body{min-height:0;height:calc(100svh - var(--hh) - 3 * var(--bar));padding-top:clamp(1rem,2vh,1.6rem);padding-bottom:clamp(1rem,2vh,1.6rem)}
.alt .gal-main{height:calc(100svh - var(--hh) - 3 * var(--bar) - 7.5rem)}
.alt .house-info{max-height:calc(100svh - var(--hh) - 3 * var(--bar) - 2rem)}
@media (max-width:760px){.alt .house-body{height:auto}.alt .gal-main{height:230px}}

/* accommodations, 2:28 AM. The left bar keeps its full mustard band and only its text moves over when the
   right one arrives; each house is a wide banner photograph with the words spread across beneath it */
.alt .house-bar.side-l.stuck{width:100%}
.alt .house-bar.side-l > span:last-child{transition:margin-right .55s cubic-bezier(.16,1,.3,1)}
.alt .house-bar.side-l.paired > span:last-child{margin-right:50%}
.alt .house-bar.side-r.stuck{width:50%;margin-left:50%}
.alt .house-bar.side-r{box-shadow:none}
.alt .house-bar.side-r.stuck{box-shadow:-1px 0 0 rgba(22,40,29,.22)}
.alt .house-body{display:flex;flex-direction:column;gap:1rem;max-width:1440px;margin:0 auto;padding:clamp(.9rem,1.8vh,1.4rem) var(--pad) clamp(1rem,2.2vh,1.6rem);align-items:stretch}
.alt .gal{flex:1 1 auto;min-height:0;gap:.5rem}
.alt .gal-main{flex:1 1 auto;height:auto;min-height:0}
.alt .gal-t{max-width:88px}
.alt .house-info{flex:0 0 auto;max-height:none;overflow:visible;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);grid-auto-flow:row dense;column-gap:clamp(2rem,4vw,4rem);align-items:start}
.alt .house-info > *{grid-column:2}
.alt .house-info > .kicker,.alt .house-info > h3,.alt .house-info > .heat{grid-column:1}
.alt .house-info h3{margin:.35rem 0 .3rem;font-size:clamp(1.8rem,2.6vw,2.4rem)}
.alt .house-info p{max-width:none;font-size:.93rem;line-height:1.6;margin-bottom:.45rem}
.alt .house-info .hi-links,.alt .house-info > .mono-link{justify-self:start}
@media (max-width:760px){.alt .house-info{grid-template-columns:1fr}.alt .house-info > *{grid-column:1}.alt .gal-main{flex:none;height:230px}.alt .house-bar.side-l.paired > span:last-child{margin-right:0}}
.alt .house-info{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr)}
.alt .house-info > *{grid-column:auto}
.alt .hi-head h3{margin:.35rem 0 .45rem}
.alt .hi-body p:first-child{margin-top:.1rem}
@media (max-width:760px){.alt .house-info{grid-template-columns:1fr}}
.alt .house-bar.side-l.paired > span:last-child{margin-right:calc(50% + var(--pad))}
/* 3:05 AM, photographs close to their own 16:9, words beside them */
.alt .house-body{flex-direction:row;align-items:center;gap:clamp(2rem,4vw,4.5rem)}
.alt .gal{flex:0 1 auto;width:min(64%,calc((100svh - var(--hh) - 3 * var(--bar) - 7rem) * 16 / 9))}
.alt .gal-main{flex:none;aspect-ratio:16/9;height:auto;width:100%}
.alt .house-info{flex:1 1 0;display:block}
.alt .hi-head h3{margin:.4rem 0 .5rem}
.alt .hi-body{margin-top:.9rem}
@media (max-width:760px){.alt .house-body{flex-direction:column}.alt .gal{width:100%}}
/* 3:11 AM, no hairline above the stacked bars, and every bar is tappable */
.alt .house-bar.row-1{top:calc(var(--hh) - 1px)!important}.alt .house-bar.row-2{top:calc(var(--hh) + var(--bar) - 1px)!important}.alt .house-bar.row-3{top:calc(var(--hh) + 2 * var(--bar) - 1px)!important}
.house-stack .house-bar{cursor:pointer}
.house-stack .house-bar:hover > span:first-child{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.house-stack .house-bar:focus-visible{outline:2px solid var(--white);outline-offset:-4px}
/* the hover reveal is the page's own opening, same picture, same words, same framing (Sept 29, 3:16 AM) */
.fh-rev .scrim{background:radial-gradient(ellipse 60% 42% at 50% 52%,rgba(14,22,17,.42),rgba(14,22,17,0) 100%),linear-gradient(180deg,rgba(16,24,20,.55) 0%,rgba(22,40,29,.28) 42%,rgba(22,40,29,.58) 100%)}
.fh-rev .nm{padding:0 var(--pad)}
.fh-rev .nm > *{max-width:60rem}
.fh-rev .nm i{display:block;font-style:normal;font-family:var(--mono);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);opacity:0;transition:opacity .5s ease .08s}
.fh-rev .nm b{font-size:clamp(2.7rem,7vw,5.4rem);line-height:1.02;margin:.8rem 0 .9rem}
.fh-rev .nm em{margin-top:0;font-size:.66rem;letter-spacing:.16em;color:rgba(246,241,230,.85)}
.fh-rev.on .nm i{opacity:1}
.fh-rev .nm > *{max-width:calc(60rem - 2 * var(--pad))}

/* ======================= THE PHONE PASS (Sept 29, 2026) =======================
   Everything below lives inside a phone query (max-width:760px), a touch query
   (hover:none / pointer:coarse) or fixes something that was wrong on every screen. */

/* the opening photograph starts exactly under the transparent header on every screen
   (it was 64 or 76px against a real header of 75 to 81px, leaving a cream line at the top) */
.hero,.nf{margin-top:calc(-2.4rem - 1.75 * clamp(1.3rem,2.8vw,1.7rem) - 1px)}

/* words that assume a mouse have a touch twin */
.on-touch{display:none}
@media (hover:none){.on-hover{display:none}.on-touch{display:inline}}

/* bigger hit areas for small links and buttons on touch screens, nothing moves visually */
@media (pointer:coarse){
  .mono-link,.subnav a,.foot li a,.ct-direct a,.ending .row a.txt,.ending .contacts a,.chips button,.sdrag .stops button,.types span,.hi-links a{position:relative}
  .mono-link::after,.subnav a:not(.btn)::after,.foot li a::after,.ct-direct a::after,.ending .row a.txt::after,.ending .contacts a::after,.chips button::after,.sdrag .stops button::after,.hi-links a::after{content:"";position:absolute;left:-6px;right:-6px;top:50%;height:44px;transform:translateY(-50%)}
  .pin{width:40px;height:40px}.pin::before{inset:13px}.pin::after{inset:7px}
}

@media (max-width:760px){
  /* header */
  .hh-burger{padding:21px 11px;margin:-21px -11px}

  /* openings, a focal point per photograph in portrait (only while the default photograph is there) */
  .hero > img[data-slot="hero/retreats"][src*="2734-"]{object-position:12% 50%}
  .hero > img[data-slot="hero/estate"][src*="2768-"]{object-position:22% 50%}
  .hero > img[data-slot="hero/weddings"][src*="1226-"]{object-position:44% 50%}
  .hero-in h1{text-wrap:balance}

  /* section heads that sat side by side now stack, heading first */
  .sec-head{flex-direction:column;align-items:flex-start;gap:1rem}
  .sec-head > div:first-child h2 br{display:none}
  .sec-head h2{text-wrap:balance}
  .sr-nav{align-self:stretch;justify-content:flex-end}

  /* the sub navigation under an opening, full height tap rows */
  .subnav{padding-top:0;padding-bottom:0;gap:0 1.5rem}
  .subnav a:not(.btn){padding:1.05rem 0}
  .subnav .btn{margin:.5rem 0}

  /* the reels, photograph above and words on the deep green below, never words over a busy photograph */
  .rl-seg{background:var(--forest-deep)}
  .rl-seg{display:flex;flex-direction:column}
  .rl-seg figure{position:relative;inset:auto;flex:1 1 auto;min-height:20%;overflow:hidden}
  .rl-seg figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(to bottom,rgba(22,40,29,0),var(--forest-deep))}
  .rl-seg::after,.reel.wk .rl-seg::after{background:linear-gradient(180deg,rgba(14,26,19,.62) 0,rgba(14,26,19,0) calc(var(--hh) + 5rem))}
  .rl-copy,.reel.wk .rl-copy{position:relative;z-index:2;flex:none;left:auto;right:auto;bottom:auto;max-width:none;margin:-2.4rem var(--pad) calc(1.8rem + env(safe-area-inset-bottom))}
  .rl-copy .t{margin-bottom:.55rem}
  .rl-copy h3,.reel.wk .rl-copy h3{font-size:clamp(2rem,9vw,2.5rem);margin-bottom:.7rem}
  .rl-copy p{font-size:.98rem;line-height:1.6}
  .rl-copy li{font-size:.9rem;line-height:1.5;margin-bottom:.35rem}
  .rl-head{left:var(--pad);top:calc(var(--hh) + 1.2rem)}

  /* the accommodations: the bars still stack on a phone, the house name only (Zander, Sept 29, 12:58 PM) */
  .alt .house-bar > span:last-child{display:none}
  .alt .house-bar,.houses-stack .house-bar{font-size:.6rem;letter-spacing:.1em}
  .alt .house-bar > span:first-child{overflow:hidden;text-overflow:ellipsis}
  .alt .house-body{padding-top:1.4rem;padding-bottom:2.4rem;gap:1.1rem}
  .alt .house-body + .house-body,.alt .house-body + .house-bar + .house-body{border-top:1px solid rgba(246,241,230,.1)}
  .alt .gal-main{height:auto;aspect-ratio:16/10}
  .alt .gal-th{overflow-x:auto;scrollbar-width:none}.alt .gal-t{flex:0 0 18%;max-width:none}

  /* who comes: a swipe rail, each kind of group with its own photograph */
  .hx-list{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-top:0;margin:0 calc(-1 * var(--pad));padding:0 var(--pad) .4rem;scroll-padding-left:var(--pad)}
  .hx-list::-webkit-scrollbar{display:none}
  .hx-i{display:block;scroll-snap-align:start;border-bottom:0;padding:0}
  .hindex .wrap{grid-template-columns:minmax(0,1fr)}.hindex .wrap > *{min-width:0}
  .hx-i .hx-ph{display:block;aspect-ratio:4/3;border-radius:6px;overflow:hidden;margin-bottom:1rem}
  .hx-i .hx-ph img{width:100%;height:100%;object-fit:cover}
  .hx-i .n{display:block;margin-bottom:.3rem}
  .hx-i b,.hx-i.on b{color:var(--forest);font-size:1.6rem}
  .hx-i p{margin-top:.4rem}

  /* the seasons on the Estate, one picture, the words, then two pictures side by side */
  .sg-pane,.sg-pane.on{height:auto;gap:1.1rem}
  .sg-pane .big{height:auto;aspect-ratio:4/3}
  .sg-pane .side{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:.7rem}
  .sg-pane .side > :first-child{grid-column:1/-1;margin-bottom:.4rem}
  .sg-pane .side figure{aspect-ratio:4/3}

  /* the bar estimate, four guest counts on one row */
  .barcalc .pilltabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
  .barcalc .pilltabs button,.barcalc .pilltabs button[aria-selected=true]{padding:1.05em .2em;font-size:.55rem;letter-spacing:.06em}

  /* the inquiry form sends from a full width button */
  .inq-foot .btn,.inq button[type="submit"]{width:100%;text-align:center;letter-spacing:.12em;line-height:1.5}
  .types span{padding:1em 1.2em}

  /* the lightbox, arrows at the thumb, close in reach */
  .lb figure{max-width:100vw}
  .lb img{max-height:74svh;border-radius:0}
  .lb-x{top:calc(.8rem + env(safe-area-inset-top));right:.8rem}
  .lb-p,.lb-n{top:auto;bottom:calc(1.2rem + env(safe-area-inset-bottom));transform:none}
  .lb-p{left:1rem}.lb-n{right:1rem}
  .lb figcaption{padding:0 4.5rem}

  /* footer rows breathe for thumbs */
  .foot li{margin-bottom:.75rem}
}
/* default state for the pieces the phone pass adds, hidden above phone size */
.hx-ph,.sp-ph{display:none}
@media (max-width:760px){.hx-i .hx-ph{display:block}}
/* the story of the estate, a photograph with every year, on phones and tablets */
@media (max-width:1000px){
  /* the story of the estate, a photograph with every year */
  .split .sp-media{display:none}
  .sp-steps{padding:0 var(--pad) 1rem}
  .sp-step,.sp-step.on{min-height:0;opacity:1;padding:2.4rem 0 1.4rem;border-top:1px solid var(--rule)}
  .sp-step:first-child{border-top:0}
  .sp-step .y{font-size:clamp(3rem,15vw,4rem)}
  .sp-ph{display:block;width:100%;margin:0 0 1.5rem}
  .split .sp-ph figure{position:relative;min-height:0;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:#0e1a13}
  .split .sp-ph figure.doc{background:#efe9dc}
  .split .sp-ph figure.doc img{object-fit:contain;padding:1rem}
  .split .sp-ph figure.hist img{filter:sepia(.25) contrast(1.02)}
  .sp-ph .sp-cap{margin-top:.55rem;font-style:italic;font-size:.8rem;color:var(--ink-soft)}
  .sp-sources{padding-left:var(--pad);padding-right:var(--pad)}

  .sp-steps{max-width:44rem;margin:0 auto}
}

/* ======================= THE PHONE AUDIT (Oct 6, 2026) =======================
   How the site reads on a phone. Everything in this block is inside a phone query, so the
   approved desktop does not move. Notes in docs/design/PHONE-AUDIT-2026-10-06.md. */
@media (max-width:760px){
  /* --- 1. the small capital labels. They ran 8.6 to 10.9px; the floor is now 11px, 12px for the
         ones that lead a section, and a little less tracking so the lines do not grow --- */
  .kicker{font-size:.75rem;letter-spacing:.2em;line-height:1.6}
  .mono-link,.btn,.ending .row a.txt{font-size:.72rem;letter-spacing:.15em}
  .hero-in p{font-size:.72rem;letter-spacing:.13em;line-height:1.75}
  .subnav a{font-size:.7rem;letter-spacing:.14em}
  .door .sub{font-size:.7rem;letter-spacing:.13em;line-height:1.5}
  .stats span{font-size:.7rem;letter-spacing:.15em;line-height:1.65}
  .whole-list li{font-size:.7rem;letter-spacing:.14em;padding:0 .8rem}
  .site-card .cap,.rl-copy .t,.hx-i .n,.ns-row li::before{font-size:.7rem;letter-spacing:.14em}
  .qphoto cite,.vq-card cite,.inset .in-copy span{font-size:.7rem;letter-spacing:.15em;line-height:1.7}
  .vq-card cite,.qphoto cite{text-wrap:balance}
  .chips button,.pilltabs button,.types span,.wild li,.nf-links a{font-size:.7rem;letter-spacing:.11em}
  .pin span{font-size:.64rem;letter-spacing:.08em}
  .mapband .mb-hint,.mapband .mb-addr{font-size:.68rem;letter-spacing:.12em}
  .mb-card a{font-size:.7rem;letter-spacing:.13em}
  .sdrag .stops button,.sframe .tag{font-size:.7rem;letter-spacing:.13em}
  .tl-track .era,.tl-track strong{font-size:.68rem;letter-spacing:.15em}
  .vr-pill .m,.oh i,.sr-card .tag{font-size:.68rem;letter-spacing:.13em}
  .oh em{font-size:.9rem}
  .bc span{font-size:.68rem;letter-spacing:.13em}
  .bc em{font-size:.9rem}
  .bc-note{font-size:.9rem}
  .beds-table .bt-l{font-size:.68rem;letter-spacing:.11em;line-height:1.6}
  .beds-table th,.hp-rooms th{font-size:.64rem;letter-spacing:.09em}
  .hp-facts span{font-size:.66rem;letter-spacing:.1em;line-height:1.5}
  .sleeps-line span,.solar-figs span{font-size:.68rem;letter-spacing:.13em}
  .sp-step .era{font-size:.7rem;letter-spacing:.18em}
  .heat{font-size:.69rem;letter-spacing:.12em}
  .lb figcaption{font-size:.72rem;letter-spacing:.1em;line-height:1.6;color:rgba(246,241,230,.86)}
  .ending .contacts{font-size:.7rem;letter-spacing:.13em;line-height:2.2}
  .foot li a,.foot .cols p{font-size:.7rem;letter-spacing:.1em}
  .foot .base{font-size:.68rem;letter-spacing:.1em;line-height:1.7;color:rgba(246,241,230,.68)}
  .barcalc .pilltabs button,.barcalc .pilltabs button[aria-selected=true]{font-size:.66rem;letter-spacing:.03em;padding:.2em .1em;min-height:44px}
  .pilltabs button{min-height:44px}
  /* the house bars keep stacking with the name only (Zander, Sept 29). A size up, and every name still fits at 360 */
  .alt .house-bar,.houses-stack .house-bar{font-size:.66rem;letter-spacing:.06em;padding:0 1rem}
  /* the bed lines on Weddings were 15px capitals, half again every other label */
  .alt .house-info p.beds{font-size:.7rem;letter-spacing:.1em;line-height:1.75;margin:.2rem 0 .8rem}
  /* the words under each house, up from 14.9px */
  .alt .house-info p{font-size:.98rem;line-height:1.62}
  .sp-ph .sp-cap{font-size:.85rem}

  /* --- 2. gold that could not be read. On cream the kicker gold measured 2.6 to 1; the map band's own
         darker bronze (5.2 to 1) takes its place on light backgrounds. Dark sections keep the soft gold --- */
  .kicker,.vq-card cite,.sp-step .era,.ct-direct span,.inq legend,.tl-track .era,.hx-i .n,.vr-pill .m,.beds-table th,.hp-rooms th,.sdrag .stops button[aria-pressed=true]{color:#8a5a2b}
  .solar .kicker,.snaprail .kicker,.next-steps .kicker,.other-houses .kicker,.film.night .kicker,#night .kicker,.vr-pill.on .m{color:var(--gold-soft)}
  .hp-copy .heat{color:#7a5524}

  /* --- 3. words over photographs --- */
  /* the openings: a wider, deeper shade behind the words, so the kicker holds on a bright photograph */
  .hero::after{background:radial-gradient(ellipse 130% 30% at 50% 51%,rgba(10,18,13,.56),rgba(10,18,13,0) 100%),linear-gradient(180deg,rgba(16,24,20,.58) 0%,rgba(22,40,29,.26) 40%,rgba(22,40,29,.6) 100%)}
  .hero-in .kicker,.hero-in p,.nf .kicker{text-shadow:0 1px 14px rgba(0,0,0,.55)}
  .hero-in .kicker,.nf .kicker{color:#ecd6a6}
  .nf > img{opacity:.46}
  /* the three doors: the shade climbs high enough to carry the gold line */
  .door::after{background:linear-gradient(to top,rgba(11,18,14,.92) 0%,rgba(11,18,14,.66) 46%,rgba(11,18,14,0) 82%)}
  /* the reels: the label at the top sat in gold on open sky */
  .rl-seg::after,.reel.wk .rl-seg::after{background:linear-gradient(180deg,rgba(14,26,19,.8) 0,rgba(14,26,19,.5) calc(var(--hh) + 2.4rem),rgba(14,26,19,0) calc(var(--hh) + 7rem))}
  .rl-head .kicker{color:var(--cream);text-shadow:0 1px 12px rgba(0,0,0,.6)}
  .ac-copy .kicker{color:#ecd6a6;text-shadow:0 1px 10px rgba(0,0,0,.6)}
  /* the reviews and the Estate's wilderness line */
  .qphoto::after{background:rgba(14,22,17,.6)}
  .qphoto cite,.inset .in-copy span{color:rgba(246,241,230,.92);text-shadow:0 1px 12px rgba(0,0,0,.55)}
  /* Keep exploring */
  .vs::after{background:linear-gradient(to top,rgba(16,24,20,.74),rgba(16,24,20,.1) 62%)}
  .vs span b{font-size:.72rem;letter-spacing:.18em}
  /* captions on photographs: a shade under each, 11px, and room to wrap */
  .mosaic figure::after,.moments figure::after,.wild-row figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;background:linear-gradient(to top,rgba(10,18,13,.74),rgba(10,18,13,0));pointer-events:none}
  .mosaic figcaption,.moments figcaption,.wild-row figcaption{z-index:1;left:.65rem;right:.65rem;bottom:.55rem;font-size:.69rem;letter-spacing:.08em;line-height:1.4;text-shadow:0 1px 6px rgba(0,0,0,.5)}
  /* the opening photographs, two across so each is a landscape again and its caption fits */
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:.5rem}
  .mosaic figure{aspect-ratio:4/3}
  .mosaic .m1,.mosaic .m2,.mosaic .m3,.mosaic .m4,.mosaic .m5,.mosaic .m6{grid-column:auto;grid-row:auto}
  .mosaic .m1{grid-column:1/-1;aspect-ratio:3/2}
  .mosaic .m6{grid-column:1/-1;aspect-ratio:5/2}
  /* the photograph inside the type ran pale wherever the photograph was pale */
  .whole .mask{filter:brightness(.6) contrast(1.22) saturate(1.2)}

  /* --- 4. a small italic caveat line, kept for any future note on a house --- */
  .caveat{font-family:var(--body);font-style:italic;font-size:.92rem!important;letter-spacing:0;text-transform:none;line-height:1.5!important;color:#7a5524!important}

  /* --- 5. the inquiry form --- */
  .fld label{font-size:.7rem;letter-spacing:.1em;margin-bottom:.5rem}
  .fld label em{font-size:.8rem;opacity:.85}
  .inq legend{font-size:.7rem}
  .inq-sub{font-size:.68rem!important}
  .ct-direct span{font-size:.68rem;letter-spacing:.13em;padding-top:.35rem}
  .ct-direct li{grid-template-columns:5.6rem minmax(0,1fr)}

  /* a hint too long for the box ends in an ellipsis, not half a letter */
  .fld input{text-overflow:ellipsis}

  /* --- 6. headings that wrap were set at the body's 1.75 leading, two lines 67px apart --- */
  .ending h2{line-height:1.08;text-wrap:balance}
  .inq h2,.sp-step h3,.deck-card h3,.house-info h3,.dl dt{line-height:1.15}
  .beds-table .bt-k{display:block;line-height:1.12;margin-bottom:.35rem}
  .faq-list summary{line-height:1.28;align-items:baseline}
  .facts b,.drive b,.foot h4{line-height:1.3}
  .beds-table tr.h td{line-height:1.25}
  .beds-table .bt-l{color:rgba(22,40,29,.9)}

  /* --- 7. layout --- */
  /* the radiant heat note, its mark with the words and not out at the edge */
  .heat-note{display:block;text-align:center;font-size:.9rem;line-height:1.6;text-wrap:balance}
  .heat-ico{display:inline-block;vertical-align:-1px;margin-right:.5rem}
  /* the 1927 behind the ending, quieter under the words */
  .ending .ghost b{color:rgba(246,241,230,.03)}
  .ending .ghost i{display:none}
  /* the 404 choices at a thumb's height */
  .nf-links a{padding:1.05em 1.3em}
  /* the opening photographs and the filmstrip under them are one run of pictures */
  .w-intro:has(+ .film){padding-bottom:.5rem}
  /* small taps the first pass did not reach: the map card's link, the seasons slider */
  .mb-card a{position:relative}
  .mb-card a::after{content:"";position:absolute;left:-8px;right:-8px;top:50%;height:44px;transform:translateY(-50%)}
  .sdrag input{height:44px}
  /* the mark in the header is a full height tap */
  .hh-mark{position:relative}
  .hh-mark::after{content:"";position:absolute;left:-8px;right:-8px;top:50%;height:48px;transform:translateY(-50%)}
}
/* a photograph waiting for its phone-sized copy shows nothing, not its description */
.ph img[data-o]:not([src]){visibility:hidden}

/* ======================= ZANDER'S FIRST READ ON A PHONE (Oct 7, 2026) =======================
   His rule: when you cannot see everything you should on one phone screen, that piece is reworked.
   Phone only, like the block above. */
@media (max-width:760px){
  /* Ceremony Spaces gets its own colour. It followed the weekend reel in the same deep green */
  .sites{background:var(--cream-warm);color:var(--ink)}
  .sites h2,.site-card h3,.beyond-head h3{color:var(--forest)}
  .sites .head p,.site-card p,.beyond-head p{color:var(--ink-soft)}
  .sites .kicker,.site-card .cap{color:#8a5a2b}
  .sites .mono-link{color:var(--forest);border-color:var(--rule)}

  /* Don's map: the filters on one line, the map sized so it and the card for the tapped place share a screen */
  .mb-in,.lay-b .mb-in,.lay-c .mb-in,.lay-d .mb-in{gap:.9rem;padding-top:2.8rem;padding-bottom:2.2rem}
  .mb-left p{font-size:.98rem;line-height:1.65}
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:1.1rem calc(-1 * var(--pad)) 0;padding:2px var(--pad) 4px}
  .chips::-webkit-scrollbar{display:none}
  .chips button{flex:none;white-space:nowrap}
  .mapbox{width:min(100%,calc((100svh - var(--hh) - 13.5rem) * 1200 / 1575));height:auto;min-height:0;aspect-ratio:1200/1575;margin:0 auto}
  .lay-d .mb-bottom,.mb-bottom{margin-top:0}
  .mapband .mb-hint{text-align:center;margin-bottom:.55rem}
  .mapband .mb-card{grid-template-columns:104px minmax(0,1fr);gap:.9rem;padding:.7rem;min-height:0;align-items:center}
  .mapband .mb-card img{height:104px;min-height:0;max-height:none}
  .mb-card b{font-size:1.3rem;line-height:1.1}
  .mb-card span{margin-top:.25rem;font-size:.9rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .mb-card a{margin-top:.45rem}
  .mapband .mb-addr{margin-top:.6rem;text-align:center}

  /* the bar estimate: Most venues, At Lakefalls and You keep as three rows of one card, all on one screen */
  .bar-band{padding:3.4rem 0}
  .bar-band .wrap{gap:1.6rem}
  .bar-band h2{margin:.7rem 0 .8rem}
  .barcalc .pilltabs{margin:.8rem 0 1rem}
  .bc-row{grid-template-columns:1fr;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(246,241,230,.14)}
  .bc{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k v" "e v";align-items:center;column-gap:1rem;padding:.8rem 1rem;border:0;border-radius:0;border-top:1px solid rgba(246,241,230,.12)}
  .bc:first-child{border-top:0}
  .bc span{grid-area:k}
  .bc em{grid-area:e;min-height:0;margin-top:.15rem;font-size:.86rem;line-height:1.35}
  .bc b{grid-area:v;margin:0;font-size:1.85rem}
  .bc-note{margin-top:.8rem;font-size:.86rem;line-height:1.5}

  /* the grounds, every name on the screen with the open one */
  .ac-p{height:54px}
  .ac-p.on{height:46svh}
  .ac-p .lbl{bottom:.85rem;font-size:1.2rem}

  /* a house in the stack: its photographs, its beds and its first paragraph fit under the bars, the rest is on its own page */
  .alt .hi-body > p:not(.beds):not(.caveat) ~ p:not(.beds):not(.caveat){display:none}

  /* a photograph opened full screen sits on solid dark, the page no longer shows through */
  .lb{background:#0a100c}

  /* Home, the entire estate: with the list gone the line and its link sit closer */
  .whole .mono-link{margin-top:1.5rem}
}

/* ======================= ZANDER'S READ OF THE MAP ON HIS PHONE (Oct 7, 2026, 1:27 AM) =======================
   Phone only. Nothing a visitor needs sits off the side of the screen: the checks had only looked for the
   page scrolling sideways, not for a row inside it (tools/site-v2-pw/aclip.mjs looks for both now). */
@media (max-width:760px){
  /* the three map filters, all on one line at every phone width */
  .chips{flex-wrap:nowrap;overflow:visible;justify-content:space-between;gap:5px;margin:1.1rem 0 0;padding:0}
  .chips button{flex:0 1 auto;min-height:44px;padding:.7em .62em;font-size:.69rem;letter-spacing:.02em;white-space:nowrap}

  /* a tapped place shows in the open top left corner of the map: its photograph, its name, its link */
  .mapbox{width:min(100%,calc((100svh - var(--hh) - 6.5rem) * 1200 / 1575))}
  .mapbox .mb-card{position:absolute;z-index:4;left:1.5%;top:.8%;width:43%;display:block;min-height:0;padding:.38rem .38rem .55rem;background:rgba(255,253,247,.95);box-shadow:0 1px 0 rgba(138,90,43,.25),0 14px 28px -18px rgba(60,40,20,.55)}
  .mapbox .mb-card img{display:block;width:100%;height:auto;aspect-ratio:2/1;min-height:0;max-height:none;object-fit:cover}
  .mapbox .mb-card b{margin:.42rem .12rem 0;font-size:1.04rem;line-height:1.1}
  .mapbox .mb-card span{display:none}
  .mapbox .mb-card a{margin:.3rem .12rem 0;font-size:.69rem;letter-spacing:.05em;white-space:nowrap}
  .mapband .mb-hint{margin:.5rem 0 0}
  /* the card names the place, so the dark name tag over the pin is not needed here and no longer covers the map */
  .pin span{display:none}

  /* the links under each opening wrap onto the screen instead of running off its side */
  .subnav{flex-wrap:wrap;overflow:visible;justify-content:center;gap:0 1.25rem;padding:.3rem var(--pad) .2rem}
  .subnav a:not(.btn){padding:.62rem 0}
  .subnav .btn{margin:.35rem 0 .55rem}

  /* the six houses on Home, two across and three down, all six names on the screen (four were off its side) */
  .vr-pills{display:grid;grid-template-columns:1fr 1fr;overflow:visible;gap:.45rem;padding-bottom:0}
  .vr-pill{padding:.55rem .9rem;min-width:0}
  .vr-pill .n{font-size:1.12rem;line-height:1.2}

  /* every thumbnail of a house fits the row, none hidden off the side */
  .alt .gal-th{overflow:visible;gap:.35rem}.alt .gal-t{flex:1 1 0;min-width:0;max-width:none}
  .gal-big .gal-th{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible;gap:.4rem}
  .gal-big .gal-t{flex:none}
}
@media (max-width:380px){.chips button{letter-spacing:0;padding:.7em .5em}}

/* ============ THE DRAWINGS ARE THE BUTTONS (Zander, Oct 7, 2:09 AM) ============
   On the property map a place is tapped by its own drawing. Each drawing carries a fine bronze outline cut to its
   shape, and a gold one with a warm wash when it is the chosen place. The outlines are made by src/make_map.py. */
.pin.shape{transform:none;z-index:3}
.pin.shape::before,.pin.shape:hover::before,.pin.shape.on::before{inset:0;border-radius:0;box-shadow:none;transform:none;background:var(--r) center/100% 100% no-repeat;transition:opacity .28s ease}
.pin.shape::after,.pin.shape.on::after,.pin.shape.ping::after{inset:0;border-radius:0;box-shadow:none;transform:none;animation:none;background:var(--o) center/100% 100% no-repeat;opacity:0;transition:opacity .28s ease}
.pin.shape.on::before{opacity:0}
.pin.shape.on::after{opacity:1}
.pin.shape.ping:not(.on)::after{animation:shapePing 1.1s ease-in-out 2}
@keyframes shapePing{0%,100%{opacity:0}50%{opacity:.8}}
@media (hover:hover){.pin.shape:hover::after{opacity:1}.pin.shape:hover::before{opacity:0}}
.pin.shape span{top:14px}
.pin.shape:focus-visible{outline:2px solid #8a5a2b;outline-offset:-6px}
@media (prefers-reduced-motion:reduce){.pin.shape::before,.pin.shape::after{transition:none}.pin.shape.ping:not(.on)::after{animation:none}}

/* ============ GATHERINGS (Oct 7): two doors, and a way across between the two pages ============ */
.aud{display:flex;justify-content:center;padding:1.1rem var(--pad) 0;background:var(--cream-warm)}
.aud a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:.6em 1.5em;border:1px solid rgba(31,53,39,.3);font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--forest);text-align:center}
.aud a + a{border-left:0}
.aud a.on{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.aud a:not(.on):hover{background:rgba(31,53,39,.06)}
.aud + .subnav{padding-top:.9rem}
/* the fiber line sits with the houses wherever they are shown (Zander, Oct 7, not a section of its own) */
.net-ico{width:14px;height:14px;flex:none;border-radius:50%;border:2px solid var(--gold-soft);position:relative}
.net-ico::before{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--gold-soft)}
.heat-note + .heat-note{margin-top:.5rem}
.heat + .heat{margin-left:1.2rem}
@media (max-width:760px){
  .aud{padding:.9rem 16px 0}
  .aud a{flex:1 1 0;padding:.6em .5em;font-size:.69rem;letter-spacing:.05em;line-height:1.35}
  .heat-note + .heat-note{margin:.35rem 0 0}
  .net-ico{display:inline-block;vertical-align:-2px;margin-right:.5rem}
  .heat + .heat{margin-left:0;display:block}
}

/* ============ THE MAP SIZES ITSELF FROM ITS OWN PICTURE (Oct 8) ============
   Zander saw the outlines sit a fixed distance off their drawings on his laptop. The picture used to be stretched
   over a box whose size came only from aspect-ratio and an svh height, so any browser that sized that box a little
   differently moved the drawings and not the outlines. Now the picture is in the flow and is the box, and the
   outlines are placed in percentages of the picture itself, whatever the browser does. */
.mapbox > picture{display:block}
.mapbox > img,.mapbox > picture > img{position:relative;inset:auto;display:block;width:100%;height:auto;max-width:none}
.mapbox{height:auto;min-height:0;aspect-ratio:auto;max-width:100%}
@media (min-width:761px){
  .mapbox{--mh:clamp(440px, calc(100vh - 140px), 1000px);width:calc(var(--mh) * 1200 / 1575)}
  @supports (height:100svh){.mapbox{--mh:clamp(440px, calc(100svh - 140px), 1000px)}}
  .lay-d .mb-in{grid-template-columns:minmax(220px,1.15fr) minmax(200px,1fr) auto}
}
@media (max-width:760px){
  .mapbox{width:min(100%,calc((100vh - var(--hh) - 6.5rem) * 1200 / 1575))}
  @supports (height:100svh){.mapbox{width:min(100%,calc((100svh - var(--hh) - 6.5rem) * 1200 / 1575))}}
}

/* ---------- header legibility over an opening photograph (Zander, Oct 12 2026) ----------
   Desktop only, every page, and only while the header sits over the photograph at the top. The
   faintest dark veil behind the links, fading to nothing well below the header so there is no edge.
   It goes the moment the header turns solid on scroll, and never shows on the light-header pages. */
@media (min-width:761px){
  .hh::before{content:"";position:absolute;left:0;right:0;top:0;height:230%;z-index:-1;pointer-events:none;
    background:linear-gradient(180deg,rgba(12,20,15,.34) 0%,rgba(12,20,15,.2) 38%,rgba(12,20,15,.07) 70%,rgba(12,20,15,0) 100%);
    transition:opacity .35s ease}
  .hh.solid::before,.hh.on-light::before{opacity:0}
}
