
/* Layout: a travel journal plotted along the equator — coordinate-led hero, story, regions by altitude, dispatches, route south */
:root{
  --bg:#f3f5f1;
  --surface:#ffffff;
  --ink:#16231f;
  --muted:#56645f;
  --line:#d5ddd8;
  --deep:#0f3b3a;      /* Andean lake / páramo shadow */
  --deep-ink:#e9f2ee;
  --sun:#f2b632;       /* equatorial sun */
  --moss:#3d7a5a;      /* cloud forest */
  --display:"Young Serif", Georgia, "Times New Roman", serif;
  --body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0d1513;--surface:#14201d;--ink:#e6eeea;--muted:#9aaba4;--line:#26352f;
    --deep:#0a2a29;--deep-ink:#e6f0ec;--sun:#f5c24f;--moss:#6fb38c;color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0d1513;--surface:#14201d;--ink:#e6eeea;--muted:#9aaba4;--line:#26352f;
  --deep:#0a2a29;--deep-ink:#e6f0ec;--sun:#f5c24f;--moss:#6fb38c;color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--sun);outline-offset:3px;border-radius:4px}
.wrap{max-width:1120px;margin-inline:auto;padding-inline:20px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;text-wrap:balance;margin:0}
.eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
p{margin:0}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--deep) 94%,transparent);backdrop-filter:blur(8px);color:var(--deep-ink)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.brand{font-family:var(--display);font-size:1.25rem;text-decoration:none;display:flex;align-items:center;gap:10px}
.brand-mark{width:22px;height:22px;border-radius:50%;border:2px solid var(--sun);position:relative;flex:none}
.brand-mark::after{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:2px;background:var(--sun);transform:translateY(-50%)}



@media (max-width:640px){}

/* hero */
.hero{background:var(--deep);color:var(--deep-ink);position:relative;overflow:hidden}
.hero .wrap{padding-block:64px 0;display:grid;gap:28px}
.coords{font-family:var(--mono);font-size:.8125rem;letter-spacing:.08em;color:var(--sun);display:flex;flex-wrap:wrap;gap:6px 18px}
.hero h1{font-size:clamp(2.6rem,8vw,5.6rem);max-width:12ch}
.hero h1 em{font-style:normal;color:var(--sun)}
.hero p.lede{font-size:1.1875rem;max-width:52ch;opacity:.88}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:600;font-size:.9375rem;text-decoration:none;border:1.5px solid transparent}
.btn-sun{background:var(--sun);color:#1b1a10}
.btn-ghost{border-color:color-mix(in srgb,var(--deep-ink) 40%,transparent);color:var(--deep-ink)}
.btn:hover{filter:brightness(1.05)}
.ridge{display:block;width:100%;height:auto;margin-top:24px}
.equator{position:absolute;left:0;right:0;bottom:118px;border-top:1.5px dashed color-mix(in srgb,var(--sun) 70%,transparent)}
.equator span{position:absolute;right:20px;top:-22px;font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;color:var(--sun)}

section{padding-block:80px}
.sec-head{display:grid;gap:12px;margin-bottom:40px;max-width:640px}
.sec-head h2{font-size:clamp(2rem,4.5vw,2.9rem)}
.sec-head p{color:var(--muted)}

/* story */
.story-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.story-grid > *{min-width:0}
.story-copy{display:grid;gap:18px;max-width:62ch}
.story-copy p:first-child::first-letter{font-family:var(--display);font-size:3.2rem;float:left;line-height:.9;padding:6px 10px 0 0;color:var(--moss)}
.family{display:grid;gap:0;border-top:1px solid var(--line)}
.member{display:grid;grid-template-columns:auto 1fr;gap:16px;padding-block:18px;border-bottom:1px solid var(--line);align-items:center}
.initial{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:1.4rem;background:var(--surface);border:1.5px solid var(--line);color:var(--moss)}
.member b{display:block;font-weight:600}
.member span{color:var(--muted);font-size:.9375rem}
@media (max-width:820px){.story-grid{grid-template-columns:1fr;gap:32px}}

/* regions */
.regions-bg{background:var(--surface);border-block:1px solid var(--line)}
.regions{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.region{padding:26px 22px 28px;display:grid;gap:12px;align-content:start;border-right:1px solid var(--line);min-width:0}
.region:last-child{border-right:0}
.alt{font-family:var(--mono);font-size:.75rem;color:var(--moss);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.region h3{font-size:1.6rem}
.region p{color:var(--muted);font-size:.9688rem}
.region .tag{font-size:.8125rem;font-weight:600;color:var(--ink)}
.altbar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.altbar i{display:block;height:100%;background:var(--moss)}
@media (max-width:900px){.regions{grid-template-columns:1fr 1fr}.region:nth-child(2){border-right:0}.region:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:520px){.regions{grid-template-columns:1fr}.region{border-right:0;border-bottom:1px solid var(--line)}.region:last-child{border-bottom:0}}

/* dispatches */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.post{display:grid;grid-template-rows:auto 1fr;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;transition:transform .25s ease,border-color .25s}
.post:hover{transform:translateY(-3px);border-color:var(--moss)}
.post-art{aspect-ratio:16/10;max-width:100%;position:relative}
.post-art .stamp{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;color:#fff;background:rgba(0,0,0,.62);padding:5px 10px;border-radius:5px}
.post-body{padding:20px 20px 22px;display:grid;gap:10px;align-content:start}
.post h3{font-size:1.35rem}
.post p{color:var(--muted);font-size:.9688rem}
.meta{display:flex;gap:10px;align-items:center;font-size:.8125rem;color:var(--muted)}
.pill{font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--moss)}
.art-1{background:linear-gradient(180deg,#f6c96a 0%,#e58a4e 46%,#2f5d57 47%,#173c39 100%)}
.art-2{background:radial-gradient(circle at 70% 30%,#fbe7a8 0 9%,transparent 10%),linear-gradient(160deg,#5c8f73,#1f4a3c)}
.art-3{background:repeating-linear-gradient(90deg,#c74b3a 0 14px,#f2b632 14px 22px,#2c5b74 22px 36px,#f3ebdd 36px 40px)}
.art-4{background:linear-gradient(180deg,#9fd0d6 0%,#5aa1ad 55%,#e9dcb8 56%,#d8c69a 100%)}
.art-5{background:linear-gradient(180deg,#d9e4ea 0%,#a9bdc8 40%,#58707c 41%,#2a3d45 100%)}
.art-6{background:radial-gradient(ellipse at 50% 120%,#3d7a5a 0 40%,transparent 41%),linear-gradient(180deg,#f7d58a,#e9a55a)}
@media (max-width:900px){.posts{grid-template-columns:1fr 1fr}}
@media (max-width:580px){.posts{grid-template-columns:1fr}}

/* route */
.route{background:var(--deep);color:var(--deep-ink)}
.route .sec-head p{color:color-mix(in srgb,var(--deep-ink) 75%,transparent)}
.route .eyebrow{color:var(--sun)}
.stops{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.stops::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;border-left:2px dashed color-mix(in srgb,var(--sun) 60%,transparent)}
.stop{display:grid;grid-template-columns:24px 1fr auto;gap:18px;padding-block:16px;align-items:baseline}
.stop .dot{width:24px;height:24px;border-radius:50%;background:var(--deep);border:2px solid var(--sun);position:relative;top:4px}
.stop.now .dot{background:var(--sun)}
.stop b{font-family:var(--display);font-weight:400;font-size:1.35rem}
.stop span{display:block;font-size:.9375rem;opacity:.75}
.stop em{font-style:normal;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:var(--sun);white-space:nowrap}
.stop > div{min-width:0}

/* follow */
.follow{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.follow > *{min-width:0}
.handles{display:grid;gap:0;border-top:1px solid var(--line)}
.handle{display:flex;justify-content:space-between;gap:16px;padding-block:16px;border-bottom:1px solid var(--line);font-weight:500}
.handle code{font-family:var(--mono);color:var(--moss);font-size:.9375rem}
@media (max-width:820px){.follow{grid-template-columns:1fr}}

footer{border-top:1px solid var(--line);padding-block:32px;color:var(--muted);font-size:.875rem}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
footer .mono{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- multi-page additions ---- */
.nav .wrap{flex-wrap:wrap}

@media (max-width:640px){
  
  
  
}
.page-hero{background:var(--deep);color:var(--deep-ink)}
.page-hero .wrap{padding-block:56px 52px;display:grid;gap:16px}
.page-hero h1{font-size:clamp(2.3rem,6vw,4rem);max-width:16ch}
.page-hero h1 em{font-style:normal;color:var(--sun)}
.page-hero p{font-size:1.125rem;max-width:56ch;opacity:.86}
.page-hero .eyebrow{color:var(--sun)}
.link-more{font-weight:600;color:var(--moss);text-decoration:none;display:inline-flex;gap:6px;margin-top:28px}
.link-more:hover{text-decoration:underline}
.prose{max-width:66ch;display:grid;gap:20px;font-size:1.125rem;line-height:1.7}
.prose h2{font-size:1.9rem;margin-top:20px}
.prose blockquote{margin:8px 0;padding:4px 0 4px 22px;border-left:3px solid var(--sun);font-family:var(--display);font-size:1.45rem;line-height:1.35}
.article-head{display:grid;gap:14px;max-width:66ch}
.article-art{aspect-ratio:21/9;max-width:100%;border-radius:14px;margin-block:36px}
.byline{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.875rem;color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.fact{padding:20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:4px;min-width:0}
.fact:nth-child(3n){border-right:0}
.fact:nth-last-child(-n+3){border-bottom:0}
.fact dt{font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fact dd{margin:0;font-family:var(--display);font-size:1.3rem}
@media (max-width:700px){.facts{grid-template-columns:1fr 1fr}.fact:nth-child(3n){border-right:1px solid var(--line)}.fact:nth-child(2n){border-right:0}.fact:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.fact:nth-last-child(-n+2){border-bottom:0}}
.region-detail{display:grid;grid-template-columns:200px 1fr;gap:40px;padding-block:40px;border-top:1px solid var(--line)}
.region-detail > *{min-width:0}
.region-detail h2{font-size:2.2rem}
.region-detail .side{display:grid;gap:10px;align-content:start}
.region-detail ul{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--muted)}
.region-detail .body{display:grid;gap:16px;max-width:62ch}
@media (max-width:760px){.region-detail{grid-template-columns:1fr;gap:16px}}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.chip{font:600 .875rem var(--body);padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--deep);color:var(--deep-ink);border-color:var(--deep)}
.cta-band{background:var(--surface);border-block:1px solid var(--line)}
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between}
.cta-band h2{font-size:clamp(1.7rem,3.5vw,2.3rem);max-width:22ch}
.cta-band .btn-sun{flex:none}
.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.offer{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px 24px;display:grid;gap:10px;align-content:start;min-width:0}
.offer h3{font-size:1.4rem}
.offer p{color:var(--muted);font-size:.9688rem}
@media (max-width:820px){.offers{grid-template-columns:1fr}}
.copy-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}
.copy-row code{font-family:var(--mono);font-size:1.0625rem;padding:12px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--line);user-select:all}
.btn-line{border-color:var(--line);color:var(--ink);background:var(--surface);cursor:pointer;font-family:var(--body)}
.stop .dot{flex:none}
.country{display:grid;grid-template-columns:24px 1fr;gap:18px;padding-block:22px}
.country .dot{width:24px;height:24px;border-radius:50%;border:2px solid var(--sun);background:var(--deep);position:relative;top:6px}
.country.now .dot{background:var(--sun)}
.country h3{font-size:1.7rem;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.country h3 em{font-style:normal;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:var(--sun)}
.country p{opacity:.8;max-width:60ch;margin-top:6px}
.country ul{margin:10px 0 0;padding-left:18px;opacity:.8;display:grid;gap:4px}
.country > div{min-width:0}

/* ---- top 20 ---- */
.progress{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:28px}
.progress .bar{flex:1 1 220px;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.progress .bar i{display:block;height:100%;width:0;background:var(--sun)}
.progress span{font-family:var(--mono);font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}
.places{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.place{display:grid;grid-template-columns:64px 1fr auto;gap:8px 20px;padding-block:22px;border-bottom:1px solid var(--line);align-items:start}
.place > *{min-width:0}
.place .num{font-family:var(--display);font-size:2.2rem;line-height:1;color:var(--moss);font-variant-numeric:tabular-nums}
.place h3{font-size:1.5rem}
.place .where{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;color:var(--muted);margin-top:4px;display:block}
.place p{color:var(--muted);margin-top:8px;max-width:62ch}
.place .family-note{margin-top:8px;font-size:.9375rem;color:var(--ink)}
.place .family-note b{color:var(--moss);font-weight:600}
.status{font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.status.visited{background:var(--sun);border-color:var(--sun);color:#1b1a10}
@media (max-width:560px){.place{grid-template-columns:44px 1fr}.place .num{font-size:1.7rem}.place .status{grid-column:2;justify-self:start}}

/* ---- logo + full footer ---- */
.logo{width:34px;height:34px;flex:none;display:block}
.brand-mark{display:none}
.site-footer{background:var(--deep);color:var(--deep-ink);border-top:0;padding-block:56px 28px;font-size:.9375rem}
.site-footer .wrap{display:grid;gap:40px;justify-content:stretch}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:36px 28px}
.foot-grid > *{min-width:0}
.foot-brand{display:grid;gap:14px;align-content:start}
.foot-brand .brand{font-size:1.4rem}
.foot-brand .logo{width:44px;height:44px}
.foot-brand p{opacity:.78;max-width:34ch}
.foot-brand .mono{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:var(--sun);opacity:1}
.foot-col{display:grid;gap:10px;align-content:start}
.foot-col h3{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sun);margin-bottom:4px}
.foot-col a{text-decoration:none;opacity:.85}
.foot-col a:hover{opacity:1;text-decoration:underline}
.foot-col span{opacity:.85;display:grid;gap:2px}
.foot-col code{font-family:var(--mono);font-size:.8125rem;opacity:.75;overflow-wrap:anywhere}
.foot-col .foot-email{font-size:.875rem;opacity:1;color:var(--sun);user-select:all}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding-top:24px;border-top:1px solid color-mix(in srgb,var(--deep-ink) 18%,transparent);font-size:.8125rem;opacity:.75}
.foot-bottom .to-top{text-decoration:none}
@media (max-width:960px){.foot-grid{grid-template-columns:repeat(2,1fr)}.foot-brand{grid-column:1/-1}}
@media (max-width:420px){.foot-grid{grid-template-columns:1fr}}

/* ---- menu: tap to open below 960px, no sideways scrolling ---- */
.menu-btn{display:none}
@media (max-width:1100px){
  .nav .wrap{flex-wrap:wrap}
  .menu-btn{display:inline-flex;align-items:center;gap:10px;background:transparent;border:1.5px solid color-mix(in srgb,var(--deep-ink) 35%,transparent);color:var(--deep-ink);border-radius:999px;padding:8px 14px;font:600 .875rem var(--body);cursor:pointer}
  .bars{width:16px;height:2px;background:currentColor;position:relative;border-radius:2px;transition:background .2s}
  .bars::before,.bars::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s}
  .bars::before{top:-5px}.bars::after{top:5px}
  .nav.open .bars{background:transparent}
  .nav.open .bars::before{transform:translateY(5px) rotate(45deg)}
  .nav.open .bars::after{transform:translateY(-5px) rotate(-45deg)}
  
  
  
  
}

/* ---- photos ---- */
.hero{background:linear-gradient(180deg,color-mix(in srgb,var(--deep) 72%,transparent) 0%,color-mix(in srgb,var(--deep) 88%,transparent) 70%,var(--deep) 100%),url(img/hero.jpg) center 35%/cover var(--deep)}
.page-hero.has-photo{background:linear-gradient(100deg,color-mix(in srgb,var(--deep) 92%,transparent) 0%,color-mix(in srgb,var(--deep) 70%,transparent) 60%,color-mix(in srgb,var(--deep) 45%,transparent) 100%),var(--photo,none) center/cover var(--deep)}
.page-hero.has-photo .wrap{padding-block:88px 80px}
.page-hero.has-photo h1,.page-hero.has-photo p,.hero h1,.hero .lede{text-shadow:0 1px 18px rgba(0,0,0,.35)}
.post-art{overflow:hidden;background:var(--line)}
.post-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.post:hover .post-art img{transform:scale(1.04)}
.region-img{display:block;width:calc(100% + 44px);max-width:none;margin:-26px -22px 6px;aspect-ratio:4/3;object-fit:cover;background:var(--line)}
.region:hover .region-img{filter:brightness(1.06)}
.detail-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;background:var(--line)}
.region-detail .body{max-width:760px}
.region-detail .body > p,.region-detail .body > ul{max-width:62ch}
img.article-art{width:100%;object-fit:cover;display:block;background:var(--line)}
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.photo-strip figure{margin:0;display:grid;gap:8px;min-width:0}
.photo-strip img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;background:var(--line)}
.photo-strip figcaption{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;color:var(--muted)}
@media (max-width:640px){.photo-strip{grid-template-columns:1fr 1fr}.photo-strip figure:last-child{display:none}}
.place{grid-template-columns:56px 220px 1fr auto}
.place-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--line)}
@media (max-width:820px){.place{grid-template-columns:48px 1fr auto}.place-img{grid-column:2/-1;grid-row:1;aspect-ratio:16/9}.place .num{grid-row:1/3}}
@media (max-width:560px){.place{grid-template-columns:40px 1fr}.place-img{grid-column:2}.place .num{grid-row:1/4}}
.credits{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 32px;border-top:1px solid var(--line)}
.credit{display:grid;grid-template-columns:96px 1fr;gap:16px;padding-block:16px;border-bottom:1px solid var(--line);align-items:center}
.credit > div{display:grid;gap:3px;min-width:0}
.credit img{width:96px;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:var(--line)}
.credit span{color:var(--muted);font-size:.875rem;overflow-wrap:anywhere}
.credit a{font-size:.875rem;color:var(--moss);font-weight:600}
.credit-note{margin-top:24px;color:var(--muted);font-size:.875rem;max-width:70ch}
@media (max-width:760px){.credits{grid-template-columns:1fr}}

/* ---- language switch ---- */
.lang{display:inline-flex;border:1.5px solid color-mix(in srgb,var(--deep-ink) 35%,transparent);border-radius:999px;padding:2px;margin-left:auto;margin-right:12px;font:600 .8125rem var(--mono);letter-spacing:.06em}
.lang a{text-decoration:none;padding:5px 10px;border-radius:999px;color:var(--deep-ink);opacity:.8}
.lang a[aria-current]{background:var(--sun);color:#1b1a10;opacity:1}


@media (max-width:1100px){.menu-btn{order:2}}
@media (max-width:360px){.menu-label{display:none}}

/* ---- strategy pages ---- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:1101px){}
.news-band{background:var(--deep);color:var(--deep-ink);border-top:1px solid color-mix(in srgb,var(--deep-ink) 14%,transparent)}
.news-band .wrap{display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;align-items:center}
.news-band .wrap > *{min-width:0}
.news-copy{display:grid;gap:10px}
.news-copy .eyebrow{color:var(--sun)}
.news-copy h2{font-size:clamp(1.9rem,4vw,2.6rem)}
.news-copy p{opacity:.82;max-width:46ch}
.news-form{display:flex;flex-wrap:wrap;gap:12px}
.news-form input{flex:1 1 220px;min-width:0;font:500 1rem var(--body);padding:13px 18px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--deep-ink) 30%,transparent);background:color-mix(in srgb,var(--deep-ink) 8%,transparent);color:var(--deep-ink)}
.news-form input::placeholder{color:color-mix(in srgb,var(--deep-ink) 55%,transparent)}
.news-form button{border:0;cursor:pointer;font-family:var(--body)}
.news-msg{flex-basis:100%;font-size:.9375rem;color:var(--sun)}
@media (max-width:820px){.news-band .wrap{grid-template-columns:1fr}}
.paths-sec{padding-block:48px 0}
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.path{display:grid;gap:10px;align-content:start;padding:24px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;min-width:0;transition:border-color .2s,transform .2s}
.path:hover{border-color:var(--moss);transform:translateY(-2px)}
.path h3{font-size:1.45rem}
.path p{color:var(--muted);font-size:.9688rem}
.go{font-weight:600;color:var(--moss);font-size:.9375rem}
@media (max-width:820px){.paths{grid-template-columns:1fr}}
a.offer{text-decoration:none;transition:border-color .2s}
a.offer:hover{border-color:var(--moss)}
@media (max-width:1000px) and (min-width:821px){.series-grid{grid-template-columns:1fr 1fr}}
.chapters{list-style:none;margin:0;padding:0;display:grid;position:relative;max-width:760px}
.chapters::before{content:"";position:absolute;left:11px;top:14px;bottom:14px;border-left:2px dashed var(--line)}
.chapter{display:grid;grid-template-columns:24px 1fr;gap:20px;padding-block:20px}
.chapter > div{display:grid;gap:6px;justify-items:start;min-width:0}
.chapter .dot{width:24px;height:24px;border-radius:50%;background:var(--bg);border:2px solid var(--moss);position:relative;top:2px}
.chapter.now .dot{background:var(--sun);border-color:var(--sun)}
.chapter h3{font-size:1.6rem}
.chapter p{color:var(--muted);max-width:60ch}
.firsts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 32px;border-top:1px solid var(--line)}
.first{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:18px;border-bottom:1px solid var(--line)}
.first > div{display:grid;gap:2px;min-width:0}
.first b{font-family:var(--display);font-weight:400;font-size:1.3rem}
.first span{color:var(--muted);font-size:.9375rem}
.first .status{color:var(--muted)}
@media (max-width:700px){.firsts{grid-template-columns:1fr}}
a.member:hover b{color:var(--moss)}

/* ---- added pages ---- */
.foot-grid{grid-template-columns:1.4fr repeat(5,1fr)}
@media (max-width:1100px){.foot-grid{grid-template-columns:repeat(3,1fr)}.foot-brand{grid-column:1/-1}}
@media (max-width:640px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:380px){.foot-grid{grid-template-columns:1fr}}
[id]{scroll-margin-top:90px}
.faqs{display:grid;max-width:780px;border-top:1px solid var(--line)}
.faq{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding-block:20px;font-family:var(--display);font-size:1.3rem;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:1.25rem;color:var(--moss);flex:none}
.faq[open] summary::after{content:"\2212"}
.faq p{padding-bottom:22px;color:var(--muted);max-width:64ch}
.faq a,.story-copy a:not(.link-more){color:var(--moss);font-weight:600}
.gear-grid{grid-template-columns:repeat(2,1fr)}
@media (max-width:700px){.gear-grid{grid-template-columns:1fr}}
.gear-list{margin:4px 0 0;padding-left:20px;display:grid;gap:6px;color:var(--muted)}
.facts dd{overflow-wrap:anywhere}

/* ---- grouped menu ---- */
.menu{list-style:none;margin:0 0 0 auto;padding:0;display:flex;align-items:center;gap:4px;order:2}
.menu > li{position:relative}
.grp-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--deep-ink);font:600 .9375rem var(--body);padding:10px 12px;border-radius:8px;cursor:pointer;opacity:.9}
.grp-btn::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.grp-btn:hover,.grp.open > .grp-btn{opacity:1;background:color-mix(in srgb,var(--deep-ink) 10%,transparent)}
.grp.current > .grp-btn{color:var(--sun);opacity:1}
.sub{list-style:none;margin:0;padding:8px;position:absolute;top:calc(100% + 6px);left:0;min-width:240px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.18);display:none;z-index:20}
.grp.open > .sub{display:block}
.grp.open > .grp-btn::after{transform:translateY(1px) rotate(-135deg)}
.sub a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:500;font-size:.9375rem;color:var(--ink)}
.sub a span{display:block;font-weight:400;font-size:.8125rem;color:var(--muted);margin-top:1px}
.sub a:hover{background:var(--bg)}
.sub a[aria-current="page"]{color:var(--moss);background:var(--bg)}
.menu > li:last-child .sub{left:auto;right:0}
.lang{order:3;margin-left:16px;margin-right:0}
.menu-btn{order:4}
.nav .wrap{flex-wrap:nowrap}
@media (max-width:1100px){
  .nav .wrap{flex-wrap:wrap}
  .lang{margin-left:auto;margin-right:10px;order:2}
  .menu-btn{order:3}
  .menu{order:5;display:none;width:100%;margin:6px 0 4px;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 90px);overflow-y:auto}
  .nav.open .menu{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;padding-bottom:8px}
  .menu > li{border-top:1px solid color-mix(in srgb,var(--deep-ink) 16%,transparent);padding-top:10px}
  .grp-btn{pointer-events:none;padding:4px 0 6px;font:500 .6875rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sun);opacity:1;background:none!important}
  .grp-btn::after{display:none}
  .sub{display:block;position:static;min-width:0;background:none;border:0;box-shadow:none;padding:0 0 6px;color:var(--deep-ink)}
  .sub a{color:var(--deep-ink);padding:8px 0;font-size:1rem}
  .sub a span{display:none}
  .sub a:hover,.sub a[aria-current="page"]{background:none;color:var(--sun)}
}
@media (max-width:520px){.nav.open .menu{grid-template-columns:1fr}}
.foot-grid{grid-template-columns:repeat(6,1fr)}
.foot-brand{grid-column:1/-1}
@media (max-width:1100px){.foot-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.menu-btn{padding:10px 12px}.lang{margin-right:8px}.brand{font-size:1.125rem}.nav .wrap{gap:10px}}
/* open phone menu becomes a full-screen scrollable panel */
@media (max-width:1100px){
  .nav.open{position:fixed;top:0;left:0;right:0;bottom:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-top:env(safe-area-inset-top,0px);padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--deep)}
  .nav.open .menu{max-height:none;overflow:visible}
}

/* ---- engagement features ---- */
.home-widgets{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:20px}
.widget{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:grid;gap:8px;align-content:start;min-width:0}
.countdown{background:var(--deep);color:var(--deep-ink);border-color:var(--deep)}
.countdown .eyebrow{color:var(--sun)}
.cd-big{font-family:var(--display);font-size:2rem;line-height:1.1;color:var(--sun)}
.cd-sub{opacity:.85;font-size:.9375rem}
.countdown .go{color:var(--deep-ink)}
.word-big{font-family:var(--display);font-size:2.2rem;line-height:1.1;color:var(--moss)}
.word-say{font-family:var(--mono);font-size:.8125rem;color:var(--muted);letter-spacing:.06em}
.word p:last-child{color:var(--muted);font-size:.9375rem}
.play-link{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line);text-decoration:none}
.play-link b{font-weight:600}
.play-link span{color:var(--moss);font-weight:600;font-size:.875rem}
.play-link:hover b{color:var(--moss)}
@media (max-width:900px){.home-widgets{grid-template-columns:1fr 1fr}.play{grid-column:1/-1}}
@media (max-width:600px){.home-widgets{grid-template-columns:1fr}}
.dishes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.dish{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;min-width:0}
.dish img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--line)}
.dish-body{padding:18px 20px 22px;display:grid;gap:8px;align-content:start}
.dish h3{font-size:1.4rem}
.dish p{color:var(--muted);font-size:.9688rem}
@media (max-width:900px){.dishes{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.dishes{grid-template-columns:1fr}}
.eat-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px;border-top:1px solid var(--line)}
.eat-list a{display:grid;grid-template-columns:150px 1fr;gap:16px;padding-block:14px;border-bottom:1px solid var(--line);text-decoration:none}
.eat-list b{font-family:var(--display);font-weight:400;font-size:1.15rem}
.eat-list span{color:var(--muted)}
.eat-list a:hover b{color:var(--moss)}
@media (max-width:760px){.eat-list{grid-template-columns:1fr}.eat-list a{grid-template-columns:120px 1fr}}
.quiz-wrap{max-width:760px}
.quiz{display:grid;gap:28px}
.q{border:0;margin:0;padding:0;display:grid;gap:14px;min-width:0}
.q legend{font-family:var(--display);font-size:1.5rem;line-height:1.25;display:grid;gap:6px;margin-bottom:12px;padding:0}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt{display:flex;gap:10px;align-items:center;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}
.opt input{accent-color:var(--moss);width:18px;height:18px;flex:none}
.opt:has(input:checked){border-color:var(--moss);background:color-mix(in srgb,var(--moss) 10%,var(--surface))}
@media (max-width:560px){.opts{grid-template-columns:1fr}}
.quiz .btn{justify-self:start;border:0;cursor:pointer;font-family:var(--body);font-size:1rem}
.quiz-msg,.vote-msg{color:var(--moss);font-weight:600}
.result{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.result img{width:100%;height:100%;min-height:240px;object-fit:cover}
.result-body{padding:28px 24px 28px 0;display:grid;gap:12px;align-content:center}
.result-body h2{font-size:2.4rem}
.result-body p{color:var(--muted)}
.result-actions{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:700px){.result{grid-template-columns:1fr}.result-body{padding:0 20px 24px}.result img{min-height:0;aspect-ratio:16/9}}
.chk-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}
.chk-group h2{font-size:1.6rem;margin-bottom:10px}
.chk-group ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.chk-group li{border-bottom:1px solid var(--line)}
.chk-group label{display:flex;gap:12px;align-items:flex-start;padding:12px 0;cursor:pointer}
.chk-group input{accent-color:var(--moss);width:20px;height:20px;flex:none;margin-top:2px}
.chk-group input:checked + span{color:var(--muted);text-decoration:line-through}
@media (max-width:760px){.chk-grid{grid-template-columns:1fr}}
.map-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start;margin-bottom:40px}
.map-grid > *{min-width:0}
.map{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px}
.map svg{width:100%;height:auto;display:block}
.map .land{fill:color-mix(in srgb,var(--moss) 22%,var(--surface));stroke:var(--moss);stroke-width:1.5}
.map .inset{fill:none;stroke:var(--line);stroke-dasharray:4 4}
.map .eq{stroke:var(--sun);stroke-width:1.5;stroke-dasharray:6 5}
.map-label{font:500 9px var(--mono);letter-spacing:.1em;fill:var(--muted)}
.map .eq-label{fill:var(--sun)}
.pin circle{fill:var(--deep);stroke:var(--surface);stroke-width:2}
.pin text{font:600 9px var(--body);fill:var(--deep-ink);text-anchor:middle}
.pin.visited circle{fill:var(--sun)}
.pin.visited text{fill:#1b1a10}
.pin:hover circle,.pin:focus circle{fill:var(--moss)}
.map figcaption{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.8125rem;color:var(--muted);padding:8px 6px 2px}
.key{display:inline-flex;align-items:center;gap:6px}
.key i{width:12px;height:12px;border-radius:50%;display:inline-block}
.k-plan{background:var(--deep)}.k-done{background:var(--sun)}
.vote-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;display:grid;gap:12px}
.vote-card h2{font-size:1.9rem}
.vote-card p{color:var(--muted)}
.vote-card select{font:500 1rem var(--body);padding:12px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.vote-card .btn{border:0;cursor:pointer;font-family:var(--body);justify-self:start}
@media (max-width:820px){.map-grid{grid-template-columns:1fr}}
.post-end{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:900px;padding-top:32px;border-top:1px solid var(--line)}
.post-end > *{min-width:0}
.share-row{display:grid;gap:10px;align-content:start}
.share-links{display:flex;flex-wrap:wrap;gap:8px}
.share{font:600 .875rem var(--body);padding:9px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer}
.share:hover{border-color:var(--moss)}
.next-chapter{display:grid;gap:4px;padding:20px 22px;border-radius:14px;background:var(--deep);color:var(--deep-ink);text-decoration:none}
.next-chapter .eyebrow{color:var(--sun)}
.next-chapter b{font-family:var(--display);font-weight:400;font-size:1.5rem}
.next-chapter span:last-child{opacity:.8;font-size:.9375rem}
@media (max-width:700px){.post-end{grid-template-columns:1fr}}
.ask{margin-top:40px;padding:28px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:grid;gap:10px;max-width:780px}
.ask h2{font-size:1.7rem}
.ask p{color:var(--muted)}

/* ================= motion & interaction ================= */
/* hero photos move slowly behind the gradient */
.hero,.page-hero.has-photo{position:relative;isolation:isolate;overflow:hidden}
.hero{background:var(--deep)}
.hero::before,.page-hero.has-photo::before{content:"";position:absolute;inset:-4%;z-index:-2;background:url(img/hero.jpg) center 35%/cover;animation:kenburns 28s ease-in-out infinite alternate}
.page-hero.has-photo{background:var(--deep)}
.page-hero.has-photo::before{background:var(--photo,none) center/cover}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--deep) 70%,transparent) 0%,color-mix(in srgb,var(--deep) 86%,transparent) 70%,var(--deep) 100%)}
.page-hero.has-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,color-mix(in srgb,var(--deep) 92%,transparent) 0%,color-mix(in srgb,var(--deep) 70%,transparent) 60%,color-mix(in srgb,var(--deep) 45%,transparent) 100%)}
@keyframes kenburns{from{transform:scale(1) translate(0,0)}to{transform:scale(1.08) translate(-1.5%,-1%)}}
.ridge{will-change:transform;position:relative}

