/* ==========================================================================
   Kakkabe Camping & Hiking — earth, in one colour family
   bone → sand → clay → umber → bark → soil
   ========================================================================== */
@view-transition{ navigation:auto; }

:root{
  --bone:#F2EDE4;
  --paper:#F8F5EF;
  --sand:#E7DFD2;
  --clay:#D6CAB8;
  --stone:#B8A993;
  --umber:#857563;
  --bark-2:#5A4E42;
  --bark:#2E2720;
  --soil:#221C17;

  --on:#F1EADF;
  --on-2:#C4B8A6;
  --on-3:#948776;

  --line:rgba(46,39,32,.12);
  --line-2:rgba(46,39,32,.22);
  --line-on:rgba(241,234,223,.13);
  --line-on-2:rgba(241,234,223,.26);

  --r-xl:36px; --r-lg:28px; --r:20px; --r-sm:14px;

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --soft:"SOFT" 100,"WONK" 0;

  --ease:cubic-bezier(.22,.68,.24,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --gut:1.25rem;
  --max:74rem;
}
@media (min-width:900px){ :root{ --gut:3rem; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ overflow-x:clip; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; scroll-behavior:smooth; scroll-padding-top:5.5rem; text-size-adjust:100%; }
body{ margin:0; background:var(--bone); color:var(--bark); font-family:var(--sans); font-size:1rem; line-height:1.7; overflow-x:clip; }
body.no-scroll{ overflow:hidden; }
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
::selection{ background:var(--clay); color:var(--bark); }
:focus-visible{ outline:2px solid var(--umber); outline-offset:3px; border-radius:6px; }

.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--gut); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* ---------- type ---------- */
h1,h2,h3{ font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 144; margin:0; text-wrap:balance; }
h2{ font-size:clamp(2.15rem,5.4vw,4rem); line-height:1.02; letter-spacing:-.028em; }
h3{ font-size:clamp(1.45rem,2.3vw,1.8rem); line-height:1.12; letter-spacing:-.02em; font-variation-settings:var(--soft),"opsz" 60; font-weight:350; }
h2 em, h3 em{ font-style:italic; font-weight:300; }
p{ margin:0; text-wrap:pretty; }
.eyebrow{ display:flex; align-items:center; gap:.85rem; margin:0 0 1.35rem; font-size:.7rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--umber); }
.eyebrow b{ font-family:var(--serif); font-weight:400; font-size:.95rem; letter-spacing:0; font-variation-settings:var(--soft),"opsz" 30; color:var(--bark-2); }
.eyebrow::after{ content:""; flex:0 0 2.4rem; height:1px; background:currentColor; opacity:.5; }
.lede{ max-width:36rem; margin-top:1.25rem; font-size:1.05rem; line-height:1.75; color:var(--bark-2); }
.small{ font-size:.86rem; color:var(--umber); }

/* ---------- buttons ---------- */
.btn{ --b:var(--bark); --c:var(--bone);
  display:inline-flex; align-items:center; gap:.7rem; min-height:3.1rem; padding:.8rem 1.1rem .8rem 1.45rem;
  border-radius:999px; background:var(--b); color:var(--c); border:1px solid var(--b);
  font-size:.9rem; font-weight:600; letter-spacing:.01em; text-decoration:none; cursor:pointer;
  transition:transform .5s var(--ease-out), background-color .35s ease, color .35s ease, border-color .35s ease; }
.btn .ar{ display:grid; place-items:center; width:1.9rem; height:1.9rem; border-radius:50%; background:var(--c); color:var(--b); overflow:hidden; transition:transform .5s var(--ease-out); }
.btn .ar svg{ width:.9rem; height:.9rem; transition:transform .5s var(--ease-out); }
.btn:hover .ar svg{ animation:nudge .6s var(--ease-out); }
@keyframes nudge{ 0%{transform:none} 45%{transform:translateX(140%)} 46%{transform:translateX(-140%)} 100%{transform:none} }
.btn:active{ transform:scale(.97); }
.btn--line{ --b:transparent; --c:var(--bark); border-color:var(--line-2); }
.btn--line .ar{ background:var(--bark); color:var(--bone); }
.btn--line:hover{ border-color:var(--bark); }
.btn--on{ --b:var(--on); --c:var(--soil); }
.btn--on .ar{ background:var(--soil); color:var(--on); }
.btn--on-line{ --b:transparent; --c:var(--on); border-color:var(--line-on-2); }
.btn--on-line .ar{ background:var(--on); color:var(--soil); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }

.chip{ display:inline-flex; align-items:center; gap:.45rem; padding:.42rem .85rem; border-radius:999px; border:1px solid var(--line-2); font-size:.74rem; font-weight:500; letter-spacing:.02em; white-space:nowrap; }
.chips{ display:flex; flex-wrap:wrap; gap:.45rem; }

/* ---------- header ---------- */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:50; padding-top:env(safe-area-inset-top); color:#FFF8EC;
  transition:background-color .5s ease, color .5s ease, box-shadow .5s ease, transform .6s var(--ease-out); }
