/* ============================================================
   SPIRIT OF THE WILD — v3 "Sunlit" design system
   Light cinematic theme · photo & video rich · GSAP-driven sky
   ============================================================ */
:root{
  --s1:#D7EFFC; --s2:#E9F6FB; --s3:#FFF6E0;            /* sky stops (animated) */
  --paper:#FDF7EA; --card:rgba(255,255,255,.7);
  --ink:#2A1208; --soft:rgba(42,18,8,.66); --faint:rgba(42,18,8,.42);
  --line:rgba(42,18,8,.10); --line-strong:rgba(42,18,8,.22);
  --amber:#F59B1B; --ember:#E8740F; --glow:rgba(245,155,27,.45);
  --pine:#2F7A5B; --rose:#E2603C;
  --font-d:"Fraunces",Georgia,serif; --font-b:"Outfit",system-ui,sans-serif;
  --r:22px; --r-lg:28px;
  --sh:0 24px 55px -22px rgba(63,27,8,.3);
  --sh-soft:0 12px 32px -18px rgba(63,27,8,.28);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-b);color:var(--ink);background:var(--paper);
  line-height:1.65;font-weight:350;overflow-x:hidden;min-height:100vh;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;background:none;border:0;color:inherit;cursor:pointer}
::selection{background:var(--amber);color:#2A1003}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:4px}

/* ---------- fixed scenery ---------- */
#sky{position:fixed;inset:-2% 0;z-index:-5;background:linear-gradient(180deg,var(--s1) 0%,var(--s2) 50%,var(--s3) 100%)}
#orb{
  position:fixed;top:0;left:0;width:clamp(150px,16vw,230px);aspect-ratio:1;border-radius:50%;
  z-index:-4;pointer-events:none;opacity:.95;will-change:transform;
  background:radial-gradient(circle at 38% 35%,#FFFDF4,#FFE9A8 45%,transparent 72%);
  filter:blur(1px) drop-shadow(0 0 70px var(--glow)) drop-shadow(0 0 170px rgba(245,155,27,.3));
  transform:translate(18vw,16vh);
}
#fx{position:fixed;inset:0;z-index:-3;pointer-events:none}
.cl{position:fixed;z-index:-3;opacity:.8;pointer-events:none;color:#FFFFFF;filter:drop-shadow(0 14px 22px rgba(63,27,8,.08));animation:drift linear infinite}
.cl svg{width:100%;height:auto;fill:currentColor}
.cl-1{top:12vh;width:380px;animation-duration:95s}
.cl-2{top:32vh;width:250px;animation-duration:140s;animation-delay:-60s;opacity:.6}
.cl-3{top:6vh;width:190px;animation-duration:75s;animation-delay:-25s;opacity:.55}
@keyframes drift{from{transform:translateX(-32vw)}to{transform:translateX(132vw)}}
#grain{
  position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.035;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
  
}
@keyframes grain{
  0%,100%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}
  60%{transform:translate(-5%,-2%)}80%{transform:translate(4%,4%)}
}
.birds{position:absolute;z-index:2;pointer-events:none;left:-12%;top:17%;width:130px;color:rgba(42,18,8,.55);animation:fly 26s linear infinite}
.birds svg{width:100%;height:auto;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.birds--2{top:27%;width:90px;animation-duration:34s;animation-delay:-14s;opacity:.7}
@keyframes fly{
  0%{transform:translateX(-12vw) translateY(0)}
  50%{transform:translateX(55vw) translateY(-22px)}
  100%{transform:translateX(118vw) translateY(8px)}
}

/* ---------- intro veil ---------- */
#veil{
  position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 120% at 50% 30%,#FFFBEF,#F6E4C4);
}
.veil-logo{width:118px;opacity:0;transform:scale(.78);filter:drop-shadow(0 14px 34px rgba(63,27,8,.3))}
html:not(.js) #veil{display:none}

/* ---------- custom cursor ---------- */
.cur-dot,.cur-ring{position:fixed;top:0;left:0;z-index:500;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%)}
.cur-dot{width:7px;height:7px;background:var(--ember)}
.cur-ring{width:30px;height:30px;border:1.5px solid rgba(42,18,8,.4);transition:width .3s,height .3s,border-color .3s,opacity .3s}
.cur-ring.is-link{width:56px;height:56px;border-color:var(--ember)}
@media (hover:none){.cur-dot,.cur-ring{display:none}}

