:root{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-3xl:clamp(2.5rem,1rem + 4vw,5rem);
  --text-hero:clamp(2.75rem,.5rem + 6.4vw,7rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --font-display:'Zodiak','Cormorant Garamond',Georgia,serif;
  --font-body:'Switzer','Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --content-narrow:760px;--content-wide:1240px;
}
:root,[data-theme="light"]{
  --color-bg:#f3ede3;
  --color-surface:#ebe3d6;
  --color-surface-2:#e4dacb;
  --color-text:#231c17;
  --color-text-muted:#6b5f55;
  --color-divider:#d6cbbb;
  --color-primary:#9a2f22;
  --color-primary-hover:#7a2419;
  --color-on-primary:#fbf6ee;
}
[data-theme="dark"]{
  --color-bg:#15110e;
  --color-surface:#1d1814;
  --color-surface-2:#26201b;
  --color-text:#ece3d5;
  --color-text-muted:#a79a8b;
  --color-divider:#3a3129;
  --color-primary:#d9785d;
  --color-primary-hover:#e89479;
  --color-on-primary:#1a120d;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme]){
    --color-bg:#15110e;--color-surface:#1d1814;--color-surface-2:#26201b;--color-text:#ece3d5;--color-text-muted:#a79a8b;--color-divider:#3a3129;--color-primary:#d9785d;--color-primary-hover:#e89479;--color-on-primary:#1a120d;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;-webkit-font-smoothing:antialiased;transition:background .4s var(--ease),color .4s var(--ease)}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:400;text-wrap:balance}
p{margin:0 0 var(--space-4);text-wrap:pretty}
em{font-style:italic}
.skip{position:absolute;left:-999px}
.skip:focus{left:var(--space-4);top:var(--space-4);z-index:100;background:var(--color-bg);padding:var(--space-2) var(--space-4)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}

.container{width:min(100% - 2*clamp(var(--space-5),5vw,var(--space-16)),var(--content-wide));margin-inline:auto}
.narrow{max-width:var(--content-narrow)}
.section{padding-block:clamp(var(--space-16),10vw,var(--space-32))}
.eyebrow{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--color-primary);margin-bottom:var(--space-5)}
.eyebrow.light{color:#f4d9b8}
.section-title{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.08;letter-spacing:-.01em;margin-bottom:var(--space-6)}
.section-head{max-width:720px;margin-bottom:clamp(var(--space-12),7vw,var(--space-24))}
.section-intro{color:var(--color-text-muted);max-width:60ch}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-primary);color:var(--color-on-primary);border:0;border-radius:999px;padding:var(--space-4) var(--space-8);font:500 var(--text-sm)/1 var(--font-body);letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:background .25s var(--ease),transform .25s var(--ease)}
.btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}
.btn-small{padding:var(--space-3) var(--space-5);font-size:var(--text-xs)}
.btn-light{background:#f6efe4;color:#231c17}
.btn-light:hover{background:#fff}
.link-light{color:#f6efe4;text-decoration:none;font-size:var(--text-sm);border-bottom:1px solid rgba(246,239,228,.5);padding-bottom:2px}
.link-light:hover{border-color:#f6efe4}

/* Header */
.site-header{position:fixed;inset:0 0 auto;z-index:50;color:#f6efe4;transition:background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease)}
.site-header.scrolled{background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--color-text);box-shadow:0 1px 0 var(--color-divider)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) clamp(var(--space-5),4vw,var(--space-12))}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none}
.logo{width:40px;height:40px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-top{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.08em}
.brand-sub{white-space:nowrap;font-size:.6875rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8;margin-top:4px}
.nav{display:flex;gap:clamp(var(--space-4),1.8vw,var(--space-10))}
.nav a{white-space:nowrap;text-decoration:none;font-size:var(--text-sm);opacity:.9;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:var(--space-3)}
.theme-toggle{background:none;border:1px solid currentColor;border-radius:999px;width:38px;height:38px;display:grid;place-items:center;color:inherit;cursor:pointer;opacity:.8}
.theme-toggle:hover{opacity:1}
.site-header:not(.scrolled) .btn-small{background:#f6efe4;color:#231c17}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#f6efe4;overflow:hidden;background:#1a1410}
.hero-media,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media{background:#1a1410 url(assets/hero-machu-picchu.webp) center/cover no-repeat}
.hero-media video{animation:heroZoom 24s var(--ease) both}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,8,.55) 0%,rgba(18,12,8,.1) 30%,rgba(18,12,8,.25) 55%,rgba(18,12,8,.82) 100%)}
.hero-content{position:relative;z-index:2;padding:0 clamp(var(--space-5),5vw,var(--space-16)) clamp(var(--space-16),10vh,var(--space-24));max-width:1100px}
.hero-title{font-family:var(--font-display);font-size:var(--text-hero);line-height:.98;letter-spacing:-.02em;margin-bottom:var(--space-8);opacity:0;animation:rise 1.4s .2s var(--ease) forwards}
.hero-title em{color:#f0c8a0}
.hero-lede{max-width:54ch;font-size:var(--text-base);color:rgba(246,239,228,.88);margin-bottom:var(--space-8);opacity:0;animation:rise 1.4s .45s var(--ease) forwards}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);opacity:0;animation:rise 1.4s .65s var(--ease) forwards}
.hero-caption{position:absolute;right:clamp(var(--space-5),4vw,var(--space-12));bottom:var(--space-8);z-index:2;margin:0;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:rgba(246,239,228,.65)}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* Manifesto */
.manifesto{text-align:center}
.manifesto .eyebrow{margin-inline:auto}
.manifesto-text{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.35;margin-bottom:var(--space-8)}
.manifesto-text em{color:var(--color-primary)}
.manifesto-body{color:var(--color-text-muted);max-width:60ch;margin-inline:auto}

/* Marquee */
.marquee{overflow:hidden;border-block:1px solid var(--color-divider);padding-block:var(--space-6)}
.marquee-track{display:flex;gap:var(--space-8);width:max-content;animation:marquee 50s linear infinite;font-family:var(--font-display);font-size:var(--text-xl);font-style:italic;color:var(--color-text-muted);white-space:nowrap}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Roy */
.roy-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(var(--space-10),7vw,var(--space-24));align-items:center}
.roy-image{margin:0;border-radius:2px;position:relative;isolation:isolate}
.roy-image img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;position:relative;z-index:1;border-radius:2px;box-shadow:0 24px 50px -24px rgba(30,18,10,.45)}
.roy-text p:not(.eyebrow):not(.signature){color:var(--color-text-muted)}
.roy-text em{color:var(--color-text)}
.signature{font-family:var(--font-display);font-size:var(--text-xl);font-style:italic;margin-top:var(--space-8);display:flex;flex-direction:column;gap:var(--space-1)}
.signature span{font-family:var(--font-body);font-style:normal;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted)}