.site-header.is-stuck{ color:var(--bark); background:rgba(242,237,228,.8); backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3); box-shadow:0 1px 0 var(--line); }
.site-header.is-hidden{ transform:translateY(-100%); }
.nav{ max-width:var(--max); margin:0 auto; padding:.95rem var(--gut); display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.logo{ display:flex; flex-direction:column; text-decoration:none; line-height:1; transition:opacity .45s ease; }
.logo b{ font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 60; font-size:1.35rem; letter-spacing:-.02em; }
.logo small{ margin-top:.3rem; font-size:.56rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; opacity:.7; }
.home .site-header:not(.is-stuck) .logo{ opacity:0; pointer-events:none; }
.menu{ display:none; align-items:center; gap:2rem; list-style:none; margin:0; padding:0; }
.menu a{ position:relative; font-size:.85rem; font-weight:500; text-decoration:none; opacity:.78; transition:opacity .3s ease; }
.menu a::after{ content:""; position:absolute; left:0; right:0; bottom:-.35rem; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease-out); }
.menu a:hover,.menu a.is-active{ opacity:1; }
.menu a:hover::after,.menu a.is-active::after{ transform:scaleX(1); transform-origin:left; }
.nav-cta{ display:none; }
.site-header .nav-cta{ padding:.55rem .6rem .55rem 1.1rem; min-height:0; font-size:.8rem; }
.site-header .nav-cta .ar{ width:1.6rem; height:1.6rem; }
.site-header:not(.is-stuck) .nav-cta{ --b:rgba(255,248,236,.14); --c:#FFF8EC; border-color:rgba(255,248,236,.35); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.site-header:not(.is-stuck) .nav-cta .ar{ background:#FFF8EC; color:var(--bark); }

.burger{ position:relative; display:grid; place-items:center; width:2.9rem; height:2.9rem; border-radius:50%; border:1px solid currentColor; border-color:color-mix(in srgb,currentColor 35%,transparent); background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.burger i{ position:absolute; left:50%; width:1.05rem; height:1.5px; margin-left:-.525rem; background:currentColor; border-radius:2px; transition:transform .5s var(--ease-out), opacity .2s ease; }
.burger i:nth-child(1){ transform:translateY(-3.5px); } .burger i:nth-child(2){ transform:translateY(3.5px); }
.burger[aria-expanded="true"] i:nth-child(1){ transform:rotate(45deg); }
.burger[aria-expanded="true"] i:nth-child(2){ transform:rotate(-45deg); }
.menu-open .site-header{ color:var(--bark); background:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
.menu-open .site-header .logo{ opacity:1 !important; pointer-events:auto !important; }

.drawer{ position:fixed; inset:0; z-index:45; background:var(--bone); color:var(--bark); overflow:auto;
  padding:calc(6.2rem + env(safe-area-inset-top)) var(--gut) calc(2rem + env(safe-area-inset-bottom));
  display:flex; flex-direction:column; justify-content:space-between; gap:2rem;
  clip-path:inset(0 0 100% 0 round 0 0 var(--r-xl) var(--r-xl)); visibility:hidden;
  transition:clip-path .8s var(--ease-out), visibility 0s .8s; }
.drawer.is-open{ clip-path:inset(0 0 0 0 round 0); visibility:visible; transition:clip-path .8s var(--ease-out), visibility 0s; }
.drawer ol{ list-style:none; margin:0; padding:0; counter-reset:d; }
.drawer li{ border-bottom:1px solid var(--line); opacity:0; transform:translateY(18px); transition:opacity .5s ease, transform .7s var(--ease-out); }
.drawer.is-open li{ opacity:1; transform:none; transition-delay:calc(.12s + var(--i) * .05s); }
.drawer a{ display:flex; align-items:baseline; gap:1rem; padding:1rem 0; text-decoration:none; font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 90; font-size:2rem; letter-spacing:-.025em; }
.drawer a::before{ counter-increment:d; content:"0" counter(d); font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.1em; color:var(--umber); }
.drawer-foot{ display:grid; gap:1rem; }
.drawer-foot p{ font-size:.85rem; color:var(--bark-2); }

/* ---------- hero: the view from the cottage ---------- */
.hero{ position:relative; height:100svh; min-height:34rem; overflow:hidden; background:#4a4150; isolation:isolate; border-radius:0 0 var(--r-xl) var(--r-xl); }
.scene{ position:absolute; left:0; top:0; width:100%; height:100%; will-change:transform; }
.scene img{ position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; }
.scene canvas{ position:absolute; left:0; top:0; display:block; }
.layer{ position:absolute; inset:0; will-change:transform; }
.l-sky{ z-index:0; } .l-glow{ z-index:1; } .l-mist{ z-index:2; } .l-birds{ z-index:3; } .l-thatch{ z-index:5; }
.l-glow{ background:radial-gradient(18% 34% at 82% 56%, rgba(255,226,150,.55), rgba(255,200,120,0) 70%); mix-blend-mode:screen; animation:breathe 9s ease-in-out infinite; }
@keyframes breathe{ 0%,100%{opacity:.35} 50%{opacity:.8} }
.l-mist span{ position:absolute; border-radius:50%; background:radial-gradient(closest-side, rgba(236,232,240,.55), rgba(236,232,240,0)); filter:blur(6px); }
.l-mist span:nth-child(1){ left:4%;  top:62%; width:34%; height:9%;  animation:mist 70s linear infinite; }
.l-mist span:nth-child(2){ left:40%; top:66%; width:26%; height:7%;  animation:mist 90s linear infinite reverse; opacity:.7; }
.l-mist span:nth-child(3){ left:62%; top:61%; width:22%; height:6%;  animation:mist 110s linear infinite; opacity:.55; }
@keyframes mist{ 0%{transform:translateX(-6%)} 50%{transform:translateX(6%)} 100%{transform:translateX(-6%)} }
.sky-title{ position:absolute; z-index:4; left:0; right:0; top:24%; margin:0; text-align:center; color:#FFF8EC; pointer-events:none;
  font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 144; text-shadow:0 1px 24px rgba(60,40,70,.28); will-change:transform,opacity; }
.sky-title .k{ display:block; font-size:clamp(4.4rem,16vw,13.5rem); line-height:.86; letter-spacing:-.045em; }
.sky-title .c{ display:block; margin-top:.9em; font-family:var(--sans); font-weight:600; font-size:clamp(.66rem,1.05vw,.84rem); letter-spacing:.5em; text-transform:uppercase; padding-left:.5em; }
.sky-title .k span{ display:inline-block; opacity:0; transform:translateY(.18em); filter:blur(8px); animation:letter 1.6s var(--ease) forwards; animation-delay:calc(.35s + var(--i) * .07s); }
.sky-title .c{ opacity:0; animation:fadeup 1.4s var(--ease) 1.3s forwards; }
@keyframes letter{ to{ opacity:1; transform:none; filter:blur(0); } }
@keyframes fadeup{ from{opacity:0; transform:translateY(.6rem)} to{opacity:.92; transform:none} }
.hero-top{ position:absolute; z-index:6; inset:0 0 auto 0; height:9rem; background:linear-gradient(rgba(20,12,6,.35), rgba(20,12,6,0)); pointer-events:none; }
.hero-foot{ position:absolute; z-index:6; left:0; right:0; bottom:0; padding:6rem var(--gut) calc(1.6rem + env(safe-area-inset-bottom));
  display:flex; justify-content:center; color:rgba(255,248,236,.88); background:linear-gradient(to top, rgba(20,16,10,.5), rgba(20,16,10,0)); pointer-events:none; }
.hero-meta{ font-size:.64rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; }
.scroll-cue{ position:absolute; left:50%; bottom:3.9rem; z-index:7; width:1px; height:2.2rem; background:linear-gradient(rgba(255,248,236,.85),transparent); animation:cue 2.6s ease-in-out infinite; }
@keyframes cue{ 0%,100%{opacity:.15;transform:scaleY(.45);transform-origin:top} 50%{opacity:.9;transform:scaleY(1);transform-origin:top} }

/* ---------- sections ---------- */
.sec{ position:relative; overflow:clip; padding:clamp(4.75rem,11vw,9rem) 0; }
.sec--tight{ padding-top:clamp(2.5rem,6vw,4.5rem); }
.head{ display:grid; gap:0; margin-bottom:clamp(2.5rem,5vw,3.75rem); }
@media (min-width:900px){ .head--split{ grid-template-columns:1.1fr .9fr; gap:4rem; align-items:end; } .head--split .lede{ margin:0; justify-self:end; } }

/* a deep, earth-dark panel with soft corners, floating on the bone page */
.panel{ position:relative; margin:0 .5rem; border-radius:var(--r-xl); background:var(--soil); color:var(--on); overflow:hidden; isolation:isolate; }
@media (min-width:900px){ .panel{ margin:0 1rem; } }
.panel .eyebrow{ color:var(--on-3); } .panel .eyebrow b{ color:var(--on-2); }
.panel .lede{ color:var(--on-2); }
.panel .chip{ border-color:var(--line-on-2); color:var(--on-2); }

/* ---------- watermark: golden rectangle & seed-head spiral ---------- */
.wm{ position:absolute; z-index:-1; pointer-events:none; user-select:none; opacity:.06; will-change:transform; }
.panel .wm{ filter:invert(1); opacity:.055; }
.wm--golden{ width:min(92vw,68rem); }
.wm--seed{ width:min(80vw,40rem); }

/* ---------- intro ---------- */
.intro{ text-align:left; overflow:hidden; }
.intro-text{ max-width:52rem; font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 60;
  font-size:clamp(1.45rem,3.1vw,2.35rem); line-height:1.38; letter-spacing:-.015em; color:var(--bark); }
.intro-text .w{ display:inline; opacity:.14; transition:opacity .5s ease; }
.intro-text .w.on{ opacity:1; }
.intro-note{ display:flex; align-items:center; gap:.9rem; margin-top:2.25rem; font-size:.86rem; font-weight:500; color:var(--bark-2); }
.intro-note svg{ width:1.3rem; height:1.3rem; flex:none; color:var(--umber); }

/* ---------- category index ---------- */
.cats{ display:grid; grid-auto-flow:column; grid-auto-columns:78%; gap:.85rem; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:0 var(--gut);
  padding:0 var(--gut) .5rem; margin:0 calc(var(--gut) * -1); scrollbar-width:none; overscroll-behavior-x:contain; }
.cats::-webkit-scrollbar{ display:none; }
@media (min-width:900px){ .cats{ grid-auto-flow:row; grid-template-columns:repeat(4,1fr); overflow:visible; margin:0; padding:0; gap:1rem; } }
.cat{ position:relative; display:flex; flex-direction:column; scroll-snap-align:start; text-decoration:none; color:var(--bark);
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:.55rem; transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out); }
.cat-img{ position:relative; aspect-ratio:4/5; border-radius:calc(var(--r-lg) - .45rem); overflow:hidden; background:var(--sand); }
.cat-img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease-out); }
.cat-no{ position:absolute; top:.8rem; left:.8rem; padding:.3rem .65rem; border-radius:999px; background:rgba(248,245,239,.86); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); font-size:.68rem; font-weight:700; letter-spacing:.08em; }
.cat-body{ display:flex; align-items:flex-end; justify-content:space-between; gap:.75rem; padding:1.05rem .6rem .6rem; }
.cat h3{ font-size:1.45rem; }
.cat p{ margin-top:.3rem; font-size:.84rem; line-height:1.5; color:var(--umber); }
.cat .arw{ flex:none; display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:50%; border:1px solid var(--line-2); transition:background-color .4s ease, color .4s ease, transform .6s var(--ease-out); }
.cat .arw svg{ width:.85rem; height:.85rem; }
@media (hover:hover){
  .cat:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -30px rgba(46,39,32,.35); }
  .cat:hover .cat-img img{ transform:scale(1.06); }
  .cat:hover .arw{ background:var(--bark); color:var(--bone); transform:rotate(-45deg); }
}
.rail-hint{ display:flex; align-items:center; gap:.9rem; margin-top:1.25rem; }
.rail-bar{ position:relative; flex:1; height:2px; border-radius:2px; background:var(--line); overflow:hidden; }
.rail-bar i{ position:absolute; inset:0 auto 0 0; width:25%; border-radius:2px; background:var(--bark); transition:transform .25s linear; }
.rail-hint span{ font-size:.68rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--umber); }
@media (min-width:900px){ .rail-hint--cats{ display:none; } }