/* headline words rise in */
.split .w{display:inline-block;animation:rise .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 60ms + 120ms)}
@keyframes rise{from{opacity:0;transform:translateY(.45em) rotate(2deg)}to{opacity:1;transform:none}}
.hero .coords,.hero .lede,.hero .hero-cta,.page-hero .eyebrow,.page-hero p{animation:fadeup .9s cubic-bezier(.2,.7,.2,1) both}
.hero .coords,.page-hero .eyebrow{animation-delay:.05s}
.hero .lede,.page-hero p{animation-delay:.55s}
.hero .hero-cta{animation-delay:.75s}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* equator draws across, a sun travels along it */
.equator{transform-origin:left;animation:draw 1.6s .4s cubic-bezier(.6,0,.2,1) both}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.sun-dot{position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 4px color-mix(in srgb,var(--sun) 30%,transparent),0 0 18px var(--sun);animation:travel 14s 2s linear infinite}
@keyframes travel{from{left:-2%}to{left:102%}}

/* logo: equator line glows once on load */
.logo line{stroke-dasharray:48;stroke-dashoffset:48;animation:logoline 1.2s .3s ease-out forwards}
@keyframes logoline{to{stroke-dashoffset:0}}

/* place-name ticker */
.marquee{background:var(--sun);color:#1b1a10;overflow:hidden;white-space:nowrap;border-block:1px solid color-mix(in srgb,#1b1a10 12%,transparent)}
.marquee-track{display:inline-flex;gap:0;padding-block:12px;animation:ticker 60s linear infinite}
.marquee-track span{font:500 .8125rem var(--mono);letter-spacing:.14em;text-transform:uppercase;padding-inline:22px;position:relative}
.marquee-track span::after{content:"";position:absolute;right:-3px;top:50%;width:6px;height:6px;border-radius:50%;border:1.5px solid currentColor;transform:translateY(-50%)}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes ticker{to{transform:translateX(-50%)}}

/* scroll reveal (only for content that starts off-screen) */
.pre{opacity:0;transform:translateY(26px)}
.in{animation:revealin .75s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0ms)}
@keyframes revealin{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* reading progress + back to top */
.read-progress{position:fixed;left:0;right:0;top:0;height:3px;background:var(--sun);transform-origin:left;transform:scaleX(0);z-index:60;pointer-events:none}
.to-top-btn{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));width:46px;height:46px;border-radius:50%;border:0;background:var(--deep);color:var(--sun);font-size:1.25rem;box-shadow:0 8px 24px rgba(0,0,0,.22);cursor:pointer;z-index:40;opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .3s,transform .3s}
.to-top-btn.show{opacity:1;transform:none;pointer-events:auto}
.to-top-btn:hover{transform:translateY(-3px)}

/* card tilt + shine */
.tilt{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .25s ease,border-color .2s,box-shadow .25s;will-change:transform;position:relative}
.tilt:hover{box-shadow:0 18px 40px -18px rgba(0,0,0,.35)}
.tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.18),transparent 45%);opacity:0;transition:opacity .25s}
.tilt:hover::after{opacity:1}
.post:hover{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(-3px)}

/* image zoom on hover */
.region-img,.dish img,.photo-strip img,.place-img,.detail-img{transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s}
.region{overflow:hidden}
.region:hover .region-img{transform:scale(1.05)}
.dish{overflow:hidden}.dish:hover img{transform:scale(1.05)}
.zoomable{cursor:zoom-in}
.zoomable:hover{filter:brightness(1.05)}
.place-img,.photo-strip img{will-change:transform}
.place:hover .place-img{transform:scale(1.03)}