/* ---------- type & utilities ---------- */
.container{width:min(1200px,92vw);margin-inline:auto}
.container-w{width:min(1400px,94vw);margin-inline:auto}
.d-hero{font-family:var(--font-d);font-weight:600;font-size:clamp(2.6rem,7vw,5.5rem);line-height:1.03;letter-spacing:-.01em}
.d1{font-family:var(--font-d);font-weight:600;font-size:clamp(2rem,4.4vw,3.5rem);line-height:1.08}
.d2{font-family:var(--font-d);font-weight:600;font-size:clamp(1.45rem,2.6vw,2.1rem);line-height:1.18}
.d-hero em,.d1 em,.d2 em,.f-quote em{font-style:italic;color:var(--ember)}
.lead{font-size:clamp(.98rem,1.3vw,1.13rem);color:var(--soft);max-width:62ch;line-height:1.8}
.kicker{
  display:inline-flex;align-items:center;gap:.7rem;font-size:.72rem;font-weight:700;
  letter-spacing:.26em;text-transform:uppercase;color:var(--ember);
}
.kicker::before{content:"";width:28px;height:2px;background:var(--amber);border-radius:2px}
.center{text-align:center}
.center .kicker{justify-content:center}
.center .lead{margin-inline:auto}
.mt-1{margin-top:.9rem}.mt-2{margin-top:1.7rem}.mt-3{margin-top:2.8rem}
.sec{padding:clamp(4.6rem,11vh,8rem) 0;position:relative}
.sec-dim{background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.6) 16%,rgba(255,255,255,.6) 84%,rgba(255,255,255,0))}
.sec-head{max-width:780px;margin-bottom:clamp(2.2rem,5vh,3.6rem)}
.sec-head.center{margin-inline:auto}
.w{display:inline-flex;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ch{display:inline-block;will-change:transform}

/* ---------- buttons & chips ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:1rem 2rem;border-radius:999px;
  font-weight:600;font-size:.95rem;letter-spacing:.02em;border:1.5px solid transparent;
  transition:transform .35s cubic-bezier(.2,.7,.3,1.4),box-shadow .35s,background .35s,border-color .35s,color .35s;
  will-change:transform;
}
.btn-sun{background:linear-gradient(135deg,var(--amber),var(--ember));color:#2A1003;box-shadow:0 14px 36px -10px rgba(232,116,15,.55)}
.btn-sun:hover{box-shadow:0 20px 48px -10px rgba(232,116,15,.7)}
.btn-ghost{border-color:rgba(42,18,8,.32);color:var(--ink);background:rgba(255,255,255,.4)}
.btn-ghost:hover{border-color:var(--ember);background:#fff}
.btn-sm{padding:.62rem 1.3rem;font-size:.85rem}
.btn-w{width:100%}
.chip{
  display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.05rem;border-radius:999px;
  background:rgba(255,255,255,.78);border:1px solid var(--line);
  font-size:.82rem;font-weight:500;color:var(--ink);backdrop-filter:blur(8px);box-shadow:var(--sh-soft);
}
.chip svg{width:15px;height:15px;stroke:var(--ember);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:160;padding:1.05rem 0;transition:transform .5s cubic-bezier(.6,.05,.3,1),background .35s,padding .35s,border-color .35s,box-shadow .35s;border-bottom:1px solid transparent}
.nav--solid{background:rgba(253,247,234,.82);backdrop-filter:blur(16px);padding:.55rem 0;border-color:var(--line);box-shadow:0 10px 30px -22px rgba(63,27,8,.35)}
.nav--hidden{transform:translateY(-110%)}
.nav-inner{display:flex;align-items:center;gap:2rem}
.brand{display:flex;align-items:center;gap:.7rem}
.brand img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(63,27,8,.25))}
.brand span{font-family:var(--font-d);font-weight:600;font-size:1.02rem;white-space:nowrap}
.nav-links{display:flex;gap:1.9rem;margin-left:auto}
.nav-links a{font-size:.88rem;font-weight:500;color:var(--soft);position:relative;padding:.3rem 0;transition:color .3s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--amber);border-radius:2px;transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.6,.05,.3,1)}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left}
.burger{display:none;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-left:auto;z-index:170}
.burger span{display:block;width:24px;height:2px;background:var(--ink);transition:transform .4s,opacity .3s}
html.menu-open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
html.menu-open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu{
  position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;justify-content:center;padding:0 9vw;gap:.2rem;
  background:rgba(253,247,234,.96);backdrop-filter:blur(20px);
  transform:translateY(-103%);transition:transform .65s cubic-bezier(.75,0,.2,1);visibility:hidden;
}
html.menu-open .menu{transform:none;visibility:visible}
.menu a{font-family:var(--font-d);font-size:clamp(1.9rem,7.5vw,3.2rem);font-weight:600;padding:.5rem 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.menu a small{font-family:var(--font-b);font-size:.75rem;letter-spacing:.25em;color:var(--ember)}
.menu-foot{margin-top:2rem;color:var(--soft);font-size:.95rem;display:flex;gap:1.6rem;flex-wrap:wrap}
.menu-foot a{border:0;font-family:var(--font-b);font-size:.95rem;padding:0;color:var(--ember)}

/* ---------- hero (Ken Burns media) ---------- */
.hero{min-height:100svh;display:grid;align-items:center;position:relative;padding:7.5rem 0 8rem;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-media .kb-img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kb .kb-img{opacity:0;transform:scale(1.08);will-change:transform,opacity}
.kb .kb-img:first-child{opacity:1}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(253,247,234,.97) 0%,rgba(253,247,234,.88) 34%,rgba(253,247,234,.38) 66%,rgba(253,247,234,.05) 100%),
             linear-gradient(180deg,rgba(253,247,234,.25),rgba(253,247,234,0) 30%,rgba(253,247,234,.85) 94%);
}
.hero .container{position:relative;z-index:3}
.hero h1{max-width:13ch}
.hero .lead{margin-top:1.4rem;max-width:48ch}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.2rem}
.hero-chips{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2.6rem}
.scroll-cue{
  position:absolute;bottom:2.1rem;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--faint);
}
.scroll-cue i{width:2px;height:56px;background:rgba(42,18,8,.16);position:relative;overflow:hidden;border-radius:2px}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;background:var(--ember);animation:fall 1.9s cubic-bezier(.65,0,.35,1) infinite}
@keyframes fall{to{top:110%}}

/* ---------- marquee (outlined editorial) ---------- */
.marquee{overflow:hidden;display:flex;white-space:nowrap;padding:1.1rem 0;border-block:1px solid var(--line);background:rgba(255,255,255,.5)}
.marquee-track{display:inline-flex;align-items:center;gap:3.2rem;padding-right:3.2rem;will-change:transform;font-family:var(--font-d);font-weight:600;font-size:clamp(1.2rem,2.1vw,1.8rem);letter-spacing:.13em;color:transparent;-webkit-text-stroke:1.2px rgba(42,18,8,.55)}
.marquee-track .sun{color:var(--amber);-webkit-text-stroke:0;font-size:.8em}