/* ---------- getting here ---------- */
.frame{ border-radius:var(--r-lg); overflow:hidden; background:var(--sand); }
.frame img{ width:100%; height:100%; object-fit:cover; }
.pano{ aspect-ratio:16/10; }
@media (min-width:700px){ .pano{ aspect-ratio:1152/520; } }
.caption{ margin-top:.8rem; font-size:.78rem; color:var(--umber); }
.journey{ list-style:none; margin:clamp(2.5rem,5vw,3.5rem) 0 0; padding:0; display:grid; gap:0; counter-reset:j; }
.step{ position:relative; display:grid; grid-template-columns:3.25rem 1fr; gap:1.1rem; padding-bottom:2rem; align-content:start; }
.step:last-child{ padding-bottom:0; }
.step::before{ content:""; position:absolute; left:1.625rem; top:3.4rem; bottom:.2rem; width:1px; background:repeating-linear-gradient(var(--stone) 0 5px, transparent 5px 10px); }
.step:last-child::before{ display:none; }
.step-ico{ display:grid; place-items:center; width:3.25rem; height:3.25rem; border-radius:50%; background:var(--paper); border:1px solid var(--line-2); color:var(--bark); }
.step-ico svg{ width:1.45rem; height:1.45rem; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
/* the jeep: a photograph the size of an icon; it opens on tap, and peeks on hover */
.step-photo{ position:relative; padding:0; overflow:visible; cursor:zoom-in; border-color:var(--line-2); background:var(--sand); -webkit-tap-highlight-color:transparent; }
.step-photo > img{ width:100%; height:100%; border-radius:50%; object-fit:cover; transition:transform .6s var(--ease-out); }
.step-photo::after{ content:""; position:absolute; inset:-5px; border-radius:50%; border:1px solid var(--stone); opacity:.9; animation:ring 3.2s var(--ease-out) infinite; pointer-events:none; }
@keyframes ring{ 0%{ transform:scale(.92); opacity:.9; } 70%,100%{ transform:scale(1.22); opacity:0; } }
.step-photo:active > img{ transform:scale(.94); }
.peek{ position:absolute; left:50%; bottom:calc(100% + 14px); width:11rem; aspect-ratio:3/4; border-radius:var(--r); overflow:hidden; background:var(--sand);
  box-shadow:0 30px 60px -24px rgba(34,28,23,.55); opacity:0; visibility:hidden; transform:translate(-50%,10px) scale(.94); transform-origin:50% 100%;
  transition:opacity .4s ease, transform .6s var(--ease-out), visibility 0s .4s; pointer-events:none; z-index:5; }
.peek img{ width:100%; height:100%; object-fit:cover; }
@media (hover:hover) and (pointer:fine){
  .step-photo:hover .peek, .step-photo:focus-visible .peek{ opacity:1; visibility:visible; transform:translate(-50%,0) scale(1); transition:opacity .4s ease, transform .6s var(--ease-out), visibility 0s; }
  .step-photo:hover > img{ transform:scale(1.08); }
}
@media (min-width:900px){ .peek{ left:0; transform:translate(0,10px) scale(.94); transform-origin:1.6rem 100%; }
  .step-photo:hover .peek, .step-photo:focus-visible .peek{ transform:none; } }
@media (prefers-reduced-motion:reduce){ .step-photo::after{ animation:none; opacity:.6; transform:scale(1.1); } }
.step small{ display:block; font-size:.66rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--umber); }
.step h3{ margin:.2rem 0 .35rem; font-size:1.45rem; }
.step p{ font-size:.95rem; color:var(--bark-2); }
.step .chip{ margin-top:.75rem; }
@media (min-width:900px){
  .journey{ grid-template-columns:repeat(3,1fr); gap:2rem; }
  .step{ grid-template-columns:1fr; gap:1.2rem; padding:0; }
  .step::before{ left:3.9rem; right:-1.5rem; top:1.625rem; bottom:auto; width:auto; height:1px; background:repeating-linear-gradient(90deg,var(--stone) 0 5px, transparent 5px 10px); }
}

