/*
Theme Name: The Hounds of Oscarville (M3.6)
Theme URI: https://example.invalid/oscarville
Author: Oscarville
Description: Custom art-directed theme for The Hounds of Oscarville. Milestone 3.6 locks mobile reviews to one full-width card at a time and stabilizes the carousel position indicator.
Version: 0.3.6
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: oscarville
*/

:root{
      --cream:#f7f3e9;
      --cream-2:#efe8da;
      --white:#fffdf8;
      --olive:#5f6b4c;
      --olive-dark:#344033;
      --olive-deep:#233127;
      --sage:#a7af97;
      --lake:#dde5e2;
      --taupe:#b7aa93;
      --brass:#b88d44;
      --ink:#262824;
      --muted:#67695f;
      --border:rgba(38,40,36,.17);
      --display:"Cormorant Garamond", Georgia, serif;
      --body:"Bricolage Grotesque",system-ui,sans-serif;
      --script:"La Belle Aurore",cursive;
      --pad:clamp(20px,4vw,64px);
      --ease:cubic-bezier(.22,.61,.36,1);
      --ease-out:cubic-bezier(.16,1,.3,1);
      --ease-inout:cubic-bezier(.65,0,.35,1);
      --motion-fast:.22s;
      --motion-mid:.42s;
      --motion-slow:.68s;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth;background:var(--cream)}
    body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);line-height:1.55;overflow-x:hidden}
    a{color:inherit;text-decoration:none}
    button,input{font:inherit}
    button{color:inherit}
    img{display:block;width:100%;height:100%;object-fit:cover}
    .shell{width:min(var(--page),calc(100% - var(--pad)*2));margin-inline:auto}
    .section{position:relative}
    .display{font-family:var(--display);font-weight:500;line-height:.93;letter-spacing:-.038em}
    .h1{font-size:clamp(4.5rem,10vw,9.2rem)}
    .h2{font-size:clamp(3rem,6vw,5.5rem)}
    .h3{font-size:clamp(2rem,3.6vw,3.3rem)}
    .lead{font-size:clamp(1.02rem,1.4vw,1.22rem);color:var(--muted);max-width:650px}
    .eyebrow{display:flex;align-items:center;gap:11px;color:var(--olive);font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
    .eyebrow::after{content:"";width:44px;height:1px;background:var(--brass)}
    .btn{min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}
    .btn-primary{background:var(--olive-dark);color:var(--cream);border-color:var(--olive-dark)}
    .btn-primary:hover{background:var(--olive-deep);transform:translateY(-2px)}
    .btn-light{background:var(--cream);color:var(--olive-dark);border-color:rgba(255,255,255,.35)}
    .btn-outline{background:transparent;border-color:rgba(38,40,36,.3)}
    .btn-outline:hover{background:rgba(95,107,76,.07);border-color:var(--olive)}
    .text-link{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
    .text-link span{transition:transform var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}
    .text-link:hover span{transform:translateX(5px)}

    /* NAV */
    .site-header{position:fixed;z-index:100;left:0;right:0;top:0;color:var(--cream);transition:background .30s var(--ease-out),color .30s var(--ease-out),border-color .30s var(--ease-out),box-shadow .30s var(--ease-out)}
    .site-header.scrolled{background:rgba(247,243,233,.97);backdrop-filter:blur(18px);color:var(--ink);border-bottom:1px solid var(--border);box-shadow:0 10px 34px rgba(36,42,35,.05)}
    .nav{height:84px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px}
    .wordmark{font-family:var(--display);font-size:.92rem;text-transform:uppercase;letter-spacing:.12em;line-height:.88}
    .wordmark strong{display:block;font-size:1.46rem;font-weight:500;letter-spacing:.08em}
    .nav-links{display:flex;gap:27px;align-items:center;font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em}
    .nav-cta{justify-self:end}
    .nav-cta .btn{min-height:42px;padding-inline:17px}
    .site-header:not(.scrolled){text-shadow:0 2px 18px rgba(0,0,0,.24)}
    .site-header:not(.scrolled) .btn-primary{background:rgba(247,243,233,.10);color:var(--cream);border-color:rgba(247,243,233,.55);backdrop-filter:blur(8px);text-shadow:none}
    .site-header:not(.scrolled) .btn-primary:hover{background:var(--cream);color:var(--olive-deep)}
    .menu-button{display:none;justify-self:end;border:0;background:none;font-size:1.35rem;cursor:pointer;padding:8px}
    .mobile-menu{display:none}
    .hero{min-height:100svh;position:relative;overflow:hidden;background:var(--olive-deep);color:var(--cream);isolation:isolate}
    .hero-media{position:absolute;inset:-7% 0 -9%;z-index:0;overflow:hidden;will-change:transform}
    .hero-media img{width:100%;height:100%;object-fit:cover;object-position:center center;will-change:transform;transform:scale(1.025)}
    .hero-shade{position:absolute;inset:0;z-index:1;background:
      linear-gradient(90deg,rgba(17,27,20,.12) 0%,rgba(17,27,20,.08) 38%,rgba(17,27,20,.34) 57%,rgba(17,27,20,.63) 100%),
      linear-gradient(180deg,rgba(17,27,20,.28) 0%,rgba(17,27,20,.04) 28%,rgba(17,27,20,.10) 66%,rgba(17,27,20,.38) 100%)}
    .hero-inner{position:relative;z-index:3;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(470px,.86fr);align-items:center;padding-top:92px;padding-bottom:110px}
    .hero-content{grid-column:2;text-align:left;width:min(680px,100%);justify-self:end;padding:0 0 0 clamp(30px,5vw,80px);will-change:transform,opacity}
    .hero-kicker{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,1.65vw,1.55rem);letter-spacing:.01em;margin-bottom:18px;color:rgba(247,243,233,.88)}
    .hero h1{margin:0 0 24px;font-size:clamp(4.5rem,7.2vw,7.9rem);max-width:760px;text-shadow:0 5px 34px rgba(0,0,0,.18)}
    .hero h1 em{display:block;font-weight:400}
    .hero-copy{max-width:570px;margin:0 0 30px;color:rgba(255,253,248,.88);font-family:var(--display);font-size:clamp(1.35rem,1.85vw,1.7rem);line-height:1.22}
    .hero-actions{display:flex;justify-content:flex-start;gap:12px;flex-wrap:wrap}
    .hero-cta{min-height:58px;padding-inline:29px;border-radius:2px;background:var(--cream);color:var(--olive-deep);border-color:rgba(247,243,233,.9);font-size:.76rem;box-shadow:0 16px 36px rgba(17,27,20,.13)}
    .hero-cta:hover{background:var(--white);color:var(--olive-deep);transform:translateY(-2px) scale(1.012)}
    .hero-cta i{font-size:.95rem}
    .hero-scroll-note{position:absolute;z-index:4;right:var(--pad);bottom:58px;align-items:center;gap:10px;font-size:.6rem;text-transform:uppercase;letter-spacing:.17em;color:rgba(247,243,233,.72)}
    .hero-scroll-note::before{content:"";width:44px;height:1px;background:rgba(247,243,233,.55)}

    /* torn paper handoff — the page becomes a document here */
    .hero-rip{position:absolute;z-index:6;left:-1%;right:-1%;bottom:-1px;height:96px;pointer-events:none;filter:drop-shadow(0 -3px 3px rgba(17,27,20,.08))}
    .hero-rip svg{display:block;width:102%;height:100%;overflow:visible}
    .positioning{position:relative}
    .positioning::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.58' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='.14'/%3E%3C/svg%3E");mix-blend-mode:multiply}
    .positioning>.shell{position:relative;z-index:1}

    /* POSITIONING / HOLISTIC QUOTE MOMENT */
    .positioning{background:var(--cream);padding:clamp(100px,12vw,180px) 0;overflow:hidden}
    .position-stage{min-height:700px;position:relative;display:grid;place-items:center;isolation:isolate}
    .position-copy{position:relative;z-index:3;text-align:center;max-width:850px;padding:0 40px}
    .position-copy .eyebrow{justify-content:center;margin-bottom:20px}
    .position-copy .eyebrow::after{display:none}
    .position-copy h2{margin:0;font-family:var(--body);font-size:clamp(2.75rem,min(6.3vw,10.5svh),6.25rem);font-weight:400;line-height:.96;letter-spacing:-.06em}
    .position-copy h2 em{font-family:var(--display);font-weight:500;color:#a76028}
    .float-note{position:absolute;z-index:6;display:grid;grid-template-columns:92px minmax(170px,250px);align-items:center;background:var(--lake);border:1px solid rgba(95,107,76,.08);border-radius:18px;overflow:hidden;box-shadow:0 16px 40px rgba(51,52,45,.08);font-size:.9rem;font-weight:500;line-height:1.35;will-change:transform,opacity}
    .float-note img{height:86px}
    .float-note span{padding:16px}
    .float-note.n1{top:4%;left:7%}
    .float-note.n2{top:0;right:9%}
    .float-note.n3{left:-2%;top:46%}
    .float-note.n4{right:-1%;top:42%}
    .float-note.n5{left:12%;bottom:1%}
    .float-note.n6{right:14%;bottom:4%}
    @media(hover:hover){.float-note:hover{box-shadow:0 24px 65px rgba(51,52,45,.14)}}
    .hero-scroll-note{display:none}
    .hero-scroll-cue{position:absolute;z-index:5;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(247,243,233,.88);font-size:.56rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;text-shadow:0 2px 14px rgba(0,0,0,.2);animation:heroCueBob 2.15s var(--ease-inout) infinite;will-change:transform,opacity}
    .hero-scroll-cue i{font-size:.72rem}
    @keyframes heroCueBob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

    .paper-sheet{position:absolute;z-index:8;left:0;top:0;width:100%;height:100%;background:var(--cream);transform:translateY(118%);will-change:transform;overflow:visible}
    .paper-rip-edge{position:absolute;z-index:3;left:-1.5%;right:-1.5%;top:-164px;height:190px;pointer-events:none;filter:drop-shadow(0 -4px 6px rgba(23,33,25,.09));overflow:hidden}
    .paper-rip-edge img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block}
    .paper-rip-edge::after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:-1px;height:104px;background:linear-gradient(to bottom,rgba(247,243,233,0) 0%,rgba(247,243,233,.55) 50%,var(--cream) 100%);pointer-events:none}
    .paper-sheet .positioning{height:100%;min-height:100%;padding:0;background:var(--cream);overflow:hidden}
    .paper-sheet .position-stage{height:100%;min-height:100%;padding-top:30px;padding-bottom:20px}
    .paper-sheet .position-copy{will-change:transform,opacity}
    .paper-sheet .float-note{will-change:transform,opacity}

    /* Short/wide desktop previews need a composition that fits in height as well as width. */
    @media (min-width:681px) and (max-height:700px){
      .paper-sheet .position-stage{padding-top:18px;padding-bottom:12px}
      .position-copy{max-width:min(760px,64vw);padding:0 24px}
      .position-copy .eyebrow{margin-bottom:10px;font-size:.58rem}
      .position-copy h2{font-size:clamp(2.35rem,min(5.2vw,9.2svh),4.65rem);line-height:.94}
      .float-note{grid-template-columns:64px minmax(140px,205px);font-size:.72rem;border-radius:14px}
      .float-note img{height:62px}
      .float-note span{padding:10px 12px}
      .float-note.n1{top:6%;left:7%}.float-note.n2{top:5%;right:8%}
      .float-note.n3{left:0;top:47%}.float-note.n4{right:0;top:45%}
      .float-note.n5{left:10%;bottom:5%}.float-note.n6{right:11%;bottom:6%}
    }
    @media (min-width:681px) and (max-height:500px){
      .position-copy{max-width:min(700px,58vw)}
      .position-copy h2{font-size:clamp(2.05rem,min(4.5vw,8.4svh),3.5rem);line-height:.92}
      .position-copy .eyebrow{margin-bottom:7px}
      .float-note{grid-template-columns:52px minmax(125px,180px);font-size:.64rem}
      .float-note img{height:50px}.float-note span{padding:8px 10px}
      .float-note.n1{top:4%;left:6%}.float-note.n2{top:3%;right:7%}
      .float-note.n3{left:-1%;top:45%}.float-note.n4{right:-1%;top:43%}
      .float-note.n5{left:8%;bottom:3%}.float-note.n6{right:9%;bottom:4%}
    }

    /* ABOUT + PAPER PROOF COLLAGE */
    .about{background:var(--white)}
    .about-grid{display:grid}
    .about-photo{position:relative}
    .about-photo img{position:absolute;inset:0}
    .about-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(35,49,39,.2))}
    .about-copy{display:flex;flex-direction:column;min-width:0}
    .about-pill{display:inline-flex;width:max-content;padding:7px 13px;border-radius:999px;background:#a76028;color:var(--cream);font-size:.68rem;font-weight:600;margin-bottom:22px}
    .about-signoff{gap:16px}
    .about-signoff::before{content:"";height:1px;flex:0 0 auto}
    .about-signoff .signature{display:inline-block}
    .about-signoff small{text-transform:uppercase}

    .paper-proof-collage{grid-template-columns:repeat(3,minmax(0,1fr))}
    .paper-proof{position:relative;transition:transform var(--motion-mid) var(--ease-out);will-change:transform}
    .paper-proof>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
    .paper-proof-copy{position:absolute;z-index:2;left:18%;right:13%;text-align:center;display:flex;flex-direction:column;align-items:center}
    .paper-proof-copy small{text-transform:uppercase;opacity:.68}
    .paper-proof-copy strong{white-space:nowrap}
    .paper-proof-copy>span{text-transform:uppercase}
    .paper-proof-copy strong .count{font-size:inherit;line-height:inherit;letter-spacing:inherit;text-transform:none;margin:0;opacity:1}
    .paper-proof.blue .paper-proof-copy{color:#26382e}
    .paper-proof.green .paper-proof-copy{color:var(--cream)}
    .paper-proof.tan .paper-proof-copy{color:#75451f;left:19%;right:14%}
    @media(hover:hover) and (pointer:fine){
    }

    /* CHOOSE THE STAY — editorial reservation cards */
    .options{background:var(--cream);overflow:hidden}
    .options-head{text-align:center;max-width:900px;margin:0 auto 58px}
    .options-head .eyebrow{justify-content:center}
    .options-head .eyebrow::after{display:none}
    .options-head h2{font-family:var(--display);font-size:clamp(4rem,7vw,6.6rem);font-weight:500;letter-spacing:-.045em;line-height:.9;margin:15px 0 18px;color:var(--olive-deep)}
    .options-head p{margin-inline:auto}
    .stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:auto}
    .stay-card{min-width:0;transform-style:preserve-3d;will-change:transform;transition:box-shadow var(--motion-mid) var(--ease-out)}
    .stay-card::after{content:"";position:absolute;pointer-events:none;border:1px solid rgba(52,64,51,.16);clip-path:inherit}
    .stay-card.boarding{color:var(--cream);border-color:rgba(184,141,68,.48)}
    .stay-card.boarding::after{border-color:rgba(184,141,68,.4)}
    @media(hover:hover){.stay-card:hover{box-shadow:0 30px 72px rgba(42,43,38,.12)}.stay-card.boarding:hover{box-shadow:0 34px 78px rgba(24,34,26,.24)}}
    .stay-top{text-align:center;padding:30px 36px 22px;position:relative;z-index:2}
    .stay-type{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;background:var(--lake);color:#506372;font-size:.62rem;line-height:1;text-transform:uppercase;letter-spacing:.13em;font-weight:600;margin-bottom:14px}
    .boarding .stay-type{background:#cfad63;color:var(--olive-deep)}
    .stay-card h3{font-family:var(--display);font-size:clamp(3.2rem,4.7vw,4.8rem);font-weight:500;line-height:.9;letter-spacing:-.04em;margin:0 0 14px;color:var(--olive-deep)}
    .boarding h3{color:var(--cream)}
    .stay-intro{margin:0 auto;color:var(--muted);max-width:430px;font-size:.9rem;line-height:1.55}
    .boarding .stay-intro{color:rgba(247,243,233,.72)}
    .stay-image{position:relative;overflow:hidden}
    .stay-image img{transition:transform .90s var(--ease-out);transform:scale(1.01)}
    .stay-card:hover .stay-image img{transform:scale(1.045)}
    .boarding .stay-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,27,20,.05),rgba(18,27,20,.22))}
    .stay-perk{border-right:1px solid rgba(52,64,51,.14);font-size:.57rem;line-height:1.35;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
    .stay-perk:last-child{border-right:0}
    .stay-perk i{margin-bottom:9px}
    .boarding .stay-perk{color:rgba(247,243,233,.72);border-color:rgba(247,243,233,.16)}
    .stay-booking{position:relative;z-index:2;text-align:center}
    .stay-booking-note{display:flex;align-items:center;justify-content:center;gap:8px;color:#70818b;font-size:.58rem;text-transform:uppercase;letter-spacing:.13em;font-weight:600}
    .boarding .stay-booking-note{color:rgba(247,243,233,.58);border-color:rgba(247,243,233,.15)}
    .stay-booking .btn{width:100%;border-radius:1px;min-height:50px;background:#6f8999;color:#fff;border-color:#6f8999}
    .boarding .stay-booking .btn{background:var(--cream);color:var(--olive-deep);border-color:var(--cream)}
    .stay-booking .btn span{margin-left:auto;font-size:1rem;transition:transform var(--motion-fast) var(--ease-out)}
    .stay-booking .btn:hover span{transform:translateX(5px)}
    .options-foot{text-align:center;margin-top:26px;color:var(--muted);font-size:.68rem;letter-spacing:.04em}

    /* DAY AT OSCARVILLE — TIMELINE + WHAT EVERY HOUND GETS */
    .day{position:relative;overflow:visible;isolation:isolate;background:linear-gradient(180deg,#263629 0%,#223226 100%);color:var(--cream)}
    .day::before{content:"";position:absolute;inset:0;background:url('assets/day-grain-overlay-lite.webp') center/cover no-repeat;opacity:.22;pointer-events:none;mix-blend-mode:screen}
    .day::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 12%,rgba(255,255,255,.07),transparent 28%),radial-gradient(circle at 82% 78%,rgba(184,141,68,.08),transparent 26%);pointer-events:none}
    .day > .shell{position:relative;z-index:1}
    .day-head{max-width:830px}
    .day-head .eyebrow{color:var(--sage)}
    .day-head h2{margin:12px 0 16px}
    .day-head .lead{color:rgba(247,243,233,.72)}
    .day-story{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(320px,.66fr);gap:clamp(38px,5vw,66px);align-items:start}
    .day-visual{--scene-tint:linear-gradient(180deg,rgba(20,30,22,.03),rgba(20,30,22,.14) 48%,rgba(20,30,22,.72));position:sticky;top:102px;height:clamp(620px,76svh,790px);min-height:0;border-radius:26px;overflow:hidden;background:#4f5f4e;border:1px solid rgba(247,243,233,.14);box-shadow:0 24px 70px rgba(10,18,12,.20);isolation:isolate}
    .day-visual[data-scene="morning"]{--scene-tint:linear-gradient(180deg,rgba(117,139,154,.05),rgba(20,30,22,.10) 48%,rgba(20,30,22,.72))}
    .day-visual[data-scene="walk"]{--scene-tint:linear-gradient(180deg,rgba(196,174,107,.03),rgba(20,30,22,.08) 48%,rgba(20,30,22,.68))}
    .day-visual[data-scene="rest"]{--scene-tint:linear-gradient(180deg,rgba(166,175,151,.06),rgba(20,30,22,.14) 50%,rgba(20,30,22,.74))}
    .day-visual[data-scene="play"]{--scene-tint:linear-gradient(180deg,rgba(184,141,68,.03),rgba(20,30,22,.10) 48%,rgba(20,30,22,.70))}
    .day-visual[data-scene="evening"]{--scene-tint:linear-gradient(180deg,rgba(151,96,54,.10),rgba(36,38,28,.18) 48%,rgba(15,22,17,.82))}
    .day-photo{position:absolute;inset:0;opacity:0;transform:scale(1.065);will-change:opacity,transform,filter}
    .day-photo.active{opacity:1;transform:scale(1)}
    .day-visual::before{content:"";position:absolute;z-index:1;inset:0;background:var(--scene-tint);transition:background .58s var(--ease-inout);pointer-events:none}
    .day-visual::after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 18%,transparent 56%,rgba(12,20,14,.16) 72%,rgba(12,20,14,.48) 100%);pointer-events:none}
    .day-grain{position:absolute;inset:0;z-index:3;width:100%;height:100%;object-fit:cover;opacity:.12;mix-blend-mode:screen;pointer-events:none}
    .day-overlay{position:absolute;z-index:6;left:32px;right:32px;bottom:22px;display:flex;flex-wrap:wrap;gap:14px 18px;align-items:center;min-height:40px;align-content:end;padding-top:14px;border-top:1px solid rgba(247,243,233,.18)}
    .care-chip{display:inline-flex;align-items:center;gap:9px;padding:0;background:none;color:rgba(247,243,233,.84);border:0;font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;box-shadow:none;backdrop-filter:none;animation:chipin .42s var(--ease-out)}
    .care-chip::before{content:"";display:inline-block;width:14px;height:1px;background:rgba(215,182,109,.92);margin:0}
    @keyframes chipin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
    .day-caption{position:absolute;z-index:6;left:30px;top:30px;display:inline-flex;align-items:center;gap:12px;padding:10px 16px 9px;border-radius:999px;background:rgba(247,243,233,.92);color:var(--olive-deep);border:1px solid rgba(247,243,233,.55);font-size:.58rem;font-weight:650;text-transform:uppercase;letter-spacing:.18em;box-shadow:0 10px 26px rgba(0,0,0,.10)}
    .day-caption::before{content:"Filed";color:#7b8570;font-weight:700;letter-spacing:.22em}
    .timeline-list{--rail-x:12px;--step-inset:50px;position:relative;padding-left:var(--step-inset);padding-right:10px}
    .timeline-line{position:absolute;left:var(--rail-x);top:26px;bottom:26px;width:1px;background:rgba(247,243,233,.16);transform:translateX(-50%)}
    .timeline-progress{position:absolute;z-index:1;left:var(--rail-x);top:26px;width:3px;height:0;background:linear-gradient(180deg,#d7b66d,var(--brass));transform:translateX(-50%);transition:height .48s var(--ease-out);box-shadow:0 0 16px rgba(184,141,68,.22)}
    .timeline-progress::after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;border-radius:50%;background:var(--brass);transform:translateX(-50%);box-shadow:0 0 0 5px rgba(184,141,68,.13)}
    .day-step{position:relative;min-height:285px;padding:18px 0 52px 30px;opacity:.32;transform:none;transition:opacity .42s var(--ease-out),filter .42s var(--ease-out);filter:saturate(.9)}
    .day-step::before{content:"";position:absolute;z-index:2;left:calc(var(--rail-x) - var(--step-inset) - 6px);top:25px;width:12px;height:12px;border-radius:50%;background:var(--olive-deep);border:1px solid rgba(247,243,233,.42);transition:background .38s var(--ease-out),border-color .38s var(--ease-out),box-shadow .38s var(--ease-out),width .38s var(--ease-out),height .38s var(--ease-out),left .38s var(--ease-out),top .38s var(--ease-out)}
    .day-step.active{opacity:1;transform:none;filter:none}
    .day-step.active::before{width:18px;height:18px;left:calc(var(--rail-x) - var(--step-inset));top:22px;background:var(--brass);border-color:var(--brass);transform:translateX(-50%);box-shadow:0 0 0 7px rgba(184,141,68,.13)}
    .day-time{display:inline-flex;align-items:center;gap:10px;font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--sage);transition:color .34s var(--ease-out)}
    .day-time::before{content:"";width:20px;height:1px;background:rgba(247,243,233,.20)}
    .day-step.active .day-time{color:#d7b66d}
    .day-step.active .day-time::before{background:#d7b66d}
    .day-step h3{font-family:var(--display);font-size:clamp(2.25rem,3vw,2.85rem);font-weight:500;line-height:.98;margin:10px 0 12px}
    .day-step p{color:rgba(247,243,233,.60);font-size:.92rem;max-width:430px;margin:0 0 18px;transition:color .34s var(--ease-out)}
    .day-step.active p{color:rgba(247,243,233,.84)}
    .inline-perks{display:flex;flex-wrap:wrap;gap:8px 9px}
    .inline-perks span{border:1px solid rgba(247,243,233,.12);border-radius:999px;padding:7px 12px 6px;font-size:.60rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(247,243,233,.72);transition:border-color .34s var(--ease-out),color .34s var(--ease-out),background .34s var(--ease-out)}
    .day-step.active .inline-perks span{border-color:rgba(215,182,109,.28);color:rgba(247,243,233,.92);background:rgba(247,243,233,.025)}

    /* 14+ NIGHT GROOMING PERK — editorial hospitality split */
    .bath{background:var(--white)}
    .bath-card{display:grid;position:relative}
    .bath-copy{display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
    .bath-kicker{display:inline-flex;align-items:center;gap:13px;color:var(--olive-dark);font-size:.67rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;margin-bottom:18px}
    .bath-kicker::after{content:"";width:42px;height:1px;background:var(--brass)}
    .bath-copy h2{margin:0 0 18px;font-size:clamp(3rem,4.8vw,5.15rem);max-width:580px}
    .bath-copy h2 em{display:block;color:var(--olive-dark);font-weight:500}
    .bath-copy .lead{max-width:540px;margin:0;color:var(--muted)}
    .bath-benefits{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:0;
    }
    .bath-benefits::before,
    .bath-benefits::after{
      inset:10px;
      background:
        linear-gradient(var(--brass),var(--brass)) left top/16px 1px no-repeat,
        linear-gradient(var(--brass),var(--brass)) left top/1px 16px no-repeat,
        linear-gradient(var(--brass),var(--brass)) right top/16px 1px no-repeat,
        linear-gradient(var(--brass),var(--brass)) right top/1px 16px no-repeat,
        linear-gradient(var(--brass),var(--brass)) left bottom/16px 1px no-repeat,
        linear-gradient(var(--brass),var(--brass)) left bottom/1px 16px no-repeat,
        linear-gradient(var(--brass),var(--brass)) right bottom/16px 1px no-repeat,
        linear-gradient(var(--brass),var(--brass)) right bottom/1px 16px no-repeat;
    }
    .bath-benefit{
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:flex-start;
      text-align:center;
    }
    .bath-benefit + .bath-benefit::before{
      content:"";
      position:absolute;
      left:0;
      top:14px;
      bottom:14px;
      width:1px;
    }
    .bath-benefit + .bath-benefit::after{
      content:"";
      position:absolute;
      left:-3px;
      top:50%;
      width:7px;
      height:7px;
      transform:translateY(-50%);
      border-radius:50%;
    }
    .bath-benefit i{
      width:auto;
      height:auto;
      display:grid;
      place-items:center;
      color:var(--brass);
      margin:0 0 18px;
    }
    .bath-benefit strong{
      display:block;
      line-height:1.3;
      text-transform:uppercase;
      color:var(--olive-deep);
      margin-bottom:8px;
    }
    .bath-benefit span{
      display:block;
      max-width:180px;
      font-family:var(--display);
      font-style:italic;
      color:var(--muted);
      letter-spacing:.005em;
    }
    .bath-partner{margin-top:18px;font-size:.69rem;color:var(--muted);max-width:520px;letter-spacing:.01em}
    .bath-image{position:relative}
    .bath-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(35,49,39,.05),transparent 28%),linear-gradient(180deg,transparent 56%,rgba(35,49,39,.12));pointer-events:none}
    .bath-image img{transition:transform .95s var(--ease-out);object-position:center 44%}
    .bath-seal{position:absolute;z-index:3;width:132px;aspect-ratio:1;border-radius:50%;place-items:center;text-align:center;padding:16px;background:var(--olive-deep);color:var(--cream);border:1px solid rgba(247,243,233,.35);transform:rotate(5deg)}
    .bath-seal::before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(247,243,233,.34)}
    .bath-seal-inner{position:relative;z-index:1;font-size:.57rem;line-height:1.38;text-transform:uppercase;letter-spacing:.13em}
    .bath-seal i{display:block;color:#d7b66d;font-size:1rem;margin:7px 0}
    .bath-seal strong{display:block;font-family:var(--display);font-size:1.45rem;line-height:.85;font-weight:500;letter-spacing:0;text-transform:none}

    /* REVIEWS — editorial marquee cards */
    .reviews{background:var(--cream);overflow:hidden}
    .reviews-head{display:flex;align-items:end;justify-content:space-between;gap:30px}
    .reviews-head h2{margin:10px 0 0}
    .review-marquee{position:relative}
    .review-marquee::before,.review-marquee::after{content:"";position:absolute;z-index:3;top:0;bottom:0;width:min(8vw,110px);pointer-events:none}
    .review-marquee::before{left:0;background:linear-gradient(90deg,var(--cream),rgba(247,243,233,0))}
    .review-marquee::after{right:0;background:linear-gradient(270deg,var(--cream),rgba(247,243,233,0))}
    .review-track{display:flex;width:max-content;animation:reviews 48s linear infinite}
    .review-track:hover,.review-track:focus-within{animation-play-state:paused}
    @keyframes reviews{}
    .review-card{position:relative}
    .review-card::after{content:"";position:absolute;height:1px}
    .review-stars{grid-column:1;grid-row:1;margin-bottom:10px;white-space:nowrap}
    .review-copy{grid-column:1;grid-row:2}
    .review-portrait{grid-column:2;grid-row:1 / span 3}
    .review-person{grid-column:1;grid-row:3;padding-top:19px;display:block}
    @media(hover:hover) and (pointer:fine){}

    @media(max-width:560px){
      .review-track{gap:12px;animation-duration:42s}
      .review-card{width:88vw;min-height:222px;grid-template-columns:minmax(0,1fr) 82px;column-gap:14px;padding:20px 18px 17px;border-radius:6px;box-shadow:none}
      .review-portrait{width:80px;height:80px;align-self:start;margin-top:20px}
      .review-copy{padding-left:20px}.review-copy::before{font-size:2.65rem;top:-10px}.review-card blockquote{font-size:.87rem;line-height:1.42}
      .review-card::after{left:18px;right:18px;bottom:50px}.review-person{padding-top:16px}.review-person strong{font-size:.62rem}.review-person small{font-size:.59rem}
      .review-marquee::before,.review-marquee::after{width:28px}
    }

    /* FAQ */
    .faq{background:var(--white)}
    .faq-wrap{display:grid}
    .faq-copy{position:sticky;top:120px;align-self:start}
    .faq-copy h2{margin:12px 0 18px}
    .faq-q{width:100%;background:none;border:0;justify-content:space-between;text-align:left;cursor:pointer}
    .faq-q span:first-child{font-family:var(--display)}
    .plus{font-size:1.35rem;transition:transform .30s var(--ease-out)}
    .faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .36s var(--ease-out)}
    .faq-a>div{overflow:hidden;color:var(--muted);font-size:.9rem}
    .faq-a p{margin:0}
    .faq-item.open .faq-a{grid-template-rows:1fr}
    .faq-item.open .plus{transform:rotate(45deg)}

    /* FINAL CTA — the paper thins out and Lake Lanier returns */
    .final{
      background-color:var(--cream);
      background-image:url("assets/paper-texture-cream.webp");
      background-size:420px auto;
    }
    .final-lake{
      transform-origin:50% 100%;
      will-change:transform;
    }
    .final-lake-shade{
      inset:auto 0 0;
    }
    .final-brand{
      display:inline-flex;
      align-items:center;
      gap:14px;
      color:var(--olive);
      font-family:var(--body);
      font-weight:650;
      text-transform:uppercase;
      letter-spacing:.2em;
    }
    .final-brand::before,.final-brand::after{
      content:"";
      height:1px;
      background:rgba(184,141,68,.68);
    }
    .final-brand strong{font:inherit;letter-spacing:inherit;margin:0}
    .final h2{
      font-family:var(--display);
      font-weight:500;
      text-wrap:balance;
    }
    .final h2 em{font-weight:500;color:#a95f2d}
    .final-rule{display:none}
    .final .lead{display:none}
    .final-cta{
      border-radius:2px;
      background:var(--olive-dark);
      color:var(--cream);
      border:1px solid var(--olive-dark);
      box-shadow:0 12px 24px rgba(35,49,39,.10);
      font-size:.74rem;
      font-weight:650;
      letter-spacing:.12em;
      text-transform:uppercase;
    }
    .final-cta i{color:#d2ad5c;font-size:.95rem}
    .final-cta:hover{background:var(--olive-deep);transform:translateY(-2px)}
    .final-location{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      width:max-content;
      max-width:100%;
      font-weight:650;
      letter-spacing:.17em;
      text-transform:uppercase;
    }
    .final-location::before,.final-location::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--brass);flex:0 0 auto}
    @media(max-width:680px){
      .final-lake{opacity:.58}
      .final .lead{font-size:1rem}
      .final-location{white-space:normal;line-height:1.5}
    }

    /* FOOTER — editorial closing credits */
    footer{position:relative;overflow:hidden;background:var(--olive-deep);color:var(--cream);padding:clamp(96px,10vw,138px) 0 34px;border-top:1px solid rgba(184,141,68,.3)}
    footer::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.045;background:url("assets/paper-texture-cream.webp") center/460px auto repeat;mix-blend-mode:screen}
    .footer-main,.footer-record{position:relative;z-index:1}
    .footer-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(430px,.85fr);gap:clamp(58px,8vw,118px);align-items:start}
    .footer-brand-large{max-width:790px}
    .footer-title{font-family:var(--display);font-size:clamp(4.7rem,8.4vw,8.9rem);font-weight:400;line-height:.78;letter-spacing:-.045em;text-transform:uppercase;margin:0;color:var(--cream)}
    .footer-title span{display:block}
    .footer-title .footer-of{font-size:.62em;line-height:.9;margin:.04em 0 -.02em}
    .footer-brand-rule{display:flex;align-items:center;gap:12px;width:110px;margin:30px 0 24px;color:var(--brass)}
    .footer-brand-rule::before,.footer-brand-rule::after{content:"";height:1px;flex:1;background:rgba(184,141,68,.65)}
    .footer-brand-rule i{font-size:.42rem}
    .footer-brand-large p{max-width:610px;margin:0;color:rgba(247,243,233,.72);font-size:clamp(.96rem,1.25vw,1.12rem)}
    .footer-navs{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:clamp(34px,5vw,64px);padding-top:18px}
    .footer-col h4{font-family:var(--display);font-size:clamp(1.35rem,2vw,1.75rem);font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--cream);margin:0 0 18px;padding-bottom:13px;position:relative}
    .footer-col h4::after{content:"";position:absolute;left:0;bottom:0;width:78px;height:1px;background:rgba(184,141,68,.58)}
    .footer-col a,.footer-col button{display:block;background:none;border:0;padding:6px 0;color:rgba(247,243,233,.76);font-size:.9rem;cursor:pointer;transition:color var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}
    .footer-col a:hover,.footer-col button:hover{color:var(--cream);transform:translateX(4px)}
    .footer-new{display:inline-block;margin-left:6px;color:var(--brass);font-size:.58rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;vertical-align:middle}
    .footer-record{margin-top:clamp(70px,8vw,104px);padding-top:27px;border-top:1px solid rgba(247,243,233,.17);display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end}
    .footer-meta{display:flex;align-items:center;flex-wrap:wrap;gap:11px 18px;color:rgba(247,243,233,.55);font-size:.64rem;font-weight:500;text-transform:uppercase;letter-spacing:.16em}
    .footer-meta span+span::before{content:"•";margin-right:18px;color:var(--brass)}
    .footer-signoff{font-family:var(--script);font-size:clamp(2rem,3vw,3rem);line-height:1;color:rgba(210,173,92,.82);transform:rotate(-2deg);white-space:nowrap;padding-right:8px}


    /* REVEAL */
    [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity var(--motion-slow) var(--ease-out),transform var(--motion-slow) var(--ease-out)}
    [data-reveal].seen{opacity:1;transform:none}

    @media(max-width:980px){
      .nav{grid-template-columns:1fr auto}.nav-links,.nav-cta{display:none}.menu-button{display:block}
      .hero-inner{grid-template-columns:.7fr 1.3fr}.hero-content{padding-left:24px}.hero h1{font-size:clamp(4.4rem,9vw,6.8rem)}
      .mobile-menu{display:block;position:absolute;top:72px;left:var(--pad);right:var(--pad);background:var(--cream);color:var(--ink);border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:0 20px 50px rgba(0,0,0,.12);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.985);transform-origin:top center;transition:opacity .22s var(--ease-out),transform .30s var(--ease-out),visibility 0s linear .30s}
      .mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}.mobile-menu a,.mobile-menu button{display:flex;width:100%;justify-content:space-between;padding:13px 10px;background:none;border:0;text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
      .float-note{grid-template-columns:74px minmax(145px,210px);font-size:.78rem}.float-note img{height:74px}.position-stage{min-height:660px}.float-note.n3{left:-6%}.float-note.n4{right:-6%}
      .about-grid{grid-template-columns:1fr}.paper-proof-collage{margin-inline:auto}
      .day-story{display:block}.day-visual{display:block;position:relative;top:auto;height:clamp(380px,56vw,520px);min-height:0;margin-bottom:46px}.day-visual .day-overlay{display:none}.timeline-list{max-width:650px;margin-inline:auto}.day-step{min-height:230px}
      .bath-card,.faq-wrap{grid-template-columns:1fr}.bath-benefits{max-width:680px}.faq-copy{position:relative;top:auto}
      .footer-main{grid-template-columns:1.35fr .9fr;gap:56px}.footer-title{font-size:clamp(4.7rem,9vw,7.2rem)}
    }
    @media(max-width:680px){
      .nav{height:72px}.wordmark strong{font-size:1.18rem}.site-header:not(.scrolled){color:var(--cream)}.hero-media{inset:-5% -22% -8% -8%}.hero-media img{object-position:46% center}.hero-shade{background:linear-gradient(180deg,rgba(17,27,20,.25),rgba(17,27,20,.18) 34%,rgba(17,27,20,.68) 100%)}.hero-inner{min-height:780px;display:flex;align-items:flex-end}.hero-content{padding:0}.hero-copy{max-width:500px}.hero-scroll-note{display:none}.hero-rip{height:72px}
      .positioning{padding:90px 0}.position-stage{min-height:auto;padding-bottom:0}.position-copy{padding:0 6px;margin-bottom:40px}.position-copy h2{font-size:clamp(2.8rem,14vw,4.4rem)}
      .float-note{position:relative;inset:auto!important;transform:none!important;margin:10px 0;grid-template-columns:82px 1fr;width:100%}.float-note img{height:78px}.position-stage{display:flex;flex-direction:column}.position-copy{order:-1}.about-signoff{margin-top:10px}.paper-proof-collage{gap:2px}.paper-proof{filter:drop-shadow(0 9px 10px rgba(42,43,38,.10))}
      .stay-grid{grid-template-columns:1fr;max-width:650px}
      .timeline-list{max-width:100%}.day-caption{left:18px;top:18px;padding:8px 12px 7px;font-size:.52rem;gap:8px}.day-step{min-height:auto}.day-step.active{transform:none}
      .stay-top{padding:26px 22px 18px}.stay-perk{border-right:0;border-bottom:1px solid rgba(52,64,51,.12)}.stay-perk:nth-child(odd){border-right:1px solid rgba(52,64,51,.12)}.stay-perk:nth-last-child(-n+2){border-bottom:0}.boarding .stay-perk{border-color:rgba(247,243,233,.14)}
      .bath-card{border-radius:8px}.bath-copy{padding:42px 26px 34px}.bath-copy h2{font-size:clamp(2.8rem,13vw,4rem)}.bath-benefits{gap:0;margin-top:28px}.bath-benefits::before,.bath-benefits::after{inset:8px}.bath-benefit + .bath-benefit::after{width:7px;height:7px}.bath-benefit span{max-width:100%}.bath-seal{width:108px}.bath-seal strong{font-size:1.25rem}
      .reviews-head{display:block}.reviews-head .text-link{margin-top:18px}
      .review-card{column-gap:18px}.faq-a p{padding-right:0}.footer-main{grid-template-columns:1fr}.footer-navs{grid-template-columns:1fr 1fr}.footer-record{grid-template-columns:1fr;gap:24px}.footer-signoff{justify-self:start;font-size:2.35rem}.footer-meta{gap:8px 12px}.footer-meta span{display:block;width:100%}.footer-meta span+span::before{content:"";margin:0}
    }
    @media(max-width:680px){
      .opening-scene{height:auto;background:var(--cream)}
      .hero-scroll-cue{bottom:22px}
      .paper-sheet{position:relative;left:auto;top:auto;width:100%;height:auto;min-height:0;transform:none;background:var(--cream);z-index:8}
      .paper-rip-edge{top:-82px;height:96px;left:-3%;right:-3%}
      .paper-rip-edge::after{height:52px}
      .paper-sheet .positioning{height:auto;min-height:0;padding:100px 0 90px;overflow:hidden}
      .paper-sheet .position-stage{height:auto;min-height:auto;padding:0}
    }
    .opening-scene{height:auto}
    .hero-runway{position:relative;height:180svh;background:var(--cream)}

    .paper-curtain{position:absolute;z-index:8;inset:0;background-color:var(--cream);background-image:url("assets/paper-texture.webp");background-repeat:repeat;background-size:760px 110px;transform:translateY(118%);will-change:transform;overflow:visible;pointer-events:none}
    .paper-curtain .paper-rip-edge{top:-164px}
    .mobile-paper-rip{display:none}

    /* Quote is normal document flow. Give it generous intrinsic height instead of forcing it into 100vh. */
    .opening-scene>.positioning .position-copy{will-change:transform,opacity}
    .opening-scene>.positioning .float-note{will-change:transform,opacity}

    @media(max-width:680px){
      .hero-runway{height:auto;background:var(--olive-deep)}
      .opening-sticky{background:var(--olive-deep)}
      .opening-sticky .hero{overflow:hidden}
      .paper-curtain{display:none}
      .mobile-paper-rip{display:block;position:relative;z-index:10;height:96px;margin-top:-72px;overflow:hidden;background-color:var(--cream);background-image:url("assets/paper-texture.webp");background-repeat:repeat;background-size:760px 110px;pointer-events:none}
      .mobile-paper-rip img{position:absolute;left:-4%;top:0;width:108%;height:96px;object-fit:fill;display:block}
    }
    .opening-scene{position:relative;background:transparent;isolation:isolate}
    .hero-runway{display:contents}
    .opening-sticky{position:sticky;top:0;height:100svh;overflow:hidden;z-index:0;isolation:isolate;background:var(--olive-deep)}
    .opening-sticky .hero{position:absolute;inset:0;width:100%;height:100%;min-height:100%;overflow:hidden;z-index:1}
    .opening-sticky .hero-inner{height:100%;min-height:100%}
    .opening-sticky .hero-media{inset:-15% -3% -18%}
    .opening-sticky .hero-media img{transform:scale(1.08);will-change:transform}
    .hero-hold{height:52svh;position:relative;z-index:1;pointer-events:none}

    /* Kill the old counterfeit curtain/mobile rip in every layout. */
    .paper-curtain,.mobile-paper-rip{display:none!important}

    /* This is the actual sheet of paper. It scrolls in normal flow over the sticky hero. */
    .opening-scene>.positioning{
      position:relative;z-index:5;
      margin-top:0;
      background-color:var(--cream);
      /* The page now uses a cream-matched paper texture, so the torn asset can
         physically resolve into the same surface instead of fading transparent. */
      background-image:url("assets/paper-texture-cream.webp");
      background-repeat:repeat;
      background-size:760px 110px;
      background-position:top left;
      overflow:visible;
      box-shadow:0 -10px 30px rgba(23,33,25,.04);
    }
    .position-paper-rip{
      position:absolute;z-index:0;left:-1.5%;right:-1.5%;top:-148px;height:152px;
      pointer-events:none;overflow:hidden;
    }
    .position-paper-rip img{
      position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;
    }
    .opening-scene>.positioning>.shell{position:relative;z-index:2}
    .opening-scene>.positioning .position-stage{padding:0}

    @media(max-width:680px){
      .opening-sticky{position:relative;top:auto}
      .opening-sticky .hero{position:absolute;inset:0;height:100%;min-height:100%}
      .opening-sticky .hero-inner{height:100%;min-height:100%}
      .opening-sticky .hero-media{inset:-5% -24% -8% -8%}
      .hero-hold{display:none}
      .position-paper-rip{top:-76px;height:80px;left:-4%;right:-4%}
      .opening-scene>.positioning{overflow:visible;
        background-image:url("assets/paper-texture-cream.webp");
        background-size:760px 110px;
        background-repeat:repeat;
      }
      .opening-scene>.positioning .position-stage{padding:0}
      .opening-scene>.positioning .float-note{grid-template-columns:82px 1fr}
    }
    .orbit-field{transform-origin:50% 50%}
    .orbit-field .float-note{pointer-events:auto;z-index:2}
    .orbit-field .float-note.n1{top:3%;left:9%}
    .orbit-field .float-note.n2{top:2%;right:8%}
    .orbit-field .float-note.n3{left:-7%;top:43%}
    .orbit-field .float-note.n4{right:-7%;top:43%}
    .orbit-field .float-note.n5{left:8%;bottom:2%}
    .orbit-field .float-note.n6{right:9%;bottom:3%}

    @media(min-width:681px) and (max-width:1080px){
      .orbit-field .float-note{border-radius:14px}
      .orbit-field .float-note.n1{left:10%}.orbit-field .float-note.n2{right:10%}
      .orbit-field .float-note.n3{left:-1%}.orbit-field .float-note.n4{right:-1%}
      .orbit-field .float-note.n5{left:9%}.orbit-field .float-note.n6{right:9%}
    }

    @media(max-width:680px){
      .orbit-anchor,.orbit-field{display:contents;transform:none!important}
      .opening-scene>.positioning .float-note{position:relative!important;inset:auto!important;transform:none!important;margin:10px 0;width:100%}
    }
    .opening-scene>.positioning{
      min-height:100svh;
      padding:clamp(34px,5vh,58px) 0 clamp(34px,5vh,58px);
      display:flex;
      align-items:center;
    }
    .opening-scene>.positioning .position-stage{
      width:100%;
      height:min(760px,calc(100svh - 86px));
      min-height:520px;
      max-height:760px;
      position:relative;
      display:grid;
      place-items:center;
    }
    .opening-scene>.positioning .position-copy{
      z-index:4;
      max-width:min(900px,70vw);
      padding:0 18px;
    }
    .opening-scene>.positioning .position-copy .eyebrow{margin-bottom:14px}
    .opening-scene>.positioning .position-copy h2{
      font-size:clamp(3rem,min(5.1vw,9.7svh),5.2rem);
      line-height:.95;
      letter-spacing:-.052em;
      text-wrap:balance;
    }
    .orbit-anchor{
      position:absolute;z-index:7;left:50%;top:50%;
      width:min(1240px,93vw);
      height:min(690px,80svh);
      aspect-ratio:auto;
      transform:translate(-50%,-50%);
      pointer-events:none;
    }
    .orbit-field{position:relative;width:100%;height:100%;transform:none!important;will-change:auto}
    .orbit-field .float-note{
      left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;
      grid-template-columns:72px minmax(145px,195px);
      font-size:.76rem;
      border-radius:15px;
      box-shadow:0 13px 32px rgba(51,52,45,.075);
    }
    .orbit-field .float-note img{height:68px}
    .orbit-field .float-note span{padding:11px 13px}

    @media(min-width:681px) and (max-width:1080px){
      .opening-scene>.positioning{padding:30px 0}
      .opening-scene>.positioning .position-stage{height:calc(100svh - 70px);min-height:500px}
      .opening-scene>.positioning .position-copy{max-width:min(760px,76vw)}
      .opening-scene>.positioning .position-copy h2{font-size:clamp(2.9rem,min(6.3vw,10svh),4.6rem)}
      .orbit-anchor{width:94vw;height:min(570px,72svh)}
      .orbit-field .float-note{grid-template-columns:62px minmax(125px,165px);font-size:.68rem}
      .orbit-field .float-note img{height:58px}
      .orbit-field .float-note span{padding:9px 10px}
    }

    @media(min-width:681px) and (max-height:620px){
      .opening-scene>.positioning{padding:18px 0}
      .opening-scene>.positioning .position-stage{height:calc(100svh - 40px);min-height:420px}
      .opening-scene>.positioning .position-copy{max-width:min(820px,70vw)}
      .opening-scene>.positioning .position-copy .eyebrow{margin-bottom:7px;font-size:.55rem}
      .opening-scene>.positioning .position-copy h2{font-size:clamp(2.3rem,min(5vw,8.8svh),3.7rem);line-height:.9}
      .orbit-anchor{height:min(470px,78svh);width:min(960px,90vw)}
      .orbit-field .float-note{grid-template-columns:52px minmax(115px,150px);font-size:.61rem;border-radius:12px}
      .orbit-field .float-note img{height:50px}
      .orbit-field .float-note span{padding:7px 9px}
    }

    @media(max-width:680px){
      .opening-scene>.positioning{
        min-height:0;
        display:block;
      }
      .opening-scene>.positioning .position-stage{
        display:flex;
        flex-direction:column;
        justify-content:flex-start;
        height:auto;
        min-height:0;
        max-height:none;
      }
      .opening-scene>.positioning .position-copy{
        order:-1;
        width:100%;
        max-width:none;
        padding:0;
        margin:0 0 24px;
      }
      .opening-scene>.positioning .position-copy .eyebrow{margin-bottom:12px}
      .opening-scene>.positioning .position-copy h2{
        letter-spacing:-.055em;
      }
      .orbit-anchor{
        display:block;
        position:relative;
        inset:auto;
        transform:none;
        width:100%;
        height:auto;
        pointer-events:auto;
      }
      .orbit-field{
        display:grid;
        grid-template-columns:1fr;
        gap:10px;
        width:100%;
        height:auto;
      }
      .opening-scene>.positioning .orbit-field .float-note{
        position:relative!important;
        inset:auto!important;
        transform:none!important;
        min-width:0;
        margin:0;
        border:1px solid rgba(95,107,76,.08);
        border-radius:14px;
        box-shadow:none!important;
        font-size:.68rem;
        line-height:1.18;
        overflow:hidden;
      }
    }

    @media(max-width:430px){
      .opening-scene>.positioning{padding:44px 0 54px}
      .opening-scene>.positioning .position-stage{height:auto;min-height:0}
      .opening-scene>.positioning .position-copy{margin-bottom:22px}
      .orbit-field{grid-template-columns:1fr;gap:8px}
      .opening-scene>.positioning .orbit-field .float-note{min-height:58px;font-size:.66rem;border-radius:12px}
      .opening-scene>.positioning .orbit-field .float-note img{height:58px}
      .opening-scene>.positioning .orbit-field .float-note span{padding:8px 10px}
    }

    @media(prefers-reduced-motion:reduce){
      html{scroll-behavior:auto}
      *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
      .review-track{animation:none!important;transform:none!important}
      [data-reveal]{opacity:1!important;transform:none!important}
      .hero-media img,.hero-content,.hero-scroll-cue,.final-lake,.float-note{transform:none!important}
      .day-photo{transition:none!important}
      .mobile-menu{transition:none!important}
      .hero-runway{height:auto}
      .opening-sticky{position:relative;height:auto;overflow:hidden}
      .opening-sticky .hero{position:relative;min-height:100svh;height:100svh}
      .paper-curtain{display:none}
      .mobile-paper-rip{display:block;position:relative;height:96px;margin-top:-72px;overflow:hidden;background-color:var(--cream);background-image:url("assets/paper-texture.webp");background-repeat:repeat;background-size:760px 110px}
      .mobile-paper-rip img{position:absolute;left:-4%;top:0;width:108%;height:96px;object-fit:fill}
    }
    :root{
      --page:1200px;
      --section:clamp(88px,7.5vw,118px);
      --section-tight:clamp(66px,5.8vw,90px);
      --paper-texture:url("assets/paper-texture-cream.webp");
      --paper-rule:rgba(38,40,36,.105);
    }

    /* Shared paper surface: after the hero, cream means the same cream everywhere. */
    .opening-scene>.positioning,
    .about,
    .paper-chapter{
      background-color:var(--cream);
      background-image:var(--paper-texture);
      background-repeat:repeat;
      background-size:420px auto;
    }

    /* Let the paper texture be the background; individual sections no longer invent new canvases. */
    .paper-chapter{position:relative;isolation:isolate;overflow:hidden}
    .paper-chapter>.bath,
    .paper-chapter>.reviews,
    .paper-chapter>.faq,
    .paper-chapter>.options,
    .paper-chapter>.final{background:transparent}

    /* Quiet rules replace the old white/cream/beige section changes. */
    .paper-chapter>.reviews,
    .paper-chapter>.faq,
    .paper-chapter>.options,
    .paper-chapter>.final{border-top:1px solid var(--paper-rule)}
    .paper-chapter>.final{border-bottom:0}

    /* One spacing rhythm across ordinary editorial sections. */
    .section{padding:var(--section) 0}
    .paper-chapter>.reviews{padding-top:var(--section-tight);padding-bottom:var(--section-tight)}
    .paper-chapter>.faq{padding-top:var(--section-tight);padding-bottom:var(--section-tight)}
    .paper-chapter>.options{padding-top:var(--section);padding-bottom:var(--section)}

    /* About now reads as the second spread on the same sheet instead of a white module. */
    .about{padding:0;border-top:1px solid rgba(38,40,36,.045)}
    .about-grid{width:min(1440px,100%);margin-inline:auto;grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);min-height:700px}
    .about-copy{padding:clamp(64px,6vw,86px) clamp(44px,5.4vw,78px)}

    /* Keep the dark Day chapter decisive and aligned to the same master grid. */
    .day{padding:var(--section) 0}
    .day-head{margin-bottom:clamp(48px,5vw,64px)}

    /* Grooming sits inside the document instead of feeling like a separate white page. */

    /* Reviews and FAQ share the same horizontal landmarks. */
    .reviews-head{margin-bottom:clamp(34px,4vw,44px)}
    .faq-wrap{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(48px,6vw,78px)}

    /* Decision cards remain intentionally bounded, but sit on the same page grid. */
    .options-head{margin-bottom:clamp(44px,5vw,58px)}
    .stay-grid{max-width:1080px;gap:clamp(24px,2.4vw,30px)}

    /* The closing CTA is still relief, just no longer its own differently textured page. */
    .final-brand{margin-bottom:clamp(44px,5vw,64px)}
    .final-location{margin-top:clamp(52px,5vw,68px)}

    @media(max-width:980px){
      .about-grid{min-height:0}
      .about-copy{padding:clamp(54px,7vw,76px) var(--pad)}
      .paper-chapter>.reviews,.paper-chapter>.faq{padding-top:72px;padding-bottom:72px}
    }
    @media(max-width:680px){
      :root{--section:72px;--section-tight:60px}
      .about{background-size:360px auto}
      .about-photo{min-height:430px}
      .paper-chapter{background-size:360px auto}
      .paper-chapter>.reviews,.paper-chapter>.faq{padding-top:60px;padding-bottom:60px}
      .paper-chapter>.options{padding-top:72px;padding-bottom:72px}
      .final{padding-bottom:74px}
    }

    /* Grooming: treat this like a magazine spread, not a card inside a section. */
    .bath-card{
      background:transparent;
      border:0;
      border-radius:0;
      box-shadow:none;
      overflow:visible;
      grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
      gap:clamp(38px,5vw,74px);
      min-height:0;
      align-items:center;
    }
    .bath-copy{padding:clamp(18px,2.5vw,34px) 0}
    .bath-image{
      border-radius:2px;
      box-shadow:none;
    }
    .bath-card:hover .bath-image img{transform:scale(1.018)}
    .bath-benefits{margin-top:32px;border-top:1px solid rgba(197,172,123,.42)}
    .bath-partner{margin-bottom:0}
    .bath-seal{box-shadow:0 8px 18px rgba(24,33,26,.14)}

    /* Reviews: moving editorial excerpts rather than floating UI cards. */
    .review-card{
      border-top:1px solid rgba(38,40,36,.16);
      border-bottom:1px solid rgba(38,40,36,.16);
    }
    .review-card::after{left:0;right:0;bottom:56px;background:rgba(184,141,68,.28)}
    .review-copy{padding-left:30px}
    .review-person{padding-left:0}
    @media(hover:hover) and (pointer:fine){
    }

    /* FAQ: an indexed editorial list, still the same accordion interaction. */
    .accordion{counter-reset:faq;border-top:1px solid rgba(38,40,36,.16)}
    .faq-item{counter-increment:faq;border-bottom:1px solid rgba(38,40,36,.16)}
    .faq-q{
      display:grid;
      grid-template-columns:42px minmax(0,1fr) 28px;
      align-items:center;
      gap:18px;
      padding:26px 0;
    }
    .faq-q::before{
      content:counter(faq, decimal-leading-zero);
      font-size:.62rem;
      letter-spacing:.13em;
      color:var(--olive);
      font-weight:600;
    }
    .faq-q span:first-child{font-size:clamp(1.4rem,2vw,1.72rem);line-height:1.12}
    .plus{justify-self:end;color:var(--olive);font-weight:400}
    .faq-a p{padding:0 52px 26px 60px;max-width:740px}
    .faq-item.open .faq-q span:first-child{color:var(--olive-deep)}

    @media(max-width:980px){
      .bath-card{grid-template-columns:1fr;gap:34px}
      .bath-copy{order:1;padding:0}
      .bath-image{order:2}
    }
    @media(max-width:680px){
      .bath-image{min-height:340px}
      .review-card{border-radius:0;box-shadow:none}
      .review-card::after{left:0;right:0;bottom:50px}
      .faq-q{padding:22px 0}
      .faq-q::before{font-size:.56rem}
      .faq-a p{padding:0 10px 22px 46px}
    }
    .opening-scene>.positioning .orbit-field .float-note{
      --paper:url("assets/orbit-paper-1.webp");
      width:clamp(235px,20vw,310px);
      min-height:104px;
      align-items:center;
      gap:4px;
      padding:13px 20px 13px 14px;
      background:transparent var(--paper) center / 100% 100% no-repeat!important;
      background-color:transparent!important;
      border:0!important;
      border-radius:0!important;
      box-shadow:none!important;
      filter:drop-shadow(0 8px 10px rgba(54,49,39,.10));
      overflow:visible;
      color:#292a25;
    }
    .opening-scene>.positioning .orbit-field .float-note.n1{--paper:url("assets/orbit-paper-1.webp")}
    .opening-scene>.positioning .orbit-field .float-note.n2{--paper:url("assets/orbit-paper-2.webp")}
    .opening-scene>.positioning .orbit-field .float-note.n3{--paper:url("assets/orbit-paper-3.webp")}
    .opening-scene>.positioning .orbit-field .float-note.n4{--paper:url("assets/orbit-paper-4.webp")}
    .opening-scene>.positioning .orbit-field .float-note.n5{--paper:url("assets/orbit-paper-5.webp")}
    .opening-scene>.positioning .orbit-field .float-note.n6{--paper:url("assets/orbit-paper-6.webp")}
    .opening-scene>.positioning .orbit-field .float-note img{
      width:62px!important;
      height:68px!important;
      object-fit:cover;
      position:relative;
      z-index:2;
      align-self:center;
      border:4px solid rgba(255,253,247,.94);
      border-radius:0;
      box-shadow:0 5px 11px rgba(50,45,36,.16);
    }
    .opening-scene>.positioning .orbit-field .float-note:nth-child(odd) img{transform:rotate(-2.2deg)}
    .opening-scene>.positioning .orbit-field .float-note:nth-child(even) img{transform:rotate(1.8deg)}
    .opening-scene>.positioning .orbit-field .float-note span{
      position:relative;
      z-index:2;
      padding:8px 8px 8px 10px!important;
      font-family:var(--body);
      font-size:.76rem;
      font-weight:500;
      line-height:1.28;
      background:none!important;
    }
    @media(hover:hover){
      .opening-scene>.positioning .orbit-field .float-note:hover{
        filter:drop-shadow(0 12px 14px rgba(54,49,39,.14));
      }
    }
    @media(min-width:681px) and (max-width:1080px){
      .opening-scene>.positioning .orbit-field .float-note{
        width:clamp(205px,26vw,255px);
        min-height:90px;
        padding:10px 15px 10px 11px;
      }
      .opening-scene>.positioning .orbit-field .float-note img{width:50px!important;height:56px!important}
      .opening-scene>.positioning .orbit-field .float-note span{font-size:.67rem;padding:6px 6px 6px 8px!important}
    }
    @media(min-width:681px) and (max-height:620px){
      .opening-scene>.positioning .orbit-field .float-note{
        width:clamp(185px,22vw,225px);
        min-height:76px;
        padding:8px 12px 8px 9px;
      }
      .opening-scene>.positioning .orbit-field .float-note img{width:42px!important;height:47px!important}
      .opening-scene>.positioning .orbit-field .float-note span{font-size:.59rem;padding:4px 5px 4px 7px!important}
    }
    @media(max-width:680px){
      .opening-scene>.positioning .orbit-field .float-note{
        width:100%!important;
        background:transparent var(--paper) center / 100% 100% no-repeat!important;
        background-color:transparent!important;
        filter:drop-shadow(0 5px 6px rgba(54,49,39,.07));
      }
      .opening-scene>.positioning .orbit-field .float-note img{width:54px!important;height:60px!important}
      .opening-scene>.positioning .orbit-field .float-note span{font-size:.68rem!important;padding:7px 8px!important}
    }
    .photo-print{
      --print-tilt:-.75deg;
      position:relative;
      display:block;
      margin:0;
      padding:11px 11px 40px;
      background-color:#f6f0e4;
      background-image:
        linear-gradient(rgba(255,253,248,.42),rgba(255,253,248,.42)),
        var(--paper-texture);
      background-size:auto,560px auto;
      box-shadow:
        0 2px 2px rgba(45,39,30,.065),
        0 13px 27px rgba(45,39,30,.105);
      transform:rotate(var(--print-tilt));
      transform-origin:50% 50%;
      isolation:isolate;
    }
    .photo-print>img{
      display:block;
      position:relative!important;
      inset:auto!important;
      width:100%;
      height:auto;
      object-fit:cover;
      z-index:1;
    }
    .photo-print::after{
      content:"";
      position:absolute;
      inset:0;
      z-index:2;
      pointer-events:none;
      box-shadow:inset 0 0 0 1px rgba(95,82,61,.055);
    }

    /* About: one large physical print, floating on the same paper chapter. */
    .about-photo{
      min-height:700px;
      display:grid;
      place-items:center;
      padding:clamp(42px,5vw,74px);
      background:transparent!important;
      overflow:visible;
    }
    .about-photo::after{display:none}
    .photo-print--about{
      --print-tilt:-.82deg;
      padding:13px 13px 46px;
    }
    .photo-print--about>img{
      min-height:0;
    }

    /* Grooming: a landscape print instead of another clean web-photo rectangle. */
    .bath-image{
      min-height:540px;
      display:grid;
      place-items:center;
      padding:clamp(18px,2vw,30px);
      background:transparent!important;
      border:0!important;
      overflow:visible;
    }
    .bath-image::after{display:none}
    .photo-print--groom{
      --print-tilt:.62deg;
      width:min(100%,720px);
      padding:10px 10px 45px;
      box-shadow:
        0 2px 2px rgba(45,39,30,.06),
        0 12px 25px rgba(45,39,30,.095);
    }
    .photo-print--groom>img{
      aspect-ratio:4/3;
      object-position:center 50%;
      transition:transform .95s var(--ease-out);
    }
    .bath-card:hover .photo-print--groom>img{transform:scale(1.018)}
    .bath-seal{right:10px;top:4px}

    /* Orbit-note dog photos become tiny instant prints pinned TO the loose scrap. */
    .opening-scene>.positioning .orbit-field .float-note{
      grid-template-columns:76px minmax(0,1fr);
    }
    .mini-print{
      --mini-tilt:-1.55deg;
      position:relative;
      z-index:3;
      width:66px;
      margin:0;
      padding:4px 4px 13px;
      background:#f7f1e5;
      background-image:linear-gradient(rgba(255,255,255,.30),rgba(255,255,255,.30)),var(--paper-texture);
      background-size:auto,320px auto;
      box-shadow:0 4px 8px rgba(46,39,29,.135);
      transform:rotate(var(--mini-tilt));
    }
    .float-note:nth-child(even) .mini-print{--mini-tilt:1.35deg}
    .float-note:nth-child(3n) .mini-print{--mini-tilt:-.65deg}
    .mini-print::after{
      content:"";
      position:absolute;
      z-index:4;
      width:7px;
      height:7px;
      left:50%;
      top:-2px;
      transform:translateX(-50%);
      border-radius:50%;
      background:radial-gradient(circle at 34% 30%,#e5c878 0 16%,#b88d44 38%,#7d5924 100%);
      box-shadow:0 1px 3px rgba(39,30,18,.34);
    }
    .opening-scene>.positioning .orbit-field .float-note .mini-print>img{
      display:block;
      width:58px!important;
      height:58px!important;
      object-fit:cover;
      border:0!important;
      box-shadow:none!important;
      transform:none!important;
    }
    .opening-scene>.positioning .orbit-field .float-note>span{
      padding:8px 8px 8px 10px!important;
    }

    @media(min-width:681px) and (max-width:1080px){
      .about-photo{padding:44px}
      .photo-print--about{width:min(100%,560px);padding:10px 10px 38px}
      .opening-scene>.positioning .orbit-field .float-note{grid-template-columns:62px minmax(0,1fr)}
      .mini-print{width:56px;padding:4px 4px 11px}
      .opening-scene>.positioning .orbit-field .float-note .mini-print>img{width:48px!important;height:48px!important}
      .photo-print--groom{padding:9px 9px 38px}
    }
    @media(min-width:681px) and (max-height:620px){
      .opening-scene>.positioning .orbit-field .float-note{grid-template-columns:52px minmax(0,1fr)}
      .mini-print{width:47px;padding:3px 3px 8px}
      .opening-scene>.positioning .orbit-field .float-note .mini-print>img{width:41px!important;height:41px!important}
      .mini-print::after{width:6px;height:6px;top:-2px}
    }
    @media(max-width:980px){
      .about-photo{min-height:0;padding:52px var(--pad) 22px}
      .photo-print--about{width:min(86vw,580px)}
      .bath-image{min-height:0;padding:10px 5vw 30px}
      .photo-print--groom{width:min(86vw,660px)}
      .bath-seal{right:4vw;top:-4px}
    }
    @media(max-width:680px){
      .photo-print{box-shadow:0 2px 2px rgba(45,39,30,.05),0 8px 18px rgba(45,39,30,.085)}
      .photo-print--about{--print-tilt:-.35deg;padding:9px 9px 30px}
      .photo-print--groom{--print-tilt:.3deg;padding:8px 8px 30px;width:min(88vw,520px)}
      .opening-scene>.positioning .orbit-field .float-note{grid-template-columns:64px minmax(0,1fr)!important}
      .mini-print{width:58px;padding:4px 4px 10px;transform:rotate(0deg)}
      .opening-scene>.positioning .orbit-field .float-note .mini-print>img{width:50px!important;height:50px!important}
      .mini-print::after{width:7px;height:7px}
      .bath-seal{right:2vw;top:-2px}
    }

    /* User-created transparent 14-night stamp, treated like ink on the print. */
    .grooming-stamp{
      position:absolute;
      z-index:5;
      right:clamp(-8px,-.6vw,4px);
      top:clamp(12px,1vw,24px);
      width:clamp(128px,11vw,168px);
      height:auto;
      object-fit:contain;
      transform:rotate(10deg);
      transform-origin:50% 50%;
      filter:drop-shadow(0 8px 10px rgba(32,39,32,.12));
      pointer-events:none;
    }
    .bath-seal{display:none!important}

    /* Reviews: oversized editorial quote excerpts with small taped photo prints. */
    .review-marquee{padding:8px 0 24px}
    .review-track{gap:0;animation-duration:62s;padding:8px 0 20px;will-change:transform}
    @keyframes reviews{to{transform:translateX(-50%)}}
    .review-card{
      width:clamp(530px,38vw,650px);
      min-height:430px;
      padding:28px 44px 30px;
      display:grid;
      grid-template-columns:150px minmax(0,1fr);
      grid-template-rows:auto minmax(0,1fr) auto;
      grid-template-areas:
        "stars stars"
        "quote quote"
        "portrait person";
      column-gap:28px;
      row-gap:18px;
      background:transparent;
      border:0;
      border-right:1px solid rgba(38,40,36,.13);
      border-radius:0;
      box-shadow:none;
      overflow:visible;
      align-content:stretch;
    }
    .review-card:first-child{border-left:1px solid rgba(38,40,36,.13)}
    .review-card::after{display:none}
    .review-stars{
      grid-area:stars;
      margin:0 0 8px;
      font-size:.82rem;
      letter-spacing:.16em;
      color:#a8792f;
    }
    .review-copy{
      grid-area:quote;
      position:relative;
      padding:0 0 0 38px;
      align-self:center;
      max-width:560px;
    }
    .review-copy::before{
      content:"“";
      position:absolute;
      left:0;
      top:-15px;
      font-family:var(--display);
      font-size:4rem;
      line-height:1;
      color:var(--olive-dark);
      font-weight:500;
    }
    .review-card blockquote{
      margin:0;
      font-family:var(--display);
      font-size:clamp(2rem,2.65vw,3.15rem);
      line-height:1.05;
      letter-spacing:-.035em;
      color:var(--olive-deep);
      font-weight:500;
      text-wrap:balance;
    }
    .review-portrait{
      grid-area:portrait;
      position:relative;
      width:132px;
      height:154px;
      align-self:end;
      justify-self:start;
      overflow:visible;
      border:0;
      border-radius:0;
      padding:7px 7px 23px;
      background:#f7f1e5;
      background-image:linear-gradient(rgba(255,255,255,.30),rgba(255,255,255,.30)),var(--paper-texture);
      background-size:auto,320px auto;
      box-shadow:0 3px 4px rgba(45,39,30,.06),0 10px 20px rgba(45,39,30,.10);
      transform:rotate(-1.15deg);
    }
    .review-card:nth-child(even) .review-portrait{transform:rotate(.95deg)}
    .review-card:nth-child(3n) .review-portrait{transform:rotate(-.45deg)}
    .review-portrait::before{
      content:"";
      position:absolute;
      z-index:3;
      left:50%;
      top:-9px;
      width:58px;
      height:17px;
      transform:translateX(-50%) rotate(-1.5deg);
      background:rgba(218,200,165,.64);
      box-shadow:inset 0 0 0 1px rgba(128,105,73,.07);
      opacity:.92;
    }
    .review-portrait img{
      display:block;
      width:118px;
      height:118px;
      object-fit:cover;
      border-radius:0;
    }
    .review-person{
      grid-area:person;
      align-self:end;
      padding:0 0 8px;
      min-width:0;
    }
    .review-person::before{
      content:"";
      display:block;
      width:28px;
      height:1px;
      margin:0 0 13px;
      background:var(--brass);
    }
    .review-person strong{
      display:block;
      font-size:.72rem;
      text-transform:uppercase;
      letter-spacing:.15em;
      font-weight:650;
      color:var(--olive-deep);
    }
    .review-person small{
      display:block;
      margin-top:6px;
      font-family:var(--display);
      font-style:italic;
      font-size:.86rem;
      line-height:1.25;
      color:var(--muted);
      letter-spacing:0;
    }
    @media(hover:hover) and (pointer:fine){
      .review-card{transition:none}
      .review-card:hover{transform:none;box-shadow:none;border-color:rgba(38,40,36,.13)}
      .review-card:hover .review-portrait{box-shadow:0 4px 5px rgba(45,39,30,.07),0 13px 25px rgba(45,39,30,.13)}
    }
    @media(max-width:980px){
      .grooming-stamp{right:1vw;top:12px;width:clamp(112px,18vw,146px);transform:rotate(9deg)}
      .review-card{width:min(590px,78vw);min-height:390px;padding:25px 34px 27px;grid-template-columns:128px minmax(0,1fr)}
      .review-card blockquote{font-size:clamp(2rem,4vw,2.75rem)}
      .review-portrait{width:116px;height:138px;padding:6px 6px 20px}
      .review-portrait img{width:104px;height:104px}
    }
    @media(max-width:680px){
      .grooming-stamp{transform:rotate(8deg)}
      .review-track{gap:0;animation-duration:54s}
      .review-card blockquote{line-height:1.06}
      .review-copy::before{font-size:3.35rem;top:-13px}
      .review-portrait{transform:rotate(0deg)!important}
      .review-portrait::before{width:44px;height:14px;top:-7px}
      .review-person{padding-bottom:4px}
      .review-person strong{font-size:.63rem}
      .review-person small{font-size:.74rem}
    }
    @media(max-width:980px){
      .final-lake{height:auto;max-width:none;}
    }
    @media(max-width:680px){
      .final-lake{left:50%;transform:translateX(-50%)}
    }
    .about-copy{
      justify-content:center;
      align-items:flex-start;
    }
    .about-eyebrow{
      margin-bottom:24px;
      color:var(--olive);
    }
    .about-eyebrow::after{
      width:72px;
      opacity:.75;
    }
    .about-copy h2{
      font-family:var(--display);
      font-size:clamp(3.9rem,5.15vw,5.7rem);
      font-weight:500;
      line-height:.9;
      letter-spacing:-.045em;
      margin:0 0 24px;
      color:var(--ink);
    }
    .about-copy h2 em{
      font-family:var(--display);
      font-style:italic;
      font-weight:500;
      color:#a76028;
    }
    .about-sub{
      font-size:clamp(1.06rem,1.25vw,1.24rem);
      line-height:1.38;
      font-weight:450;
      letter-spacing:-.012em;
      max-width:570px;
      margin:0 0 24px;
      color:var(--ink);
    }
    .about-copy>p:not(.about-sub){
      max-width:580px;
      color:rgba(38,40,36,.68);
      font-size:.93rem;
      line-height:1.65;
      margin:0 0 12px;
    }
    .about-signoff{
      display:grid;
      grid-template-columns:auto 1fr;
      grid-template-rows:auto auto;
      align-items:end;
      column-gap:15px;
      row-gap:3px;
      margin-top:17px;
      color:var(--olive-deep);
    }
    .about-signoff::before{
      grid-column:1 / -1;
      width:42px;
      margin-bottom:4px;
      background:var(--brass);
    }
    .about-signoff .signature{
      color:var(--olive-deep);
    }
    .about-signoff small{
      align-self:center;
      max-width:220px;
      color:#7a674e;
      font-size:.55rem;
      letter-spacing:.17em;
      line-height:1.45;
    }

    /* The proof pieces now read as one collected set of artifacts, not a KPI row. */
    .paper-proof-collage{
      display:flex;
      align-items:flex-end;
      justify-content:flex-start;
      width:min(100%,620px);
      margin-top:12px;
      margin-left:-2px;
      gap:0;
      isolation:isolate;
      overflow:visible;
    }
    .paper-proof{
      flex:0 0 clamp(176px,30%,205px);
      width:auto;
      aspect-ratio:1 / 1;
      filter:drop-shadow(0 9px 11px rgba(42,43,38,.10));
    }
    .paper-proof.blue{
      z-index:2;
      transform:rotate(-2.2deg) translateY(9px);
    }
    .paper-proof.green{
      z-index:4;
      margin-left:-22px;
      transform:rotate(1.2deg) translateY(-5px) scale(1.035);
    }
    .paper-proof.tan{
      z-index:3;
      margin-left:-24px;
      transform:rotate(2.2deg) translateY(11px);
    }
    .paper-proof-copy small{
      font-size:.43rem;
      letter-spacing:.2em;
    }
    .paper-proof-copy strong{
      font-size:clamp(2.35rem,2.9vw,3.45rem);
    }
    .paper-proof-copy>span{
      font-size:.46rem;
    }
    @media(hover:hover) and (pointer:fine){
      .paper-proof.blue:hover{transform:rotate(-1.4deg) translateY(2px) scale(1.015)}
      .paper-proof.green:hover{transform:rotate(.5deg) translateY(-11px) scale(1.05)}
      .paper-proof.tan:hover{transform:rotate(2.8deg) translateY(4px) scale(1.015)}
    }

    @media(max-width:1180px) and (min-width:981px){
      .about-copy h2{font-size:clamp(3.3rem,5vw,4.35rem)}
      .paper-proof{flex-basis:clamp(155px,30%,178px)}
      .paper-proof.green{margin-left:-18px}
      .paper-proof.tan{margin-left:-20px}
    }
    @media(max-width:980px){
      .about-copy{align-items:flex-start}
      .about-copy h2{font-size:clamp(3.45rem,8vw,5.15rem)}
      .about-sub{max-width:620px}
      .about-copy>p:not(.about-sub){max-width:640px}
      .paper-proof-collage{width:min(100%,610px);margin-top:18px}
      .paper-proof{flex-basis:clamp(170px,30%,195px)}
    }
    @media(max-width:680px){
      .about-eyebrow{margin-bottom:18px}
      .about-copy h2{
        line-height:.9;
        margin-bottom:20px;
      }
      .about-sub{line-height:1.42}
      .about-signoff{
        grid-template-columns:1fr;
        grid-template-rows:auto;
        row-gap:2px;
      }
      .about-signoff::before{grid-column:auto}
      .about-signoff small{max-width:none}
      .paper-proof-collage{
        display:flex;
        flex-direction:column;
        align-items:center;
        margin:28px auto 0;
      }
      .paper-proof{
        flex:none;
        width:100%;
        aspect-ratio:1 / 1;
      }
      .paper-proof.blue{transform:rotate(-2deg)}
      .paper-proof.green{margin-left:0;margin-top:-18px;transform:rotate(1.6deg)}
      .paper-proof.tan{margin-left:0;margin-top:-18px;transform:rotate(-1.2deg)}
      .paper-proof-copy strong{font-size:clamp(3.1rem,16vw,4.2rem)}
      .paper-proof-copy>span{font-size:.58rem}
      .paper-proof-copy small{font-size:.54rem}
    }

    .stay-card,
    .bath-benefits{
      --folio-cut:15px;
      --folio-bg:#f4f5f1;
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom right/51% 51% no-repeat;
    }

    /* Shared line recipe: four straight rules plus four rounded corner arcs. */
    .stay-card::before,
    .stay-card::after,
    .bath-benefits::before{
      content:"";
      position:absolute;
      pointer-events:none;
      background-repeat:no-repeat;
      background-image:
        radial-gradient(circle at 0 0,transparent 0 calc(var(--rule-cut) - 1px),var(--rule-color) calc(var(--rule-cut) - .9px) var(--rule-cut),transparent calc(var(--rule-cut) + .9px)),
        radial-gradient(circle at 100% 0,transparent 0 calc(var(--rule-cut) - 1px),var(--rule-color) calc(var(--rule-cut) - .9px) var(--rule-cut),transparent calc(var(--rule-cut) + .9px)),
        radial-gradient(circle at 0 100%,transparent 0 calc(var(--rule-cut) - 1px),var(--rule-color) calc(var(--rule-cut) - .9px) var(--rule-cut),transparent calc(var(--rule-cut) + .9px)),
        radial-gradient(circle at 100% 100%,transparent 0 calc(var(--rule-cut) - 1px),var(--rule-color) calc(var(--rule-cut) - .9px) var(--rule-cut),transparent calc(var(--rule-cut) + .9px)),
        linear-gradient(var(--rule-color),var(--rule-color)),
        linear-gradient(var(--rule-color),var(--rule-color)),
        linear-gradient(var(--rule-color),var(--rule-color)),
        linear-gradient(var(--rule-color),var(--rule-color));
      background-position:
        top left,top right,bottom left,bottom right,
        top center,bottom center,left center,right center;
      background-size:
        calc(var(--rule-cut) + 2px) calc(var(--rule-cut) + 2px),
        calc(var(--rule-cut) + 2px) calc(var(--rule-cut) + 2px),
        calc(var(--rule-cut) + 2px) calc(var(--rule-cut) + 2px),
        calc(var(--rule-cut) + 2px) calc(var(--rule-cut) + 2px),
        calc(100% - var(--rule-cut) - var(--rule-cut)) 1px,
        calc(100% - var(--rule-cut) - var(--rule-cut)) 1px,
        1px calc(100% - var(--rule-cut) - var(--rule-cut)),
        1px calc(100% - var(--rule-cut) - var(--rule-cut));
    }

    /* Stay cards: same folio construction in day/night editions. */
    .stay-card{
      --folio-line:rgba(111,137,153,.38);
      --folio-dot:#b88d44;
      --folio-rule:rgba(82,105,119,.24);
      --folio-bg:#f4f5f1;
      --folio-cut:15px;
      position:relative;
      border:0!important;
      border-radius:0!important;
      clip-path:none!important;
      background:var(--folio-bg);
      box-shadow:0 18px 42px rgba(42,43,38,.065);
      overflow:hidden;
    }
    .stay-card.boarding{
      --folio-line:rgba(205,170,94,.56);
      --folio-dot:#cfad63;
      --folio-rule:rgba(205,170,94,.27);
      --folio-bg:var(--olive-deep);
      background:var(--folio-bg);
      box-shadow:0 22px 50px rgba(24,34,26,.16);
    }
    .stay-card::before{
      --rule-cut:var(--folio-cut);
      --rule-color:var(--folio-line);
    }
    .stay-card::after{
      --rule-cut:11px;
      --rule-color:var(--folio-line);
      opacity:.88;
    }
    .stay-card> *{position:relative;z-index:1}
    .stay-top{padding-top:38px}
    .stay-type{border:1px solid rgba(111,137,153,.16);box-shadow:none}
    .boarding .stay-type{border-color:rgba(207,173,99,.34)}
    .stay-image{margin:0 18px;height:330px}

    /* Perks now use the same icon / label / italic-detail language as grooming. */
    .stay-includes{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      margin:0 24px;
      padding:27px 0 24px;
      border-top:1px solid var(--folio-rule);
      border-bottom:1px solid var(--folio-rule);
      position:relative;
      z-index:2;
    }
    .stay-perk{
      position:relative;
      min-width:0;
      display:flex;
      flex-direction:column;
      align-items:center;
      text-align:center;
      padding:0 13px;
      border:0!important;
      color:#52616c;
    }
    .stay-perk + .stay-perk::before{
      content:"";
      position:absolute;
      left:0;
      top:7px;
      bottom:7px;
      width:1px;
      background:var(--folio-rule);
    }
    .stay-perk + .stay-perk::after{
      content:"";
      position:absolute;
      left:-3px;
      top:50%;
      width:7px;
      height:7px;
      transform:translateY(-50%);
      border-radius:50%;
      background:var(--folio-dot);
      box-shadow:0 0 0 3px rgba(244,245,241,.96);
    }
    .boarding .stay-perk + .stay-perk::after{box-shadow:0 0 0 3px var(--olive-deep)}
    .stay-perk i{display:block;margin:0 0 13px;font-size:1.22rem;color:#748b9a}
    .boarding .stay-perk i{color:#cfad63}
    .stay-perk strong{display:block;min-height:30px;font-family:var(--body);font-size:.59rem;line-height:1.35;text-transform:uppercase;letter-spacing:.105em;font-weight:650;color:#52616c}
    .boarding .stay-perk strong{color:#d5b66f}
    .stay-perk span{display:block;margin-top:7px;max-width:125px;font-family:var(--display);font-style:italic;text-transform:none;letter-spacing:0;font-weight:500;font-size:.78rem;line-height:1.25;color:var(--muted)}
    .boarding .stay-perk span{color:rgba(247,243,233,.65)}
    .stay-booking{padding:20px 28px 34px}
    .stay-booking-note{border-top:0;padding-top:0;margin-bottom:15px}

    /* Grooming feature panel: same geometry at a smaller scale. */
    .bath-benefits{
      --folio-line:rgba(197,172,123,.50);
      --folio-dot:#b88d44;
      --folio-bg:rgba(252,249,242,.58);
      --folio-cut:10px;
      position:relative;
      border:0!important;
      border-radius:0!important;
      clip-path:none!important;
      padding:31px 24px 27px!important;
      background:var(--folio-bg)!important;
      box-shadow:none!important;
      overflow:hidden;
    }
    .bath-benefits::before{
      --rule-cut:7px;
      --rule-color:rgba(197,172,123,.42);
      opacity:1;
    }
    .bath-benefits::after{display:none!important}
    .bath-benefit{min-height:166px;padding:4px 22px 0}
    .bath-benefit + .bath-benefit::before{background:rgba(197,172,123,.42)}
    .bath-benefit + .bath-benefit::after{background:var(--folio-dot);box-shadow:0 0 0 3px rgba(250,247,240,.98)}
    .bath-benefit i{font-size:1.36rem;margin-bottom:18px}
    .bath-benefit strong{font-size:.72rem;letter-spacing:.13em}
    .bath-benefit span{font-size:.98rem;line-height:1.42}

    @media(max-width:980px){
      .stay-image{margin:0 14px}
      .stay-includes{margin:0 18px}
      .stay-perk{padding-inline:9px}
      .stay-perk span{font-size:.72rem}
    }
    @media(max-width:680px){
      .stay-card{--folio-cut:12px}
      .stay-card::after{--rule-cut:8px}
      .stay-top{padding-top:32px}
      .stay-image{margin:0 12px}
      .stay-includes{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 16px;padding:18px 0}
      .stay-perk{padding:17px 10px}
      .stay-perk + .stay-perk::before{left:0;top:12px;bottom:12px}
      .stay-perk:nth-child(3)::before{display:none}
      .stay-perk:nth-child(3)::after{display:none}
      .stay-perk:nth-child(n+3){border-top:1px solid var(--folio-rule)!important}
      .stay-perk strong{min-height:0}
      .stay-perk span{font-size:.76rem;max-width:150px}
      .stay-booking{padding:18px 20px 27px}
      .bath-benefits{--folio-cut:9px;grid-template-columns:1fr!important;padding:19px 18px 16px!important}
      .bath-benefits::before{--rule-cut:6px}
      .bath-benefit{min-height:0;padding:18px 14px 20px}
      .bath-benefit + .bath-benefit::before{left:18px;right:18px;top:0;bottom:auto;width:auto;height:1px}
      .bath-benefit + .bath-benefit::after{left:50%;top:-3px;transform:translateX(-50%)}
    }

    .stay-frame,
    .stay-card,
    .bath-benefits-frame,
    .bath-benefits,
    .stay-card::before,
    .stay-card::after,
    .bath-benefits::before,
    .bath-benefits::after{
      -webkit-mask-repeat:no-repeat;
      mask-repeat:no-repeat;
    }

    /* Reusable four-corner concave mask. Each layer owns one quadrant. */
    .stay-frame,
    .bath-benefits-frame{
      --cut:15px;
      position:relative;
      min-width:0;
      padding:1px;
      background:var(--frame-color);
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--cut),#000 calc(var(--cut) + .7px)) bottom right/51% 51% no-repeat;
    }
    .stay-frame{
      --cut:15px;
      --frame-color:rgba(111,137,153,.38);
      background:var(--frame-color);
      box-shadow:0 18px 42px rgba(42,43,38,.065);
      transform-style:preserve-3d;
      will-change:transform;
    }
    .boarding-frame{
      --frame-color:rgba(205,170,94,.56);
      box-shadow:0 22px 50px rgba(24,34,26,.16);
    }

    /* Inner card is a second silhouette, one pixel smaller. */
    .stay-frame .stay-card{
      --folio-cut:15px;
      width:100%;
      height:100%;
      border:0!important;
      box-shadow:none!important;
      overflow:hidden;
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom right/51% 51% no-repeat;
    }

    /* Kill the old gradient-drawn arcs. Build the inner frame as a masked ring. */
    .stay-card::before,
    .stay-card::after{
      content:"";
      position:absolute;
      pointer-events:none;
      background-image:none!important;
      opacity:1!important;
    }
    .stay-card::before{
      --ring-cut:9px;
      inset:9px;
      z-index:0;
      background:var(--folio-line);
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
    }
    .stay-card::after{
      --ring-cut:9px;
      inset:10px;
      z-index:0;
      background:var(--folio-bg);
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
    }
    .stay-card > *{position:relative;z-index:2}

    /* Grooming placard: explicit outer frame + inner masked ring. */
    .bath-benefits-frame{
      --cut:11px;
      --frame-color:rgba(197,172,123,.48);
      margin-top:32px;
      background:var(--frame-color);
    }
    .bath-benefits-frame .bath-benefits{
      --folio-cut:11px;
      margin-top:0!important;
      width:100%;
      border:0!important;
      box-shadow:none!important;
      overflow:hidden;
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--folio-cut),#000 calc(var(--folio-cut) + .7px)) bottom right/51% 51% no-repeat;
    }
    .bath-benefits::before,
    .bath-benefits::after{
      content:"";
      position:absolute;
      pointer-events:none;
      background-image:none!important;
      display:block!important;
      opacity:1!important;
    }
    .bath-benefits::before{
      --ring-cut:6px;
      inset:8px;
      z-index:0;
      background:rgba(197,172,123,.34);
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
    }
    .bath-benefits::after{
      --ring-cut:6px;
      inset:9px;
      z-index:0;
      background:var(--folio-bg);
      -webkit-mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
      mask:
        radial-gradient(circle at 0 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top left/51% 51% no-repeat,
        radial-gradient(circle at 100% 0,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) top right/51% 51% no-repeat,
        radial-gradient(circle at 0 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom left/51% 51% no-repeat,
        radial-gradient(circle at 100% 100%,transparent 0 var(--ring-cut),#000 calc(var(--ring-cut) + .7px)) bottom right/51% 51% no-repeat;
    }
    .bath-benefit{position:relative;z-index:2}

    @media(max-width:680px){
      .stay-frame{--cut:12px}
      .stay-frame .stay-card{--folio-cut:12px}
      .stay-card::before{--ring-cut:7px;inset:8px}
      .stay-card::after{--ring-cut:7px;inset:9px}
      .bath-benefits-frame{--cut:10px}
      .bath-benefits-frame .bath-benefits{--folio-cut:10px}
      .bath-benefits::before{--ring-cut:5px;inset:7px}
      .bath-benefits::after{--ring-cut:5px;inset:8px}
    }
    .paper-chapter>.final{
      background-color:var(--cream)!important;
      background-image:url("assets/paper-texture-cream.webp")!important;
      background-repeat:repeat!important;
      background-size:420px auto!important;
    }
    .paper-chapter>.final::before{display:block!important}
    .final{
      position:relative;
      isolation:isolate;
      overflow:hidden;
      min-height:clamp(850px,94svh,1040px)!important;
      display:grid;
      place-items:start center;
      padding:clamp(82px,6.5vw,106px) var(--pad) 0!important;
      color:var(--olive-deep);
      text-align:center;
      border-top:1px solid var(--paper-rule);
      border-bottom:0;
    }
    .final::before{
      content:"";
      position:absolute;
      z-index:1;
      inset:0;
      pointer-events:none;
      background:linear-gradient(180deg,
        rgba(247,243,233,.12) 0%,
        rgba(247,243,233,.10) 28%,
        rgba(247,243,233,.06) 45%,
        rgba(247,243,233,.015) 62%,
        rgba(247,243,233,0) 76%);
    }
    .final-lake{
      position:absolute;
      z-index:0;
      left:50%;
      bottom:-1px;
      width:100%;
      min-width:1160px;
      max-width:none;
      height:auto;
      transform:translateX(-50%);
      opacity:.8;
      filter:saturate(.86) contrast(.95) brightness(1.01);
      pointer-events:none;
      user-select:none;
      -webkit-mask-image:linear-gradient(to bottom,
        transparent 0%,
        transparent 10%,
        rgba(0,0,0,.06) 24%,
        rgba(0,0,0,.22) 38%,
        rgba(0,0,0,.50) 53%,
        rgba(0,0,0,.64) 67%,
        rgba(0,0,0,.42) 82%,
        rgba(0,0,0,.20) 100%);
      mask-image:linear-gradient(to bottom,
        transparent 0%,
        transparent 10%,
        rgba(0,0,0,.06) 24%,
        rgba(0,0,0,.22) 38%,
        rgba(0,0,0,.50) 53%,
        rgba(0,0,0,.64) 67%,
        rgba(0,0,0,.42) 82%,
        rgba(0,0,0,.20) 100%);
    }
    .final-lake-shade{
      position:absolute;
      z-index:1;
      left:0;right:0;bottom:0;
      height:28%;
      pointer-events:none;
      background:linear-gradient(180deg,transparent,rgba(35,49,39,.035));
    }
    .final-inner{
      position:relative;
      z-index:2;
      width:min(790px,100%);
      margin-inline:auto;
    }
    .final-brand{
      margin:0 0 clamp(26px,3vw,38px)!important;
      font-size:.63rem;
    }
    .final-brand::before,.final-brand::after{width:38px}
    .final h2{
      max-width:760px;
      margin:0 auto 30px;
      font-size:clamp(3.65rem,5.7vw,6rem);
      line-height:.92;
      letter-spacing:-.045em;
    }
    .final h2 em{display:block}
    .final-rule,.final .lead{display:none!important}
    .final-cta{min-height:58px;padding-inline:clamp(30px,3.5vw,44px)}
    .final-location{
      margin:24px auto 0!important;
      font-size:.59rem;
      color:rgba(52,64,51,.72);
    }

    @media(max-width:980px){
      .final{min-height:800px!important;padding-top:78px!important}
      .final-inner{width:min(700px,92vw)}
      .final h2{font-size:clamp(3.35rem,7.7vw,5.2rem);max-width:660px}
      .final-lake{width:126%;min-width:0}
    }
    @media(max-width:680px){
      .paper-chapter>.final{background-size:360px auto!important}
      .final{padding:66px var(--pad) 0!important}
      .final-brand{margin-bottom:23px!important;font-size:.57rem;gap:9px}
      .final-brand::before,.final-brand::after{width:24px}
      .final h2{max-width:510px;margin-bottom:25px}
      .final-cta{min-height:54px;padding-inline:28px}
      .final-location{margin-top:20px!important;font-size:.53rem;letter-spacing:.13em}
      .final-lake{
        min-width:0;
        bottom:0;
        -webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 7%,rgba(0,0,0,.10) 22%,rgba(0,0,0,.40) 44%,rgba(0,0,0,.62) 61%,rgba(0,0,0,.40) 79%,rgba(0,0,0,.20) 100%);
        mask-image:linear-gradient(to bottom,transparent 0%,transparent 7%,rgba(0,0,0,.10) 22%,rgba(0,0,0,.40) 44%,rgba(0,0,0,.62) 61%,rgba(0,0,0,.40) 79%,rgba(0,0,0,.20) 100%);
      }
    }
    .photo-print--about{width:min(100%,540px)}
    .photo-print--about>img{
      aspect-ratio:1/1;
      object-position:center;
    }

    /* Compact desktop: keep the full nav, but stop it from pinching. */
    @media (min-width:981px) and (max-width:1180px){
      .nav{gap:18px}
      .nav-links{gap:18px;font-size:.64rem;letter-spacing:.085em}
      .wordmark{font-size:.82rem}.wordmark strong{font-size:1.3rem}
      .nav-cta .btn{padding-inline:14px;font-size:.66rem}
      .hero-inner{grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr)}
      .hero-content{padding-left:clamp(20px,3vw,42px)}
    }

    /* Tablet: preserve the photographic composition without forcing desktop scale. */
    @media (min-width:681px) and (max-width:980px){
      :root{--pad:clamp(26px,4.5vw,42px)}
      .nav{height:76px}
      .mobile-menu{top:70px;left:var(--pad);right:var(--pad);max-height:calc(100svh - 86px);overflow:auto}
      .hero-inner{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);padding-top:84px;padding-bottom:84px}
      .hero-content{width:min(520px,100%);padding-left:22px}
      .hero h1{font-size:clamp(3.85rem,8.2vw,5.55rem)}
      .hero-copy{font-size:clamp(1.15rem,2.15vw,1.42rem)}
      .about-photo{padding:46px var(--pad) 18px}
      .about-copy{padding-top:54px;padding-bottom:68px}
      .day-head{max-width:760px}
      .footer-main{grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:44px}
      .footer-title{font-size:clamp(3.8rem,7.8vw,5.8rem)}
      .footer-navs{gap:28px}
    }

    /* Short laptops/tablets: keep the opening composition inside the viewport. */
    @media (min-width:681px) and (max-height:700px){
      .hero-inner{padding-top:76px;padding-bottom:64px}
      .hero-kicker{font-size:1.05rem;margin-bottom:10px}
      .hero h1{font-size:clamp(3.35rem,min(6.5vw,10svh),5.15rem);margin-bottom:16px}
      .hero-copy{font-size:clamp(1.05rem,1.6vw,1.28rem);margin-bottom:22px}
      .hero-cta{min-height:50px}
      .hero-scroll-cue{bottom:18px}
    }

    @media (max-width:680px){
      html,body{max-width:100%;overflow-x:hidden}
      :root{--pad:clamp(18px,5.2vw,22px)}

      /* Opening hero becomes truly viewport-led instead of a fixed 780px slab. */
      .opening-sticky{height:max(100svh,640px)!important;min-height:640px!important;overflow:hidden!important}
      .opening-sticky .hero,
      .opening-sticky .hero-inner{height:100%!important;min-height:640px!important}
      .hero{min-height:640px!important}
      .hero-inner{padding-top:96px!important;padding-bottom:clamp(112px,17vh,144px)!important}
      .hero-content{max-width:min(560px,100%)}
      .hero-kicker{font-size:1.04rem;margin-bottom:12px}
      .hero h1{font-size:clamp(3.25rem,16.2vw,4.85rem);line-height:.9;margin-bottom:18px}
      .hero-copy{font-size:clamp(1.08rem,5vw,1.24rem);line-height:1.2;margin-bottom:24px}
      .hero-cta{min-height:52px;padding-inline:23px;font-size:.7rem}
      .mobile-menu{top:66px;left:12px;right:12px;max-height:calc(100svh - 78px);overflow:auto;border-radius:12px}
      .mobile-menu a,.mobile-menu button{padding:12px 9px}

      /* Difference: roomy enough to read, compact enough not to feel like six UI cards. */
      .opening-scene>.positioning{padding:48px 0 56px}
      .opening-scene>.positioning .position-copy{margin-bottom:20px}
      .opening-scene>.positioning .position-copy h2{font-size:clamp(2rem,9.2vw,2.9rem);line-height:.93}
      .opening-scene>.positioning .orbit-field{gap:7px}
      .opening-scene>.positioning .orbit-field .float-note{min-height:78px!important;padding:8px 15px 8px 10px!important}

      /* About: stop the physical-photo/proof system from eating the whole mobile page. */
      .about-photo{padding:38px var(--pad) 8px!important}
      .photo-print--about{width:min(88vw,410px)}
      .about-copy{padding:46px var(--pad) 58px!important}
      .about-copy h2{font-size:clamp(2.8rem,13vw,3.85rem)}
      .about-sub{font-size:1rem}
      .paper-proof-collage{width:min(76vw,286px);margin-top:24px}
      .paper-proof.green,.paper-proof.tan{margin-top:-16px}

      /* Day chapter: image remains cinematic; timeline becomes clean reading flow. */
      .day{padding-top:68px;padding-bottom:66px}
      .day-head{margin-bottom:34px}
      .day-head .h2{font-size:clamp(2.8rem,13vw,4rem)}
      .day-visual{height:clamp(280px,78vw,360px);margin-bottom:30px}
      .timeline-list{--step-inset:32px}
      .day-step{padding:14px 0 38px 20px}
      .day-step h3{font-size:clamp(1.7rem,8.1vw,2.05rem)}
      .inline-perks{gap:6px}

      /* Grooming + stays: preserve the folio system, reduce collision pressure. */
      .bath-copy{padding-left:0!important;padding-right:0!important}
      .bath-image{padding-left:3vw;padding-right:3vw}
      .grooming-stamp{width:94px;right:0;top:8px}
      .options-head{margin-bottom:34px}
      .options-head h2{font-size:clamp(3.15rem,13vw,4.6rem)}
      .stay-grid{gap:22px}
      .stay-card h3{font-size:clamp(2.85rem,14vw,3.65rem)}
      .stay-intro{font-size:.88rem}
      .stay-image{height:clamp(240px,70vw,300px)}

      /* Reviews: keep editorial scale but avoid a tiny second column. */
      .reviews-head{margin-bottom:28px}
      .review-card{width:90vw;min-height:340px;padding:22px 20px 23px;grid-template-columns:88px minmax(0,1fr);row-gap:14px}
      .review-card blockquote{font-size:clamp(1.65rem,7.7vw,2.15rem)}
      .review-copy{padding-left:27px}
      .review-portrait{width:82px;height:100px;padding:5px 5px 15px}
      .review-portrait img{width:72px;height:72px}

      /* FAQ copy should not fight the accordion for width. */
      .faq-wrap{gap:30px}
      .faq-copy h2{font-size:clamp(2.75rem,12vw,3.7rem)}
      .faq-q{grid-template-columns:30px minmax(0,1fr) 22px;gap:10px}
      .faq-q span:first-child{font-size:clamp(1.28rem,6vw,1.55rem)}
      .faq-a p{padding-left:40px}

      /* Closing landscape + footer: prevent the large display type from overflowing narrow phones. */
      .final{min-height:max(680px,86svh)!important;padding-top:60px!important}
      .final h2{font-size:clamp(2.7rem,12.3vw,3.9rem)}
      .final-lake{width:184%}
      footer{padding-top:72px}
      .footer-main{gap:46px}
      .footer-title{font-size:clamp(3rem,15vw,5rem);line-height:.8}
      .footer-brand-rule{margin-top:24px}
      .footer-navs{gap:24px}
      .footer-record{margin-top:52px}
    }

    /* Narrow phones: 320–430px stress case. */
    @media (max-width:430px){
      .wordmark{font-size:.72rem}.wordmark strong{font-size:1.08rem}
      .hero-inner{padding-bottom:112px!important}
      .hero h1{font-size:clamp(3rem,15.2vw,4rem)}
      .hero-copy{font-size:1.08rem}
      .hero-actions .btn{width:100%}
      .opening-scene>.positioning .position-copy h2{font-size:clamp(1.9rem,9.4vw,2.5rem)}
      .opening-scene>.positioning .orbit-field .float-note{grid-template-columns:56px minmax(0,1fr)!important}
      .mini-print{width:52px}
      .opening-scene>.positioning .orbit-field .float-note .mini-print>img{width:44px!important;height:44px!important}
      .about-copy h2{font-size:clamp(2.65rem,12.8vw,3.35rem)}
      .paper-proof-collage{width:min(78vw,260px)}
      .grooming-stamp{width:84px;top:4px}
      .review-card{width:92vw;min-height:330px;padding:20px 17px 21px;grid-template-columns:76px minmax(0,1fr)}
      .review-card blockquote{font-size:clamp(1.55rem,7.7vw,1.9rem)}
      .review-copy{padding-left:24px}
      .review-copy::before{font-size:2.8rem}
      .review-portrait{width:72px;height:88px;padding:4px 4px 13px}
      .review-portrait img{width:64px;height:64px}
      .review-person strong{font-size:.59rem;letter-spacing:.11em}
      .review-person small{font-size:.7rem}
      .stay-includes{margin-inline:12px}
      .stay-booking{padding-inline:17px}
      .final-brand{gap:7px}.final-brand::before,.final-brand::after{width:18px}
      .final-location{max-width:260px}
      .footer-title{font-size:clamp(2.9rem,15vw,4.2rem)}
      .footer-navs{grid-template-columns:1fr;gap:20px}
    }
    .skip-link{position:fixed;z-index:1000;left:16px;top:12px;padding:10px 14px;background:var(--olive-deep);color:var(--cream);border-radius:4px;transform:translateY(-160%);transition:transform .18s var(--ease-out)}
    .skip-link:focus{transform:none}
    a:focus-visible,button:focus-visible,[role="button"]:focus-visible{outline:3px solid var(--brass);outline-offset:4px}
    .day-step[role="button"]{cursor:pointer}
    @media(forced-colors:active){a:focus-visible,button:focus-visible,[role="button"]:focus-visible{outline:2px solid CanvasText}}
.day-photo[data-photo="morning"]{object-position:center 59%}
.day-photo[data-photo="walk"]{object-position:center 64%}
.day-photo[data-photo="rest"]{object-position:center 44%}
.day-photo[data-photo="play"]{object-position:center 46%}
.day-photo[data-photo="evening"]{object-position:center 58%}
.float-note.n1 .mini-print img{object-position:center 38%}
.float-note.n2 .mini-print img{object-position:center 35%}
.float-note.n3 .mini-print img{object-position:center 52%}
.float-note.n4 .mini-print img{object-position:center 66%}
.float-note.n5 .mini-print img{object-position:center 52%}
.float-note.n6 .mini-print img{object-position:center 60%}
.daycare .stay-image img{object-position:center 48%}
.boarding .stay-image img{object-position:center 55%}
    .about-signoff .signature{
      font-family:"Shadows Into Light",cursive;
      font-weight:400;
      font-size:3.25rem;
      line-height:.95;
      letter-spacing:.01em;
      transform:rotate(-1.2deg);
    }
    .paper-proof-copy{
      top:29.5%;
    }
    .paper-proof.green .paper-proof-copy{
      top:31.5%;
    }
    .paper-proof.tan .paper-proof-copy{
      top:31%;
    }
    .paper-proof-copy small{
      margin-bottom:10px;
    }
    .paper-proof-copy strong{
      font-family:var(--body);
      font-weight:500;
      letter-spacing:-.045em;
      line-height:.82;
    }
    .paper-proof-copy>span{
      margin-top:14px;
      line-height:1.48;
      letter-spacing:.115em;
      max-width:146px;
    }
    @media(max-width:680px){
      .about-signoff .signature{font-size:3.1rem}
      .paper-proof-copy small{margin-bottom:11px}
      .paper-proof-copy>span{margin-top:15px;line-height:1.5;max-width:155px}
    }

/* WordPress local/admin integration */
body.admin-bar .site-header{top:32px}
@media (max-width:782px){body.admin-bar .site-header{top:46px}}

/* Review carousel controls are a mobile affordance; desktop keeps the ambient marquee. */
.review-controls{display:none}

/* M3.2 — mobile/performance hardening. Desktop choreography remains unchanged. */

@media(max-width:680px){
  /* Fixed backdrop blurs and permanent compositor hints are expensive on phones. */
  .site-header.scrolled{
    background:rgba(247,243,233,.985);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .site-header:not(.scrolled) .btn-primary{
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .hero-media,.hero-media img,.hero-content,.hero-scroll-cue,
  .opening-scene>.positioning .position-copy,
  .opening-scene>.positioning .float-note,.float-note,
  .paper-proof,.stay-card,.day-photo,.final-lake{
    will-change:auto!important;
  }

  /* Mobile reviews become native swipeable cards instead of a continuously composited marquee. */
  .review-marquee{overflow:visible;padding-inline:0}
  .review-marquee::before,.review-marquee::after{display:none}
  .review-track{
    width:100%;
    max-width:100%;
    gap:12px!important;
    padding:8px var(--pad) 22px!important;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--pad);
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    animation:none!important;
    transform:none!important;
    will-change:auto!important;
  }
  .review-track::-webkit-scrollbar{display:none}
  .review-card{
    flex:0 0 min(84vw,360px);
    width:auto!important;
    scroll-snap-align:start;
    scroll-snap-stop:normal;
  }
  .review-card[aria-hidden="true"]{display:none!important}
  .review-controls{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    padding:2px var(--pad) 0;
  }
  .review-control{
    appearance:none;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:1px solid rgba(38,40,36,.28);
    border-radius:999px;
    background:rgba(255,253,248,.72);
    color:var(--ink);
    font:600 1rem/1 var(--body);
    cursor:pointer;
    transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),opacity var(--motion-fast) var(--ease);
  }
  .review-control:active{background:var(--cream-2)}
  .review-control:disabled{opacity:.32;cursor:default}
  .review-position{
    min-width:46px;
    text-align:center;
    color:var(--muted);
    font-size:.68rem;
    font-weight:650;
    letter-spacing:.11em;
    font-variant-numeric:tabular-nums;
  }

  /* Mobile shows one calm establishing Day image; alternate scenes are desktop-only assets. */
  .day-photo:not(.active){display:none}
  .day-grain{display:none}
  .final-lake{will-change:auto!important}
}
.final-lake-picture{position:absolute;inset:0;z-index:0;display:block;pointer-events:none}
@media(max-width:680px){.review-track{scroll-snap-type:x proximity}}


/* M3.3 — final responsive stacking contract.
   Keep these rules last: several late editorial desktop declarations intentionally
   refine the large layout and must never win again on narrow viewports. */
@media (max-width:980px){
  /* These were intended to collapse at tablet size; late desktop refinements
     in the consolidated stylesheet had been re-opening them into two columns. */
  .about-grid,
  .faq-wrap{
    grid-template-columns:minmax(0,1fr)!important;
  }

  .about-photo,
  .about-copy,
  .faq-copy,
  .accordion{
    min-width:0;
    width:100%;
  }

  .faq-copy{
    position:relative;
    top:auto;
  }
}

@media (max-width:680px){
  /* Major page compositions become real document flow on phones. */
  .about-grid,
  .day-story,
  .bath-card,
  .faq-wrap,
  .stay-grid,
  .footer-main,
  .footer-record{
    grid-template-columns:minmax(0,1fr)!important;
  }

  .day-story{
    display:block!important;
  }

  .about-photo,
  .about-copy,
  .day-visual,
  .timeline-list,
  .bath-copy,
  .bath-image,
  .bath-benefits-frame,
  .faq-copy,
  .accordion,
  .stay-frame,
  .stay-card,
  .footer-brand-large,
  .footer-navs{
    min-width:0;
    width:100%;
    max-width:100%;
  }

  /* Let each section occupy the full reading width instead of retaining
     desktop-side constraints inside its new single-column parent. */
  .about-photo{justify-self:stretch}
  .about-copy{justify-self:stretch}
  .bath-copy,.bath-image{justify-self:stretch}
  .faq-copy,.accordion{justify-self:stretch}
  .stay-frame{justify-self:stretch}

  /* The review card's quote already spans both columns. Keep the little
     portrait/person footer arrangement at ordinary phone sizes; it remains
     readable and avoids making every card unnecessarily tall. */
}

@media (max-width:430px){
  /* On genuinely narrow phones even footer navigation should read vertically. */
  .footer-navs{
    grid-template-columns:minmax(0,1fr)!important;
    gap:28px;
  }

  /* Give very narrow review cards a true vertical fallback too. */
  .review-card{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto auto auto!important;
    grid-template-areas:
      "stars"
      "quote"
      "portrait"
      "person"!important;
  }
  .review-portrait{
    justify-self:start;
    margin-top:4px;
  }
  .review-person{
    align-self:start;
    padding-top:0;
  }
}


/* M3.5 — definitive mobile review controls. Keep this last. */
@media (max-width:680px){
  .reviews .review-controls{
    display:flex!important;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    padding:0 var(--pad) 14px;
    position:relative;
    z-index:4;
  }
}


/* M3.6 — one full review per mobile viewport; no teaser/partial next card. */
@media (max-width:680px){
  .reviews .review-marquee{
    overflow:hidden;
    padding-inline:var(--pad);
  }
  .reviews .review-track{
    gap:0!important;
    width:100%;
    max-width:100%;
    padding:8px 0 22px!important;
    scroll-padding-inline:0;
    scroll-snap-type:x mandatory!important;
  }
  .reviews .review-card{
    flex:0 0 100%!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
    box-sizing:border-box;
  }
}