/* Chapters */
.experience{background:var(--color-surface)}
.chapter{display:grid;grid-template-columns:7fr 5fr;gap:clamp(var(--space-8),6vw,var(--space-20));align-items:center;margin-bottom:clamp(var(--space-16),10vw,var(--space-32))}
.chapter:last-child{margin-bottom:0}
.chapter.reverse{grid-template-columns:5fr 7fr}
.chapter.reverse .chapter-img{order:2}
.chapter-img{margin:0;border-radius:2px;position:relative;isolation:isolate}
.chapter-img.tall{aspect-ratio:4/5;max-height:80vh}
.chapter-img.wide{aspect-ratio:3/2}
.chapter-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.chapter:hover .chapter-img img{transform:translate(-4px,-4px)}
.chapter-num{display:block;font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-primary);margin-bottom:var(--space-4)}
.chapter h3{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.05;margin-bottom:var(--space-3)}
.chapter-kicker{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-6)}
.chapter-text p:last-child{color:var(--color-text-muted);max-width:44ch}

/* Bleed */
.bleed{position:relative;min-height:90vh;display:flex;align-items:flex-end;color:#f6efe4;overflow:hidden}
.bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bleed-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(12,10,20,.7))}
.bleed-quote{position:relative;margin:0;padding:0 clamp(var(--space-5),5vw,var(--space-16)) clamp(var(--space-12),8vw,var(--space-24));max-width:900px}
.bleed-quote p{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.3;font-style:italic}
.bleed-quote cite{font-style:normal;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;opacity:.75}

/* Journeys */
.journey-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(var(--space-5),3vw,var(--space-10))}
.journey{background:var(--color-surface);display:flex;flex-direction:column;border-radius:2px;overflow:hidden;transition:transform .5s var(--ease)}
.journey:hover{transform:translateY(-6px)}
.journey.featured{transform:translateY(calc(-1*var(--space-8)))}
.journey.featured:hover{transform:translateY(calc(-1*var(--space-8) - 6px))}
.journey-img{aspect-ratio:4/3;overflow:hidden}
.journey-img img{width:100%;height:100%;object-fit:cover}
.journey-body{padding:var(--space-8)}
.journey-meta{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-3)}
.journey h3{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-3)}
.journey-body>p:not(.journey-meta){color:var(--color-text-muted);font-size:var(--text-sm)}
.route{list-style:none;padding:var(--space-4) 0 0;margin:0;border-top:1px solid var(--color-divider);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}
.route li+li::before{content:"→";margin-right:var(--space-3);color:var(--color-primary)}