/* ---------- sunrise ---------- */
.feature{ position:relative; margin:0 .5rem; border-radius:var(--r-xl); overflow:hidden; min-height:clamp(34rem,88vh,52rem); display:flex; align-items:flex-end; color:#FFF8EC; isolation:isolate; }
@media (min-width:900px){ .feature{ margin:0 1rem; } }
.feature > img{ position:absolute; inset:-8% 0; width:100%; height:116%; object-fit:cover; z-index:-2; will-change:transform; }
.feature::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(26,20,14,.78) 0%, rgba(26,20,14,.25) 45%, rgba(26,20,14,0) 70%); }
.feature .wrap{ padding-bottom:clamp(2.25rem,6vw,4.5rem); }
.feature .eyebrow{ color:rgba(255,248,236,.75); }
.feature h2{ max-width:16ch; }
.feature .lede{ color:rgba(255,248,236,.84); }

/* ---------- stay ---------- */
.stays{ display:grid; gap:1rem; }
@media (min-width:900px){ .stays{ grid-template-columns:1fr 1fr; gap:1.25rem; } }
.stay{ display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:.55rem; }
.stay .frame{ aspect-ratio:16/10; border-radius:calc(var(--r-lg) - .45rem); }
.stay .frame img{ transition:transform 1.4s var(--ease-out); }
@media (hover:hover){ .stay:hover .frame img{ transform:scale(1.045); } }
.stay-body{ padding:1.5rem 1rem 1rem; display:flex; flex-direction:column; flex:1; }
.stay-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.stay-from{ text-align:right; white-space:nowrap; }
.stay-from small{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--umber); }
.stay-from b{ font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 40; font-size:1.5rem; }
.stay-body > p{ margin-top:.75rem; font-size:.95rem; color:var(--bark-2); }
.rates{ list-style:none; margin:1.4rem 0 0; padding:0; border-top:1px solid var(--line); }
.rates li{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); font-size:.9rem; color:var(--bark-2); }
.rates b{ font-family:var(--serif); font-weight:400; font-variation-settings:var(--soft),"opsz" 30; font-size:1.1rem; color:var(--bark); white-space:nowrap; }
.rates b small{ font-family:var(--sans); font-size:.66rem; font-weight:500; color:var(--umber); }
.includes{ margin-top:1rem; padding:1.6rem 1.4rem; border-radius:var(--r-lg); background:var(--sand); display:grid; gap:1.1rem; }
@media (min-width:900px){ .includes{ grid-template-columns:auto 1fr; align-items:center; gap:2.5rem; padding:1.6rem 2rem; } }
.includes h3{ font-size:1.25rem; }
.includes .chips .chip{ background:var(--paper); border-color:transparent; font-size:.8rem; padding:.5rem .95rem; }
.includes .small{ grid-column:1/-1; }