/* ---------- glass cards ---------- */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.7rem;
  backdrop-filter:blur(10px);box-shadow:var(--sh-soft);
  transition:transform .55s cubic-bezier(.2,.7,.3,1),border-color .45s,box-shadow .45s,background .45s;
}
.card:hover{transform:translateY(-7px);border-color:rgba(232,116,15,.45);box-shadow:var(--sh);background:rgba(255,255,255,.85)}
.card h3{font-size:1.12rem;font-weight:600;margin:1.1rem 0 .5rem;font-family:var(--font-d)}
.card p{font-size:.92rem;color:var(--soft)}
.icon{width:46px;height:46px;color:var(--ember)}
.icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}

/* ---------- full-bleed photo breaks ---------- */
.break{position:relative;height:64vh;min-height:400px;overflow:hidden;display:grid;place-items:center;isolation:isolate}
.break>img{position:absolute;left:0;right:0;top:-12%;width:100%;height:124%;object-fit:cover;z-index:-2}
.break::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(63,27,8,.16)}
.break blockquote{
  background:rgba(253,247,234,.85);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.8);
  padding:1.7rem 2.5rem;border-radius:26px;max-width:min(34ch,86vw);text-align:center;
  font-family:var(--font-d);font-style:italic;font-weight:500;font-size:clamp(1.25rem,2.5vw,1.9rem);line-height:1.3;
  color:var(--ink);box-shadow:var(--sh);margin:0 1rem;
}
.break cite{display:block;font-family:var(--font-b);font-style:normal;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ember);margin-top:.8rem;font-weight:700}

/* ---------- film / video ---------- */
.film-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:1.4rem;align-items:stretch}
.film-side{display:grid;gap:1.4rem}
.film-card{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh);background:#E9DCC4;min-height:240px}
.film-card video,.film-card img{width:100%;height:100%;object-fit:cover;display:block}
.film-card--main{aspect-ratio:16/9.2}
.film-side .film-card{aspect-ratio:16/9.2}
.film-badge{position:absolute;left:1rem;top:1rem;z-index:2}
.film-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--rose);display:inline-block;animation:blink 1.6s ease-in-out infinite}
@keyframes blink{50%{opacity:.25}}
.film-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:2.2rem 1.2rem .9rem;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:#FFF6E3;background:linear-gradient(180deg,transparent,rgba(42,18,8,.72))}