/* Included */
.included{background:var(--color-surface-2)}
.included-grid{display:grid;grid-template-columns:4fr 7fr;gap:clamp(var(--space-10),6vw,var(--space-20))}
.included-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10) var(--space-8)}
.included-list li{border-top:1px solid var(--color-divider);padding-top:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.included-list strong{font-weight:500;font-size:var(--text-base)}
.included-list span{color:var(--color-text-muted);font-size:var(--text-sm)}

/* Groups */
.groups{display:grid;grid-template-columns:1fr 1fr;min-height:80vh}
.groups-img{overflow:hidden}
.groups-img img{width:100%;height:100%;object-fit:cover}
.groups-text{padding:clamp(var(--space-12),7vw,var(--space-24));align-self:center;max-width:620px}
.groups-text>p:not(.eyebrow){color:var(--color-text-muted)}
.tags{list-style:none;padding:0;margin:var(--space-8) 0 0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tags li{border:1px solid var(--color-divider);border-radius:999px;padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}

/* Steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(var(--space-8),4vw,var(--space-16))}
.step-num{display:block;font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-primary);line-height:1;margin-bottom:var(--space-5)}
.steps h3{font-size:var(--text-lg);font-weight:500;margin-bottom:var(--space-3)}
.steps p{color:var(--color-text-muted)}

/* Enquire */
.enquire{background:#1c1612;color:#ece3d5}
[data-theme="dark"] .enquire{background:var(--color-surface)}
.enquire .eyebrow{color:#e59478}
.enquire-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(var(--space-10),7vw,var(--space-24))}
.enquire-intro p:not(.eyebrow){color:#b8ab9b}
.enquire-note{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:#ece3d5!important;margin-top:var(--space-8)}
.enquire-form{display:flex;flex-direction:column;gap:var(--space-6)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
.enquire-form label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:#b8ab9b}
.enquire-form input,.enquire-form select,.enquire-form textarea{font:inherit;font-size:var(--text-base);letter-spacing:0;text-transform:none;color:#ece3d5;background:transparent;border:0;border-bottom:1px solid #4a3f35;padding:var(--space-3) 0;border-radius:0;transition:border-color .25s var(--ease)}
.enquire-form select option{color:#231c17}
.enquire-form input:focus,.enquire-form select:focus,.enquire-form textarea:focus{outline:none;border-color:#e59478}
.enquire-form input[aria-invalid="true"]{border-color:#e5705a}
.enquire-form textarea{resize:vertical}
.enquire-form .btn{align-self:flex-start;background:#d9785d;color:#1a120d}
.enquire-form .btn:hover{background:#e89479}
.form-status{min-height:1.5em;font-size:var(--text-sm);color:#e7c9a8}

/* Footer */
.site-footer{padding-block:var(--space-16);border-top:1px solid var(--color-divider)}
.footer-grid{display:grid;grid-template-columns:2fr 2fr;gap:var(--space-8);align-items:start}
.footer-brand .logo{color:var(--color-primary);margin-bottom:var(--space-4)}
.footer-name{letter-spacing:.08em;font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-1)}
.footer-tag{color:var(--color-text-muted);font-size:var(--text-sm)}
.footer-nav{display:flex;flex-wrap:wrap;gap:var(--space-6);justify-content:flex-end}
.footer-nav a{text-decoration:none;font-size:var(--text-sm);color:var(--color-text-muted)}
.footer-nav a:hover{color:var(--color-text)}
.footer-small{grid-column:1/-1;font-size:var(--text-xs);color:var(--color-text-muted);border-top:1px solid var(--color-divider);padding-top:var(--space-6);margin:var(--space-8) 0 0}

/* Reveal */
.reveal{opacity:0;transform:translateY(32px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.journey.featured.reveal.in{transform:translateY(calc(-1*var(--space-8)))}

/* Responsive */
@media (max-width:1200px){.nav{display:none}}
@media (max-width:960px){
  .nav{display:none}
  .roy-grid,.chapter,.chapter.reverse,.included-grid,.enquire-grid,.groups{grid-template-columns:1fr}
  .chapter.reverse .chapter-img{order:0}
  .chapter-img.tall{aspect-ratio:4/3}
  .journey-grid,.steps{grid-template-columns:1fr}
  .journey.featured,.journey.featured.reveal.in{transform:none}
  .groups-img{aspect-ratio:3/2}
  .roy-image{aspect-ratio:4/3}
}
@media (max-width:600px){
  .brand-sub{display:none}
  .header-actions .btn-small{display:none}
  .included-list,.field-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-nav{justify-content:flex-start}
  .hero-caption{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .hero-title,.hero-lede,.hero-ctas{opacity:1}
}

.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.form-status a{color:inherit}

/* Booking CTAs */
.cta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-6);margin-top:var(--space-10)}
.cta-row.center{margin-top:clamp(var(--space-12),6vw,var(--space-20))}
.text-link{display:inline-block;margin-top:var(--space-4);color:var(--color-primary);font-size:var(--text-sm);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .2s var(--ease)}
.text-link:hover{color:var(--color-primary-hover)}
.cta-row .text-link{margin-top:0}
.roy-text .btn{margin-top:var(--space-6)}
.bleed-btn{margin-top:var(--space-8)}
.journey-body{display:flex;flex-direction:column;flex:1}
.journey-btn{margin-top:auto;align-self:flex-start}
.journey .route{margin-bottom:var(--space-6)}
.journey.featured .journey-btn{background:var(--color-primary)}
.included .btn{margin-top:var(--space-4)}
.groups-btn{margin-top:var(--space-8)}
.sticky-book{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:60;background:var(--color-primary);color:var(--color-on-primary);text-decoration:none;font-weight:500;font-size:var(--text-sm);padding:var(--space-4) var(--space-6);border-radius:999px;box-shadow:0 10px 30px rgba(20,12,8,.3);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease),background .2s}
.sticky-book:hover{background:var(--color-primary-hover)}
.sticky-book.show{opacity:1;transform:none;pointer-events:auto}

/* ============ Andean textile layer ============ */
.marquee{border:0;position:relative;background:var(--color-surface);padding-block:calc(var(--space-6) + 10px)}
.marquee::before,.marquee::after{content:"";position:absolute;left:0;right:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}
.marquee::before{top:0}.marquee::after{bottom:0}

/* Section-wide faint weave */
.manifesto,.roy,.experience,.journeys,.included,.how,.enquire,.groups-text,.site-footer{position:relative;isolation:isolate}
.manifesto,.roy,.included,.how,.enquire{overflow:hidden}
.experience::before,.how::before,.groups-text::before,.journeys::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:url(assets/textile/rombos-ink.svg) 0 0/80px 80px repeat;opacity:.045}
[data-theme="dark"] .experience::before,[data-theme="dark"] .how::before,[data-theme="dark"] .groups-text::before,[data-theme="dark"] .journeys::before{background-image:url(assets/textile/rombos-cream.svg)}

/* Large chakana watermarks */
.manifesto::after{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:min(680px,92vw);aspect-ratio:1;transform:translate(-50%,-50%);background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.09;pointer-events:none}
.roy::after{content:"";position:absolute;z-index:-1;right:-140px;bottom:-140px;width:480px;aspect-ratio:1;background:url(assets/textile/chakana-red.svg) center/contain no-repeat;opacity:.06;pointer-events:none}
.included::before{content:"";position:absolute;z-index:-1;left:-180px;top:50%;transform:translateY(-50%);width:640px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.08;pointer-events:none}
.how::after{content:"";position:absolute;z-index:-1;right:-120px;top:-120px;width:420px;aspect-ratio:1;background:url(assets/textile/chakana-red.svg) center/contain no-repeat;opacity:.05;pointer-events:none}

/* Roy image: offset woven panel */
.roy-image::before{content:"";position:absolute;z-index:0;inset:22px -22px -22px 22px;border-radius:2px;background:url(assets/textile/rombos-red.svg) 0 0/40px 40px repeat;opacity:.35}
.roy-image::after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}

/* Chapter images: offset woven panel + band */
.chapter-img img{position:relative;z-index:1;border-radius:2px;box-shadow:0 24px 50px -24px rgba(30,18,10,.45)}
.chapter-img::before{content:"";position:absolute;z-index:0;inset:22px -22px -22px 22px;border-radius:2px;background:url(assets/textile/rombos-red.svg) 0 0/40px 40px repeat;opacity:.35}
.chapter.reverse .chapter-img::before{inset:22px 22px -22px -22px}
.chapter-img::after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:0;height:8px;background:url(assets/textile/band.svg) repeat-x center/38px 8px}
.chapter-num{display:inline-flex;align-items:center;gap:var(--space-3)}
.chapter-num::before{content:"";width:20px;height:20px;background:url(assets/textile/chakana-red.svg) center/contain no-repeat}
[data-theme="dark"] .chapter-num::before{background-image:url(assets/textile/chakana-coral.svg)}

/* Bleed: woven edges */
.bleed::before,.bleed::after{content:"";position:absolute;left:0;right:0;height:12px;z-index:2;background:url(assets/textile/band.svg) repeat-x center/58px 12px}
.bleed::before{top:0}.bleed::after{bottom:0}

/* Journey cards */
.journey{position:relative;isolation:isolate;box-shadow:0 1px 0 var(--color-divider),0 30px 60px -40px rgba(30,18,10,.45)}
.journey-img{position:relative}
.journey-img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}
.journey-body{position:relative;isolation:isolate;overflow:hidden}
.journey-body::before{content:"";position:absolute;z-index:-1;right:-50px;bottom:-50px;width:220px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.1}
.journey.featured{outline:1px solid color-mix(in oklab,var(--color-primary) 35%,transparent);outline-offset:8px}

/* Included cards */
.included-list li{background:color-mix(in oklab,var(--color-bg) 75%,transparent);border:1px solid var(--color-divider);border-top:0;padding:0 var(--space-6) var(--space-6);border-radius:2px;overflow:hidden;box-shadow:0 18px 40px -30px rgba(30,18,10,.35)}
.included-list li::before{content:"";display:block;height:6px;margin:0 calc(-1*var(--space-6)) var(--space-5);background:url(assets/textile/band.svg) repeat-x center/29px 6px}

/* Groups */
.groups-img{position:relative}
.groups-img::after{content:"";position:absolute;top:0;bottom:0;right:0;width:12px;background:url(assets/textile/band-v.svg) repeat-y center/12px 58px}
.tags li{background:var(--color-surface)}

/* Steps as cards */
.steps li{position:relative;background:var(--color-bg);padding:var(--space-8);border:1px solid var(--color-divider);border-radius:2px;box-shadow:0 20px 40px -32px rgba(30,18,10,.4);isolation:isolate;overflow:hidden}
.steps li::after{content:"";position:absolute;z-index:-1;right:-30px;top:-30px;width:140px;aspect-ratio:1;background:url(assets/textile/chakana-red.svg) center/contain no-repeat;opacity:.08}

/* Booking */
.enquire::before{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:url(assets/textile/band.svg) repeat-x center/67px 14px}
.enquire::after{content:"";position:absolute;z-index:-2;inset:0;background:url(assets/textile/rombos-cream.svg) 0 0/80px 80px repeat;opacity:.05}
.enquire-intro{position:relative;isolation:isolate}
.enquire-intro::before{content:"";position:absolute;z-index:-1;left:-90px;top:-70px;width:420px;aspect-ratio:1;background:url(assets/textile/chakana-line-coral.svg) center/contain no-repeat;opacity:.14}
.enquire-form{background:rgba(255,255,255,.03);border:1px solid rgba(239,228,207,.12);padding:clamp(var(--space-6),4vw,var(--space-10));border-radius:2px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}

/* Footer */
.site-footer{border-top:0}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:url(assets/textile/band.svg) repeat-x center/38px 8px}

@media (max-width:960px){
  .chapter-img::before,.chapter.reverse .chapter-img::before,.roy-image::before{inset:14px -10px -14px 10px}
  .groups-img::after{top:auto;left:0;width:auto;height:12px;background:url(assets/textile/band.svg) repeat-x center/58px 12px}
}

/* Reviews */
.reviews{position:relative;isolation:isolate;overflow:hidden;background:var(--color-surface)}
.reviews::before{content:"";position:absolute;inset:0;z-index:-2;background:url(assets/textile/rombos-ink.svg) 0 0/80px 80px repeat;opacity:.045}
[data-theme="dark"] .reviews::before{background-image:url(assets/textile/rombos-cream.svg)}
.reviews::after{content:"";position:absolute;z-index:-1;left:-140px;top:-140px;width:460px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.08}
.reviews-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-bottom:clamp(var(--space-10),5vw,var(--space-16))}
.fb-score{display:flex;align-items:center;gap:var(--space-4);text-decoration:none;background:var(--color-bg);border:1px solid var(--color-divider);padding:var(--space-4) var(--space-6);border-radius:2px;box-shadow:0 18px 40px -30px rgba(30,18,10,.4);transition:transform .3s var(--ease)}
.fb-score:hover{transform:translateY(-2px)}
.fb-score-num{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-primary);line-height:1}
.fb-score-text{display:flex;flex-direction:column;font-size:var(--text-xs);color:var(--color-text-muted)}
.fb-score-text strong{font-size:var(--text-sm);color:var(--color-text);font-weight:500}
.fb-score-text svg{display:inline;vertical-align:-4px;color:#1877f2;margin-left:2px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(var(--space-5),2.5vw,var(--space-8));align-items:start}
.review{margin:0;position:relative;isolation:isolate;overflow:hidden;background:var(--color-bg);border:1px solid var(--color-divider);border-radius:2px;padding:var(--space-8);box-shadow:0 22px 44px -32px rgba(30,18,10,.45)}
.review::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:url(assets/textile/band.svg) repeat-x center/29px 6px}
.review::after{content:"“";position:absolute;z-index:-1;right:var(--space-5);top:-10px;font-family:var(--font-display);font-size:9rem;line-height:1;color:var(--color-primary);opacity:.1}
.review-lead{grid-row:span 2}
.review-stars{color:#d9a441;letter-spacing:.15em;font-size:var(--text-sm);margin-bottom:var(--space-4)}
.review blockquote{margin:0 0 var(--space-6);font-size:var(--text-base);line-height:1.6}
.review-lead blockquote{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.45}
.review figcaption{display:flex;flex-direction:column;gap:var(--space-1);border-top:1px solid var(--color-divider);padding-top:var(--space-4)}
.review figcaption strong{font-weight:500}
.review figcaption span{font-size:var(--text-xs);color:var(--color-text-muted)}

/* Partners */
.partners{padding-block:clamp(var(--space-12),6vw,var(--space-20));border-bottom:1px solid var(--color-divider);position:relative}
.partners-eyebrow{text-align:center}
.partner-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-4) var(--space-6)}
.partner-logos li{background:#fbf7f0;border:1px solid var(--color-divider);border-radius:2px;height:96px;padding:var(--space-4) var(--space-6);display:grid;place-items:center;box-shadow:0 16px 30px -26px rgba(30,18,10,.45);transition:transform .3s var(--ease)}
.partner-logos li:hover{transform:translateY(-3px)}
.partner-logos img{max-height:60px;max-width:150px;width:auto;height:auto;filter:grayscale(1);opacity:.75;transition:filter .3s,opacity .3s}
.partner-logos li:hover img{filter:none;opacity:1}

/* Footer socials */
.socials{display:inline-flex;gap:var(--space-3);align-items:center}
.socials a{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--color-divider);border-radius:999px}
.socials a:hover{color:var(--color-primary);border-color:var(--color-primary)}

@media (max-width:960px){
  .review-grid{grid-template-columns:1fr 1fr}
  .review-lead{grid-row:auto;grid-column:1/-1}
}
@media (max-width:600px){
  .review-grid{grid-template-columns:1fr}
  .partner-logos li{height:80px;padding:var(--space-3) var(--space-4)}
  .partner-logos img{max-height:48px;max-width:120px}
}

.fb-follow{margin-top:clamp(var(--space-12),6vw,var(--space-20));display:grid;grid-template-columns:1fr auto;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center;background:var(--color-bg);border:1px solid var(--color-divider);border-radius:2px;padding:clamp(var(--space-8),4vw,var(--space-12));position:relative;overflow:hidden;box-shadow:0 26px 50px -36px rgba(30,18,10,.45)}
.fb-follow::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:url(assets/textile/band.svg) repeat-x center/38px 8px}
.fb-follow h3{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-4)}
.fb-follow-text>p:not(.eyebrow){color:var(--color-text-muted);max-width:48ch}
.cta-row.left{justify-content:flex-start;margin-top:var(--space-8)}
.fb-embed{width:340px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-divider);border-radius:2px;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);position:relative;overflow:hidden;isolation:isolate}
.fb-embed::after{content:"";position:absolute;z-index:-1;right:-50px;bottom:-50px;width:200px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.1}
.fb-card-top{display:flex;align-items:center;gap:var(--space-3)}
.fb-card-top div{display:flex;flex-direction:column}
.fb-card-top strong{font-weight:600}
.fb-card-top span{font-size:var(--text-xs);color:var(--color-text-muted)}
.fb-card-logo{width:44px;height:44px;border-radius:999px;background:#1877f2;color:#fff;display:grid;place-items:center;flex:none}
.fb-card-stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--color-divider);padding-block:var(--space-4);text-align:center}
.fb-card-stats b{display:block;font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);color:var(--color-primary);line-height:1.1}
.fb-card-stats span{font-size:var(--text-xs);color:var(--color-text-muted)}
.fb-card-stars{color:#d9a441;letter-spacing:.2em;text-align:center}
.fb-card-btn{display:block;text-align:center;text-decoration:none;background:#1877f2;color:#fff;border-radius:999px;padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:500;transition:filter .2s}
.fb-card-btn:hover{filter:brightness(1.1)}
.fb-card-btn.ghost{background:transparent;color:var(--color-text);border:1px solid var(--color-divider)}
.fb-card-btn.ghost:hover{border-color:var(--color-text)}
@media (max-width:960px){.fb-follow{grid-template-columns:1fr}.fb-embed{margin-inline:auto}}
.fb-card-logo svg{width:26px;height:26px}
.fb-card-btn.ghost{background:var(--color-surface)}

/* Guides */
.guides{position:relative;isolation:isolate;overflow:hidden;background:var(--color-surface-2)}
.guides::before{content:"";position:absolute;inset:0;z-index:-2;background:url(assets/textile/rombos-ink.svg) 0 0/80px 80px repeat;opacity:.045}
[data-theme="dark"] .guides::before{background-image:url(assets/textile/rombos-cream.svg)}
.guides::after{content:"";position:absolute;z-index:-1;right:-160px;top:-160px;width:520px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.08}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-8),4vw,var(--space-16));align-items:start}
.guide{background:var(--color-bg);border:1px solid var(--color-divider);border-radius:2px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(30,18,10,.5);position:relative;isolation:isolate}
.guide::after{content:"";position:absolute;z-index:-1;right:-60px;bottom:-60px;width:240px;aspect-ratio:1;background:url(assets/textile/chakana-red.svg) center/contain no-repeat;opacity:.05}
.guide-photo{margin:0;position:relative;aspect-ratio:4/5;max-height:560px;width:100%;overflow:hidden}
.guide-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.guide-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}
.guide-body{padding:clamp(var(--space-6),3vw,var(--space-10))}
.guide-role{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-2)}
.guide h3{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-2)}
.guide-phone{display:inline-block;font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;border-bottom:1px solid var(--color-divider);margin-bottom:var(--space-6)}
.guide-phone:hover{color:var(--color-primary);border-color:var(--color-primary)}
.guide-body>p:not(.guide-role){color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.7}
.guide .btn{margin-top:var(--space-4)}
@media (max-width:960px){.guide-grid{grid-template-columns:1fr}.guide-photo{max-height:520px}}