/* ---------- adventures ---------- */
.adv{ padding:clamp(4.25rem,10vw,8rem) 0; }
.seg{ position:relative; display:inline-grid; grid-template-columns:1fr 1fr; padding:.3rem; border-radius:999px; background:rgba(241,234,223,.07); border:1px solid var(--line-on); margin-bottom:2rem; max-width:100%; }
.seg button{ position:relative; z-index:1; border:0; background:transparent; padding:.8rem 1.2rem; border-radius:999px; font-size:.86rem; font-weight:600; color:var(--on-3); cursor:pointer; white-space:nowrap; transition:color .45s ease; -webkit-tap-highlight-color:transparent; }
.seg button[aria-selected="true"]{ color:var(--soil); }
.seg-pill{ position:absolute; z-index:0; top:.3rem; bottom:.3rem; left:.3rem; border-radius:999px; background:var(--on); transition:transform .7s var(--ease-out), width .7s var(--ease-out); }
.tabpanel{ animation:panelIn .8s var(--ease-out); }
.tabpanel[hidden]{ display:none; }
@keyframes panelIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

.guide{ display:flex; align-items:center; gap:1rem; padding:1rem 1.15rem; border-radius:var(--r); background:rgba(241,234,223,.06); border:1px solid var(--line-on); margin-bottom:1rem; }
.guide img{ width:3.4rem; height:3.4rem; border-radius:50%; object-fit:cover; object-position:center 20%; flex:none; }
.guide b{ display:block; font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 40; font-size:1.2rem; line-height:1.2; }
.guide span{ font-size:.82rem; color:var(--on-2); }
.guide .price{ margin-left:auto; text-align:right; white-space:nowrap; }
.guide .price b{ font-size:1.5rem; }
.guide .price span{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--on-3); }

.trips{ display:grid; grid-auto-flow:column; grid-auto-columns:84%; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:0 var(--gut);
  margin:0 calc(var(--gut) * -1); padding:0 var(--gut) .25rem; scrollbar-width:none; overscroll-behavior-x:contain; }
.trips::-webkit-scrollbar{ display:none; }
@media (min-width:900px){ .trips{ grid-auto-flow:row; grid-template-columns:repeat(2,1fr); overflow:visible; margin:0; padding:0; gap:1rem; } }
.trip{ scroll-snap-align:start; display:flex; flex-direction:column; padding:1.6rem 1.4rem 1.4rem; border-radius:var(--r-lg); background:rgba(241,234,223,.05); border:1px solid var(--line-on); transition:background-color .5s ease, transform .7s var(--ease-out), border-color .5s ease; }
@media (hover:hover){ .trip:hover{ background:rgba(241,234,223,.09); border-color:var(--line-on-2); transform:translateY(-4px); } }
.trip-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:2.25rem; }
.trip-no{ font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 144; font-size:2.6rem; line-height:1; color:var(--on-3); }
.trip h3{ font-size:1.7rem; }
.trip > p{ margin-top:.6rem; font-size:.94rem; color:var(--on-2); }
.facts{ margin:auto 0 0; padding-top:1.4rem; display:grid; }
.facts div{ display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--line-on); font-size:.86rem; }
.facts dt{ color:var(--on-3); } .facts dd{ margin:0; text-align:right; color:var(--on); }
.panel .rail-hint span{ color:var(--on-3); }
.panel .rail-bar{ background:var(--line-on); } .panel .rail-bar i{ background:var(--on); }
@media (min-width:900px){ .rail-hint--trips{ display:none; } }