/* ---------- horizontal journeys showcase ---------- */
.hs{position:relative}
.hs-stage{height:100svh;display:flex;flex-direction:column;justify-content:center;gap:1.8rem;overflow:hidden}
.hs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.hs-prog{height:3px;flex:1;max-width:300px;background:rgba(42,18,8,.14);border-radius:3px;overflow:hidden;margin-bottom:.8rem}
.hs-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--ember));transform:scaleX(0);transform-origin:left}
.hs-track{display:flex;gap:clamp(1.2rem,2vw,2rem);padding-inline:max(calc((100vw - 1200px)/2),4vw);will-change:transform}
.hs-card{
  position:relative;flex:none;width:clamp(290px,30vw,420px);height:min(60vh,560px);min-height:420px;
  border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(42,18,8,.14);
  display:flex;align-items:flex-end;background:#E9DCC4;box-shadow:var(--sh-soft);transform:translateZ(0);
}
.hs-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.65,.2,1)}
.hs-card:hover>img{transform:scale(1.08)}
.hs-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,18,8,0) 32%,rgba(36,15,6,.88) 90%)}
.hs-body{position:relative;z-index:2;padding:1.7rem;width:100%;color:#FFF6E3}
.hs-body .jc-title{color:#FFF8EC}
.hs-body .jc-route{color:rgba(255,246,227,.85)}
.hs-body .jc-meta span{border-color:rgba(255,246,227,.45);color:rgba(255,246,227,.9)}
.hs-body .jc-price small{color:rgba(255,246,227,.6)}
.hs-body .jc-price b{color:var(--amber)}
.hs-body .jc-price .sub b{color:#FFF8EC}
.hs-body .btn-ghost{border-color:rgba(255,246,227,.55);color:#FFF8EC;background:transparent}
.hs-body .btn-ghost:hover{background:rgba(255,246,227,.14);border-color:var(--amber)}
.jc-tag{position:absolute;top:1.1rem;left:1.1rem;z-index:3}
.jc-fav{position:absolute;top:1.1rem;right:1.1rem;z-index:3;background:linear-gradient(135deg,var(--amber),var(--ember));color:#2A1003;border:0;font-weight:700}
.jc-title{font-family:var(--font-d);font-weight:600;font-size:clamp(1.25rem,1.7vw,1.55rem);line-height:1.16}
.jc-route{display:flex;gap:.5rem;align-items:flex-start;font-size:.84rem;color:var(--soft);margin-top:.55rem}
.jc-route svg{width:15px;height:15px;flex:none;margin-top:3px;fill:var(--ember)}
.jc-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}
.jc-meta span{font-size:.72rem;font-weight:600;letter-spacing:.05em;padding:.32rem .7rem;border-radius:999px;border:1px solid var(--line-strong);color:var(--soft)}
.jc-price{display:flex;gap:1.7rem;align-items:baseline;margin:1rem 0 1.05rem}
.jc-price small{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.jc-price b{font-family:var(--font-d);font-weight:600;font-size:1.55rem;color:var(--ember)}
.jc-price .sub b{font-size:1.1rem;color:var(--ink)}
.hs-card--cta{align-items:center;justify-content:center;text-align:center;background:linear-gradient(155deg,#FFF3DA,#FFDFAE);padding:2rem;color:var(--ink)}
.hs-card--cta::after{display:none}
.hs-hint{display:none;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}

/* ---------- split / story ---------- */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2.4rem,5vw,4.6rem);align-items:center}
.stack{position:relative;min-height:500px}
.stack img{position:absolute;object-fit:cover;border-radius:var(--r);border:5px solid #fff;box-shadow:var(--sh)}
.stack .i1{width:74%;height:80%;left:0;top:0}
.stack .i2{width:54%;height:54%;right:0;bottom:0}
.stack .badge{
  position:absolute;left:6%;bottom:4%;z-index:3;background:linear-gradient(135deg,var(--amber),var(--ember));
  color:#2A1003;border-radius:18px;padding:1rem 1.3rem;max-width:230px;box-shadow:0 18px 40px -12px rgba(232,116,15,.5);
}
.stack .badge b{display:block;font-family:var(--font-d);font-size:1.5rem;line-height:1}
.stack .badge span{font-size:.78rem;font-weight:600;line-height:1.35;display:block;margin-top:.3rem}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem 2rem;margin-top:2.4rem}
.stat b{display:block;font-family:var(--font-d);font-weight:600;font-size:clamp(2rem,3.4vw,2.8rem);color:var(--ember);line-height:1}
.stat span{font-size:.85rem;color:var(--soft)}

/* ---------- experiences ---------- */
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.exp{display:flex;gap:1.05rem;padding:1.45rem 1.4rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.55);box-shadow:var(--sh-soft);transition:border-color .4s,background .4s,transform .4s}
.exp:hover{border-color:rgba(232,116,15,.45);background:#fff;transform:translateY(-4px)}
.exp .icon{width:38px;height:38px;flex:none}
.exp h3{font-size:1rem;font-weight:600;margin-bottom:.25rem;font-family:var(--font-d)}
.exp p{font-size:.85rem;color:var(--soft)}

/* ---------- voices ---------- */
.voices{position:relative;overflow:hidden}
.glow{position:absolute;left:50%;bottom:-220px;width:680px;height:680px;transform:translateX(-50%);z-index:0;background:radial-gradient(circle,rgba(245,155,27,.28),transparent 62%);filter:blur(14px);animation:breath 5.5s ease-in-out infinite;pointer-events:none}
@keyframes breath{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;position:relative;z-index:1}
.t-card{position:relative;padding-top:2.6rem}
.t-card::before{content:"\201C";position:absolute;top:1.7rem;left:1.6rem;font-family:var(--font-d);font-size:4.4rem;line-height:0;color:rgba(245,155,27,.55)}
.t-stars{color:var(--ember);letter-spacing:.25em;font-size:.85rem;display:block;text-align:right}
.t-card p{margin:.9rem 0 1.4rem;font-size:.93rem;color:var(--soft);font-style:italic}
.t-who{display:flex;gap:.85rem;align-items:center}
.t-who b{display:block;font-size:.9rem;font-weight:600}
.t-who span{font-size:.78rem;color:var(--faint)}
.avatar{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;color:#2A1003;background:linear-gradient(135deg,var(--amber),var(--ember))}

/* ---------- frames gallery ---------- */
.frames{display:grid;grid-template-columns:repeat(12,1fr);gap:1.1rem}
.frame{position:relative;border-radius:18px;overflow:hidden;border:4px solid #fff;box-shadow:var(--sh-soft);background:#E9DCC4}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.65,.2,1)}
.frame:hover img{transform:scale(1.06)}
.frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem 1.1rem .8rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:#FFF6E3;background:linear-gradient(180deg,transparent,rgba(42,18,8,.78))}
.fr-a{grid-column:span 5;aspect-ratio:4/3}
.fr-b{grid-column:span 4;aspect-ratio:3/3.6}
.fr-c{grid-column:span 3;aspect-ratio:3/3.6}
.fr-d{grid-column:span 3;aspect-ratio:3/3.2}
.fr-e{grid-column:span 4;aspect-ratio:4/3.2}
.fr-f{grid-column:span 5;aspect-ratio:16/9.5}
.fr-g{grid-column:span 6;aspect-ratio:16/8}
.fr-h{grid-column:span 6;aspect-ratio:16/8}

/* ---------- cta ---------- */
.cta .lead{margin-inline:auto}
.cta .hero-actions{justify-content:center}

/* ---------- footer (warm dark anchor) ---------- */
.footer{margin-top:5rem;background:linear-gradient(180deg,#311508,#1C0B04);color:#F8EEDB;border-radius:36px 36px 0 0}
.f-quote{padding:clamp(3.4rem,9vh,5.5rem) 0 2.6rem;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.f-quote h2{font-family:var(--font-d);font-weight:600;font-size:clamp(2.2rem,5.6vw,4.2rem);line-height:1.05;max-width:14ch}
.f-quote em{color:var(--amber)}
.arrow-cta{
  width:76px;height:76px;flex:none;border-radius:50%;border:1.5px solid rgba(248,238,219,.35);
  display:grid;place-items:center;transition:background .4s,border-color .4s,transform .4s;
}
.arrow-cta svg{width:30px;height:30px;stroke:#F8EEDB;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s,stroke .4s}
.arrow-cta:hover{background:var(--amber);border-color:var(--amber);transform:scale(1.06)}
.arrow-cta:hover svg{stroke:#2A1003;transform:translateX(5px)}
.f-grid{display:grid;grid-template-columns:1.25fr 1fr 1.1fr;gap:2.6rem;padding:2.6rem 0;border-top:1px solid rgba(248,238,219,.12)}
.f-brand img{width:60px;margin-bottom:1rem}
.f-brand p{font-size:.88rem;color:rgba(248,238,219,.7);max-width:34ch}
.f-grid h4{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);margin-bottom:1rem;font-weight:600}
.f-links{display:flex;flex-direction:column;gap:.55rem}
.f-links a,.f-contact a,.f-contact span{font-size:.92rem;color:rgba(248,238,219,.7);transition:color .3s;display:block}
.f-links a:hover,.f-contact a:hover{color:var(--amber)}
.f-contact{display:flex;flex-direction:column;gap:.55rem}
.f-soc{display:flex;gap:1.2rem;margin-top:.7rem}
.f-soc a{font-size:.82rem;letter-spacing:.06em;border-bottom:1px solid rgba(248,238,219,.3);padding-bottom:2px}
.f-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.25rem 0 1.6rem;border-top:1px solid rgba(248,238,219,.1);font-size:.78rem;color:rgba(248,238,219,.5)}
.f-bottom a:hover{color:var(--amber)}

/* ---------- sub-page hero ---------- */
.p-hero{min-height:74svh;display:grid;align-items:end;padding:9.5rem 0 4.6rem;position:relative;isolation:isolate;overflow:hidden}
.p-hero--tall{min-height:94svh}
.p-hero .bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.p-hero .bg img{width:100%;height:118%;object-fit:cover}
.p-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(253,247,234,.35),rgba(253,247,234,.55) 45%,rgba(253,247,234,.96) 92%)}
.p-hero .lead{margin-top:1.2rem}
.hero-meta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem}
.hero-price{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;margin-top:1.9rem}

/* ---------- journey grid ---------- */
.filterbar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.6rem}
.filter-chip{
  padding:.58rem 1.2rem;border-radius:999px;border:1px solid rgba(42,18,8,.26);
  color:var(--soft);font-size:.85rem;font-weight:500;background:rgba(255,255,255,.5);transition:all .3s;
}
.filter-chip:hover{border-color:var(--ember);color:var(--ink);background:#fff}
.filter-chip.active{background:linear-gradient(135deg,var(--amber),var(--ember));border-color:transparent;color:#2A1003;font-weight:700;box-shadow:0 10px 24px -10px rgba(232,116,15,.55)}
.j-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}
.j-card{display:flex;flex-direction:column;overflow:hidden;padding:0}
.j-card.hide{display:none}
.j-media{position:relative;height:250px;overflow:hidden;flex:none}
.j-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.65,.2,1)}
.j-card:hover .j-media img{transform:scale(1.07)}
.j-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(42,18,8,.42))}
.j-body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;flex:1}
.j-body .btn{margin-top:auto;align-self:flex-start}
.j-body .jc-price{margin:.9rem 0 1.2rem}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;counter-reset:s}
.steps--col{grid-template-columns:1fr;gap:1rem}
.step{position:relative;padding:2.7rem 1.5rem 1.6rem}
.step::before{
  counter-increment:s;content:"0" counter(s);position:absolute;top:.9rem;right:1.2rem;
  font-family:var(--font-d);font-size:2.4rem;font-weight:600;color:rgba(232,116,15,.22);line-height:1;
}
.step h3{font-size:1.02rem;font-family:var(--font-d);font-weight:600;margin-bottom:.4rem}
.step p{font-size:.88rem;color:var(--soft)}

/* ---------- detail page ---------- */
.facts-bar{display:flex;flex-wrap:wrap;gap:1.2rem 2.6rem;padding:1.5rem 1.9rem;border-radius:var(--r);background:var(--card);border:1px solid var(--line);backdrop-filter:blur(10px);box-shadow:var(--sh-soft)}
.fact small{display:block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.fact b{font-family:var(--font-d);font-weight:600;font-size:1.05rem}
.gallery-strip{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x proximity}
.gallery-strip img{flex:none;width:300px;height:200px;object-fit:cover;border-radius:16px;border:4px solid #fff;box-shadow:var(--sh-soft);scroll-snap-align:start}
.highlights{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 2rem;margin-top:1.5rem}
.highlights li{display:flex;gap:.6rem;align-items:flex-start;color:var(--soft);font-size:.95rem}
.highlights svg{width:17px;height:17px;flex:none;margin-top:4px;stroke:var(--pine);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.route-pills{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.8rem}
.route-pills span{padding:.4rem .95rem;border-radius:999px;border:1px solid rgba(42,18,8,.22);background:rgba(255,255,255,.6);font-size:.8rem;font-weight:500}
.route-pills i{color:var(--ember);font-style:normal}
.timeline{position:relative;margin-top:3rem;padding-left:clamp(2rem,4.5vw,3.2rem)}
.tl-line,.tl-progress{position:absolute;left:7px;top:8px;bottom:8px;width:3px;border-radius:3px}
.tl-line{background:rgba(42,18,8,.13)}
.tl-progress{background:linear-gradient(180deg,var(--amber),var(--ember));transform:scaleY(0);transform-origin:top}
.tl-item{position:relative;padding-bottom:2.4rem}
.tl-dot{
  position:absolute;top:10px;left:calc(-1*clamp(2rem,4.5vw,3.2rem));width:17px;height:17px;border-radius:50%;
  background:#fff;border:2.5px solid rgba(42,18,8,.3);transition:all .45s;
}
.tl-item.active .tl-dot{background:var(--amber);border-color:var(--ember);box-shadow:0 0 0 7px rgba(245,155,27,.22)}
.tl-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1.6rem 1.7rem;backdrop-filter:blur(10px);box-shadow:var(--sh-soft);transition:border-color .45s,box-shadow .45s}
.tl-item.active .tl-card{border-color:rgba(232,116,15,.45);box-shadow:var(--sh)}
.tl-day{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ember);font-weight:700}
.tl-card h3{font-family:var(--font-d);font-weight:600;font-size:1.28rem;margin:.45rem 0 .7rem}
.tl-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.85rem}
.tl-meta span{font-size:.72rem;font-weight:600;padding:.3rem .7rem;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid var(--line);color:var(--soft)}
.tl-card>p{font-size:.93rem;color:var(--soft)}
.tl-note{margin-top:.95rem;padding:.85rem 1.05rem;border-left:3px solid var(--ember);border-radius:0 12px 12px 0;background:rgba(245,155,27,.12);font-size:.86rem;color:var(--soft)}
.care-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.ie-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.ie-col h3{display:flex;align-items:center;gap:.6rem;font-family:var(--font-d);font-size:1.2rem;margin-bottom:1.2rem}
.ie-col h3 svg{width:22px;height:22px;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ie-yes h3 svg{stroke:var(--pine)}
.ie-no h3 svg{stroke:var(--rose)}
.ie-col li{display:flex;gap:.65rem;align-items:flex-start;font-size:.9rem;color:var(--soft);padding:.5rem 0;border-bottom:1px dashed rgba(42,18,8,.14)}
.ie-col li:last-child{border:0}
.ie-col li svg{width:15px;height:15px;flex:none;margin-top:5px;stroke-width:2.6;fill:none;stroke-linecap:round}
.ie-yes li svg{stroke:var(--pine)}
.ie-no li svg{stroke:var(--rose)}
.dtable{width:100%;border-collapse:collapse}
.dtable th{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--line-strong)}
.dtable td{padding:1rem .9rem;border-bottom:1px solid var(--line);font-size:.92rem;color:var(--soft)}
.dtable td b{color:var(--ink);font-weight:600}
.status{display:inline-block;padding:.32rem .85rem;border-radius:999px;font-size:.74rem;font-weight:700}
.st-open{background:rgba(47,122,91,.14);color:#256A4D}
.st-fast{background:rgba(232,116,15,.16);color:#B85806}
.st-last{background:rgba(226,96,60,.16);color:#BB3E1B}
.accordion details{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-bottom:.8rem;backdrop-filter:blur(10px);box-shadow:var(--sh-soft);overflow:hidden}
.accordion summary{cursor:pointer;list-style:none;padding:1.15rem 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;font-size:.98rem}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{content:"+";font-family:var(--font-d);font-size:1.5rem;color:var(--ember);line-height:1;transition:transform .35s}
.accordion details[open]{border-color:rgba(232,116,15,.45)}
.accordion details[open] summary::after{transform:rotate(45deg)}
.accordion details p{padding:0 1.4rem 1.25rem;font-size:.91rem;color:var(--soft)}

/* ---------- regions ---------- */
.region-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}
.region-card{overflow:hidden;padding:0;display:flex;flex-direction:column}
.region-card .media{height:240px;overflow:hidden;flex:none}
.region-card .media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.65,.2,1)}
.region-card:hover .media img{transform:scale(1.07)}
.region-body{padding:1.7rem 1.7rem 1.9rem}
.best{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ember);font-weight:700}
.region-body h3{font-family:var(--font-d);font-size:1.45rem;font-weight:600;margin:.5rem 0 .55rem}
.region-body p{font-size:.92rem;color:var(--soft)}
.region-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.05rem}
.region-tags span{font-size:.74rem;padding:.32rem .75rem;border-radius:999px;border:1px solid rgba(42,18,8,.2);background:rgba(255,255,255,.55);color:var(--soft)}
.region-card--cta{align-items:center;justify-content:center;text-align:center;background:linear-gradient(155deg,#FFF3DA,#FFE0B0)}

/* ---------- values / crew / promise ---------- */
.v-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.crew-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem}
.crew{text-align:center;padding:2.1rem 1.4rem}
.avatar-lg{width:76px;height:76px;border-radius:50%;margin:0 auto 1.1rem;display:grid;place-items:center;font-family:var(--font-d);font-size:1.4rem;font-weight:600;color:#2A1003;background:linear-gradient(135deg,var(--amber),var(--ember));box-shadow:0 14px 32px -10px rgba(232,116,15,.5)}
.crew h3{font-family:var(--font-d);font-size:1.15rem;font-weight:600}
.crew em{display:block;font-style:normal;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember);margin:.35rem 0 .7rem;font-weight:700}
.crew p{font-size:.86rem;color:var(--soft)}
.promise{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 2rem;margin-top:1.6rem}
.promise li{display:flex;gap:.65rem;align-items:flex-start;color:var(--soft);font-size:.93rem}
.promise svg{width:18px;height:18px;flex:none;margin-top:4px;stroke:var(--ember);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* ---------- contact ---------- */
.c-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;margin-bottom:3.2rem}
.c-card h3{font-size:1rem}
.c-card p{font-size:.86rem}
.c-card a b,.c-card p b{color:var(--ink);font-weight:600;transition:color .3s}
.c-card:hover p b{color:var(--ember)}
.form-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,3.4rem);align-items:start}
.form-card{padding:clamp(1.8rem,3vw,2.6rem);border-radius:var(--r-lg)}
.form-card:hover{transform:none}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.form-grid .full{grid-column:1/-1}
.field label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ember);margin-bottom:.45rem}
.field input,.field select,.field textarea{
  width:100%;padding:.92rem 1.05rem;border-radius:12px;border:1px solid rgba(42,18,8,.22);
  background:#FFFDF7;color:var(--ink);font-family:var(--font-b);font-size:.95rem;
  transition:border-color .3s,box-shadow .3s;
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 4px rgba(232,116,15,.16)}
.field input::placeholder,.field textarea::placeholder{color:rgba(42,18,8,.34)}
.check-row{display:flex;flex-wrap:wrap;gap:.55rem}
.check-pill{position:relative}
.check-pill input{position:absolute;inset:0;opacity:0;cursor:pointer}
.check-pill span{display:inline-block;padding:.52rem 1.05rem;border-radius:999px;font-size:.84rem;font-weight:500;border:1px solid rgba(42,18,8,.28);background:rgba(255,255,255,.6);color:var(--soft);transition:.3s;cursor:pointer}
.check-pill input:checked + span{background:linear-gradient(135deg,var(--amber),var(--ember));border-color:transparent;color:#2A1003;font-weight:700}
.check-pill input:focus-visible + span{outline:2px solid var(--ember);outline-offset:2px}
.form-note{font-size:.8rem;color:var(--faint);margin-top:.9rem}

/* ---------- whatsapp float ---------- */
.wa-float{
  position:fixed;right:1.4rem;bottom:1.4rem;z-index:140;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;box-shadow:0 14px 34px -8px rgba(37,211,102,.65);
  transition:transform .35s cubic-bezier(.2,.7,.3,1.5);
}
.wa-float:hover{transform:scale(1.1)}
.wa-float svg{width:30px;height:30px;fill:#fff}

/* ---------- reduced motion & no-js ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  #grain,.cl,.birds,#veil{display:none!important}
  .kb .kb-img{opacity:0}
  .kb .kb-img:first-child{opacity:1;transform:none}
}
html.no-gsap #veil{display:none}
html.no-gsap .menu{transition:transform .5s ease}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .why-grid{gap:1.1rem}
  .frames{gap:.9rem}
}
@media (max-width:1024px){
  .why-grid,.exp-grid,.t-grid{grid-template-columns:repeat(2,1fr)}
  .v-grid,.crew-grid,.care-grid,.c-grid,.steps{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:3rem}
  .stack{min-height:420px}
  .film-grid{grid-template-columns:1fr}
  .film-side{grid-template-columns:1fr 1fr}
  .f-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .fr-a,.fr-f{grid-column:span 7}.fr-b,.fr-e{grid-column:span 5}.fr-c,.fr-d,.fr-g,.fr-h{grid-column:span 6}
}
@media (max-width:860px){
  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  .hero::after{background:linear-gradient(180deg,rgba(253,247,234,.55),rgba(253,247,234,.88) 55%,rgba(253,247,234,.97))}
  .hs-stage{height:auto;padding:0;gap:1.4rem}
  .hs-track{overflow-x:auto;scroll-snap-type:x mandatory;padding:0 5vw 1.2rem;-webkit-overflow-scrolling:touch}
  .hs-card{scroll-snap-align:center;width:min(78vw,400px);height:480px;min-height:440px}
  .hs-hint{display:block}
  .hs-prog{display:none}
  .j-grid,.region-grid,.ie-grid,.form-wrap{grid-template-columns:1fr}
  .f-quote h2{max-width:none}
  .break{height:52vh}
}
@media (max-width:600px){
  .why-grid,.exp-grid,.t-grid,.v-grid,.crew-grid,.care-grid,.c-grid,.steps,.film-side{grid-template-columns:1fr}
  .frames{grid-template-columns:1fr;gap:1rem}
  .fr-a,.fr-b,.fr-c,.fr-d,.fr-e,.fr-f,.fr-g,.fr-h{grid-column:span 1;aspect-ratio:4/3}
  .stat-grid{gap:1.2rem}
  .highlights,.promise{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr}
  .hero{padding-top:6.5rem}
  .hero-price{gap:1.2rem}
  .stack{min-height:340px}
  .gallery-strip img{width:240px;height:160px}
  .timeline{padding-left:1.9rem}
  .tl-dot{left:-1.9rem}
  .break{height:44vh;min-height:320px}
}


/* ============================================================
   MOBILE OPTIMIZATION PASS
   ============================================================ */
html{-webkit-tap-highlight-color:transparent}
.hero{min-height:100vh;min-height:100svh}
.hs-stage{height:100vh;height:100svh}
.p-hero{min-height:74vh;min-height:74svh}
.p-hero--tall{min-height:94vh;min-height:94svh}
.gallery-strip,.hs-track{-webkit-overflow-scrolling:touch}
.hs-track{overscroll-behavior-x:contain}

/* touch devices: no sticky hover lifts or image zooms */
@media (hover:none){
  .card:hover,.exp:hover,.btn:hover,.wa-float:hover,.arrow-cta:hover{transform:none}
  .hs-card:hover>img,.j-card:hover .j-media img,.region-card:hover .media img,.frame:hover img{transform:none}
}

@media (max-width:860px){
  #grain{display:none}                                   /* large animated layer: costly on phones */
  #orb{filter:blur(1px) drop-shadow(0 0 36px var(--glow))}
  .field input,.field select,.field textarea{font-size:16px}  /* prevents iOS focus zoom */
  .menu{backdrop-filter:blur(8px)}
  .nav--solid{backdrop-filter:blur(10px)}
  .card,.tl-card,.facts-bar,.accordion details,.form-card{backdrop-filter:none;background:rgba(255,255,255,.94)}
  .break blockquote{backdrop-filter:none;background:rgba(253,247,234,.96)}
  .f-links{gap:.85rem}
  .f-contact{gap:.8rem}
}

@media (max-width:600px){
  .cl-3{display:none}
  .dtable{min-width:540px}
  .break blockquote{padding:1.25rem 1.4rem}
  .hero-actions{width:100%}
  .hero-actions .btn{flex:1 1 100%;justify-content:center}
  .filter-chip{padding:.62rem 1.05rem}
  .sec{padding:3.8rem 0}
  .sec-head{margin-bottom:2rem}
}

/* notched phones: keep floating UI clear of home bar / curved edges */
@supports(padding:max(0px)){
  .wa-float{right:max(1.4rem,calc(env(safe-area-inset-right) + .6rem));bottom:max(1.4rem,calc(env(safe-area-inset-bottom) + .6rem))}
  .f-bottom{padding-bottom:max(1.6rem,env(safe-area-inset-bottom))}
  .menu{padding-bottom:max(2rem,env(safe-area-inset-bottom))}
}


/* ---------- veil: instant cover from first paint + self-dismiss safety ---------- */
.veil-logo{animation:veilLogoIn .7s ease .05s forwards}
@keyframes veilLogoIn{to{opacity:1;transform:scale(1)}}
#veil{animation:veilSafety .5s ease 7s forwards} /* if JS never arrives, veil bows out */
@keyframes veilSafety{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){#veil{display:none!important}}


/* ============================================================
   VEIL LOADER — the logo assembles itself, then becomes the logo
   (CSS-driven: plays from first paint, GSAP only handles the exit)
   ============================================================ */
.veil-loader{position:relative;width:min(210px,56vw);aspect-ratio:1}
.veil-loader .vl{position:absolute;inset:0;width:100%;height:100%;animation:vlSettle .35s 2.45s ease-out forwards,vlOut .4s 2.55s ease forwards}
.veil-final{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.95);animation:vlIn .5s 2.5s cubic-bezier(.2,.7,.3,1.25) forwards;filter:drop-shadow(0 18px 38px rgba(20,9,4,.35))}
.vl-ring{stroke-dasharray:553;stroke-dashoffset:553;animation:vlDash .75s .05s cubic-bezier(.6,.05,.3,1) forwards;transform:rotate(-90deg);transform-origin:100px 100px}
.vl-sky{opacity:0;animation:vlFade .4s .2s ease forwards}
.vl-clouds{opacity:0;transform:translateX(7px);animation:vlDrift .9s .5s ease forwards}
.vl-mb{opacity:0;transform:translateY(26px);animation:vlRise .55s .35s cubic-bezier(.2,.7,.2,1) forwards}
.vl-mf{opacity:0;transform:translateY(30px);animation:vlRise .55s .5s cubic-bezier(.2,.7,.2,1) forwards}
.vl-pines{opacity:0;transform:translateY(14px);animation:vlRise .45s .68s ease-out forwards}
.vl-waterbase{opacity:0;animation:vlFade .4s .72s ease forwards}
.vl-water line{transform:scaleX(0);transform-origin:34px 0;animation:vlLine .45s ease-out forwards}
.vl-water .w1{animation-delay:.78s}.vl-water .w2{animation-delay:.88s}
.vl-water .w3{animation-delay:.98s}.vl-water .w4{animation-delay:1.08s}
.vl-sunw{opacity:0;transform:translateY(36px);animation:vlRise .75s .95s cubic-bezier(.2,.7,.25,1) forwards}
.vl-glow{animation:vlGlow 1.6s 1.75s ease-in-out infinite alternate}
.vl-eleph{opacity:0;transform:scale(.72);transform-origin:100px 70px;animation:vlPop .6s 1.28s cubic-bezier(.32,1.35,.45,1) forwards}
.vl-trunk{stroke-dasharray:140;stroke-dashoffset:140;animation:vlDash .6s 1.62s cubic-bezier(.5,0,.3,1) forwards}
.vl-tusk{stroke-dasharray:78;stroke-dashoffset:78;animation:vlDash .4s 1.98s ease-out forwards}
.vl-birds{opacity:0;transform:translateX(-10px);animation:vlDrift .55s 2.05s ease-out forwards}
.vl-hiker{opacity:0;transform:translateX(-56px);animation:vlWalk .8s 1.95s cubic-bezier(.3,.7,.3,1) forwards}
.vl-bob{animation:vlBob .3s 1.95s ease-in-out 6 alternate}
@keyframes vlDash{to{stroke-dashoffset:0}}
@keyframes vlFade{to{opacity:1}}
@keyframes vlDrift{to{opacity:1;transform:none}}
@keyframes vlRise{to{opacity:1;transform:none}}
@keyframes vlLine{to{transform:scaleX(1)}}
@keyframes vlGlow{from{opacity:.26}to{opacity:.5}}
@keyframes vlPop{to{opacity:1;transform:scale(1)}}
@keyframes vlWalk{25%{opacity:1}to{opacity:1;transform:none}}
@keyframes vlBob{to{transform:translate(101px,84.6px)}}
@keyframes vlSettle{from{transform:scale(.985)}to{transform:scale(1)}}
@keyframes vlOut{to{opacity:0}}
@keyframes vlIn{to{opacity:1;transform:scale(1)}}


/* ============================================================
   SMOOTHNESS PASS — GPU-friendly surfaces, no per-frame filters
   ============================================================ */
.card,.tl-card,.facts-bar,.accordion details,.chip,.form-card,.break blockquote{backdrop-filter:none}
.card:not(.region-card--cta),.tl-card,.facts-bar,.accordion details,.form-card{background:rgba(255,255,255,.86)}
.card:not(.region-card--cta):hover{background:rgba(255,255,255,.96)}
.chip:not(.jc-fav){background:rgba(255,255,255,.93)}
.break blockquote{background:rgba(253,247,234,.95)}
.cl{will-change:transform}
.kb .kb-img{will-change:transform,opacity}
#moon{will-change:opacity,transform}
#orb{filter:none!important;will-change:transform;width:clamp(190px,21vw,310px);
  background:radial-gradient(circle at 40% 36%,#FFFDF4,#FFE9A8 30%,rgba(245,155,27,.5) 47%,rgba(243,150,40,.15) 63%,rgba(243,150,40,0) 72%)}