/* buttons press */
.btn,.chip,.share,.opt,.grp-btn{transition:transform .15s ease,background .2s,border-color .2s,filter .2s}
.btn:active,.chip:active,.share:active{transform:scale(.96)}
.btn-sun:hover{box-shadow:0 8px 22px -8px color-mix(in srgb,var(--sun) 80%,transparent)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,18,16,.92);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:56px 12px calc(40px + env(safe-area-inset-bottom,0px));animation:lbfade .25s ease}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;display:grid;gap:10px;justify-items:center;min-width:0}
.lightbox img{max-width:100%;max-height:74vh;border-radius:10px;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-in{animation:lbzoom .35s cubic-bezier(.2,.7,.2,1)}
.lightbox figcaption{color:#e9f2ee;font-size:.9375rem;text-align:center}
.lb-close{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.6rem;cursor:pointer}
.lb-nav{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.6rem;cursor:pointer}
.lb-nav:hover,.lb-close:hover{background:rgba(255,255,255,.24)}
.lb-credit{position:absolute;bottom:calc(10px + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;font-size:.75rem}
.lb-credit a{color:rgba(233,242,238,.7)}
.lb-counter{position:absolute;top:calc(20px + env(safe-area-inset-top,0px));left:18px;font:500 .8125rem var(--mono);color:rgba(233,242,238,.75)}
@keyframes lbfade{from{opacity:0}to{opacity:1}}
@keyframes lbzoom{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media (max-width:600px){.lb-nav{position:absolute;bottom:calc(46px + env(safe-area-inset-bottom,0px))}.lb-prev{left:16px}.lb-next{right:16px}.lightbox{grid-template-columns:1fr}}

/* map pins drop in, pulse, link to the list */
.pin circle{transition:fill .2s,r .2s}
.pin{animation:pindrop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i) * 45ms + 200ms);transform-box:fill-box;transform-origin:center}
@keyframes pindrop{from{opacity:0;transform:translateY(-14px) scale(.6)}to{opacity:1;transform:none}}
.pin.hot circle,.pin:hover circle{fill:var(--sun);r:12}
.pin.hot text,.pin:hover text{fill:#1b1a10}
.place.hot .num{color:var(--sun)}
.place{transition:background .3s}
.place.flash,.place:target{animation:flash 1.6s ease}
@keyframes flash{0%,40%{background:color-mix(in srgb,var(--sun) 22%,transparent)}100%{background:transparent}}
.map .eq{animation:dash 2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-22}}

/* word of the week flip card */
.flip{perspective:900px;cursor:pointer;padding:0;background:none;border:0}
.flip-inner{display:grid;height:100%;transition:transform .7s cubic-bezier(.3,.7,.2,1);transform-style:preserve-3d}
.flip-face{grid-area:1/1;display:grid;gap:8px;align-content:start;padding:22px 24px;border-radius:14px;background:var(--surface);border:1px solid var(--line);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flip-back{transform:rotateY(180deg);background:var(--moss);border-color:var(--moss);color:#fff}
.flip-back .eyebrow{color:rgba(255,255,255,.75)}
.flip-back p{color:rgba(255,255,255,.92)}
.word-mean{font-family:var(--display);font-size:1.7rem;line-height:1.15;color:#fff!important}
.flip.flipped .flip-inner{transform:rotateY(180deg)}
.flip-hint{font-size:.8125rem;color:var(--moss);font-weight:600;margin-top:auto}
.flip:focus-visible{outline:2px solid var(--sun);outline-offset:4px;border-radius:14px}
.word.tilt{transform:none}

/* quiz feedback */
.quiz-progress{position:sticky;top:calc(70px + env(safe-area-inset-top,0px));z-index:5;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.quiz-progress i{display:block;height:100%;width:0;background:var(--sun);transition:width .5s cubic-bezier(.2,.7,.2,1)}
.opt:hover{border-color:var(--moss)}
.opt.pop{animation:pop .35s cubic-bezier(.3,1.6,.5,1)}
@keyframes pop{50%{transform:scale(1.03)}}
.result:not([hidden]){animation:resultin .6s cubic-bezier(.2,.7,.2,1)}
@keyframes resultin{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}

/* checklist ticks */
.chk-group input{transition:transform .2s}
.chk-group input:checked{animation:tick .35s cubic-bezier(.3,1.6,.5,1)}
@keyframes tick{50%{transform:scale(1.25)}}
.chk-group span{transition:color .3s}
.chk-group h2::after{content:" \2713";color:var(--moss);opacity:0;transition:opacity .3s}
.chk-group.done h2::after{opacity:1}
.progress .bar i{transition:width .5s cubic-bezier(.2,.7,.2,1)}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:120}

/* menu dropdown slides in */
@media (min-width:1101px){.grp.open > .sub{animation:dropin .22s cubic-bezier(.2,.7,.2,1)}}
@keyframes dropin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:1100px){.nav.open .menu > li{animation:fadeup .4s cubic-bezier(.2,.7,.2,1) both}.nav.open .menu > li:nth-child(2){animation-delay:.05s}.nav.open .menu > li:nth-child(3){animation-delay:.1s}.nav.open .menu > li:nth-child(4){animation-delay:.15s}.nav.open .menu > li:nth-child(5){animation-delay:.2s}}

/* FAQ open animation */
.faq[open] p{animation:fadeup .35s ease}

/* everything calm for reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .pre{opacity:1!important;transform:none!important}
  .flip-inner{transition:none}
}
.flip{display:grid}
.flip-inner{height:auto;min-height:100%}
.flip-face{height:100%}
.word .flip-back p,.flip-back p{color:rgba(255,255,255,.92)!important}
.word .flip-face p.word-say{color:var(--muted)}
.flip{align-content:stretch}.flip-inner{min-height:0}

/* ---- legal pages, cookie banner ---- */
.legal h2{font-size:1.6rem;margin-top:12px}
.legal code{font-family:var(--mono);font-size:.95em;background:var(--surface);border:1px solid var(--line);padding:2px 6px;border-radius:6px}
.legal a{color:var(--moss);font-weight:600}
.foot-bottom a,.cookie-link{color:inherit;text-decoration:none}
.foot-bottom a:hover,.cookie-link:hover{text-decoration:underline}
.cookie-link{background:none;border:0;font:inherit;cursor:pointer;padding:0}
.cookie-banner{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;max-width:560px;margin-inline:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.25);padding:18px 20px;display:grid;gap:12px;animation:fadeup .4s ease}
.cookie-banner[hidden]{display:none}
.cookie-banner a{color:var(--moss);font-weight:600}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.cookie-actions .btn{border:0;cursor:pointer;font-family:var(--body)}
.cookie-actions .btn-line{border:1.5px solid var(--line)}

/* ---- trip planner, festivals, contributor form ---- */
.planner-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:start}
.planner{display:grid;gap:22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;position:sticky;top:calc(84px + env(safe-area-inset-top,0px))}
.field{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.field label,.field legend{font-weight:600;font-size:.9375rem;padding:0}
.field small{font-weight:400;color:var(--muted)}
.range-row{display:flex;align-items:center;gap:14px}
.range-row input{flex:1;accent-color:var(--moss)}
.range-row output{font-family:var(--display);font-size:1.8rem;min-width:2ch;text-align:right;color:var(--moss)}
.seg,.tags{display:flex;flex-wrap:wrap;gap:8px}
.seg label,.tags label,.toggle{cursor:pointer}
.seg input,.tags input{position:absolute;opacity:0;pointer-events:none}
.seg span,.tags span{display:inline-block;padding:9px 14px;border-radius:999px;border:1.5px solid var(--line);font-size:.9375rem;font-weight:500;transition:background .2s,border-color .2s,color .2s}
.seg input:checked + span,.tags input:checked + span{background:var(--deep);border-color:var(--deep);color:var(--deep-ink)}
.seg input:focus-visible + span,.tags input:focus-visible + span{outline:2px solid var(--sun);outline-offset:2px}
.toggle{display:flex;gap:10px;align-items:center;font-weight:500}
.toggle input{accent-color:var(--moss);width:20px;height:20px}
.planner .btn{border:0;cursor:pointer;font-family:var(--body);font-size:1rem;justify-self:start}
.plan{min-width:0}
.plan-empty{border:2px dashed var(--line);border-radius:14px;padding:32px;display:grid;gap:10px}
.plan-empty h2{font-size:1.8rem}
.plan-empty p{color:var(--muted)}
.days{list-style:none;margin:12px 0 0;padding:0;display:grid;border-top:1px solid var(--line)}
.day{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);animation:fadeup .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 40ms)}
.day > div{min-width:0;display:grid;gap:4px}
.day-n{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--moss);padding-top:6px}
.day h3{font-size:1.3rem}
.day h3 a{text-decoration:none}
.day h3 a:hover{color:var(--moss)}
.day p{color:var(--muted);font-size:.9375rem}
.day.is-travel h3{color:var(--muted);font-family:var(--body);font-weight:600;font-size:1.05rem}
.day.is-rest h3{color:var(--moss)}
.plan-note{margin-top:14px;color:var(--muted);font-size:.9375rem;padding:12px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
.plan-actions{margin-top:16px}
.plan-actions .btn{cursor:pointer;font-family:var(--body)}
@media (max-width:900px){.planner-grid{grid-template-columns:1fr}.planner{position:static}}
.next-up{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:16px 20px;border-radius:14px;background:var(--deep);color:var(--deep-ink);margin-bottom:24px}
.next-up .eyebrow{color:var(--sun)}
.next-up b{font-family:var(--display);font-weight:400;font-size:1.5rem}
.next-up span:last-child{opacity:.8;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em}
.fests{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.fest{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;min-width:0}
.fest img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--line)}
.fest-body{padding:18px 20px 22px;display:grid;gap:6px;align-content:start}
.fest h3{font-size:1.35rem}
.fest .where{font-weight:600;font-size:.9375rem}
.fest p{color:var(--muted);font-size:.9375rem}
.fest.is-next{border-color:var(--sun);box-shadow:0 0 0 2px var(--sun)}
@media (max-width:900px){.fests{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fests{grid-template-columns:1fr}}
.contrib-wrap{max-width:820px}
.contrib,.contrib-done{display:grid;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px}
.contrib .two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.contrib .two{grid-template-columns:1fr}}
.contrib input:not([type=checkbox]),.contrib select,.contrib textarea,.contrib-done textarea{font:500 1rem var(--body);padding:12px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%;min-width:0}
.contrib input:focus,.contrib select:focus,.contrib textarea:focus{outline:2px solid var(--sun);outline-offset:1px;border-color:var(--moss)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;cursor:pointer}
.consent input{accent-color:var(--moss);width:20px;height:20px;flex:none;margin-top:2px}
.contrib .btn,.contrib-done .btn{border:0;cursor:pointer;font-family:var(--body);justify-self:start}
.contrib-done .btn-line{border:1.5px solid var(--line)}
.form-msg{color:var(--moss);font-weight:600}
.contrib-done h3{font-size:1.6rem}
.contrib-done p{color:var(--muted)}

/* ================= playful layer ================= */
/* squiggle under highlighted banner words */
.sq-host{position:relative;display:inline-block;white-space:nowrap}
.hero h1 em.sq-host,.page-hero h1 em.sq-host{white-space:normal;display:inline}
.squiggle{position:absolute;left:-2%;right:-2%;bottom:-.12em;height:.28em;color:var(--sun);pointer-events:none}
.squiggle svg{width:100%;height:100%;display:block;overflow:visible}
.squiggle path{stroke-dasharray:260;stroke-dashoffset:260;animation:sq 1s 1.1s cubic-bezier(.6,0,.2,1) forwards}
@keyframes sq{to{stroke-dashoffset:0}}
.hero h1 em,.page-hero h1 em{position:relative}

/* hero doodles */
.doodles{position:absolute;inset:0;pointer-events:none;z-index:0;transform:translate(var(--px,0),var(--py,0));transition:transform .4s ease-out}
.hero > .wrap,.page-hero > .wrap{position:relative;z-index:1}
.dd{position:absolute;display:block}
.dd svg{width:100%;height:100%;display:block}
.dd-sun{width:84px;height:84px;right:7%;top:62px;color:var(--sun);animation:bob 6s ease-in-out infinite}
.dd-sun .rays{transform-origin:50px 50px;animation:spin 18s linear infinite}
.dd-sun.spin{animation:sunspin .9s cubic-bezier(.3,1.6,.5,1)}
@keyframes sunspin{50%{transform:scale(1.25) rotate(180deg)}to{transform:rotate(360deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bob{50%{transform:translateY(-8px)}}
.dd-cloud{color:rgba(255,255,255,.18);width:150px;height:62px}
.dd-cloud.c1{top:28%;left:-160px;animation:drift 55s linear infinite}
.dd-cloud.c2{top:12%;left:-160px;width:100px;height:42px;animation:drift 80s linear -30s infinite}
@keyframes drift{to{transform:translateX(calc(100vw + 340px))}}
.doodles.mini .dd-cloud.c1{top:18%}
.dd-bird{width:60px;height:38px;color:#7fd3b0;top:38%;left:-80px;animation:hummer 16s 3s ease-in-out infinite}
.dd-bird .hb-wing{transform-origin:40px 24px;animation:flap .09s linear infinite alternate}
@keyframes flap{to{transform:scaleY(-.6)}}
@keyframes hummer{0%{transform:translate(0,0)}12%{transform:translate(32vw,-30px)}20%{transform:translate(38vw,-24px)}26%{transform:translate(38vw,-34px)}40%{transform:translate(70vw,10px)}55%,100%{transform:translate(calc(100vw + 120px),-40px)}}
@media (max-width:700px){.dd-sun{width:56px;height:56px;top:40px;right:5%}.dd-cloud{width:100px;height:42px}}

/* section headings get a drawn squiggle */
.draw-line{position:relative;padding-bottom:12px}
.draw-line::after{content:"";position:absolute;left:0;bottom:0;height:9px;width:92px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 9'%3E%3Cpath d='M2 6 Q 13 1 24 5 T 46 5 T 68 5 T 90 4' fill='none' stroke='%23f2b632' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") left center/92px 9px no-repeat;clip-path:inset(0 100% 0 0);transition:clip-path .9s cubic-bezier(.6,0,.2,1) .15s}
.draw-line.drawn::after{clip-path:inset(0 0 0 0)}
.news-band .draw-line::after,.route .draw-line::after,.next-chapter .draw-line::after{filter:none}

/* bouncy, wiggly buttons and arrows */
.btn:hover{animation:wiggle .45s ease}
@keyframes wiggle{25%{transform:rotate(-2.5deg) scale(1.03)}60%{transform:rotate(2deg) scale(1.03)}100%{transform:none}}
.go,.link-more,.play-link span{transition:letter-spacing .2s}
.path:hover .go,.link-more:hover,.play-link:hover span{letter-spacing:.02em}
.jelly{animation:jelly .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes jelly{30%{transform:scale(1.12,.9)}55%{transform:scale(.94,1.06)}80%{transform:scale(1.03,.98)}100%{transform:none}}

/* scrapbook settle when cards arrive */
@keyframes revealin{from{opacity:0;transform:translateY(26px) rotate(var(--rot,-1.5deg))}to{opacity:1;transform:none}}
.post.in,.dish.in,.fest.in,.offer.in,.path.in{--rot:-1.8deg}
.post.in:nth-child(even),.dish.in:nth-child(even),.fest.in:nth-child(even),.offer.in:nth-child(even){--rot:1.6deg}

/* food stickers */
.dish{position:relative}
.sticker{position:absolute;top:14px;right:14px;z-index:2;background:var(--sun);color:#1b1a10;font:700 .8125rem var(--body);padding:7px 12px;border-radius:999px;transform:rotate(8deg) scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1);box-shadow:0 6px 16px rgba(0,0,0,.2);pointer-events:none}
.dish:hover .sticker,.dish:focus-within .sticker{transform:rotate(8deg) scale(1)}
@media (hover:none){.sticker{transform:rotate(8deg) scale(1)}}

/* footer tortoise */
.site-footer{position:relative;overflow:hidden}
.tortoise-track{position:absolute;left:0;right:0;top:-2px;height:48px;pointer-events:none}
.tortoise{position:absolute;top:2px;left:-110px;width:88px;height:47px;pointer-events:auto;cursor:pointer;animation:stroll 70s linear infinite}
.tortoise:hover{animation-play-state:paused}
.tortoise .leg{animation:step .7s ease-in-out infinite alternate}
.tortoise .l2{animation-delay:-.35s}
.tortoise:hover .leg{animation-play-state:paused}
@keyframes step{to{transform:translateX(4px)}}
@keyframes stroll{to{transform:translateX(calc(100vw + 220px))}}
.tortoise .t-head{transition:transform .3s ease}
.tortoise.hide .t-head{transform:translateX(-14px)}
.site-footer > .wrap{padding-top:28px}

/* plane on the route */
.route .stops{position:relative}
.route-plane{position:absolute;left:0;top:0;width:24px;height:24px;color:var(--sun);transform:rotate(180deg);transition:top .25s linear;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));z-index:2}
.route-plane svg{width:100%;height:100%;display:block}

/* toast + secret suns */
.play-toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--deep);color:var(--sun);font:700 1.1rem var(--display);padding:12px 20px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.3);z-index:130;animation:toastin .4s cubic-bezier(.3,1.6,.5,1)}
.play-toast.out{opacity:0;transform:translateX(-50%) translateY(10px);transition:all .4s}
@keyframes toastin{from{opacity:0;transform:translateX(-50%) translateY(20px) scale(.8)}}
.sun-pop{position:fixed;top:-40px;width:26px;height:26px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 5px color-mix(in srgb,var(--sun) 35%,transparent);z-index:125;pointer-events:none;transform:scale(var(--s,1));animation:sunfall 2.4s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes sunfall{to{transform:translateY(110vh) rotate(540deg) scale(var(--s,1))}}

/* logo figures do a tiny hop on hover */
.brand:hover .logo{animation:hop .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes hop{40%{transform:translateY(-4px) rotate(-6deg)}}

/* marquee dots spin */
.marquee-track span::after{animation:spin 6s linear infinite}

@media (prefers-reduced-motion: reduce){.doodles,.tortoise-track,.route-plane,.squiggle path{animation:none!important}.squiggle path{stroke-dashoffset:0}.draw-line::after{clip-path:none}.dd-bird,.dd-cloud{display:none}}
@media (max-width:700px){.dd-sun{width:46px;height:46px;top:14px;right:4%}.equator{bottom:52px}.hero .wrap{padding-bottom:28px}}

/* ---- footer, rebuilt ---- */
.site-footer > .wrap{display:grid;gap:36px;padding-top:44px}
.foot-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px 48px;align-items:start;padding-bottom:32px;border-bottom:1px solid color-mix(in srgb,var(--deep-ink) 16%,transparent)}
.foot-brand{grid-column:auto}
.foot-connect{display:grid;gap:10px;justify-items:start;background:color-mix(in srgb,var(--deep-ink) 7%,transparent);border:1px solid color-mix(in srgb,var(--deep-ink) 14%,transparent);border-radius:14px;padding:20px 22px}
.foot-connect h3{font-family:var(--display);font-weight:400;font-size:1.5rem;color:var(--deep-ink);letter-spacing:0;text-transform:none;margin:0}
.foot-connect .foot-email{font-size:.9375rem;white-space:nowrap;overflow-wrap:normal;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.foot-social{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.foot-social span{font-size:.8125rem;font-weight:600;padding:5px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--deep-ink) 25%,transparent)}
.foot-social code{font-family:var(--mono);font-size:.8125rem;opacity:.75;flex-basis:100%}
.foot-news{margin-top:4px;font-size:.875rem;padding:10px 16px}
.site-footer .foot-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 24px}
.foot-col h3{white-space:normal}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-top:22px;border-top:1px solid color-mix(in srgb,var(--deep-ink) 16%,transparent);font-size:.8125rem}
.foot-legal{display:flex;flex-wrap:wrap;gap:6px 18px}
@media (max-width:900px){.foot-top{grid-template-columns:1fr}.site-footer .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.site-footer .foot-grid{grid-template-columns:1fr 1fr}.foot-bottom{flex-direction:column;align-items:flex-start}}

/* ================= per-page doodles & touches ================= */
.page-hero > .wrap{position:relative;z-index:1}
.page-doodle{position:absolute;right:max(16px,calc((100vw - 1120px) / 2 + 20px));top:50%;width:150px;height:150px;transform:translate(var(--px,0),calc(-50% + var(--py,0px)));color:#e9f2ee;z-index:0;cursor:pointer;transition:transform .4s ease-out;filter:drop-shadow(0 6px 14px rgba(0,0,0,.25))}
.page-doodle svg{width:100%;height:100%;display:block;overflow:visible}
.page-doodle.boing{animation:boing .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes boing{30%{scale:1.2 .85}60%{scale:.9 1.12}100%{scale:1}}
@media (max-width:820px){.page-doodle{width:72px;height:72px;top:22px;transform:translate(0,0);opacity:.95}}
.d-spin{transform-origin:60px 60px;animation:spin 16s linear infinite}
.d-spin-slow{transform-origin:60px 60px;animation:spin 30s linear infinite}
.d-bounce{animation:dbounce 1.8s cubic-bezier(.5,0,.5,1) infinite}
@keyframes dbounce{50%{transform:translateY(-8px)}}
.pd-the-move .d-shadow{transform-origin:60px 112px;animation:shadow 1.8s cubic-bezier(.5,0,.5,1) infinite}
@keyframes shadow{50%{transform:scaleX(.75)}}
.d-wave{transform-origin:48px 62px;animation:wave .8s ease-in-out infinite alternate}
.d-wave2{transform-origin:92px 66px;animation:wave .8s ease-in-out -.4s infinite alternate-reverse}
@keyframes wave{to{transform:rotate(-28deg)}}
.d-cycle .c{opacity:0;animation:cyc 8s infinite}
.d-cycle .c2{animation-delay:2s}.d-cycle .c3{animation-delay:4s}.d-cycle .c4{animation-delay:6s}
@keyframes cyc{0%,4%{opacity:0;transform:translateY(8px)}8%,24%{opacity:1;transform:none}28%,100%{opacity:0;transform:translateY(-8px)}}
.puff{transform-box:fill-box;transform-origin:center;animation:puff 3.6s ease-out infinite;opacity:0}
.puff.p2{animation-delay:1.2s}.puff.p3{animation-delay:2.4s}
@keyframes puff{0%{opacity:.9;transform:translate(0,0) scale(.6)}100%{opacity:0;transform:translate(14px,-36px) scale(1.8)}}
.steam{animation:steam 2.4s ease-in-out infinite;opacity:.8}
.steam.s2{animation-delay:.6s}.steam.s3{animation-delay:1.2s}
@keyframes steam{0%{transform:translateY(6px);opacity:0}40%{opacity:.85}100%{transform:translateY(-10px);opacity:0}}
.bean{animation:bean 3s ease-in-out infinite}.bean.b2{animation-delay:-1.5s}
@keyframes bean{50%{transform:translateY(-6px) rotate(10deg)}}
.pd-quiz .q1{animation:dbounce 1.6s ease-in-out infinite}.pd-quiz .q2,.pd-404 .q2{animation:dbounce 1.6s ease-in-out -.8s infinite}
.pd-south-america .trail,.pd-journal .trail{stroke-dashoffset:0;animation:dash 1.6s linear infinite}
.d-plane{offset-path:path("M6 70 Q50 10 100 40 T156 20");offset-rotate:auto 90deg;animation:fly 5s ease-in-out infinite}
.d-paper{offset-path:path("M8 86 C40 86 40 30 80 40 S130 80 150 20");offset-rotate:auto;animation:fly 4.5s ease-in-out infinite}
.d-car{offset-path:path("M0 70 Q40 40 80 62 T160 50");offset-rotate:auto;animation:fly 4s ease-in-out infinite alternate}
@keyframes fly{from{offset-distance:0%}to{offset-distance:100%}}
.pd-south-america,.pd-journal,.pd-trip-planner,.pd-with-a-baby{width:220px;height:130px}
.foot{opacity:0;animation:step2 3.2s infinite;animation-delay:calc(var(--i) * .45s)}
@keyframes step2{0%{opacity:0}8%,60%{opacity:1}75%,100%{opacity:0}}
.d-swing{transform-origin:60px 6px;animation:swing 2.4s ease-in-out infinite}
@keyframes swing{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-7deg)}}
.tick{stroke-dasharray:40;stroke-dashoffset:40;animation:tick 4.5s ease infinite}
.tick.t1{animation-delay:.5s}.tick.t2{animation-delay:1s}
@keyframes tick{0%{stroke-dashoffset:40}15%,80%{stroke-dashoffset:0}95%,100%{stroke-dashoffset:40}}
.pd-moving-with-kids .b1{animation:dbounce 2s ease-in-out infinite}.pd-moving-with-kids .b2{animation:dbounce 2s ease-in-out -1s infinite}
.d-play{transform-box:fill-box;transform-origin:center;animation:pulse 1.6s ease-in-out infinite}
.rec{animation:blink 1.1s steps(1) infinite}
@keyframes pulse{50%{transform:scale(1.15)}}
@keyframes blink{50%{opacity:0}}
.twinkle{animation:twinkle 2.4s ease-in-out infinite;animation-delay:calc(var(--i) * .5s);transform-box:fill-box;transform-origin:center}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:1}}
.flash{animation:flash2 2.6s infinite}
@keyframes flash2{0%,88%,100%{opacity:0}92%{opacity:1;r:14}}
.d-wobble{transform-origin:60px 60px;animation:wobble 2.6s ease-in-out infinite}
@keyframes wobble{0%,100%{transform:rotate(-25deg)}50%{transform:rotate(35deg)}}
.pd-journal-why-ecuador{width:110px;height:110px}