/* ---------- stone cave teaser ---------- */
.cave{ position:relative; margin:0 .5rem; border-radius:var(--r-xl); overflow:hidden; color:#FFF8EC; isolation:isolate; background:var(--soil); }
@media (min-width:900px){ .cave{ margin:0 1rem; } }
.cave > img{ position:absolute; inset:-8% 0; width:100%; height:116%; object-fit:cover; z-index:-2; will-change:transform; }
.cave::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(20,16,12,.45) 0%, rgba(20,16,12,.2) 35%, rgba(20,16,12,.88) 78%, rgba(20,16,12,.95) 100%); }
.cave .wrap{ min-height:clamp(40rem,100vh,58rem); display:flex; flex-direction:column; justify-content:space-between; padding-top:clamp(2.5rem,6vw,4rem); padding-bottom:clamp(2.5rem,6vw,4rem); }
.cave .eyebrow{ color:rgba(255,248,236,.8); }
.cave-title{ margin-bottom:.35em; font-size:clamp(4.6rem,17vw,12.5rem); line-height:.84; letter-spacing:-.05em; font-weight:300; }
.cave .chips .chip{ border-color:rgba(255,248,236,.32); color:#FFF8EC; background:rgba(255,248,236,.06); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.cave-foot{ display:grid; gap:1.5rem; }
@media (min-width:900px){ .cave-foot{ grid-template-columns:1.1fr .9fr; align-items:end; gap:4rem; } }
.cave-foot p{ max-width:34rem; font-size:1.02rem; color:rgba(255,248,236,.86); }
.cave-price{ display:flex; align-items:baseline; gap:.6rem; margin-top:1.1rem; }
.cave-price b{ font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 60; font-size:2rem; }
.cave-price span{ font-size:.8rem; color:rgba(255,248,236,.7); }

/* ---------- gallery (magnetic) ---------- */
.gal-stage{ position:relative; }
.gal-track{ display:flex; align-items:center; gap:12px; padding:2rem var(--gut); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.gal-track::-webkit-scrollbar{ display:none; }
.gal-bar{ position:relative; flex:none; width:126px; height:280px; border:0; padding:0; border-radius:var(--r); background:var(--sand) center/cover no-repeat; cursor:pointer; scroll-snap-align:center; overflow:hidden; transform-origin:center bottom; -webkit-tap-highlight-color:transparent; }
.gal-bar::after{ content:""; position:absolute; inset:0; background:rgba(46,39,32,.28); transition:opacity .5s ease; }
.gal-bar.is-near::after{ opacity:0; }
@media (min-width:900px){ .gal-track{ justify-content:center; overflow:visible; scroll-snap-type:none; } .gal-bar{ width:100px; height:320px; } }
.gal-hint{ margin-top:1.25rem; font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--umber); }

.lightbox{ position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:1.25rem; background:rgba(28,23,19,.92); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); opacity:0; visibility:hidden; transition:opacity .45s ease, visibility 0s .45s; }
.lightbox.is-open{ opacity:1; visibility:visible; transition:opacity .45s ease, visibility 0s; }
.lightbox img{ max-width:min(94vw,80rem); max-height:84vh; border-radius:var(--r); object-fit:contain; transform:scale(.96); transition:transform .7s var(--ease-out); }
.lightbox.is-open img{ transform:none; }
.lightbox-close{ position:absolute; top:calc(1rem + env(safe-area-inset-top)); right:1rem; width:3rem; height:3rem; border-radius:50%; border:1px solid rgba(241,234,223,.3); background:transparent; color:var(--on); font-size:1.5rem; cursor:pointer; }

/* ---------- before you come ---------- */
.before{ display:grid; gap:2.5rem; }
@media (min-width:900px){ .before{ grid-template-columns:.8fr 1.2fr; gap:5rem; } }
.times{ display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.time{ padding:1.4rem 1.3rem; border-radius:var(--r-lg); background:var(--paper); border:1px solid var(--line); }
.time small{ display:block; font-size:.64rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--umber); }
.time b{ display:block; white-space:nowrap; margin-top:.55rem; font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 144; font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1; letter-spacing:-.03em; }
.bring{ list-style:none; margin:0; padding:0; counter-reset:b; border-top:1px solid var(--line-2); }
.bring li{ display:grid; grid-template-columns:2.75rem 1fr; gap:.5rem; padding:1.25rem 0; border-bottom:1px solid var(--line); }
.bring li::before{ counter-increment:b; content:"0" counter(b); font-size:.72rem; font-weight:700; letter-spacing:.08em; color:var(--umber); padding-top:.3rem; }
.bring b{ display:block; font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 40; font-size:1.25rem; line-height:1.25; }
.bring span{ display:block; margin-top:.2rem; font-size:.92rem; color:var(--bark-2); }
.leaf-note{ margin-top:1.5rem; display:flex; gap:1rem; align-items:flex-start; padding:1.35rem 1.35rem; border-radius:var(--r-lg); background:var(--bark); color:var(--on); }
.leaf-note svg{ flex:none; width:1.6rem; height:1.6rem; margin-top:.1rem; color:var(--on-2); }
.leaf-note p{ font-size:.95rem; color:var(--on-2); }
.leaf-note b{ color:var(--on); font-weight:600; }

/* ---------- host ---------- */
.host{ display:grid; gap:2.5rem; align-items:center; }
@media (min-width:900px){ .host{ grid-template-columns:.8fr 1.2fr; gap:5rem; } }
.arch{ position:relative; aspect-ratio:4/5; max-width:26rem; border-radius:999px 999px var(--r-lg) var(--r-lg); overflow:hidden; background:var(--sand); }
.arch img{ width:100%; height:100%; object-fit:cover; }
.host-body p{ margin-top:1.1rem; font-size:1.02rem; color:var(--bark-2); max-width:34rem; }
.host-body h2{ margin-top:.25rem; }
.sign{ display:flex; align-items:center; gap:.75rem; margin-top:1.75rem; font-size:.82rem; color:var(--umber); }
.sign::before{ content:""; width:2rem; height:1px; background:currentColor; }