/* FAQ */
.faq{position:relative;isolation:isolate;overflow:hidden}
.faq::before{content:"";position:absolute;z-index:-1;left:-180px;bottom:-180px;width:560px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.07}
.faq-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(var(--space-8),5vw,var(--space-20));align-items:start}
.faq-head{position:sticky;top:110px}
.deposit-card{margin-top:var(--space-8);background:var(--color-primary);color:#f6efe4;padding:var(--space-8);border-radius:2px;position:relative;overflow:hidden;isolation:isolate;box-shadow:0 30px 60px -36px rgba(80,20,10,.6)}
.deposit-card::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}
.deposit-card::after{content:"";position:absolute;z-index:-1;right:-40px;bottom:-40px;width:180px;aspect-ratio:1;background:url(assets/textile/chakana-cream.svg) center/contain no-repeat;opacity:.12}
.deposit-label{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.deposit-amount{font-family:var(--font-display);font-size:clamp(3rem,6vw,4.5rem);line-height:1;margin:var(--space-2) 0 var(--space-3)}
.deposit-copy{font-size:var(--text-sm);line-height:1.6;opacity:.92;margin-bottom:var(--space-6)}
.deposit-card .btn{background:#f6efe4;color:var(--color-primary)}
.deposit-card .btn:hover{background:#fff}
.faq-more{margin-top:var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted)}
.faq-more a{color:var(--color-primary)}
.faq-list details{border-bottom:1px solid var(--color-divider)}
.faq-list details:first-child{border-top:1px solid var(--color-divider)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-6) 0;font-family:var(--font-display);font-size:var(--text-lg);line-height:1.3}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;width:36px;height:36px;border:1px solid var(--color-divider);border-radius:999px;display:grid;place-items:center;font-family:var(--font-body);font-size:20px;color:var(--color-primary);transition:transform .25s,background .25s}
.faq-list details[open] summary::after{transform:rotate(45deg);background:var(--color-surface-2)}
.faq-list summary:hover{color:var(--color-primary)}
.faq-list details p{color:var(--color-text-muted);padding:0 var(--space-12) var(--space-6) 0;line-height:1.7}
.enquire-deposit{margin-top:var(--space-6);display:inline-block;border:1px solid rgba(236,227,213,.35);border-radius:999px;padding:var(--space-2) var(--space-5);font-size:var(--text-sm);color:#ece3d5!important}
@media (max-width:960px){.faq-grid{grid-template-columns:1fr}.faq-head{position:static}.faq-list details p{padding-right:0}}
.faq-more a[href^="tel"],.guide-phone{white-space:nowrap}

/* Go back */
.goback{position:relative;isolation:isolate;overflow:hidden;background:var(--color-primary);color:#f6efe4;text-align:center;padding:clamp(var(--space-16),10vw,var(--space-32)) 0}
.goback::before{content:"";position:absolute;inset:0;z-index:-2;background:url(assets/textile/rombos-cream.svg) 0 0/90px 90px repeat;opacity:.07}
.goback::after{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:min(900px,120vw);aspect-ratio:1;transform:translate(-50%,-50%);background:url(assets/textile/chakana-line-cream.svg) center/contain no-repeat;opacity:.08}
.goback-inner{max-width:900px;margin:0 auto}
.goback-inner::before,.goback-inner::after{content:none}
.goback-count{font-family:var(--font-display);font-size:clamp(4.5rem,13vw,10rem);line-height:.9;letter-spacing:-.02em}
.goback-count .plus{color:#f0b58a}
.goback-lead{font-size:var(--text-lg);max-width:34ch;margin:var(--space-6) auto 0;opacity:.9}
.goback-quote{font-family:var(--font-display);font-style:italic;font-size:clamp(2.2rem,5.5vw,4.25rem);line-height:1.1;margin:var(--space-6) 0 var(--space-10)}
.btn-light{background:#f6efe4!important;color:var(--color-primary)!important}
.btn-light:hover{background:#fff!important}
.goback .container{position:relative}
section.goback+section{}
.goback{border-block:0}.goback-wrap{}
/* Shared */
.section-sub{color:var(--color-text-muted);max-width:52ch;margin-top:var(--space-4)}
.opt{text-transform:none;letter-spacing:0;opacity:.7}
.btn-link{display:block;margin:var(--space-8) auto 0;background:none;border:0;border-bottom:1px solid currentColor;color:var(--color-primary);font:500 var(--text-sm) var(--font-body);cursor:pointer;padding:0 0 2px}
.gr-form label,.upload-fields label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}
.gr-form input[type=text],.gr-form textarea,.upload-fields input[type=text]{font:inherit;font-size:var(--text-base);letter-spacing:0;text-transform:none;color:var(--color-text);background:transparent;border:0;border-bottom:1px solid var(--color-divider);padding:var(--space-3) 0;border-radius:0}
.gr-form textarea{resize:vertical;min-height:120px}
.gr-form input:focus,.gr-form textarea:focus,.upload-fields input:focus{outline:none;border-color:var(--color-primary)}
.gr-form [aria-invalid="true"]{border-color:#c2412d!important}
.form-status{font-size:var(--text-sm);color:var(--color-primary);min-height:1.4em}
/* Guest reviews */
.guest-reviews{position:relative;isolation:isolate;overflow:hidden;background:var(--color-surface-2)}
.guest-reviews::before{content:"";position:absolute;inset:0;z-index:-1;background:url(assets/textile/rombos-ink.svg) 0 0/80px 80px repeat;opacity:.04}
[data-theme="dark"] .guest-reviews::before{background-image:url(assets/textile/rombos-cream.svg)}
.gr-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(var(--space-8),5vw,var(--space-16));align-items:start}
.gr-form{background:var(--color-bg);border:1px solid var(--color-divider);padding:clamp(var(--space-6),3vw,var(--space-10));display:flex;flex-direction:column;gap:var(--space-5);position:relative;box-shadow:0 30px 60px -40px rgba(30,18,10,.45)}
.gr-form::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}
.gr-form .btn{align-self:flex-start}
.star-input{border:0;padding:0;margin:0}
.star-input legend{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2)}
.stars-pick{display:inline-flex;flex-direction:row-reverse;gap:4px}
.stars-pick input{position:absolute;opacity:0;width:1px;height:1px}
.stars-pick label{font-size:2.4rem;line-height:1;color:var(--color-divider);cursor:pointer;transition:color .15s,transform .15s}
.stars-pick label:hover,.stars-pick label:hover~label,.stars-pick input:checked~label{color:#d9a441}
.stars-pick label:hover{transform:scale(1.12)}
.stars-pick input:focus-visible+label{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}
.star-caption{display:block;font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}
.gr-summary{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-6)}
.gr-avg{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-primary);line-height:1}
.gr-stars,.gr-card-stars{color:#d9a441;letter-spacing:.12em}
.gr-stars .off,.gr-card-stars .off{color:var(--color-divider)}
.gr-count{font-size:var(--text-sm);color:var(--color-text-muted)}
.gr-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.gr-card{background:var(--color-bg);border:1px solid var(--color-divider);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}
.gr-card.is-new{animation:grIn .6s var(--ease)}
@keyframes grIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.gr-body{font-size:var(--text-sm);line-height:1.7;white-space:pre-line;overflow-wrap:anywhere}
.gr-meta{margin-top:auto;font-size:var(--text-xs);color:var(--color-text-muted);display:flex;flex-wrap:wrap;gap:0 .35em}
.gr-meta strong{color:var(--color-text)}
.gr-meta span{flex-basis:100%;opacity:.8}
.gr-empty,.gallery-empty{grid-column:1/-1;border:1px dashed var(--color-divider);padding:var(--space-10);text-align:center;color:var(--color-text-muted);font-family:var(--font-display);font-style:italic;font-size:var(--text-lg)}
/* Gallery */
.gallery{position:relative;isolation:isolate;overflow:hidden}
.gallery::after{content:"";position:absolute;z-index:-1;right:-200px;top:-120px;width:560px;aspect-ratio:1;background:url(assets/textile/chakana-line-red.svg) center/contain no-repeat;opacity:.07}
.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-8);margin-bottom:var(--space-10);flex-wrap:wrap}
.upload-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);background:var(--color-surface-2);border:1px solid var(--color-divider);padding:clamp(var(--space-6),3vw,var(--space-10));margin-bottom:var(--space-10)}
.upload-panel[hidden]{display:none}
.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:240px;border:2px dashed var(--color-divider);background:var(--color-bg);cursor:pointer;text-align:center;padding:var(--space-6);transition:border-color .2s}
.dropzone.over,.dropzone:hover{border-color:var(--color-primary)}
.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}
.dz-title{font-family:var(--font-display);font-size:var(--text-lg);background:var(--color-bg);padding:0 var(--space-2)}
.dz-sub{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg);padding:0 var(--space-2)}
.dz-files{font-size:var(--text-sm);color:var(--color-primary);font-weight:600;background:var(--color-bg)}
.upload-fields{display:flex;flex-direction:column;gap:var(--space-5)}
.upload-fields .btn{align-self:flex-start}
.upload-fields label.consent{flex-direction:row;align-items:flex-start;gap:var(--space-3);text-transform:none;letter-spacing:0;font-size:var(--text-sm)}
.consent input{margin-top:3px;accent-color:var(--color-primary)}
.gallery-grid{columns:4 240px;column-gap:var(--space-4)}
.gallery-grid .gallery-empty{column-span:all}
.g-item{display:block;width:100%;margin:0 0 var(--space-4);padding:0;border:0;background:none;cursor:zoom-in;position:relative;overflow:hidden;break-inside:avoid;border-radius:2px}
.g-item img{width:100%;height:auto;display:block;transition:transform .6s var(--ease)}
.g-item:hover img{transform:scale(1.04)}
.g-cap{position:absolute;left:0;right:0;bottom:0;padding:var(--space-8) var(--space-4) var(--space-3);background:linear-gradient(transparent,rgba(12,10,8,.75));color:#f6efe4;font-size:var(--text-xs);text-align:left;opacity:0;transition:opacity .3s}
.g-cap em{font-style:normal;opacity:.8}
.g-item:hover .g-cap,.g-item:focus-visible .g-cap{opacity:1}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,8,6,.92);display:flex;align-items:center;justify-content:center;padding:var(--space-8)}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;max-width:min(1200px,90vw);text-align:center}
.lightbox img{max-width:100%;max-height:80vh;object-fit:contain}
.lightbox figcaption{color:#ece3d5;font-size:var(--text-sm);margin-top:var(--space-3)}
.lightbox button{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:0;width:48px;height:48px;border-radius:999px;font-size:28px;cursor:pointer;line-height:1}
.lightbox button:hover{background:rgba(255,255,255,.2)}
.lb-close{top:var(--space-6);right:var(--space-6)}
.lb-prev{left:var(--space-6);top:50%;transform:translateY(-50%)}
.lb-next{right:var(--space-6);top:50%;transform:translateY(-50%)}
@media (max-width:960px){.gr-grid,.upload-panel{grid-template-columns:1fr}.gr-list{grid-template-columns:1fr}.gallery-grid{columns:2 150px}}
.btn-link[hidden]{display:none}
.dropzone::before{content:"";width:56px;height:56px;margin-bottom:var(--space-2);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a2f22' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3Cpath d='M12 2v5M9.5 4.5L12 2l2.5 2.5'/%3E%3C/svg%3E") center/contain no-repeat}
/* ---------- Rails (horizontal scrollers) ---------- */
.anchor{position:absolute;top:0}
.rail-wrap{position:relative;margin-inline:calc(-1 * clamp(var(--space-5),5vw,var(--space-16)))}
.rail{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding:var(--space-4) clamp(var(--space-5),5vw,var(--space-16)) var(--space-6);scrollbar-width:none;overscroll-behavior-x:contain;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.rail::-webkit-scrollbar{display:none}
.rail:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}
.rail-contents{display:contents}
.rail-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border-radius:999px;border:1px solid var(--color-divider);background:var(--color-bg);color:var(--color-text);display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px -12px rgba(30,18,10,.5);transition:background .2s,color .2s}
.rail-btn:hover{background:var(--color-primary);color:#f6efe4;border-color:var(--color-primary)}
.rail-btn.prev{left:clamp(4px,2vw,var(--space-6))}
.rail-btn.next{right:clamp(4px,2vw,var(--space-6))}
.rail-wrap.static .rail-btn{display:none}
.rail-wrap.static .rail{-webkit-mask-image:none;mask-image:none}
/* review cards in rail */
.review-rail{align-items:stretch}
.review-rail .review{flex:0 0 clamp(280px,30vw,380px);display:flex;flex-direction:column;padding:var(--space-6) var(--space-6) var(--space-5)}
.review-rail .review blockquote{font-size:var(--text-sm);line-height:1.65;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-5)}
.review-rail .review figcaption{margin-top:auto}
.review-stars .off{color:var(--color-divider)}
.review.is-new{animation:grIn .8s var(--ease);border-color:var(--color-primary)}
.review-actions{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-4)}
.review-actions .gr-summary{margin:0}
.rail-hint{margin-left:auto;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}
#review-form{max-width:640px;margin-top:var(--space-8)}
#review-form[hidden]{display:none}
.reviews .fb-follow{margin-top:var(--space-12)}
/* gallery rail */
.gallery-rail{align-items:center}
.gallery-rail .g-item{flex:0 0 auto;height:clamp(220px,28vw,340px);width:auto;margin:0}
.gallery-rail .g-item img{height:100%;width:auto;max-width:none;object-fit:cover}
.gallery-rail .gallery-empty{flex:1;margin:0 clamp(var(--space-5),5vw,var(--space-16))}
.gallery-head{margin-bottom:var(--space-6)}
@media (max-width:640px){.rail-btn{width:38px;height:38px}.rail-hint{margin-left:0}}
.fb-pill{display:inline-flex;align-items:center;gap:var(--space-2);background:#1877f2;color:#fff;text-decoration:none;border-radius:999px;padding:var(--space-4) var(--space-6);font:500 var(--text-sm)/1 var(--font-body)}
.fb-pill:hover{filter:brightness(1.1)}
/* ---------- First-visit intro ---------- */
html.intro-seen .intro{display:none}
html.intro-on,html.intro-on body{overflow:hidden}
.intro{position:fixed;inset:0;z-index:1000;background:#07060a;color:#f3ede3;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform 1.2s cubic-bezier(.77,0,.18,1),border-radius 1.2s cubic-bezier(.77,0,.18,1);will-change:transform}
.intro.lift{transform:translateY(-102%);border-bottom-left-radius:50% 12vh;border-bottom-right-radius:50% 12vh}
html.intro-on main,html.intro-on .site-header{transform:scale(.94) translateY(40px);opacity:.3;transition:transform 1.25s cubic-bezier(.77,0,.18,1),opacity 1.25s ease}
html.intro-revealing main,html.intro-revealing .site-header{transform:none;opacity:1}
html.intro-on .sticky-book{opacity:0!important;pointer-events:none}
.intro .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:introDraw 2.4s cubic-bezier(.6,.05,.3,1) forwards}
@keyframes introDraw{to{stroke-dashoffset:0}}
.intro-stars{position:absolute;inset:0}
.intro-stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#f3ede3;animation:twinkle 3.5s ease-in-out infinite}
@keyframes twinkle{50%{opacity:.08}}
.intro-center{position:relative;z-index:3;text-align:center;margin-top:-26vh}
.intro-logo{width:64px;height:64px;margin:0 auto var(--space-4);display:block;color:#f0b58a}
.intro-logo .d2{animation-delay:.5s}.intro-logo .d3{animation-delay:.9s}
.intro-brand{font-family:var(--font-body);font-weight:500;font-size:clamp(.85rem,1.4vw,1.05rem);letter-spacing:.7em;margin-right:-.7em;opacity:0;animation:introUp 1.2s .8s cubic-bezier(.2,.7,.2,1) forwards}
.intro-peru{display:flex;align-items:center;justify-content:center;gap:clamp(12px,2.5vw,28px);margin-top:var(--space-4)}
.intro-band{width:clamp(40px,10vw,120px);height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px;transform:scaleX(0);animation:bandIn 1.2s 1.9s cubic-bezier(.2,.7,.2,1) forwards}
.intro-band:first-child{transform-origin:right}.intro-band:last-child{transform-origin:left}
@keyframes bandIn{to{transform:scaleX(1)}}
.intro-peru-word{font-family:var(--font-display);font-weight:300;font-size:clamp(4.5rem,15vw,11rem);line-height:.9;letter-spacing:.08em;margin:0;display:flex}
.intro-peru-word span{display:inline-block;opacity:0;transform:translateY(40px);animation:introUp 1.1s cubic-bezier(.2,.7,.2,1) forwards;background:linear-gradient(180deg,#f6efe4 30%,#f0b58a);-webkit-background-clip:text;background-clip:text;color:transparent}
.intro-peru-word span:nth-child(1){animation-delay:1.2s}.intro-peru-word span:nth-child(2){animation-delay:1.35s}.intro-peru-word span:nth-child(3){animation-delay:1.5s}.intro-peru-word span:nth-child(4){animation-delay:1.65s}
@keyframes introUp{to{opacity:1;transform:none}}
.intro-tag{font-family:var(--font-display);font-style:italic;font-size:clamp(1rem,2vw,1.35rem);opacity:0;margin-top:var(--space-4);animation:introUp 1.2s 2.4s ease forwards;color:#d9cdbd}
.intro-mountains{position:absolute;left:0;right:0;bottom:0;width:100%;height:44vh;z-index:1}
.intro-mountains path.draw{stroke:#f3ede3;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.intro-mountains .m1{animation-delay:.6s;opacity:.55}.intro-mountains .m2{animation-delay:.3s;animation-duration:3s}.intro-mountains .m3{animation-delay:.9s;opacity:.55}
.intro-mountains .m4{animation-delay:1.8s;stroke:#f0b58a!important;opacity:.8}.intro-mountains .m5{animation-delay:2.3s;stroke:#f0b58a!important;opacity:.8}.intro-mountains .m6{animation-delay:1.2s;opacity:.35}
.intro-sun{fill:#9a2f22;opacity:0;transform:translateY(80px);transform-box:fill-box;animation:sunRise 3.5s 1s cubic-bezier(.2,.7,.2,1) forwards;filter:blur(1px)}
@keyframes sunRise{to{opacity:.9;transform:none}}
.mist{stroke:#f3ede3;stroke-width:1;opacity:0;stroke-linecap:round;animation:mist 9s 2.5s ease-in-out infinite}
.mist2{animation-delay:4s}
@keyframes mist{0%{opacity:0;transform:translateX(-40px)}40%{opacity:.35}100%{opacity:0;transform:translateX(60px)}}
.intro-llamas{position:absolute;left:0;right:0;bottom:3vh;height:90px;z-index:2;pointer-events:none}
.llama{position:absolute;bottom:0;width:78px;height:78px;fill:#f3ede3;stroke:#f3ede3;left:-100px;animation:walk 22s linear infinite}
.llama .leg{stroke-width:5;stroke-linecap:round;transform-box:fill-box;transform-origin:50% 0;animation:leg .6s ease-in-out infinite alternate}
.llama .leg.b{animation-direction:alternate-reverse}
.llama-bob{animation:bob .3s ease-in-out infinite alternate}
.llama.l1{animation-delay:1.5s}
.llama.l2{width:58px;height:58px;animation-delay:3.2s;opacity:.85}
.llama.l3{width:66px;height:66px;animation-delay:10s;opacity:.9}
@keyframes walk{from{transform:translateX(0)}to{transform:translateX(calc(100vw + 200px))}}
@keyframes leg{from{transform:rotate(14deg)}to{transform:rotate(-14deg)}}
@keyframes bob{to{transform:translateY(-1.5px)}}
.intro-enter{position:relative;margin:clamp(24px,5vh,48px) auto 0;background:none;border:0;color:#f3ede3;display:flex;flex-direction:column-reverse;align-items:center;gap:var(--space-2);font:500 var(--text-xs) var(--font-body);letter-spacing:.3em;text-transform:uppercase;cursor:pointer;opacity:0;animation:fadeIn 1s 3s ease forwards}
@keyframes fadeIn{to{opacity:1}}
.intro-enter svg{animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{50%{transform:translateY(-8px)}}
.intro-skip{position:absolute;z-index:4;top:var(--space-6);right:var(--space-6);background:none;border:1px solid rgba(243,237,227,.3);color:#f3ede3;border-radius:999px;padding:var(--space-2) var(--space-5);font:500 var(--text-xs) var(--font-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;opacity:.75}
.intro-skip:hover{opacity:1;border-color:#f3ede3}
@media (max-width:640px){.intro-mountains{height:42vh}.intro-center{margin-top:-18vh}.llama{width:56px;height:56px}.llama.l2{width:42px;height:42px}.llama.l3{width:48px;height:48px}.intro-center{margin-top:-30vh}.intro-mountains{height:38vh}}
@media (prefers-reduced-motion:reduce){.intro *{animation:none!important;opacity:1!important;transform:none!important;stroke-dashoffset:0!important}.llama{display:none}.intro{transition:opacity .6s}.intro.lift{transform:none;opacity:0}}
html.intro-on body{background:#07060a}
.intro-mountains{overflow:visible}
/* Shop */
.shop{position:relative;isolation:isolate;overflow:hidden;background:var(--color-surface-2)}
.shop::before{content:"";position:absolute;inset:0;z-index:-1;background:url(assets/textile/rombos-ink.svg) 0 0/80px 80px repeat;opacity:.04}
[data-theme="dark"] .shop::before{background-image:url(assets/textile/rombos-cream.svg)}
.shop-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.shop-text>p:not(.eyebrow){color:var(--color-text-muted);max-width:44ch}
.shop-text .cta-row{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-8)}
.shop-soon{font-size:var(--text-sm);color:var(--color-text-muted);max-width:40ch}
.shop-soon a{color:var(--color-primary)}
.shop-live .shop-soon{display:none}
.shop-soon.pulse{animation:soonPulse 1s var(--ease)}
@keyframes soonPulse{0%,100%{color:var(--color-text-muted)}30%{color:var(--color-primary)}}
.shop-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.shop-card{display:block;text-decoration:none;color:inherit;background:var(--color-bg);border:1px solid var(--color-divider);overflow:hidden;box-shadow:0 30px 60px -40px rgba(30,18,10,.5);position:relative}
.shop-card:nth-child(2){margin-top:var(--space-12)}
.shop-card figure{margin:0;aspect-ratio:4/5;overflow:hidden;position:relative}
.shop-card figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:url(assets/textile/band.svg) repeat-x center/48px 10px}
.shop-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.shop-card:hover img{transform:scale(1.05)}
.shop-card-label{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-4) var(--space-5)}
.shop-card-label strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg)}
.shop-card-label em{font-style:normal;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary)}
@media (max-width:960px){.shop-grid{grid-template-columns:1fr}.shop-card:nth-child(2){margin-top:0}}
@media (max-width:640px){.shop-card-label{flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4)}.shop-card-label strong{font-size:var(--text-base)}}

.shop-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-6)}
.shop-cta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3);text-align:right}
.shop-cta .shop-soon{max-width:32ch}
.shop-rail{align-items:stretch}
.shop-rail .shop-card{flex:0 0 clamp(230px,24vw,300px);margin:0!important}
.shop-card-label>span{display:flex;flex-direction:column;gap:2px}
.shop-card-label small{font-size:var(--text-xs);color:var(--color-text-muted)}
@media (max-width:640px){.shop-cta{align-items:flex-start;text-align:left}.shop-card-label{flex-direction:row;align-items:center}}