/* festivals: papel picado bunting */
.bunting{position:absolute;left:0;right:0;top:0;height:64px;pointer-events:none;z-index:0}
.bunting svg{width:100%;height:100%;display:block}
.flag{animation:flutter 2.2s ease-in-out infinite;animation-delay:calc(var(--i) * -.17s)}
@keyframes flutter{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
html[data-page="festivals"] .page-hero .wrap{padding-top:96px}

/* about: photos become taped polaroids */
html[data-page="about"] .photo-strip figure{background:#fff;padding:10px 10px 14px;border-radius:4px;box-shadow:0 10px 26px -10px rgba(0,0,0,.35);transform:rotate(-2.5deg);transition:transform .35s cubic-bezier(.3,1.6,.5,1);position:relative}
html[data-page="about"] .photo-strip figure:nth-child(2){transform:rotate(2deg) translateY(10px)}
html[data-page="about"] .photo-strip figure:nth-child(3){transform:rotate(-1deg)}
html[data-page="about"] .photo-strip figure:hover{transform:rotate(0) scale(1.03);z-index:2}
html[data-page="about"] .photo-strip figure::before{content:"";position:absolute;top:-10px;left:50%;width:70px;height:22px;transform:translateX(-50%) rotate(-3deg);background:color-mix(in srgb,var(--sun) 70%,transparent)}
html[data-page="about"] .photo-strip img{border-radius:2px}
html[data-page="about"] .photo-strip figcaption{color:#3a3a3a;font-family:var(--display);font-size:1rem;letter-spacing:0;text-align:center}

/* journal: stories look like postcards with a stamp */
html[data-page="journal"] .post .post-art::after,html[data-page="index"] .post .post-art::after{content:"";position:absolute;top:12px;right:12px;width:42px;height:50px;background:radial-gradient(circle at 50% 50%,var(--sun) 0 34%,transparent 35%),#fffaf0;border-radius:2px;box-shadow:0 0 0 3px #fffaf0;outline:2px dashed color-mix(in srgb,#0f3b3a 30%,transparent);outline-offset:-5px;transform:rotate(6deg);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
html[data-page="journal"] .post:hover .post-art::after,html[data-page="index"] .post:hover .post-art::after{transform:rotate(-4deg) scale(1.08)}

/* gear: cards become luggage tags */
html[data-page="gear"] .offer{position:relative;border-radius:14px 14px 14px 14px;padding-top:40px;clip-path:polygon(18% 0,82% 0,100% 12%,100% 100%,0 100%,0 12%)}
html[data-page="gear"] .offer::before{content:"";position:absolute;top:14px;left:50%;width:16px;height:16px;border-radius:50%;transform:translateX(-50%);background:var(--bg);box-shadow:inset 0 0 0 3px var(--sun)}
html[data-page="gear"] .offer:hover{animation:swing 1.2s ease-in-out}

/* top 20: planned becomes a passport stamp */
html[data-page="top-20"] .place .status{transform:rotate(-8deg);border:2px dashed var(--moss);color:var(--moss);font-weight:700;background:transparent;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
html[data-page="top-20"] .place:hover .status{transform:rotate(4deg) scale(1.08)}

/* videos: thumbnails get a play button */
html[data-page="videos"] .post .post-art::after{content:"";position:absolute;inset:0;margin:auto;width:58px;height:58px;border-radius:50%;background:rgba(15,59,58,.75) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23f2b632'/%3E%3C/svg%3E") center/26px no-repeat;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
html[data-page="videos"] .post:hover .post-art::after{transform:scale(1.15)}

/* traveling with a baby: star bursts */
.first{position:relative;cursor:pointer}
.star-pop{position:absolute;left:24px;top:50%;width:10px;height:10px;background:var(--sun);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);animation:starpop .8s ease-out forwards;pointer-events:none}
@keyframes starpop{to{transform:rotate(var(--a)) translateX(46px) scale(1.4);opacity:0}}

/* the move: suitcase on the timeline */
.chapter-bag{position:absolute;left:-8px;top:0;width:40px;height:40px;z-index:2;transition:top .25s linear;filter:drop-shadow(0 3px 6px rgba(0,0,0,.25))}
.chapter-bag svg{width:100%;height:100%}

/* reader stories: paper plane on send */
.fly-plane{position:fixed;left:40%;top:60%;width:46px;height:34px;z-index:120;pointer-events:none;animation:paperfly 1.5s cubic-bezier(.4,0,.6,1) forwards}
@keyframes paperfly{0%{transform:translate(0,0) rotate(-10deg)}40%{transform:translate(20vw,-20vh) rotate(-25deg)}100%{transform:translate(70vw,-70vh) rotate(-5deg) scale(.6);opacity:0}}

@media (prefers-reduced-motion: reduce){.page-doodle *,.bunting *{animation:none!important}.d-cycle .c1{opacity:1}.d-cycle .c{opacity:0}.d-cycle .c1{opacity:1}.foot{opacity:1}.tick{stroke-dashoffset:0}}

/* ================= playful blocks & interactions ================= */
/* wavy edges on alternating sections */
.regions-bg,.route,.news-band,.plate-sec,.spin-sec{position:relative}
.regions-bg::before,.route::before,.news-band::before,.spin-sec::before{content:"";position:absolute;left:0;right:0;top:-18px;height:20px;background:inherit;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M0 20 V10 Q15 0 30 10 T60 10 T90 10 T120 10 V20 Z'/%3E%3C/svg%3E") 0 0/120px 20px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M0 20 V10 Q15 0 30 10 T60 10 T90 10 T120 10 V20 Z'/%3E%3C/svg%3E") 0 0/120px 20px repeat-x;pointer-events:none}
.regions-bg,.route,.news-band{border-top:0}

/* spin the wheel */
.spin-sec{background:var(--surface);padding-block:72px}
.spin-grid{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
.spin-grid > *{min-width:0}
.wheel-wrap{position:relative;width:min(340px,80vw);aspect-ratio:1}
.wheel{position:absolute;inset:0;border-radius:50%;border:8px solid var(--deep);box-shadow:0 18px 40px -16px rgba(0,0,0,.45),inset 0 0 0 3px rgba(255,255,255,.25);transition:transform 4.1s cubic-bezier(.12,.75,.15,1)}
.wl{position:absolute;left:50%;top:0;width:24px;margin-left:-12px;height:50%;transform-origin:50% 100%;text-align:center;font:700 .875rem var(--body);padding-top:10px;box-sizing:border-box}
.wheel-pointer{position:absolute;left:50%;top:-14px;width:0;height:0;margin-left:-14px;border-left:14px solid transparent;border-right:14px solid transparent;border-top:30px solid #ff5a4e;filter:drop-shadow(0 3px 4px rgba(0,0,0,.3));z-index:2}
.wheel-hub{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;border:4px solid #fff;background:var(--sun);color:#1b1a10;font:700 1.1rem var(--display);cursor:pointer;z-index:2;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:transform .2s}
.wheel-hub:hover{transform:scale(1.08) rotate(-6deg)}
.spin-copy{display:grid;gap:12px;justify-items:start}
.spin-copy h2{font-size:clamp(2rem,4.5vw,2.9rem)}
.spin-copy p{color:var(--muted)}
.spin-copy .btn{border:0;cursor:pointer;font-family:var(--body);font-size:1rem}
.spin-result{display:grid;gap:4px;padding:16px 20px;border-radius:14px;background:var(--deep);color:var(--deep-ink);min-width:min(320px,100%)}
.spin-result .eyebrow{color:var(--sun)}
.spin-result b{font-family:var(--display);font-weight:400;font-size:1.8rem}
.spin-result a{color:var(--sun);font-weight:600;text-decoration:none}
.pop-in{animation:popin .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes popin{from{transform:scale(.7);opacity:0}}
@media (max-width:760px){.spin-grid{grid-template-columns:1fr;justify-items:center;text-align:center}.spin-copy{justify-items:center}}

/* about: draggable polaroids */
.drag-hint{font-family:var(--display);color:var(--moss);font-size:1.1rem;margin-bottom:18px;padding-inline:20px}
html:not([data-page="about"]) .drag-hint{display:none}
html[data-page="about"] .photo-strip figure{cursor:grab;user-select:none;-webkit-user-select:none}
html[data-page="about"] .photo-strip figure.dragging{cursor:grabbing;transform:rotate(3deg) scale(1.06)!important;box-shadow:0 26px 40px -14px rgba(0,0,0,.45);transition:none}
html[data-page="about"] .photo-strip img{pointer-events:none}

/* ecuador: expanding panels */
.panels-sec{padding-bottom:0}
.panels{display:flex;gap:12px;height:380px}
.panel{position:relative;flex:1;min-width:0;border-radius:18px;overflow:hidden;text-decoration:none;color:#fff;background:var(--img) center/cover var(--deep);display:flex;flex-direction:column;justify-content:flex-end;padding:20px;transition:flex .6s cubic-bezier(.2,.7,.2,1)}
.panel::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(8,30,28,.85))}
.panel > *{position:relative}
.panel.open{flex:3.2}
.panel-tag{font:500 .75rem var(--mono);letter-spacing:.12em;color:var(--sun)}
.panel b{font-family:var(--display);font-weight:400;font-size:1.7rem;line-height:1.1;white-space:nowrap}
.panel-sub{max-height:0;opacity:0;overflow:hidden;transition:opacity .4s,max-height .5s;font-size:.9375rem}
.panel.open .panel-sub{max-height:60px;opacity:.9}
.panel:not(.open) b{writing-mode:vertical-rl;transform:rotate(180deg);font-size:1.4rem}
@media (max-width:700px){.panels{flex-direction:column;height:auto}.panel{min-height:70px}.panel.open{min-height:240px}.panel:not(.open) b{writing-mode:horizontal-tb;transform:none}}

/* top 20: surprise chip */
.chip.surprise{background:var(--sun);border-color:var(--sun);color:#1b1a10}
.chip.surprise:hover{animation:wiggle .45s ease}

/* food: plate builder */
.plate-sec{background:var(--surface);border-block:1px solid var(--line)}
.plate-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.plate-grid > *{min-width:0}
.plate-copy{display:grid;gap:12px;justify-items:start}
.plate-copy h2{font-size:clamp(1.9rem,4vw,2.6rem)}
.plate-copy p{color:var(--muted)}
.plate-picks{display:flex;flex-wrap:wrap;gap:8px}
.pick{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:600 .875rem var(--body);cursor:pointer;transition:all .2s}
.pick img{width:30px;height:30px;border-radius:50%;object-fit:cover}
.pick.on{background:var(--deep);border-color:var(--deep);color:var(--deep-ink)}
.plate-msg{font-weight:600;color:var(--moss)!important;min-height:1.5em}
.plate-copy .btn{cursor:pointer;font-family:var(--body);border:1.5px solid var(--line)}
.plate{position:relative;width:min(320px,80vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff 0 58%,#eef1ee 59% 62%,#fff 63% 100%);box-shadow:0 20px 40px -18px rgba(0,0,0,.4),inset 0 0 0 1px #dfe5e1;justify-self:center}
.plate-in{position:absolute;inset:16%;border-radius:50%}
.scoop{position:absolute;width:54%;aspect-ratio:1;border-radius:50%;background:center/cover;box-shadow:0 6px 14px rgba(0,0,0,.25);animation:drop .45s cubic-bezier(.3,1.6,.5,1)}
.scoop.s0{left:2%;top:4%}.scoop.s1{right:2%;top:14%}.scoop.s2{left:22%;bottom:0}
.scoop.solo{left:23%;top:23%}
@keyframes drop{from{transform:translateY(-60px) scale(.6);opacity:0}}
.fork,.knife{position:absolute;top:12%;width:10px;height:76%;border-radius:6px;background:#c9ced0}
.fork{left:-26px}.knife{right:-26px;border-radius:6px 6px 6px 50%}
@media (max-width:760px){.plate-grid{grid-template-columns:1fr}}

/* coffee: bean to cup */
.beans{display:grid;grid-template-columns:1fr 1.2fr;gap:36px;align-items:center;margin-bottom:56px}
.beans > *{min-width:0}
.bs{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;display:grid;gap:16px}
.bs-visual{height:120px;display:grid;place-items:center;position:relative}
.bs-bean{width:70px;height:96px;border-radius:50%;background:#c8372d;position:relative;transition:background .5s,transform .5s cubic-bezier(.3,1.6,.5,1),border-radius .5s;box-shadow:inset -10px -8px 0 rgba(0,0,0,.12)}
.bs-bean::after{content:"";position:absolute;left:50%;top:14%;bottom:14%;width:4px;margin-left:-2px;border-radius:4px;background:rgba(0,0,0,.25);opacity:0;transition:opacity .4s}
.bs-bean[data-step="2"]::after,.bs-bean[data-step="3"]::after,.bs-bean[data-step="4"]::after{opacity:1}
.bs-bean[data-step="0"],.bs-bean[data-step="1"]{border-radius:50%;width:84px;height:84px}
.bs-bean[data-step="5"]{width:110px;height:84px;border-radius:0 0 44px 44px}
.bs-steam{position:absolute;top:-6px;width:40px;height:40px;opacity:0;border-left:4px solid var(--muted);border-radius:50%;transition:opacity .4s}
.bs-bean[data-step="5"] + .bs-steam{opacity:.6;animation:steam 2s infinite}
.bs-step{display:grid;gap:4px;min-height:96px;animation:fadeup .35s ease}
.bs-step b{font-family:var(--display);font-weight:400;font-size:1.7rem}
.bs-step p{color:var(--muted)}
#bs-range{width:100%;accent-color:var(--moss)}
.bs-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);font-family:var(--mono)}
.bs-labels span{cursor:pointer}
.bs-labels span.on{color:var(--moss);font-weight:600}
@media (max-width:820px){.beans{grid-template-columns:1fr}.bs-labels span{font-size:.625rem}}

/* dennisse: flashcards */
.flash-wrap{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin-bottom:56px}
.flash-wrap > *{min-width:0}
.deck{display:grid;gap:14px;justify-items:center}
.cards{width:min(340px,86vw);aspect-ratio:4/3;position:relative}
.cards::before,.cards::after{content:"";position:absolute;inset:0;border-radius:18px;background:var(--surface);border:1px solid var(--line);transform:rotate(-4deg) translateY(6px)}
.cards::after{transform:rotate(3deg) translateY(3px)}
.fc{position:absolute;inset:0;z-index:2;perspective:900px;cursor:pointer}
.fc-inner{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.3,.7,.2,1);transform-style:preserve-3d}
.fc.flipped .fc-inner{transform:rotateY(180deg)}
.fc-face{position:absolute;inset:0;border-radius:18px;background:var(--deep);color:var(--deep-ink);display:grid;place-content:center;justify-items:center;gap:8px;padding:22px;text-align:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 18px 36px -16px rgba(0,0,0,.45)}
.fc-face .eyebrow{color:var(--sun)}
.fc-face b{font-family:var(--display);font-weight:400;font-size:2.4rem;line-height:1.1;color:var(--sun)}
.fc-hint{font-size:.8125rem;opacity:.7}
.fc-back{transform:rotateY(180deg);background:var(--sun);color:#1b1a10}
.fc-back b{color:#1b1a10;font-size:1.6rem}
.fc-back p{font-size:1.05rem}
.fc.deal{animation:deal .45s cubic-bezier(.3,1.4,.5,1)}
@keyframes deal{from{transform:translateX(60px) rotate(8deg);opacity:0}}
.deck-nav{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:.875rem;color:var(--muted)}
.dk-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.4rem;cursor:pointer}
.dk-btn:hover{border-color:var(--moss)}
@media (max-width:820px){.flash-wrap{grid-template-columns:1fr}}

/* gear: packing game */
.pack{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;align-items:center;margin-bottom:48px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px}
.pack > *{min-width:0}
.pack-copy{display:grid;gap:12px;justify-items:start}
.pack-copy h2{font-size:clamp(1.8rem,4vw,2.4rem)}
.pack-copy p{color:var(--muted)}
.pack-items{display:flex;flex-wrap:wrap;gap:8px}
.pack-item{padding:8px 14px;border-radius:999px;border:1.5px dashed var(--moss);background:var(--bg);color:var(--ink);font:500 .875rem var(--body);cursor:pointer;transition:all .3s}
.pack-item:hover{background:color-mix(in srgb,var(--moss) 12%,var(--bg))}
.pack-item.packed{border-style:solid;background:var(--moss);border-color:var(--moss);color:#fff;text-decoration:line-through;opacity:.55;transform:scale(.94)}
.pack-msg{font-weight:600;color:var(--moss)!important;min-height:1.5em}
.pack-copy .btn{cursor:pointer;font-family:var(--body);border:1.5px solid var(--line)}
.suitcase{position:relative;width:200px;height:230px;justify-self:center}
.suitcase .handle{position:absolute;left:50%;top:0;width:70px;height:34px;margin-left:-35px;border:8px solid var(--deep);border-bottom:0;border-radius:14px 14px 0 0}
.case{position:absolute;left:0;right:0;top:30px;bottom:20px;border-radius:22px;background:var(--deep);overflow:hidden;box-shadow:0 18px 36px -16px rgba(0,0,0,.45)}
.case::before{content:"";position:absolute;inset:14px;border:3px dashed rgba(233,242,238,.25);border-radius:14px;z-index:1}
.case-fill{position:absolute;left:0;right:0;bottom:0;height:0;background:repeating-linear-gradient(45deg,var(--sun) 0 14px,#e9a92a 14px 28px);transition:height .5s cubic-bezier(.3,1.4,.5,1)}
.case-count{position:absolute;inset:0;display:grid;place-items:center;font:400 2.2rem var(--display);color:#fff;z-index:2;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.wheel-l,.wheel-r{position:absolute;bottom:4px;width:18px;height:18px;border-radius:50%;background:#333}
.wheel-l{left:30px}.wheel-r{right:30px}
.suitcase.gulp{animation:gulp .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes gulp{40%{transform:scale(1.08,.94)}70%{transform:scale(.97,1.04)}}
@media (max-width:760px){.pack{grid-template-columns:1fr}}

/* checklist: plane progress */
.progress.flight{display:grid;gap:10px}
.flight-track{display:flex;align-items:center;gap:12px}
.flight-track .bar{flex:1;position:relative;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,var(--line) 0 10px,transparent 10px 18px);overflow:visible}
.flight-track .bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--sun)}
.ft-plane{position:absolute;top:50%;left:0;transform:translate(-50%,-55%);font-size:1.4rem;color:var(--moss);transition:left .5s cubic-bezier(.2,.7,.2,1)}
.ft-from,.ft-to{font:500 .75rem var(--mono);color:var(--muted);letter-spacing:.06em;white-space:nowrap}

/* festivals */
.fiesta-btn{margin-left:auto;border:0;border-radius:999px;background:var(--sun);color:#1b1a10;font:700 .9375rem var(--body);padding:9px 16px;cursor:pointer}
.fest{transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.fest:hover{transform:rotate(-1deg) translateY(-4px)}

/* route: boarding passes */
.ticket{grid-template-columns:24px minmax(0,1fr) 150px;background:color-mix(in srgb,var(--deep-ink) 6%,transparent);border-radius:16px;padding:20px 0 20px 20px;margin-bottom:16px;position:relative;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.ticket:hover{transform:rotate(-.6deg) translateY(-3px)}
.ticket-stub{display:grid;align-content:center;justify-items:center;gap:2px;border-left:2px dashed color-mix(in srgb,var(--deep-ink) 30%,transparent);padding:0 16px;position:relative;font-family:var(--mono)}
.ticket-stub::before,.ticket-stub::after{content:"";position:absolute;left:-11px;width:20px;height:20px;border-radius:50%;background:var(--deep)}
.ticket-stub::before{top:-30px}.ticket-stub::after{bottom:-30px}
.stub-l{font-size:.625rem;letter-spacing:.14em;opacity:.65}
.ticket-stub b{font-size:1.5rem;color:var(--sun);letter-spacing:.06em}
.stub-plane{transform:rotate(90deg);color:var(--sun);margin:2px 0}
.barcode{width:90px;height:22px;margin-top:8px;background:repeating-linear-gradient(90deg,var(--deep-ink) 0 2px,transparent 2px 4px,var(--deep-ink) 4px 5px,transparent 5px 8px);opacity:.6}
@media (max-width:640px){.ticket{grid-template-columns:24px minmax(0,1fr);padding-right:16px}.ticket-stub{grid-column:1/-1;grid-template-columns:auto auto auto auto auto;border-left:0;border-top:2px dashed color-mix(in srgb,var(--deep-ink) 30%,transparent);padding:12px 0 0;margin-top:12px;gap:8px;align-items:center}.ticket-stub::before,.ticket-stub::after{display:none}.barcode{display:none}}

/* with a baby: sticker album */
html[data-page="with-a-baby"] .firsts{grid-template-columns:repeat(3,1fr);gap:16px;border:0}
html[data-page="with-a-baby"] .first{flex-direction:column;align-items:center;text-align:center;border:2.5px dashed var(--line);border-radius:18px;padding:22px 16px;transition:transform .3s cubic-bezier(.3,1.6,.5,1),border-color .2s}
html[data-page="with-a-baby"] .first::before{content:"?";width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--sun) 25%,transparent);color:var(--moss);font:400 1.8rem var(--display)}
html[data-page="with-a-baby"] .first:hover{transform:rotate(-2deg) scale(1.03);border-color:var(--sun)}
html[data-page="with-a-baby"] .first > div{justify-items:center}
@media (max-width:700px){html[data-page="with-a-baby"] .firsts{grid-template-columns:1fr 1fr}}

/* FAQ: chat bubbles */
.faq{border-bottom:0;padding-block:6px}
.faqs{border-top:0;gap:6px}
.faq summary{padding:14px 18px;border-radius:18px 18px 18px 4px;background:var(--surface);border:1px solid var(--line);font-size:1.15rem;max-width:88%;width:fit-content}
.faq summary::after{margin-left:12px}
.faq[open] summary{background:color-mix(in srgb,var(--moss) 12%,var(--surface))}
.faq p{margin:10px 0 6px auto;max-width:88%;width:fit-content;padding:14px 18px;border-radius:18px 18px 4px 18px;background:var(--deep);color:var(--deep-ink)}
.faq p a{color:var(--sun)}
.faq.typing p{color:transparent;width:74px;height:44px;padding:0;overflow:hidden;position:relative}
.faq.typing p::after{content:"";position:absolute;left:18px;top:18px;width:8px;height:8px;border-radius:50%;background:var(--deep-ink);box-shadow:14px 0 0 var(--deep-ink),28px 0 0 var(--deep-ink);animation:typing 1s infinite}
@keyframes typing{50%{opacity:.35}}

/* journal: postcard wall */
@media (min-width:900px){html[data-page="journal"] .posts .post:nth-child(3n+1){transform:rotate(-1.4deg)}html[data-page="journal"] .posts .post:nth-child(3n+2){transform:rotate(.9deg) translateY(10px)}html[data-page="journal"] .posts .post:nth-child(3n){transform:rotate(-.5deg)}html[data-page="journal"] .posts .post:hover{transform:rotate(0) translateY(-6px) scale(1.02)}}

/* videos: film strip */
html[data-page="videos"] .regions-bg .posts{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:20px;padding:30px 20px;background:#141414;border-radius:12px;position:relative;scrollbar-width:thin}
html[data-page="videos"] .regions-bg .posts::before,html[data-page="videos"] .regions-bg .posts::after{content:"";position:sticky;left:0;flex:none}
html[data-page="videos"] .regions-bg .posts{background-image:repeating-linear-gradient(90deg,#fff 0 12px,transparent 12px 28px),repeating-linear-gradient(90deg,#fff 0 12px,transparent 12px 28px);background-size:100% 8px,100% 8px;background-position:0 10px,0 calc(100% - 10px);background-repeat:repeat-x;background-color:#141414}
html[data-page="videos"] .regions-bg .post{flex:0 0 min(320px,78vw);scroll-snap-align:start}

/* trip planner: a road through the days */
.days{position:relative;border-top:0}
.days::before{content:"";position:absolute;left:35px;top:16px;bottom:16px;width:4px;background:repeating-linear-gradient(180deg,var(--sun) 0 10px,transparent 10px 18px);border-radius:2px}
.day{border-bottom:0;position:relative}
.day-n{position:relative;z-index:1;justify-self:center;width:66px;text-align:center;background:var(--bg);border:2px solid var(--moss);border-radius:999px;padding:4px 0;font-size:.6875rem;align-self:start}
.day.is-travel .day-n{border-color:var(--sun)}
.day.is-rest .day-n{border-style:dashed}

/* reader stories: lined letter paper */
#c-pitch{background-image:repeating-linear-gradient(180deg,transparent 0 27px,var(--line) 27px 28px);line-height:28px;padding-top:6px}
.contrib{position:relative}
.contrib::after{content:"";position:absolute;top:-14px;right:22px;width:54px;height:64px;background:radial-gradient(circle,var(--sun) 0 30%,transparent 31%),#fffaf0;outline:2px dashed color-mix(in srgb,#0f3b3a 30%,transparent);outline-offset:-5px;transform:rotate(8deg);box-shadow:0 6px 14px rgba(0,0,0,.15)}
.pitch-meter{font-size:.8125rem;font-weight:600;color:var(--muted)}
.pitch-meter[data-k="2"]{color:var(--moss)}

@media (prefers-reduced-motion: reduce){.wheel{transition:none}.panel{transition:none}}
@media (max-width:820px){.page-doodle.pd-south-america,.page-doodle.pd-journal,.page-doodle.pd-trip-planner,.page-doodle.pd-with-a-baby{width:110px;height:66px}}
html[data-page="with-a-baby"] .firsts{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:700px){html[data-page="with-a-baby"] .firsts{grid-template-columns:repeat(2,minmax(0,1fr))}}html[data-page="with-a-baby"] .first{min-width:0;overflow-wrap:anywhere}html[data-page="with-a-baby"] .first b{font-size:1.15rem}

/* ================= lighter look ================= */
/* stay light even when the device is in dark mode */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#f3f5f1;--surface:#ffffff;--ink:#16231f;--muted:#56645f;--line:#d5ddd8;--deep:#0f3b3a;--deep-ink:#e9f2ee;--sun:#f2b632;--moss:#3d7a5a;color-scheme:light}}
:root[data-theme="dark"]{--bg:#f3f5f1;--surface:#ffffff;--ink:#16231f;--muted:#56645f;--line:#d5ddd8;--deep:#0f3b3a;--deep-ink:#e9f2ee;--sun:#f2b632;--moss:#3d7a5a;color-scheme:light}
:root{--gold-text:#9a6a06}

/* white menu bar, footer, route and newsletter */
.nav,.site-footer,.route,.news-band{--deep:#ffffff;--deep-ink:#16231f}
.news-band{--deep:#fdf4d8}
.nav{border-bottom:1px solid var(--line);box-shadow:0 4px 18px -12px rgba(15,59,58,.25)}
.nav .grp.current > .grp-btn,.nav ul a[aria-current="page"]{color:var(--moss)}
.grp-btn:hover,.grp.open > .grp-btn{background:color-mix(in srgb,var(--moss) 10%,transparent)}
@media (max-width:1100px){.grp-btn{color:var(--gold-text)}.sub a:hover,.sub a[aria-current="page"]{color:var(--moss)}.nav.open{background:#fff}}
.site-footer{border-top:1px solid var(--line)}
.site-footer .foot-col h3,.site-footer .foot-brand .mono{color:var(--gold-text)}
.foot-col .foot-email,.foot-connect .foot-email{color:var(--moss)}
.foot-connect{background:var(--bg);border-color:var(--line)}
.route{background:var(--surface);color:var(--ink)}
.route .eyebrow,.route .stop em,.route .country h3 em,.route .stub-plane{color:var(--gold-text)}
.route .ticket-stub b{color:var(--moss)}
.route .link-more{color:var(--moss)!important}
.route .sec-head p,.route .country p,.route .country ul,.route .stop span{color:var(--muted);opacity:1}
.ticket{background:var(--bg);border:1px solid var(--line)}
.ticket-stub::before,.ticket-stub::after{background:var(--surface)}
.route .stop .dot,.country .dot{background:var(--surface)}
.route .stop.now .dot,.country.now .dot{background:var(--sun)}
.news-band .eyebrow,.news-msg{color:var(--gold-text)}
.news-band a{color:var(--moss)!important}
.news-form input{background:#fff;border-color:var(--line);color:var(--ink)}
.news-form input::placeholder{color:var(--muted)}
.read-progress{top:0}

/* lighter photo banners */
.hero::after{background:linear-gradient(180deg,color-mix(in srgb,var(--deep) 52%,transparent) 0%,color-mix(in srgb,var(--deep) 72%,transparent) 72%,color-mix(in srgb,var(--deep) 88%,transparent) 100%)}
.page-hero.has-photo::after{background:linear-gradient(100deg,color-mix(in srgb,#0f3b3a 82%,transparent) 0%,color-mix(in srgb,#0f3b3a 52%,transparent) 55%,color-mix(in srgb,#0f3b3a 22%,transparent) 100%)}
.hero .ridge path:last-child{fill:var(--bg)}

/* ================= balanced: green frame, lighter middle ================= */
.nav,.site-footer,.news-band{--deep:#0f3b3a;--deep-ink:#e9f2ee}
.nav{border-bottom:0;box-shadow:0 6px 20px -14px rgba(0,0,0,.45)}
.nav .grp.current > .grp-btn,.nav ul a[aria-current="page"]{color:var(--sun)}
.grp-btn:hover,.grp.open > .grp-btn{background:color-mix(in srgb,#e9f2ee 12%,transparent)}
@media (max-width:1100px){.grp-btn{color:var(--sun)}.sub a:hover,.sub a[aria-current="page"]{color:var(--sun)}.nav.open{background:var(--deep)}}
.site-footer{border-top:0}
.site-footer .foot-col h3,.site-footer .foot-brand .mono{color:var(--sun)}
.foot-col .foot-email,.foot-connect .foot-email{color:var(--sun)}
.foot-connect{background:color-mix(in srgb,#e9f2ee 7%,transparent);border-color:color-mix(in srgb,#e9f2ee 16%,transparent)}
.news-band .eyebrow,.news-msg{color:var(--sun)}
.news-band a{color:var(--sun)!important}
.news-form input{background:color-mix(in srgb,#e9f2ee 10%,transparent);border-color:color-mix(in srgb,#e9f2ee 30%,transparent);color:#e9f2ee}
.news-form input::placeholder{color:color-mix(in srgb,#e9f2ee 60%,transparent)}
/* route: soft green tint instead of white */
.route{--deep:#e1ede6;background:#e1ede6}
.ticket{background:#fff}
.ticket-stub::before,.ticket-stub::after{background:#e1ede6}
.route .stop .dot,.country .dot{background:#e1ede6}
/* light green wash on the alternating sections */
.regions-bg{background:#edf4ef}
/* banner photos: between the original and the light version */
.hero::after{background:linear-gradient(180deg,color-mix(in srgb,#0f3b3a 62%,transparent) 0%,color-mix(in srgb,#0f3b3a 80%,transparent) 72%,color-mix(in srgb,#0f3b3a 92%,transparent) 100%)}
.page-hero.has-photo::after{background:linear-gradient(100deg,color-mix(in srgb,#0f3b3a 88%,transparent) 0%,color-mix(in srgb,#0f3b3a 64%,transparent) 55%,color-mix(in srgb,#0f3b3a 34%,transparent) 100%)}

/* ================= story comments ================= */
.comments-sec{padding-top:24px}
.comments{max-width:820px;display:grid;gap:24px}
.cm-head{display:grid;gap:8px}
.cm-head h2{font-size:clamp(1.9rem,4vw,2.5rem);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.cm-count{font:500 .875rem var(--mono);color:var(--muted);letter-spacing:.04em}
.cm-head p{color:var(--muted)}
.cm-form{display:grid;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;position:relative}
.cm-form::before{content:"";position:absolute;left:28px;bottom:-12px;width:22px;height:22px;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}
.cm-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cm-row > *{min-width:0}
.cm-form input,.cm-form textarea{font:500 1rem var(--body);padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%;min-width:0}
.cm-form textarea{resize:vertical;min-height:110px}
.cm-form input:focus,.cm-form textarea:focus{outline:2px solid var(--sun);outline-offset:1px;border-color:var(--moss)}
.cm-chars{justify-self:end;font:500 .75rem var(--mono);color:var(--muted)}
.cm-chars.near{color:#c0392b}
.cm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cm-replying{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--sun) 18%,var(--surface));font-size:.9375rem}
.cm-replying button{border:0;background:none;color:var(--moss);font:600 .875rem var(--body);cursor:pointer;text-decoration:underline}
.cm-rules{font-size:.875rem;color:var(--muted)}
.cm-err{color:#c0392b;font-weight:600}
.cm-form .btn{border:0;cursor:pointer;font-family:var(--body);font-size:1rem;justify-self:start}
.cm-form .btn:disabled{opacity:.6;cursor:wait}
.cm-thanks{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;padding:14px 18px;border-radius:14px;background:var(--deep);color:var(--deep-ink)}
.cm-thanks b{font-family:var(--display);font-weight:400;font-size:1.3rem;color:var(--sun)}
.cm-list,.cm-replies{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.cm{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start;animation:fadeup .4s cubic-bezier(.2,.7,.2,1) both}
.cm-av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 .9375rem var(--body);box-shadow:0 0 0 3px var(--bg)}
.cm.is-team .cm-av::after{content:"";width:26px;height:26px;background:url("favicon.svg") center/contain no-repeat;border-radius:6px}
.cm-box{display:grid;gap:8px;min-width:0}
.cm-box > .cm-meta,.cm-box > .cm-text,.cm-box > .cm-acts{margin-left:2px}
.cm-text{background:var(--surface);border:1px solid var(--line);border-radius:4px 18px 18px 18px;padding:12px 16px;white-space:pre-wrap;overflow-wrap:anywhere}
.cm.is-team > .cm-box > .cm-text{background:color-mix(in srgb,var(--sun) 16%,var(--surface));border-color:color-mix(in srgb,var(--sun) 50%,var(--line))}
.cm.is-pending > .cm-box > .cm-text{border-style:dashed;opacity:.85}
.cm-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:.875rem}
.cm-meta b{font-weight:700}
.cm-place{color:var(--muted)}
.cm-place::before{content:"· "}
.cm-meta time{color:var(--muted);font-family:var(--mono);font-size:.75rem}
.cm-badge{font:700 .6875rem var(--body);letter-spacing:.06em;text-transform:uppercase;background:var(--sun);color:#1b1a10;padding:2px 8px;border-radius:999px}
.cm-acts{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.cm-heart,.cm-reply{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:4px 2px;cursor:pointer;color:var(--muted);font:600 .875rem var(--body)}
.cm-heart svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.cm-heart.on{color:#e0485a}
.cm-heart.on svg{fill:currentColor}
.cm-heart.pop svg{animation:jelly .45s cubic-bezier(.3,1.6,.5,1)}
.cm-heart:hover,.cm-reply:hover{color:var(--moss)}
.cm-heart.on:hover{color:#e0485a}
.cm-pending{font-size:.8125rem;color:var(--muted);font-style:italic}
.cm-replies{margin-top:8px;padding-left:14px;border-left:3px dotted var(--line)}
.cm-replies .cm{grid-template-columns:34px minmax(0,1fr)}
.cm-replies .cm-av{width:34px;height:34px;font-size:.8125rem}
.cm-empty{display:grid;justify-items:center;gap:4px;text-align:center;padding:28px 16px;border:2px dashed var(--line);border-radius:18px;color:var(--muted)}
.cm-empty b{font-family:var(--display);font-weight:400;font-size:1.4rem;color:var(--ink)}
.cm-empty-bubble{width:56px;height:44px;border-radius:16px 16px 16px 4px;background:color-mix(in srgb,var(--sun) 30%,transparent);position:relative;margin-bottom:6px;animation:dbounce 2s ease-in-out infinite}
.cm-empty-bubble::after{content:"";position:absolute;left:14px;top:18px;width:7px;height:7px;border-radius:50%;background:var(--moss);box-shadow:11px 0 0 var(--moss),22px 0 0 var(--moss);animation:typing 1.2s infinite}
@media (max-width:600px){.cm-row{grid-template-columns:1fr}.cm{grid-template-columns:36px minmax(0,1fr)}.cm-av{width:36px;height:36px;font-size:.8125rem}}
.wrap.comments{max-width:1120px}.comments > *{max-width:780px;width:100%}

/* ================= engagement round 2 ================= */
/* passport floating button + stamp toast */
.passport-fab{position:fixed;left:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:40;display:inline-flex;align-items:center;gap:8px;padding:10px 14px 10px 12px;border-radius:999px;background:var(--sun);color:#1b1a10;text-decoration:none;font:700 .875rem var(--body);box-shadow:0 10px 24px -8px rgba(0,0,0,.35);transition:transform .2s}
.passport-fab svg{width:22px;height:22px}
.passport-fab:hover{transform:translateY(-3px) rotate(-3deg)}
.passport-fab.bump{animation:jelly .6s cubic-bezier(.3,1.6,.5,1)}
.passport-fab.full{background:var(--moss);color:#fff}
@media (max-width:600px){.passport-fab{padding:9px 12px 9px 10px;font-size:.8125rem}}
.stamp-toast{position:fixed;left:50%;top:calc(84px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:130;display:flex;gap:14px;align-items:center;padding:14px 20px 14px 14px;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 18px 40px -12px rgba(0,0,0,.35);border:1px solid var(--line);animation:toastdrop .5s cubic-bezier(.3,1.6,.5,1);max-width:calc(100vw - 32px)}
.stamp-toast.out{opacity:0;transform:translateX(-50%) translateY(-12px);transition:all .5s}
.stamp-toast b{display:block;font-family:var(--display);font-weight:400;font-size:1.15rem}
.stamp-toast div span{font-size:.8125rem;color:var(--muted)}
.st-ink{width:44px;height:44px;border-radius:50%;border:3px double #c0392b;flex:none;position:relative;transform:rotate(-12deg);animation:stampin .45s .1s cubic-bezier(.3,1.6,.5,1) both}
.st-ink::after{content:"\2713";position:absolute;inset:0;display:grid;place-items:center;color:#c0392b;font:700 1.2rem var(--body)}
@keyframes toastdrop{from{opacity:0;transform:translateX(-50%) translateY(-30px)}}
@keyframes stampin{from{transform:rotate(-12deg) scale(2.2);opacity:0}}

/* passport page */
.pp-progress{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-bottom:28px;font-family:var(--mono);color:var(--muted)}
.pp-progress b{font-family:var(--display);font-weight:400;font-size:2rem;color:var(--moss)}
.pp-progress .bar{flex:1 1 200px;height:10px;border-radius:5px;background:var(--line);overflow:hidden}
.pp-progress .bar i{display:block;height:100%;width:0;background:var(--sun);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.pp-book{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 18px;padding:28px;border-radius:22px;background:#fdf6e3;border:1px solid #eadfc0;box-shadow:inset 0 0 0 10px #fbf1d6;position:relative}
.pp-book::before{content:"";position:absolute;top:18px;bottom:18px;left:50%;border-left:2px dashed #e2d3a6}
.pp-stamp{display:grid;justify-items:center;gap:8px;text-decoration:none;color:var(--ink);text-align:center;position:relative;z-index:1;min-width:0}
.pp-ring{width:118px;height:118px;border-radius:50%;display:grid;place-content:center;gap:2px;padding:10px;border:3px dashed #c9bd99;color:#9c916f;transform:rotate(var(--rot));transition:all .35s cubic-bezier(.3,1.6,.5,1);background:transparent}
.pp-ring b{font-family:var(--display);font-weight:400;font-size:1rem;line-height:1.15}
.pp-date{font:500 .625rem var(--mono);letter-spacing:.06em}
.pp-how{font-size:.8125rem;color:var(--muted);max-width:16ch}
.pp-stamp:hover .pp-ring{transform:rotate(0) scale(1.05)}
.pp-stamp.on .pp-ring{border:4px double #b8402f;color:#b8402f;background:radial-gradient(circle,rgba(184,64,47,.06),transparent 70%)}
.pp-stamp.on:nth-child(3n+2) .pp-ring{border-color:#2f6fa8;color:#2f6fa8}
.pp-stamp.on:nth-child(3n) .pp-ring{border-color:#3d7a5a;color:#3d7a5a}
@media (max-width:820px){.pp-book{grid-template-columns:repeat(3,minmax(0,1fr))}.pp-book::before{display:none}}
@media (max-width:520px){.pp-book{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}.pp-ring{width:104px;height:104px}}
.pp-cert-wrap{max-width:860px}
.pp-locked,.pp-cert{display:grid;gap:12px;justify-items:start}
.pp-locked h2,.pp-cert h2{font-size:clamp(1.8rem,4vw,2.4rem)}
.pp-locked p{color:var(--muted)}
.pp-cert-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.pp-cert-form label{flex-basis:100%;font-weight:600}
.pp-cert-form input{font:500 1rem var(--body);padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);flex:1 1 220px;min-width:0}
.pp-cert .btn{border:0;cursor:pointer;font-family:var(--body)}
.pp-cert .btn-line{border:1.5px solid var(--line)}
#pp-img{width:100%;border-radius:12px;box-shadow:0 18px 40px -16px rgba(0,0,0,.35);animation:popin .5s cubic-bezier(.3,1.6,.5,1)}

/* reactions + poll */
.engage-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;max-width:900px;margin-bottom:28px}
.reactions,.poll{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;display:grid;gap:12px;align-content:start}
.rx-row{display:flex;flex-wrap:wrap;gap:8px}
.rx{position:relative;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:600 .875rem var(--body);cursor:pointer;transition:all .2s}
.rx:hover{border-color:var(--moss);transform:translateY(-2px)}
.rx.on{background:color-mix(in srgb,var(--sun) 25%,var(--surface));border-color:var(--sun)}
.rx.pop{animation:jelly .5s cubic-bezier(.3,1.6,.5,1)}
.rx-e{font-size:1.05rem}
.rx-n{font-family:var(--mono);font-size:.75rem;color:var(--muted)}
.rx-n:empty{display:none}
.rx-float{position:absolute;left:12px;top:0;font-size:1.3rem;pointer-events:none;animation:rxfloat .9s ease-out forwards}
@keyframes rxfloat{to{transform:translateY(-46px) scale(1.4);opacity:0}}
.rx-note,.poll-note{font-size:.8125rem;color:var(--muted)}
.poll-q{font-family:var(--display);font-weight:400;font-size:1.3rem;line-height:1.25}
.poll-opt{position:relative;overflow:hidden;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:600 .9375rem var(--body);text-align:left;cursor:pointer;transition:border-color .2s}
.poll-opt:hover:not(:disabled){border-color:var(--moss)}
.poll-opt:disabled{cursor:default}
.poll-bar{position:absolute;left:0;top:0;bottom:0;width:0;background:color-mix(in srgb,var(--sun) 30%,transparent);transition:width .8s cubic-bezier(.2,.7,.2,1)}
.poll-t,.poll-pct{position:relative}
.poll-pct{font-family:var(--mono);font-size:.8125rem;color:var(--moss)}
.poll-opt.mine{border-color:var(--sun)}
.poll-total{font:500 .75rem var(--mono);color:var(--muted)}
@media (max-width:760px){.engage-row{grid-template-columns:1fr}}

/* home: where we are + prep log */
.now-sec{padding-top:40px}
.now-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;align-items:stretch}
.now-card{background:var(--deep);color:var(--deep-ink);border-radius:18px;padding:22px;display:grid;gap:10px;align-content:start;position:relative;overflow:hidden}
.now-card .eyebrow{color:var(--sun)}
.now-map{width:100%;height:auto;max-height:220px}
.now-map text{fill:#e9f2ee;font:500 11px var(--mono);letter-spacing:.08em}
.now-route{stroke:#f2b632;stroke-width:3;stroke-dasharray:7 8;animation:dash 1.4s linear infinite}
.now-here{fill:#f2b632}
.now-pulse{fill:none;stroke:#f2b632;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:nowpulse 2s ease-out infinite}
@keyframes nowpulse{from{transform:scale(1);opacity:1}to{transform:scale(3);opacity:0}}
.now-next{fill:none;stroke:#e9f2ee;stroke-width:2.5;stroke-dasharray:4 3}
.now-eq{stroke:#f2b632;stroke-width:1;opacity:.5;stroke-dasharray:3 5}
.now-place{display:grid;gap:2px}
.now-place b{font-family:var(--display);font-weight:400;font-size:1.5rem}
.now-place span{opacity:.75;font-size:.9375rem}
.prep{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:10px;align-content:start}
.prep h2{font-size:clamp(1.5rem,3vw,1.9rem)}
.prep-list{list-style:none;margin:0;padding:0;display:grid;gap:0;border-left:3px dotted var(--sun);margin-left:6px}
.prep-list li{position:relative;padding:4px 0 14px 18px}
.prep-list li::before{content:"";position:absolute;left:-8px;top:8px;width:13px;height:13px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px var(--surface)}
.prep-list time{font:500 .75rem var(--mono);color:var(--moss);letter-spacing:.06em;text-transform:uppercase}
.prep-list p{margin-top:2px}
@media (max-width:760px){.now-grid{grid-template-columns:1fr}}

/* about: two homes slider */
.th-wrap{display:grid;gap:22px}
.two-homes{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/8;max-width:100%;background:var(--line);box-shadow:0 18px 40px -18px rgba(0,0,0,.4)}
.two-homes img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.th-top{clip-path:inset(0 50% 0 0)}
.th-label{position:absolute;bottom:14px;padding:6px 12px;border-radius:999px;background:rgba(15,59,58,.8);color:#fff;font:600 .8125rem var(--body);pointer-events:none}
.th-l{left:14px}.th-r{right:14px}
.th-handle{position:absolute;top:0;bottom:0;width:4px;margin-left:-2px;background:#fff;pointer-events:none;box-shadow:0 0 12px rgba(0,0,0,.35)}
.th-handle::after{content:"\2194";position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:var(--sun);color:#1b1a10;display:grid;place-items:center;font:700 1.2rem var(--body)}
.two-homes input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
@media (max-width:600px){.two-homes{aspect-ratio:4/3}}

/* postcard */
.pc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:36px;align-items:start}
.pc-form{display:grid;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px}
.pc-form input,.pc-form textarea,.pc-done input{font:500 1rem var(--body);padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%;min-width:0}
.pc-form .btn{border:0;cursor:pointer;font-family:var(--body);font-size:1rem;justify-self:start}
.pc-picks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pc-pick{position:relative;border:2px solid transparent;border-radius:10px;padding:0;overflow:hidden;cursor:pointer;background:none;aspect-ratio:4/3}
.pc-pick img{width:100%;height:100%;object-fit:cover;display:block}
.pc-pick span{position:absolute;left:0;right:0;bottom:0;padding:3px 5px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font:600 .6875rem var(--body);text-align:left}
.pc-pick[aria-pressed="true"]{border-color:var(--sun);box-shadow:0 0 0 3px color-mix(in srgb,var(--sun) 40%,transparent)}
.pc-received{display:grid;gap:4px;padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--sun) 20%,var(--surface))}
.pc-received b{font-family:var(--display);font-weight:400;font-size:1.2rem}
.pc-side{display:grid;gap:14px;position:sticky;top:calc(84px + env(safe-area-inset-top,0px))}
.pc-card{position:relative;aspect-ratio:3/2;perspective:1200px;cursor:pointer}
.pc-face{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .8s cubic-bezier(.3,.7,.2,1);box-shadow:0 22px 44px -18px rgba(0,0,0,.45);overflow:hidden}
.pc-front{background:center/cover var(--deep);display:flex;flex-direction:column;justify-content:flex-end;padding:18px;border:8px solid #fff}
.pc-front::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.55))}
.pc-greet{position:relative;color:#fff;font:400 clamp(1.2rem,3vw,1.7rem) var(--display);text-shadow:0 2px 10px rgba(0,0,0,.4)}
.pc-greet b{display:block;font-weight:400;font-size:2em;color:var(--sun);line-height:1}
.pc-lat{position:absolute;top:12px;right:14px;font:500 .75rem var(--mono);color:#fff;letter-spacing:.1em;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.pc-back{background:#fffaf0;transform:rotateY(180deg);display:grid;grid-template-columns:1.3fr 1fr;padding:18px;gap:16px;color:#2a2a2a}
.pc-card.flipped .pc-front{transform:rotateY(-180deg)}
.pc-card.flipped .pc-back{transform:rotateY(0)}
.pc-left{display:grid;gap:8px;align-content:start;border-right:2px solid #e8dcc0;padding-right:14px;min-width:0}
.pc-to,.pc-from{font-size:.875rem}
.pc-msg{font:400 clamp(1rem,2.4vw,1.25rem)/1.35 var(--display);overflow-wrap:anywhere}
.pc-right{display:grid;align-content:start;justify-items:end;gap:8px;position:relative}
.pc-stamp{width:58px;height:70px;background:center/cover url(img/mitad-800.jpg);outline:3px dashed #fffaf0;outline-offset:-4px;box-shadow:0 0 0 3px #e3c98a}
.pc-post{position:absolute;right:30px;top:40px;transform:rotate(-14deg);font:700 .625rem var(--mono);color:#b8402f;border:2px solid #b8402f;border-radius:999px;padding:8px 10px;opacity:.7}
.pc-lines{width:100%;height:60px;margin-top:40px;background:repeating-linear-gradient(transparent 0 18px,#d8cba8 18px 19px)}
.pc-flip{background:none;border:0;cursor:pointer;font:inherit;padding:0;justify-self:center}
.pc-done{display:grid;gap:10px;padding:18px;border-radius:16px;background:var(--surface);border:1px solid var(--line);animation:popin .5s cubic-bezier(.3,1.6,.5,1)}
.pc-done .btn{cursor:pointer;font-family:var(--body);border:0}
.pc-done .btn-line{border:1.5px solid var(--line)}
@media (max-width:860px){.pc-grid{grid-template-columns:1fr}.pc-side{position:static;order:-1}}
@media (max-width:480px){.pc-picks{grid-template-columns:repeat(4,minmax(0,1fr))}.pc-back{grid-template-columns:1fr;}.pc-right{display:none}.pc-left{border-right:0}}

/* forms that email us */
.mail-form,.mf-done{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px}
.mail-form input:not([type=checkbox]),.mail-form textarea,.mf-done textarea{font:500 1rem var(--body);padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%;min-width:0}
.mail-form .btn,.mf-done .btn{border:0;cursor:pointer;font-family:var(--body);justify-self:start}
.mf-done .btn-line{border:1.5px solid var(--line)}
.mf-to{font:500 .8125rem var(--mono);color:var(--muted)}
.ask-d{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;margin-bottom:56px}
.ask-d > *{min-width:0}
@media (max-width:820px){.ask-d{grid-template-columns:1fr}}

/* community */
.contest{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:36px;align-items:center}
.contest-art{position:relative;background:color-mix(in srgb,var(--sun) 18%,var(--surface));border-radius:24px;padding:40px 30px;display:grid;place-items:center}
.contest-art svg{width:100%;max-width:300px;animation:dbounce 2.6s ease-in-out infinite}
.contest-q{position:absolute;top:18px;right:26px;font:400 4rem var(--display);color:var(--moss);animation:wiggle 2.4s ease-in-out infinite}
.contest-copy{display:grid;gap:12px}
.contest-copy h2{font-size:clamp(2rem,4.5vw,2.8rem)}
.contest-copy p{color:var(--muted)}
@media (max-width:820px){.contest{grid-template-columns:1fr}}
.course{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:36px;align-items:start}
.course .btn{justify-self:start}
.course-days{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.course-days li{display:grid;grid-template-columns:70px 1fr;gap:2px 14px;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.course-days li:hover{transform:translateX(6px)}
.course-days .alt{grid-row:1/3;align-self:center;font-weight:600;color:var(--moss)}
.course-days b{font-family:var(--display);font-weight:400;font-size:1.15rem}
.course-days li > span:last-child{color:var(--muted);font-size:.9375rem}
@media (max-width:820px){.course{grid-template-columns:1fr}}
.photo-wall-empty{display:grid;grid-template-columns:repeat(3,1fr) 1.4fr;gap:14px;align-items:center}
.pw-frame{aspect-ratio:1;border-radius:14px;border:2.5px dashed var(--line);background:repeating-linear-gradient(45deg,transparent 0 10px,color-mix(in srgb,var(--line) 40%,transparent) 10px 12px)}
.pw-frame:nth-child(2){transform:rotate(3deg)}.pw-frame:nth-child(1){transform:rotate(-2deg)}
.photo-wall-empty > div{display:grid;gap:4px}
.photo-wall-empty b{font-family:var(--display);font-weight:400;font-size:1.4rem}
.photo-wall-empty span{color:var(--muted)}
@media (max-width:700px){.photo-wall-empty{grid-template-columns:repeat(3,1fr)}.photo-wall-empty > div{grid-column:1/-1}}
.giveaway{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;max-width:900px}
.giveaway h2{font-size:clamp(1.8rem,4vw,2.4rem)}
.giveaway p{color:var(--muted);max-width:60ch;margin-top:8px}
.gw-badge{width:130px;height:130px;border-radius:50%;background:var(--sun);display:grid;place-items:center;text-align:center;font:400 1.2rem/1.1 var(--display);color:#1b1a10;padding:16px;animation:spin 20s linear infinite;box-shadow:0 0 0 6px color-mix(in srgb,var(--sun) 35%,transparent)}
.gw-badge span{animation:spin 20s linear infinite reverse}
@media (max-width:560px){.giveaway{grid-template-columns:1fr}.gw-badge{width:100px;height:100px;font-size:1rem}}
.stamp-toast > div{display:grid;gap:2px;min-width:0}.stamp-toast > div span{white-space:nowrap}

/* ===================== v6: mega menu + home button ===================== */
:root{--sky:#4fa3d9;--coral:#ff6b5a;--cream:#fff8e6;--hand:"Caveat","Comic Sans MS",cursive}
.home-link{display:inline-flex;align-items:center;gap:7px;color:var(--deep-ink);text-decoration:none;font:600 .9375rem var(--body);padding:9px 12px;border-radius:999px;opacity:.9;transition:background .2s,transform .2s}
.home-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.home-link:hover{opacity:1;background:color-mix(in srgb,#e9f2ee 12%,transparent)}
.home-link:hover svg{transform:translateY(-2px) rotate(-8deg)}
.nav .home-link[aria-current="page"]{color:var(--sun);opacity:1}
.mm-ic{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;font-style:normal;transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.mm-ic svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.t-sun{background:#fdecc0;color:#8a5a00}.t-moss{background:#dcefe3;color:#2d6a4a}.t-sky{background:#dceefa;color:#1f6a9c}.t-coral{background:#ffe1dc;color:#b33b2c}

@media (min-width:1101px){
  .nav .wrap{position:static}
  .menu > li{position:static}
  .menu{gap:2px}
  .home-li{margin-right:4px}
  .sub.mega{position:absolute;left:0;right:0;top:100%;min-width:0;padding:0;border:0;border-radius:0 0 28px 28px;background:var(--cream);color:var(--ink);box-shadow:0 30px 60px -20px rgba(8,30,28,.45);display:block;visibility:hidden;opacity:0;transform:translateY(-10px);transition:opacity .2s,transform .25s cubic-bezier(.2,.8,.2,1),visibility 0s .25s;z-index:30}
  .sub.mega::before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
  .sub.mega::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;border-radius:0 0 28px 28px;background:repeating-linear-gradient(90deg,var(--sun) 0 40px,var(--moss) 40px 80px,var(--sky) 80px 120px,var(--coral) 120px 160px);opacity:.9}
  .grp.open > .sub.mega{visibility:visible;opacity:1;transform:none;transition:opacity .2s,transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s;animation:none}
  .mega-in{max-width:1120px;margin:0 auto;padding:30px 20px 36px;display:grid;grid-template-columns:230px 1fr 270px;gap:34px;align-items:start}
  .mega-intro{position:relative;padding-top:4px}
  .mega-num{font:500 .75rem var(--mono);letter-spacing:.14em;color:var(--gold-text,#9a6a06)}
  .mega-title{display:block;font:400 1.75rem/1.1 var(--display);margin:10px 0 10px;color:var(--ink)}
  .mega-intro p{color:var(--muted);font-size:.95rem;line-height:1.5}
  .mega-doodle{display:block;width:84px;height:44px;margin-top:18px;background:no-repeat center/contain;animation:mm-bob 3.2s ease-in-out infinite}
  .mega-doodle.d0{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 44'%3E%3Cpath d='M4 30 Q20 6 40 22 T80 14' fill='none' stroke='%23f2b632' stroke-width='3' stroke-linecap='round' stroke-dasharray='2 7'/%3E%3Cpath d='M70 8 l10 6-11 4' fill='none' stroke='%23f2b632' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
  .mega-doodle.d1{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 44'%3E%3Cpath d='M2 42 L26 10 L36 22 L46 8 L82 42Z' fill='%233d7a5a'/%3E%3Cpath d='M40 16 L46 8 L52 16 L46 14Z' fill='%23fff'/%3E%3Ccircle cx='70' cy='10' r='6' fill='%23f2b632'/%3E%3C/svg%3E")}
  .mega-doodle.d2{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 44'%3E%3Cpath d='M8 16h20l6 16h30a12 12 0 0 0-12-12H30' fill='none' stroke='%234fa3d9' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='34' cy='38' r='4' fill='%234fa3d9'/%3E%3Ccircle cx='58' cy='38' r='4' fill='%234fa3d9'/%3E%3C/svg%3E")}
  .mega-doodle.d3{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 44'%3E%3Ccircle cx='22' cy='22' r='16' fill='none' stroke='%23ff6b5a' stroke-width='3' stroke-dasharray='4 4'/%3E%3Cpath d='M15 22l5 5 9-10' fill='none' stroke='%23ff6b5a' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='60' cy='22' r='16' fill='none' stroke='%23f2b632' stroke-width='3' stroke-dasharray='4 4'/%3E%3Cpath d='M53 22l5 5 9-10' fill='none' stroke='%23f2b632' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E")}
  .mega-doodle.d4{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 44'%3E%3Cpath d='M42 8l4 9 10 1-7.5 7 2 10L42 30l-8.5 5 2-10L28 18l10-1z' fill='%23f2b632'/%3E%3Cpath d='M12 30l2 4 4 .5-3 3 .8 4L12 39.5 8.2 41.5 9 37.5l-3-3 4-.5zM72 8l2 4 4 .5-3 3 .8 4L72 17.5 68.2 19.5 69 15.5l-3-3 4-.5z' fill='%233d7a5a'/%3E%3C/svg%3E")}
  .mega-links{list-style:none;margin:0;padding:0;display:grid;gap:4px}
  .mega-links.two{grid-template-columns:1fr 1fr;column-gap:12px}
  .mega-links li{opacity:0;transform:translateY(8px)}
  .grp.open .mega-links li{animation:mm-in .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 40ms + 60ms)}
  .sub.mega .mega-links a{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:16px;color:var(--ink);text-decoration:none;transition:background .2s,transform .2s}
  .sub.mega .mega-links a b{font-weight:600;font-size:.98rem;line-height:1.25}
  .sub.mega .mega-links a b span{display:block;font-weight:400;font-size:.84rem;color:var(--muted);margin-top:2px}
  .sub.mega .mega-links a:hover,.sub.mega .mega-links a:focus-visible{background:#fff;transform:translateX(4px);box-shadow:0 6px 18px -10px rgba(15,59,58,.35)}
  .sub.mega .mega-links a:hover .mm-ic{transform:rotate(-10deg) scale(1.12)}
  .sub.mega .mega-links a[aria-current="page"]{background:#fff;color:var(--moss)}
  .sub.mega .mega-links a[aria-current="page"] b::after{content:"You're here";display:inline-block;margin-left:8px;font:700 .95rem var(--hand);color:var(--coral);transform:rotate(-4deg)}
  .mega-feat{display:block;text-decoration:none;color:var(--ink);background:#fff;border-radius:22px;padding:10px 10px 18px;box-shadow:0 14px 30px -18px rgba(15,59,58,.45);transform:rotate(1.5deg);transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
  .mega-feat:hover{transform:rotate(-1deg) translateY(-4px) scale(1.02)}
  .mega-ph{display:block;border-radius:16px;overflow:hidden;aspect-ratio:16/10;margin-bottom:12px}
  .mega-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
  .mega-feat:hover .mega-ph img{transform:scale(1.07)}
  .mega-tag{display:inline-block;margin:0 8px;font:700 1.15rem var(--hand);color:var(--coral);transform:rotate(-3deg)}
  .mega-feat b{display:block;margin:2px 8px 8px;font:400 1.2rem/1.2 var(--display)}
  .mega-cta{margin:0 8px;font-weight:600;font-size:.9rem;color:var(--moss)}
  .grp-btn{border-radius:999px}
}
@media (min-width:1101px) and (max-width:1220px){.mega-in{grid-template-columns:190px 1fr 230px;gap:24px}.grp-btn{padding:10px 9px}.home-link{padding:9px 9px}}
@keyframes mm-in{to{opacity:1;transform:none}}
@keyframes mm-bob{50%{transform:translateY(-5px) rotate(-3deg)}}
@media (max-width:1100px){
  .home-li{grid-column:1/-1;border-top:0!important;padding-top:4px!important}
  .home-link{padding:10px 0;font-size:1.05rem;color:var(--deep-ink)}
  .home-link:hover{background:none;color:var(--sun)}
  .mega-intro,.mega-feat{display:none}
  .mega-links{list-style:none;margin:0;padding:0}
  .sub.mega .mega-links a{display:flex;align-items:center;gap:10px}
  .sub.mega .mm-ic{width:28px;height:28px;border-radius:9px}
  .sub.mega .mm-ic svg{width:16px;height:16px}
  .sub.mega .mega-links b{font-weight:500}
}
@media (prefers-reduced-motion:reduce){.mega-links li{opacity:1!important;transform:none!important;animation:none!important}.mega-doodle{animation:none}}

/* ===================== v6: playful home ===================== */
.hm-hand{display:inline-block;font:700 1.45rem/1 var(--hand);color:var(--coral);transform:rotate(-3deg);margin-bottom:6px}
.hm-head{margin-bottom:34px}
.hm-head h2,.hm-who h2{font-size:clamp(2rem,4.4vw,3.1rem);max-width:20ch}
.hm section{padding-block:clamp(56px,8vw,96px)}

/* hero with polaroids */
.hm-hero .wrap{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:20px}
.hm-hero h1{font-size:clamp(2.6rem,6.2vw,4.7rem);max-width:13ch}
.hm-hero-copy{display:grid;gap:26px}
.hm-polas{position:relative;height:440px}
.hm-pola{position:absolute;left:var(--x);top:var(--y);width:min(220px,52%);margin:0;background:#fffdf7;padding:10px 10px 0;border-radius:4px;box-shadow:0 18px 40px -16px rgba(0,0,0,.55);transform:rotate(var(--r));cursor:pointer;transition:transform .45s cubic-bezier(.3,1.5,.5,1),box-shadow .3s;animation:hm-float 7s ease-in-out infinite;animation-delay:var(--d)}
.hm-pola::before{content:"";position:absolute;top:-10px;left:50%;width:70px;height:20px;margin-left:-35px;background:color-mix(in srgb,var(--sun) 70%,transparent);transform:rotate(-4deg);opacity:.85}
.hm-pola img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px}
.hm-pola figcaption{font:700 1.3rem/1 var(--hand);color:#2b3a35;text-align:center;padding:10px 4px 12px}
.hm-pola:hover,.hm-pola:focus-visible{transform:rotate(0deg) scale(1.06);box-shadow:0 26px 50px -16px rgba(0,0,0,.6);z-index:20}
.hm-pola.hop{animation:hm-hop .5s cubic-bezier(.3,1.6,.5,1),hm-float 7s ease-in-out .5s infinite}
.hm-note{position:absolute;right:2%;bottom:6%;font:700 1.5rem var(--hand);color:var(--sun);transform:rotate(-8deg);transition:opacity .4s}
.hm-note::before{content:"";position:absolute;left:-46px;top:-22px;width:40px;height:30px;border-left:2px dashed var(--sun);border-top:2px dashed var(--sun);border-radius:20px 0 0 0}
.hm-note.gone{opacity:0}
@keyframes hm-float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes hm-hop{0%{scale:1}40%{scale:1.12}100%{scale:1}}
@media (max-width:900px){.hm-hero .wrap{grid-template-columns:1fr}.hm-polas{height:300px;max-width:520px}.hm-pola{width:min(170px,40%)}.hm-note{bottom:0}}
@media (max-width:520px){.hm-polas{height:250px}.hm-pola{width:42%}.hm-pola figcaption{font-size:1.05rem}}

/* pick your path stickers */
.hm-pick{position:relative;padding-bottom:40px!important}
.hm-pick .wrap{text-align:center;position:relative}
.hm-pick-q{font:400 clamp(2rem,5vw,3.4rem)/1.1 var(--display);margin-bottom:34px}
.hm-arrow{position:absolute;right:max(20px,12%);top:-10px;width:110px;fill:none;stroke:var(--coral);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.hm-stickers{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 14px;max-width:900px;margin:0 auto}
.hm-sticker{display:inline-block;padding:14px 24px;border-radius:999px;font:600 1.08rem var(--body);text-decoration:none;transform:rotate(var(--r));box-shadow:0 3px 0 rgba(0,0,0,.18),0 12px 24px -14px rgba(0,0,0,.4);border:3px solid #fff;transition:transform .35s cubic-bezier(.3,1.7,.5,1),box-shadow .2s}
.hm-sticker:hover,.hm-sticker:focus-visible{transform:rotate(0) scale(1.08) translateY(-3px);box-shadow:0 6px 0 rgba(0,0,0,.18),0 18px 30px -14px rgba(0,0,0,.45)}
.hm-sticker:active{transform:scale(.97)}
.s-sun{background:var(--sun);color:#3a2800}.s-moss{background:var(--moss);color:#fff}.s-coral{background:var(--coral);color:#fff}.s-sky{background:var(--sky);color:#fff}.s-cream{background:var(--cream);color:var(--ink)}.s-deep{background:var(--deep);color:var(--sun)}
.hm-anim .hm-pick .hm-sticker{opacity:0;translate:0 30px}
.hm-pick.awake .hm-sticker{opacity:1;translate:0 0;transition:translate .6s cubic-bezier(.3,1.5,.5,1),opacity .4s,transform .35s cubic-bezier(.3,1.7,.5,1),box-shadow .2s}
.hm-pick.awake .hm-sticker:nth-child(2){transition-delay:.06s,.06s,0s,0s}.hm-pick.awake .hm-sticker:nth-child(3){transition-delay:.12s,.12s,0s,0s}.hm-pick.awake .hm-sticker:nth-child(4){transition-delay:.18s,.18s,0s,0s}.hm-pick.awake .hm-sticker:nth-child(5){transition-delay:.24s,.24s,0s,0s}.hm-pick.awake .hm-sticker:nth-child(6){transition-delay:.3s,.3s,0s,0s}
@media (max-width:700px){.hm-arrow{display:none}.hm-sticker{font-size:.98rem;padding:12px 18px}}

/* boarding pass + sticky note */
.hm-board{padding-top:30px!important}
.hm-board-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:48px;align-items:center}
.hm-pass{display:grid;grid-template-columns:1fr 230px;background:#fff;border-radius:26px;box-shadow:0 24px 50px -28px rgba(15,59,58,.5);transform:rotate(-1.2deg);position:relative;transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.hm-pass:hover{transform:rotate(0)}
.hm-pass-main{padding:28px 30px;position:relative}
.hm-pass-main::before{content:"";position:absolute;inset:0 0 auto 0;height:10px;border-radius:26px 0 0 0;background:repeating-linear-gradient(90deg,var(--sun) 0 30px,var(--deep) 30px 60px)}
.hm-pass-air{font:500 .72rem var(--mono);letter-spacing:.16em;color:var(--muted)}
.hm-pass-route{display:flex;align-items:center;gap:16px;margin:14px 0 2px}
.hm-pass-route b{font:400 clamp(2.4rem,5vw,3.6rem)/1 var(--display);color:var(--deep)}
.hm-pass-line{flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 14px);position:relative}
.hm-pass-line i{position:absolute;top:-11px;left:0;width:24px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath transform='rotate(90 16 16)' d='M16 2 L19 13 L30 18 L30 21 L19 18 L18 26 L22 29 L22 31 L16 29.5 L10 31 L10 29 L14 26 L13 18 L2 21 L2 18 L13 13 Z' fill='%23f2b632'/%3E%3C/svg%3E") center/contain no-repeat;animation:hm-taxi 4s ease-in-out infinite}
@keyframes hm-taxi{0%{left:0}45%,55%{left:calc(100% - 24px)}100%{left:0}}
.hm-pass-cities{display:flex;justify-content:space-between;font-size:.88rem;color:var(--muted)}
.hm-pass-info{display:flex;gap:28px;margin:22px 0 0;flex-wrap:wrap}
.hm-pass-info dt{font:500 .68rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hm-pass-info dd{margin:2px 0 0;font-weight:600}
.hm-blink{color:var(--coral);animation:hm-blink 1.6s steps(2,start) infinite}
@keyframes hm-blink{to{opacity:.35}}
.hm-pass-stub{padding:28px 24px;border-left:2px dashed var(--line);position:relative;display:flex;flex-direction:column;gap:8px;background:var(--cream);border-radius:0 26px 26px 0}
.hm-pass-stub::before,.hm-pass-stub::after{content:"";position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:var(--bg)}
.hm-pass-stub::before{top:-13px}.hm-pass-stub::after{bottom:-13px}
.hm-pass-stub .cd-big{font:400 1.7rem/1.1 var(--display);color:var(--deep)}
.hm-pass-stub .cd-sub{font-size:.9rem;color:var(--muted)}
.hm-pass-stub .go{margin-top:auto;font-weight:600;color:var(--moss);text-decoration:none}
.hm-sticky{position:relative;background:#ffe98a;color:#3a3214;padding:0;border-radius:4px 4px 30px 4px;box-shadow:0 22px 34px -22px rgba(0,0,0,.5);transform:rotate(3deg);min-height:250px;cursor:pointer;transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.hm-sticky:hover{transform:rotate(0) scale(1.03)}
.hm-sticky::before{content:"";position:absolute;top:-12px;left:50%;width:90px;height:24px;margin-left:-45px;background:rgba(255,255,255,.6);transform:rotate(-3deg);z-index:2}
.hm-sticky .flip-face{padding:30px 28px;background:#ffe98a;border-radius:4px 4px 30px 4px}
.hm-sticky .flip-back{background:#ffd95a}
.hm-sticky .hm-hand{color:#b33b2c}
.hm-sticky .word-big{font:400 2.6rem/1.05 var(--display);margin:6px 0}
.hm-sticky .word-say{font-family:var(--mono);font-size:.85rem}
.hm-sticky .flip-hint{margin-top:18px;font-weight:600;font-size:.9rem}
.hm-sticky .word-mean{font:400 1.7rem/1.15 var(--display);margin:6px 0 10px}
@media (max-width:900px){.hm-board-grid{grid-template-columns:1fr;gap:40px}.hm-sticky{max-width:420px;margin:0 auto;width:100%}}
@media (max-width:620px){.hm-pass{grid-template-columns:1fr;transform:none}.hm-pass-stub{border-left:0;border-top:2px dashed var(--line);border-radius:0 0 26px 26px}.hm-pass-stub::before,.hm-pass-stub::after{top:-14px;bottom:auto}.hm-pass-stub::before{left:-13px}.hm-pass-stub::after{left:auto;right:-13px}.hm-pass-main{padding:24px 20px}}

/* play badges */
.hm-play{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--moss) 8%,transparent))}
.hm-play .hm-head{text-align:center}.hm-play .hm-head h2{margin-inline:auto}
.hm-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.hm-badge{width:168px;height:168px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;text-decoration:none;transform:rotate(var(--r));border:3px dashed currentColor;outline:8px solid color-mix(in srgb,currentColor 12%,transparent);outline-offset:-1px;transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.hm-badge i{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;margin-bottom:8px}
.hm-badge i svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hm-badge b{font-size:1rem;line-height:1.15;color:var(--ink)}
.hm-badge span{font:700 1.1rem var(--hand);margin-top:2px}
.hm-badge:hover,.hm-badge:focus-visible{transform:rotate(0) scale(1.08)}
.hm-badge.spin i{animation:hm-spin .6s cubic-bezier(.3,1.5,.5,1)}
@keyframes hm-spin{from{transform:rotate(-200deg) scale(.6)}to{transform:none}}
.hm-anim .hm-play .hm-badge{opacity:0;scale:.4}
.hm-play.awake .hm-badge{opacity:1;scale:1;transition:scale .55s cubic-bezier(.3,1.7,.5,1),opacity .3s,transform .4s cubic-bezier(.3,1.6,.5,1)}
.hm-play.awake .hm-badge:nth-child(2){transition-delay:.07s,.07s,0s}.hm-play.awake .hm-badge:nth-child(3){transition-delay:.14s,.14s,0s}.hm-play.awake .hm-badge:nth-child(4){transition-delay:.21s,.21s,0s}.hm-play.awake .hm-badge:nth-child(5){transition-delay:.28s,.28s,0s}.hm-play.awake .hm-badge:nth-child(6){transition-delay:.35s,.35s,0s}
@media (max-width:520px){.hm-badges{gap:14px}.hm-badge{width:145px;height:145px;padding:10px}.hm-badge b{font-size:.9rem}}

/* where we are now */
.hm-trip{position:relative;height:260px;margin-bottom:30px}
.hm-trip-svg{position:absolute;inset:20px 0 20px;width:100%;height:calc(100% - 40px);overflow:visible}
.hm-trip-path{fill:none;stroke:var(--sun);stroke-width:4;stroke-linecap:round;stroke-dasharray:3 14;vector-effect:non-scaling-stroke}
.hm-anim .hm-now .hm-trip-svg{clip-path:inset(0 100% 0 0)}
.hm-now.awake .hm-trip-svg{clip-path:inset(0 0 0 0);transition:clip-path 1.8s cubic-bezier(.5,0,.2,1)}
.hm-pin{position:absolute;display:flex;flex-direction:column;gap:2px}
.hm-pin b{font:400 1.35rem/1.15 var(--display)}
.hm-pin > span:not(.hm-dot):not(.hm-bubble){font-size:.9rem;color:var(--muted)}
.hm-pin-a{left:0;top:0;padding-left:44px}
.hm-pin-b{right:0;bottom:-6px;text-align:right;padding-right:44px;align-items:flex-end}
.hm-pin-a .hm-dot{position:absolute;left:4px;top:30px}.hm-pin-b .hm-dot{position:absolute;right:6px;top:2px}
.hm-dot{width:22px;height:22px;border-radius:50%;background:var(--surface);border:4px solid var(--sun);box-sizing:border-box}
.hm-dot.now{background:var(--sun);box-shadow:0 0 0 0 color-mix(in srgb,var(--sun) 60%,transparent);animation:hm-pulse 2s infinite}
@keyframes hm-pulse{70%{box-shadow:0 0 0 16px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hm-bubble{align-self:flex-start;margin-top:6px;background:var(--coral);color:#fff;font:700 1.2rem var(--hand);padding:4px 14px 6px;border-radius:14px 14px 14px 2px;transform:rotate(-4deg);animation:hm-wob 3s ease-in-out infinite}
@keyframes hm-wob{50%{transform:rotate(3deg) translateY(-3px)}}
.hm-trip-plane{position:absolute;left:9%;top:34%;width:34px;height:34px;color:var(--deep);transform:rotate(100deg);animation:hm-hover 3s ease-in-out infinite}
@keyframes hm-hover{50%{translate:6px -6px}}
.hm-log{max-width:760px;margin:0 auto;background:#fff;border-radius:24px;padding:28px 30px;position:relative;box-shadow:0 18px 40px -26px rgba(15,59,58,.45);background-image:repeating-linear-gradient(180deg,transparent 0 33px,color-mix(in srgb,var(--sky) 22%,transparent) 33px 34px);background-position:0 70px}
.hm-log-title{position:absolute;top:-16px;left:26px;background:var(--sun);color:#3a2800;font:700 1.25rem var(--hand);padding:3px 14px 5px;border-radius:8px;transform:rotate(-3deg)}
.hm-log ol{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:14px}
.hm-log li{display:grid;grid-template-columns:130px 1fr;gap:14px;align-items:baseline}
.hm-log time{font:500 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--moss)}
.hm-log-next{opacity:.6}.hm-log-next p{font-style:italic}
@media (max-width:700px){.hm-trip{height:230px}.hm-pin b{font-size:1.1rem}.hm-log li{grid-template-columns:1fr;gap:2px}.hm-log{padding:26px 20px}}

/* who we are */
.hm-who-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.hm-who p{color:var(--muted);margin-top:18px;max-width:52ch}
.hm-fam{position:relative;min-height:360px}
.hm-face{position:absolute;width:210px;text-align:center;transform:rotate(var(--r));transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.hm-face:hover{transform:rotate(0) scale(1.06);z-index:3}
.hm-face-i{display:grid;place-items:center;width:150px;height:150px;margin:0 auto 10px;border-radius:50%;font:400 4rem var(--display);color:#fff;border:6px solid #fff;box-shadow:0 18px 36px -18px rgba(0,0,0,.5)}
.hm-face b{display:block;font:700 1.7rem/1 var(--hand)}
.hm-face span:not(.hm-face-i){display:block;font-size:.88rem;color:var(--muted);margin-top:4px}
.f-a{left:0;top:10px}.f-a .hm-face-i{background:var(--moss)}
.f-d{right:0;top:0}.f-d .hm-face-i{background:var(--coral)}
.f-m{left:30%;top:170px;width:190px}.f-m .hm-face-i{background:var(--sun);color:#3a2800;width:118px;height:118px;font-size:3rem}
.f-m .hm-face-i{animation:hm-wob 2.6s ease-in-out infinite}
@media (max-width:900px){.hm-who-grid{grid-template-columns:1fr}.hm-fam{min-height:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 20px}.hm-face{position:static;width:150px}.hm-face-i,.f-m .hm-face-i{width:100px;height:100px;font-size:2.6rem}}

/* regions as arches */
.hm-regions{background:linear-gradient(180deg,color-mix(in srgb,var(--sky) 8%,transparent),transparent)}
.hm-arches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;align-items:start}
.hm-arch{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:4px}
.hm-arch:nth-child(even){margin-top:56px}
.hm-arch-img{display:block;border-radius:999px 999px 26px 26px;overflow:hidden;aspect-ratio:3/4;margin-bottom:12px;border:6px solid #fff;box-shadow:0 20px 40px -24px rgba(15,59,58,.6);transition:transform .45s cubic-bezier(.3,1.6,.5,1),border-radius .45s}
.hm-arch-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
.hm-arch:hover .hm-arch-img{transform:translateY(-8px) rotate(-2deg);border-radius:26px 26px 999px 999px}
.hm-arch:hover .hm-arch-img img{transform:scale(1.08)}
.hm-arch .alt{font:700 1.2rem var(--hand);color:var(--coral);text-transform:none;letter-spacing:0}
.hm-arch b{font:400 1.6rem/1.1 var(--display)}
.hm-arch > span:last-child{font-size:.93rem;color:var(--muted)}
.hm-anim .hm-regions .hm-arch{opacity:0;translate:0 50px}
.hm-regions.awake .hm-arch{opacity:1;translate:0 0;transition:translate .8s cubic-bezier(.3,1.4,.5,1),opacity .5s}
.hm-regions.awake .hm-arch:nth-child(2){transition-delay:.1s}.hm-regions.awake .hm-arch:nth-child(3){transition-delay:.2s}.hm-regions.awake .hm-arch:nth-child(4){transition-delay:.3s}
.hm-links{display:flex;flex-wrap:wrap;gap:0 28px;margin-top:26px}
@media (max-width:900px){.hm-arches{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.hm-arch:nth-child(even){margin-top:40px}.hm-arch b{font-size:1.3rem}}

/* journal polaroids */
.hm-posts .post{border:0;border-radius:10px;padding:10px;background:#fff;box-shadow:0 20px 40px -24px rgba(15,59,58,.55);rotate:-1.5deg;transition:rotate .4s cubic-bezier(.3,1.6,.5,1),translate .4s}
.hm-posts .post:nth-child(2){rotate:1.5deg;translate:0 22px}.hm-posts .post:nth-child(3){rotate:-.5deg}
.hm-posts .post:hover{rotate:0deg;translate:0 -6px}
.hm-posts .post-art{border-radius:6px;overflow:hidden}
.hm-posts .post-body{padding:16px 8px 10px}

/* route map */
.hm-route{background:var(--deep);color:var(--deep-ink);position:relative;overflow:hidden}
.hm-route .hm-hand{color:var(--sun)}
.hm-route .link-more{color:var(--sun)}
.hm-map{position:relative;height:340px;margin:10px 0 26px}
.hm-map-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hm-map-path{fill:none;stroke:color-mix(in srgb,var(--deep-ink) 50%,transparent);stroke-width:3;stroke-dasharray:2 12;stroke-linecap:round;vector-effect:non-scaling-stroke}
.hm-stops{list-style:none;margin:0;padding:0}
.hm-stop{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-14px);width:190px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}
.hm-stop .hm-dot{margin-bottom:6px;background:var(--deep);border-color:var(--sun)}
.hm-stop .hm-dot.now{background:var(--sun)}
.hm-stop em{font:700 1.25rem/1 var(--hand);color:var(--sun);font-style:normal;order:-1;margin-bottom:6px}
.hm-stop b{font:400 1.35rem/1.1 var(--display)}
.hm-stop > span:last-child{font-size:.85rem;opacity:.75}
.hm-stop em{position:absolute;top:-30px}
.hm-map-plane{position:absolute;left:0;top:0;width:28px;height:28px;color:var(--sun);pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}
.hm-anim .hm-route .hm-stop{opacity:0;translate:0 -30px}
.hm-route.awake .hm-stop{opacity:1;translate:0 0;transition:translate .6s cubic-bezier(.3,1.8,.5,1),opacity .3s}
.hm-route.awake .hm-stop:nth-child(2){transition-delay:.25s}.hm-route.awake .hm-stop:nth-child(3){transition-delay:.5s}.hm-route.awake .hm-stop:nth-child(4){transition-delay:.75s}
@media (max-width:760px){
  .hm-map{height:auto}.hm-map-svg,.hm-map-plane{display:none}
  .hm-stops{display:grid;gap:26px;padding-left:34px;border-left:3px dashed color-mix(in srgb,var(--deep-ink) 35%,transparent);margin-left:10px}
  .hm-stop{position:relative;left:auto;top:auto;transform:none;width:auto;text-align:left;align-items:flex-start}
  .hm-stop .hm-dot{position:absolute;left:-47px;top:4px;margin:0}
  .hm-stop em{position:static;order:0;margin:0 0 2px}
}
@media (prefers-reduced-motion:reduce){.hm-pola,.hm-pass-line i,.hm-blink,.hm-dot.now,.hm-bubble,.hm-trip-plane,.f-m .hm-face-i{animation:none!important}}
.hm-pass.countdown{padding:0;background:#fff;color:var(--ink);border:0;min-height:0}
.hm-pass.countdown .hm-pass-stub{background:var(--cream)}
.hm-pass-info dd{color:var(--ink)}
.hm-badges{gap:16px}.hm-badge{width:160px;height:160px}
.hm-fam{min-height:450px}.f-a{top:0}.f-d{top:24px}.f-m{left:32%;top:240px}
@media (max-width:900px){.hm-fam{min-height:0}}
.hm-pass .eyebrow{color:var(--gold-text)}
@media (max-width:1100px){.sub .mega-feat,.sub .mega-intro{display:none!important}}
@media (min-width:1101px){
  .sub.mega .mega-feat .mega-tag{display:inline-block;margin:0 8px;font:700 1.2rem var(--hand);color:var(--coral)}
  .sub.mega .mega-feat .mega-cta{display:block;margin:0 8px;font-weight:600;font-size:.92rem;color:var(--moss)}
  .sub.mega .mega-feat .mega-ph{display:block}
  .sub.mega .mega-links a{position:relative}
  .sub.mega .mega-links a[aria-current="page"] b::after{position:absolute;right:12px;top:8px;margin:0}
}
@media (min-width:901px){.hm-polas{height:540px}.hm-note{bottom:12%}}
@media (max-width:900px){.hm-polas{height:370px}.hm-pola:nth-child(1){left:0!important;top:0!important}.hm-pola:nth-child(2){left:56%!important;top:3%!important}.hm-pola:nth-child(3){left:24%!important;top:52%!important}}
@media (max-width:520px){.hm-polas{height:350px}}
html[lang="es"] .sub.mega .mega-links a[aria-current="page"] b::after{content:"Estás aquí"}
.two-homes .th-top{object-position:center 62%}

/* ===================== v7: mega menu polish ===================== */
@media (min-width:1101px){
  .grp:not(.open) > .sub.mega{pointer-events:none}
  .grp:not(.open) > .sub.mega::before{display:none}
  .nav.mm-swap .sub.mega{transition:none!important}
  .nav.mm-swap .grp.open .mega-links li{animation:none;opacity:1;transform:none}
  .sub.mega{max-height:calc(100vh - 80px);overflow-y:auto;overscroll-behavior:contain}
}

/* ===================== v7: playful layer for every page ===================== */
/* hand-written section labels */
main .sec-head > .eyebrow,main .cm-head > .eyebrow,main .hm-head .eyebrow{display:inline-block;font:700 1.45rem/1 var(--hand);letter-spacing:0;text-transform:none;color:var(--coral);transform:rotate(-3deg);margin-bottom:4px}
.route .sec-head > .eyebrow,.regions-bg .sec-head > .eyebrow{color:var(--coral)}
.page-hero .eyebrow{display:inline-block;justify-self:start;font:700 1.5rem/1 var(--hand);letter-spacing:0;text-transform:none;color:var(--sun);transform:rotate(-3deg)}

/* page banners: a taped polaroid on the right */
.page-hero.has-pola .wrap{position:relative}
.ph-pola{position:absolute;right:20px;top:50%;width:210px;margin:0;background:#fffdf7;padding:9px 9px 0;border-radius:4px;box-shadow:0 20px 40px -16px rgba(0,0,0,.6);transform:translateY(-50%) rotate(var(--r));animation:ph-float 7s ease-in-out infinite;z-index:1;transition:transform .45s cubic-bezier(.3,1.5,.5,1)}
.ph-pola::before{content:"";position:absolute;top:-10px;left:50%;width:66px;height:20px;margin-left:-33px;background:color-mix(in srgb,var(--sun) 72%,transparent);transform:rotate(-4deg)}
.ph-pola img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px}
.ph-pola figcaption{font:700 1.25rem/1 var(--hand);color:#2b3a35;text-align:center;padding:9px 4px 11px}
.page-hero:hover .ph-pola{transform:translateY(-50%) rotate(0) scale(1.04)}
@keyframes ph-float{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media (min-width:821px){
  .page-hero.has-pola h1,.page-hero.has-pola p{max-width:min(16ch,calc(100% - 270px))}
  .page-hero.has-pola p{max-width:min(56ch,calc(100% - 270px))}
  .page-hero.has-pola .page-doodle{right:max(205px,calc((100vw - 1120px) / 2 + 205px));top:auto;bottom:18px;width:96px;height:96px;transform:translate(var(--px,0),var(--py,0)) rotate(-8deg);z-index:2}
  .page-hero.has-pola .page-doodle.pd-south-america,.page-hero.has-pola .page-doodle.pd-journal,.page-hero.has-pola .page-doodle.pd-trip-planner,.page-hero.has-pola .page-doodle.pd-with-a-baby{width:120px;height:72px}
}
@media (max-width:820px){
  .ph-pola{position:relative;right:auto;top:auto;transform:rotate(var(--r));width:150px;justify-self:end;margin:6px 6px -6px 0}
  .page-hero:hover .ph-pola{transform:rotate(0)}
  .ph-pola figcaption{font-size:1.05rem}
}
@media (max-width:420px){.ph-pola{width:130px}}

/* cards: soft paper, tape stripes, playful tilt */
main :is(.offer,.dish,.fest,.vote-card,.series-card){border:0!important;border-radius:22px;background:var(--surface);box-shadow:0 18px 36px -24px rgba(15,59,58,.55);transition:rotate .4s cubic-bezier(.3,1.6,.5,1),translate .4s cubic-bezier(.3,1.6,.5,1),box-shadow .3s;position:relative}
main :is(.offer,.dish,.fest):nth-child(4n+1){rotate:-1deg}
main :is(.offer,.dish,.fest):nth-child(4n+2){rotate:.8deg}
main :is(.offer,.dish,.fest):nth-child(4n+3){rotate:-.5deg}
main :is(.offer,.dish,.fest):nth-child(4n){rotate:1deg}
main :is(.offer,.dish,.fest):hover{rotate:0deg;translate:0 -6px;box-shadow:0 26px 44px -24px rgba(15,59,58,.6)}
main .offer{background:linear-gradient(var(--tint,var(--sun)) 0 0) top/100% 8px no-repeat,var(--surface);padding-top:30px}
main .offer:nth-child(4n+2){--tint:var(--moss)}main .offer:nth-child(4n+3){--tint:var(--sky)}main .offer:nth-child(4n){--tint:var(--coral)}
main .offer .alt{font:700 1.2rem/1 var(--hand);letter-spacing:0;text-transform:none;color:var(--coral)}
main :is(.dish,.fest) img{border-radius:14px;width:calc(100% - 16px);margin:8px 8px 0}
main :is(.dish,.fest){padding-bottom:4px}

/* journal cards everywhere become polaroids */
.posts .post{border:0;border-radius:10px;padding:10px;background:#fff;box-shadow:0 20px 40px -24px rgba(15,59,58,.55);rotate:-1.2deg;transition:rotate .4s cubic-bezier(.3,1.6,.5,1),translate .4s}
.posts .post:nth-child(3n+2){rotate:1.2deg}.posts .post:nth-child(3n){rotate:-.4deg}
.posts .post:hover{rotate:0deg;translate:0 -6px}
.posts .post-art{border-radius:6px;overflow:hidden}
.posts .post-body{padding:16px 8px 10px}

/* facts become little stickers */
main .facts{border:0!important;background:none!important;gap:14px;display:grid}
main .fact{border:0!important;background:var(--surface);border-radius:18px;box-shadow:0 12px 26px -20px rgba(15,59,58,.6);padding:18px 20px}
main .fact:nth-child(odd){rotate:-1deg}main .fact:nth-child(even){rotate:1deg}
main .fact dt{font:700 1.15rem/1 var(--hand);letter-spacing:0;text-transform:none;color:var(--coral)}

/* FAQ as speech bubbles */
main .faq{border:0;background:var(--surface);border-radius:20px 20px 20px 6px;padding:0 22px;margin-bottom:12px;box-shadow:0 12px 26px -20px rgba(15,59,58,.6);transition:translate .3s}
main .faq:hover{translate:4px 0}
main .faq[open]{background:var(--cream)}

/* checklist groups as notepad pages */
main .chk-group{background:var(--surface);border-radius:20px;padding:24px 24px 14px;box-shadow:0 16px 32px -24px rgba(15,59,58,.55);background-image:linear-gradient(var(--coral),var(--coral));background-size:2px 100%;background-position:44px 0;background-repeat:no-repeat}
main .chk-group:nth-child(odd){rotate:-.6deg}main .chk-group:nth-child(even){rotate:.6deg}
main .chk-group h2{padding-left:30px}

/* top 20 rows: framed photos and hand-drawn numbers */
main .place .num{font:700 2.6rem/1 var(--hand);color:var(--coral)}
main .place-img{border:6px solid #fff;border-radius:6px;box-shadow:0 12px 24px -16px rgba(0,0,0,.5);rotate:-2deg;transition:rotate .35s cubic-bezier(.3,1.6,.5,1)}
main .place:nth-child(even) .place-img{rotate:2deg}
main .place:hover .place-img{rotate:0deg;scale:1.04}

/* photos inside pages get a frame */
main :is(.detail-img,.article-art){border:8px solid #fff;border-radius:10px;box-shadow:0 22px 40px -26px rgba(0,0,0,.55)}
main .region-detail:nth-child(odd) .detail-img{rotate:-.8deg}main .region-detail:nth-child(even) .detail-img{rotate:.8deg}
main .credit img{border:4px solid #fff;box-shadow:0 8px 16px -10px rgba(0,0,0,.5);rotate:-2deg}

/* bullets become little suns */
main :is(.region-detail ul,.prose ul,.country ul,.offer ul){list-style:none;padding-left:0}
main :is(.region-detail,.prose,.country,.offer) ul li{position:relative;padding-left:24px}
main :is(.region-detail,.prose,.country,.offer) ul li::before{content:"";position:absolute;left:2px;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px color-mix(in srgb,var(--sun) 30%,transparent)}

/* buttons and chips feel like stickers */
.btn-sun{box-shadow:0 3px 0 #c48d10,0 10px 18px -10px rgba(0,0,0,.35);transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .2s,filter .2s}
.btn-sun:hover{transform:translateY(-2px) rotate(-1.5deg);box-shadow:0 5px 0 #c48d10,0 14px 22px -10px rgba(0,0,0,.4)}
.btn-sun:active{transform:translateY(2px);box-shadow:0 1px 0 #c48d10}
main .chip{border-radius:999px;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
main .chip:hover{transform:rotate(-3deg) scale(1.06)}
main .chip[aria-pressed="true"]{transform:rotate(-2deg)}

/* forms on cream paper with tape */
main :is(.mail-form,.cm-form,.pc-form){position:relative;background:var(--cream);border:0;border-radius:22px;padding:30px 26px 26px;box-shadow:0 18px 36px -26px rgba(15,59,58,.55)}
main :is(.mail-form,.cm-form,.pc-form)::before{content:"";position:absolute;top:-11px;left:50%;width:96px;height:22px;margin-left:-48px;background:color-mix(in srgb,var(--sun) 70%,transparent);transform:rotate(-3deg)}
main :is(.mail-form,.cm-form,.pc-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select){border-radius:14px;border:2px solid var(--line);background:#fff;transition:border-color .2s,box-shadow .2s}
main :is(.mail-form,.cm-form,.pc-form) :is(input,textarea,select):focus{border-color:var(--sun);box-shadow:0 0 0 4px color-mix(in srgb,var(--sun) 25%,transparent);outline:0}

/* section headings: a tiny doodle star that twinkles */
main .sec-head h2{position:relative}
main .sec-head h2::after{content:"";display:inline-block;width:.55em;height:.55em;margin-left:.25em;vertical-align:.45em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-34 -34 68 68'%3E%3Cpath d='M0 -34 Q5 -5 34 0 Q5 5 0 34 Q-5 5 -34 0 Q-5 -5 0 -34 Z' fill='%23f2b632'/%3E%3C/svg%3E") center/contain no-repeat;animation:twinkle-s 2.8s ease-in-out infinite}
@keyframes twinkle-s{50%{transform:scale(.6) rotate(45deg);opacity:.6}}

/* newsletter: a little paper plane */
.news-copy{position:relative}
.news-copy h2::after{content:"";display:inline-block;width:1em;height:1em;margin-left:.3em;vertical-align:-.05em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2b632' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M2.5 13.5 21 6.5l-4.5 13-3.6-5.4z'/%3E%3Cpath d='M12.9 14.1 21 6.5'/%3E%3C/svg%3E") center/contain no-repeat;animation:hm-hover 3s ease-in-out infinite}

@media (prefers-reduced-motion:reduce){.ph-pola,main .sec-head h2::after,.news-copy h2::after{animation:none!important}}
@media (max-width:620px){main :is(.offer,.dish,.fest,.fact,.chk-group,.posts .post){rotate:0deg!important}.posts .post{rotate:0deg}}
@media (max-width:1100px){.sub.mega .mm-ic,.sub.mega .mm-ic[class*="t-"]{background:#fff;color:#e3a417;box-shadow:0 2px 6px -2px rgba(0,0,0,.3)}.home-link svg{color:var(--sun)}}
main .chk-group{background-position:12px 0}main .chk-group h2{padding-left:4px}
@media (max-width:820px){.ph-pola{width:124px;margin:-4px 4px -10px 0}}