/* ---------- plan / reach ---------- */
.plan{ padding:clamp(3.5rem,8vw,6rem) 0; }
.plan-grid{ display:grid; gap:2.5rem; }
@media (min-width:980px){ .plan-grid{ grid-template-columns:.9fr 1.1fr; gap:4.5rem; } }
.form{ display:grid; gap:.8rem; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.field{ display:grid; gap:.4rem; }
.field > span, .field legend{ font-size:.66rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--on-3); padding:0; }
.field input[type=text], .field input[type=date]{ width:100%; min-height:3.2rem; padding:.75rem 1rem; border-radius:var(--r-sm); border:1px solid var(--line-on-2); background:rgba(241,234,223,.05); color:var(--on); font:inherit; font-size:1rem; color-scheme:dark; transition:border-color .3s ease, background-color .3s ease; }
.field input:focus{ outline:none; border-color:var(--on-2); background:rgba(241,234,223,.09); }
fieldset.field{ border:0; margin:0; padding:0; min-width:0; }
.opts{ display:flex; flex-wrap:wrap; gap:.45rem; }
.opt{ position:relative; }
.opt input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.opt span{ display:inline-flex; align-items:center; min-height:2.6rem; padding:.5rem 1rem; border-radius:999px; border:1px solid var(--line-on-2); font-size:.84rem; color:var(--on-2); transition:background-color .35s ease, color .35s ease, border-color .35s ease; }
.opt input:checked + span{ background:var(--on); color:var(--soil); border-color:var(--on); }
.opt input:focus-visible + span{ outline:2px solid var(--on-2); outline-offset:2px; }
.stepper{ display:flex; align-items:center; justify-content:space-between; min-height:3.2rem; padding:.3rem; border-radius:var(--r-sm); border:1px solid var(--line-on-2); }
.stepper button{ width:2.6rem; height:2.6rem; border-radius:10px; border:0; background:rgba(241,234,223,.08); color:var(--on); font-size:1.2rem; cursor:pointer; }
.stepper output{ font-family:var(--serif); font-size:1.3rem; font-variation-settings:var(--soft),"opsz" 30; }
.form .btn{ justify-self:start; margin-top:.6rem; }
.contacts{ list-style:none; margin:2rem 0 0; padding:0; border-top:1px solid var(--line-on); }
.contacts a{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.05rem 0; border-bottom:1px solid var(--line-on); text-decoration:none; }
.contacts small{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--on-3); }
.contacts b{ display:block; margin-top:.15rem; font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 40; font-size:1.15rem; word-break:break-word; }
.contacts svg{ flex:none; width:1rem; height:1rem; color:var(--on-3); transition:transform .5s var(--ease-out), color .3s ease; }
.contacts a:hover svg{ transform:translate(3px,-3px); color:var(--on); }

/* ---------- footer ---------- */
.foot{ padding:clamp(4rem,9vw,7rem) 0 calc(2rem + env(safe-area-inset-bottom)); position:relative; overflow:hidden; }
.foot-mark{ font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 144; font-size:clamp(4rem,19vw,15rem); line-height:.8; letter-spacing:-.055em; color:var(--bark); opacity:.9; }
.foot-row{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.25rem 2rem; margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--line-2); font-size:.82rem; color:var(--bark-2); }
.foot-row nav{ display:flex; flex-wrap:wrap; gap:.4rem 1.5rem; }
.foot-row a{ text-decoration:none; } .foot-row a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* ---------- floating whatsapp ---------- */
.wa{ position:fixed; right:max(1rem,env(safe-area-inset-right)); bottom:calc(1rem + env(safe-area-inset-bottom)); z-index:40;
  display:flex; align-items:center; gap:.6rem; height:3.5rem; padding:0 1.05rem; border-radius:999px; background:var(--bark); color:var(--bone); text-decoration:none;
  box-shadow:0 18px 40px -16px rgba(34,28,23,.6); transform:translateY(160%); transition:transform .8s var(--ease-out); }
.wa.is-on{ transform:none; }
.wa svg{ width:1.4rem; height:1.4rem; fill:currentColor; }
.wa .lbl{ display:none; font-size:.86rem; font-weight:600; }
@media (min-width:1024px){ .wa .lbl{ display:inline; } .wa{ padding:0 1.35rem 0 1.1rem; } }

/* ---------- reveal motion ---------- */
.rv{ opacity:0; transform:translateY(28px); filter:blur(6px); transition:opacity 1.1s var(--ease-out), transform 1.2s var(--ease-out), filter 1.1s var(--ease-out); transition-delay:var(--d,0s); }
.rv.in{ opacity:1; transform:none; filter:none; }
.rv-img{ clip-path:inset(9% 7% 9% 7% round var(--r-lg)); transition:clip-path 1.5s var(--ease-out); }
.rv-img img{ transform:scale(1.14); transition:transform 1.8s var(--ease-out); }
.rv-img.in{ clip-path:inset(0 0 0 0 round var(--r-lg)); }
.rv-img.in img{ transform:none; }

/* ---------- desktop nav ---------- */
@media (min-width:1024px){
  .menu{ display:flex; } .nav-cta{ display:inline-flex; } .burger,.drawer{ display:none; }
}

/* ==========================================================================
   Stone Cave page
   ========================================================================== */
.sub-hero{ position:relative; height:92svh; min-height:36rem; display:flex; align-items:flex-end; color:#FFF8EC; overflow:hidden; border-radius:0 0 var(--r-xl) var(--r-xl); isolation:isolate; background:var(--soil); }
.sub-hero > img{ position:absolute; inset:0; width:100%; height:110%; object-fit:cover; z-index:-2; will-change:transform; animation:settle 2.4s var(--ease-out) both; }
@keyframes settle{ from{ transform:scale(1.12); } to{ transform:none; } }
.sub-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(20,16,12,.5) 0%, rgba(20,16,12,.05) 30%, rgba(20,16,12,.25) 55%, rgba(20,16,12,.85) 100%); }
.sub-hero .wrap{ padding-bottom:clamp(2.5rem,6vw,4.5rem); }
.crumb{ display:inline-flex; align-items:center; gap:.5rem; margin-bottom:1.5rem; font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; color:rgba(255,248,236,.8); }
.crumb svg{ width:.85rem; height:.85rem; transform:rotate(180deg); }
.sub-hero h1{ font-size:clamp(4.8rem,19vw,14rem); line-height:.82; letter-spacing:-.055em; }
.sub-hero h1 span{ display:inline-block; opacity:0; transform:translateY(.2em); filter:blur(10px); animation:letter 1.6s var(--ease-out) forwards; animation-delay:calc(.2s + var(--i) * .06s); }
.sub-hero .chips{ margin-top:1.75rem; }
.sub-hero .chip{ border-color:rgba(255,248,236,.32); color:#FFF8EC; background:rgba(255,248,236,.06); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }

.lead-big{ max-width:50rem; font-family:var(--serif); font-weight:300; font-variation-settings:var(--soft),"opsz" 60; font-size:clamp(1.5rem,3.2vw,2.4rem); line-height:1.35; letter-spacing:-.015em; }
.fact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-top:clamp(2.5rem,5vw,3.5rem); }
@media (min-width:900px){ .fact-grid{ grid-template-columns:repeat(4,1fr); } }
.fact{ padding:1.3rem 1.2rem; border-radius:var(--r-lg); background:var(--paper); border:1px solid var(--line); }
.fact small{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--umber); }
.fact b{ display:block; margin-top:.5rem; font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 40; font-size:1.3rem; line-height:1.2; }
.fact--wide{ grid-column:1/-1; }
@media (min-width:900px){ .fact--wide{ grid-column:span 2; } }

.days{ display:grid; gap:1rem; }
@media (min-width:900px){ .days{ grid-template-columns:.85fr 1.15fr; gap:5rem; align-items:start; } .days-head{ position:sticky; top:7rem; } }
.timeline{ list-style:none; margin:0; padding:0; position:relative; }
.timeline::before{ content:""; position:absolute; left:1.4rem; top:1.5rem; bottom:1.5rem; width:1px; background:var(--line-on-2); }
.timeline::after{ content:""; position:absolute; left:1.4rem; top:1.5rem; width:1px; height:calc(var(--p,0) * (100% - 3rem)); background:var(--on); transition:height .15s linear; }
.day{ position:relative; display:grid; grid-template-columns:2.8rem 1fr; gap:1.25rem; padding:0 0 1.25rem; }
.day:last-child{ padding-bottom:0; }
.day-dot{ position:relative; z-index:1; display:grid; place-items:center; width:2.8rem; height:2.8rem; border-radius:50%; background:var(--soil); border:1px solid var(--line-on-2); font-family:var(--serif); font-size:1.05rem; color:var(--on-2); transition:background-color .6s ease, color .6s ease, border-color .6s ease; }
.day.is-lit .day-dot{ background:var(--on); color:var(--soil); border-color:var(--on); }
.day-card{ padding:1.5rem 1.4rem; border-radius:var(--r-lg); background:rgba(241,234,223,.05); border:1px solid var(--line-on); }
.day-card small{ font-size:.64rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--on-3); }
.day-card h3{ margin:.35rem 0 .5rem; font-size:1.65rem; }
.day-card p{ color:var(--on-2); font-size:.98rem; }

.split-img{ display:grid; gap:1rem; }
@media (min-width:900px){ .split-img{ grid-template-columns:1.3fr .7fr; align-items:end; gap:3rem; } }
.split-img .frame{ aspect-ratio:16/9; }

.incl{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
@media (min-width:700px){ .incl{ grid-template-columns:1fr 1fr; } }
.incl li{ display:flex; align-items:center; gap:.85rem; padding:1.05rem 1.2rem; border-radius:var(--r); background:var(--paper); border:1px solid var(--line); font-size:.95rem; }
.incl svg{ flex:none; width:1.1rem; height:1.1rem; color:var(--umber); }

.next{ display:grid; gap:.75rem; }
@media (min-width:900px){ .next{ grid-template-columns:1fr 1fr; } }
.next a{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.4rem 1.5rem; border-radius:var(--r-lg); border:1px solid var(--line-2); text-decoration:none; transition:background-color .4s ease, border-color .4s ease; }
.next a:hover{ background:var(--paper); border-color:var(--bark); }
.next small{ display:block; font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--umber); }
.next b{ display:block; margin-top:.2rem; font-family:var(--serif); font-weight:350; font-variation-settings:var(--soft),"opsz" 40; font-size:1.35rem; }
.next svg{ width:1rem; height:1rem; flex:none; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-delay:0s !important; transition-duration:.01ms !important; }
  .rv,.rv-img,.rv-img img{ opacity:1 !important; transform:none !important; filter:none !important; clip-path:none !important; }
  .sky-title .k span,.sky-title .c,.sub-hero h1 span{ opacity:1 !important; transform:none !important; filter:none !important; }
  .intro-text .w{ opacity:1 !important; }
}
