/* Arrive Outdoors — single stylesheet (v2: night-sky / campfire design) */
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/assets/fonts/fraunces-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --night:#07130f; --night-2:#0d1f19; --pine:#16382b; --forest:#1f5a42; --moss:#86a86b; --sage:#c9d8c3;
  --ember:#ff6a2b; --ember-2:#ff8f3f; --ember-ink:#c2410c; --amber:#ffbe55; --flame:linear-gradient(135deg,#ff5a1f 0%,#ff8f3f 55%,#ffc861 100%);
  --ink:#14211b; --ink-2:#3b4a42; --muted:#6c7a72; --line:#e4e1d7; --bg:#f7f4ec; --paper:#fffdf8; --sand:#efe9dc;
  --good:#23784a; --ok:#677516; --fair:#a3640b; --poor:#b8412a;
  --r:22px; --r-sm:14px;
  --shadow:0 1px 2px rgba(10,25,18,.05),0 10px 30px -10px rgba(10,25,18,.18);
  --shadow-lg:0 30px 60px -20px rgba(7,19,15,.45);
  --max:1240px; --read:740px;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:17px/1.7 var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--forest);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--ember)}
h1,h2,h3,h4{font-family:var(--serif);font-optical-sizing:auto;line-height:1.12;color:var(--ink);margin:1.5em 0 .5em;letter-spacing:-.015em;font-weight:700}
h1{font-size:clamp(2.4rem,5.6vw,4.6rem);font-weight:800;letter-spacing:-.025em;margin-top:.15em}
h2{font-size:clamp(1.6rem,3vw,2.35rem)}
h3{font-size:1.22rem;font-family:var(--sans);font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1.05em}
ul,ol{padding-left:1.3em;margin:0 0 1.1em}
li{margin:.3em 0}
::selection{background:var(--amber);color:var(--night)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.read{max-width:var(--read)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:200}
.skip:focus{left:8px}
.muted{color:var(--muted)} .small{font-size:.88rem} .center{text-align:center}
.grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s var(--ease),box-shadow .35s,backdrop-filter .35s,transform .35s var(--ease)}
.site-header .wrap{display:flex;align-items:center;gap:24px;height:74px}
.site-header.solid,.site-header.scrolled{background:rgba(7,19,15,.72);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.site-header.hide{transform:translateY(-100%)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-weight:800;letter-spacing:.06em;font-size:1.05rem;text-transform:uppercase}
.brand:hover{color:#fff}
.brand span small{display:block;font-size:.6rem;letter-spacing:.38em;font-weight:600;color:rgba(255,255,255,.65);margin-top:-1px}
.nav{margin-left:auto;display:flex;gap:2px;align-items:center}
.nav a{text-decoration:none;color:rgba(255,255,255,.86);font-weight:600;font-size:.95rem;padding:9px 14px;border-radius:999px;transition:background .2s,color .2s}
.nav a:hover,.nav a[aria-current=page]{background:rgba(255,255,255,.12);color:#fff}
.nav .cta{background:var(--flame);color:#1b0d05;margin-left:8px;box-shadow:0 8px 24px -8px rgba(255,106,43,.7)}
.nav .cta:hover{color:#1b0d05;filter:brightness(1.06);background:var(--flame)}
.menu-btn{display:none;margin-left:auto;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:12px;padding:8px 10px;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:74px;left:12px;right:12px;background:rgba(7,19,15,.96);backdrop-filter:blur(16px);flex-direction:column;align-items:stretch;padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.08)}
  .nav.open{display:flex}
  .nav a{padding:13px 14px}
  .nav .cta{margin:6px 0 0;text-align:center}
}
.progress-trail{position:fixed;top:0;left:0;height:3px;width:0;background:var(--flame);z-index:120;box-shadow:0 0 12px rgba(255,140,60,.8)}

/* ---------- Heroes ---------- */
.hero{position:relative;overflow:hidden;color:#fff;background:var(--night);isolation:isolate}
.hero .bg{position:absolute;inset:-6% 0 0 0;z-index:-3}
.hero .bg img{width:100%;height:112%;object-fit:cover;transform-origin:center;animation:kenburns 28s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(7,19,15,.55) 0%,rgba(7,19,15,.25) 35%,rgba(7,19,15,.55) 75%,var(--night) 100%)}
.hero.no-photo .bg{background:radial-gradient(120% 90% at 70% 0%,#2b5f48 0%,#12301f 45%,var(--night) 100%)}
.hero canvas.fx{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero .wrap{position:relative;padding:150px 24px 150px}
.hero.small .wrap{padding:140px 24px 110px}
.hero.full{min-height:100svh;display:flex;align-items:center}
.hero.full .wrap{padding:120px 24px 200px;width:100%}
.hero h1{color:#fff;max-width:900px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero.small h1{font-size:clamp(2.1rem,4.4vw,3.6rem)}
.hero p.lead{font-size:clamp(1.08rem,1.6vw,1.3rem);max-width:640px;color:rgba(255,255,255,.88);text-shadow:0 1px 18px rgba(0,0,0,.4)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--amber);margin-bottom:14px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--flame);border-radius:2px}
.hero .wrap{z-index:2}
.hero .ridges{position:absolute;left:0;right:0;bottom:-1px;height:150px;z-index:1;pointer-events:none}
.hero .ridges>div,.hero .ridges>svg{position:absolute;left:0;right:0;bottom:0}
.hero .ridges svg{display:block;width:100%}
.hero .ridges .r1{height:150px}.hero .ridges .r1 path{fill:rgba(7,19,15,.45)}
.hero .ridges .r2{height:105px}.hero .ridges .r2 path,.hero .ridges .r2 g{fill:rgba(7,19,15,.7)}
.hero .ridges>svg{height:46px}
@media (max-width:700px){.hero .ridges{height:90px}.hero .ridges .r1{height:90px}.hero .ridges .r2{height:64px}.hero .ridges>svg{height:28px}}
.split-words .w{display:inline-block;opacity:0;transform:translateY(.5em) rotate(2deg);filter:blur(6px);animation:wordin .9s var(--ease) forwards}
@keyframes wordin{to{opacity:1;transform:none;filter:none}}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.glass-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.88rem;font-weight:600;color:#fff;text-decoration:none}
a.glass-chip:hover{background:rgba(255,255,255,.2);color:#fff}
.scroll-cue{position:absolute;left:50%;bottom:118px;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.8);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;text-align:center;text-decoration:none}
.scroll-cue i{display:block;width:24px;height:38px;margin:0 auto 8px;border:2px solid rgba(255,255,255,.6);border-radius:14px;position:relative}
.scroll-cue i::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--amber);animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(-2px)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
.hero-photo-credit{position:absolute;right:16px;bottom:10px;z-index:3;font-size:.68rem;color:rgba(255,255,255,.55)}
.hero-photo-credit a{color:inherit}

/* ---------- Buttons ---------- */
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:14px 24px;font-weight:700;text-decoration:none;border:1.5px solid transparent;cursor:pointer;font-size:1rem;font-family:inherit;line-height:1.2;transition:transform .2s var(--ease),box-shadow .2s,background .2s,color .2s;overflow:hidden}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--flame);color:#1b0d05;box-shadow:0 12px 30px -10px rgba(255,106,43,.75)}
.btn.primary:hover{color:#1b0d05;box-shadow:0 18px 36px -10px rgba(255,106,43,.9)}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn.primary:hover::after{transform:translateX(120%)}
.btn.ghost{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(8px)}
.btn.ghost:hover{background:rgba(255,255,255,.16);color:#fff}
.btn.outline{border-color:var(--ink);color:var(--ink);background:transparent}
.btn.outline:hover{background:var(--ink);color:#fff}
.btn.sm{padding:9px 16px;font-size:.88rem}

/* ---------- Sections ---------- */
section.block{position:relative;padding:96px 0}
section.block.tight{padding:64px 0}
section.block.alt{background:var(--sand)}
section.block.topo{background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='%231f5a42' stroke-opacity='.07' stroke-width='1.2'%3E%3Cpath d='M300 120c90 0 170 60 170 150s-60 190-170 190-190-70-190-170 100-170 190-170z'/%3E%3Cpath d='M300 160c70 0 130 45 130 115s-45 145-130 145-150-55-150-130 80-130 150-130z'/%3E%3Cpath d='M300 200c50 0 90 32 90 80s-32 100-90 100-110-38-110-90 60-90 110-90z'/%3E%3Cpath d='M300 240c28 0 50 18 50 42s-18 58-50 58-62-22-62-50 34-50 62-50z'/%3E%3Cpath d='M-40 80c120 40 220-60 340-20s200 100 340 40'/%3E%3Cpath d='M-40 40c120 40 220-60 340-20s200 100 340 40'/%3E%3Cpath d='M-40 540c140-50 240 40 360 0s180-80 320-20'/%3E%3Cpath d='M-40 580c140-50 240 40 360 0s180-80 320-20'/%3E%3C/g%3E%3C/svg%3E")}
section.block.dark{background:var(--night);color:#dfe8e2}
section.block.dark h2,section.block.dark h3{color:#fff}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px;flex-wrap:wrap}
.section-head h2{margin:0}
.section-head p{margin:8px 0 0;color:var(--muted);max-width:560px}
.section-head .link{font-weight:700;text-decoration:none;white-space:nowrap}
.kicker{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ember-ink);display:block;margin-bottom:10px}
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.g3{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.g4{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
@media (max-width:420px){.g2,.g3{grid-template-columns:1fr}}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-stagger.in>*{opacity:1;transform:none}
.reveal-stagger.in>*:nth-child(2){transition-delay:.07s}.reveal-stagger.in>*:nth-child(3){transition-delay:.14s}.reveal-stagger.in>*:nth-child(4){transition-delay:.21s}.reveal-stagger.in>*:nth-child(5){transition-delay:.28s}.reveal-stagger.in>*:nth-child(6){transition-delay:.35s}.reveal-stagger.in>*:nth-child(n+7){transition-delay:.42s}

/* ---------- Cards ---------- */
.card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
a.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);color:var(--ink)}
.card .media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--pine)}
.card .media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
a.card:hover .media img{transform:scale(1.07)}
.card .body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.card h3{margin:0;font-size:1.14rem;line-height:1.3}
.card p{margin:0;color:var(--ink-2);font-size:.95rem;line-height:1.6}
.card .meta{font-size:.72rem;color:var(--ember-ink);text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.card .more{margin-top:auto;padding-top:6px;font-weight:700;color:var(--forest);font-size:.92rem;display:inline-flex;gap:6px;align-items:center}
.card .more::after{content:"→";transition:transform .3s var(--ease)}
a.card:hover .more::after{transform:translateX(5px)}
.ph{display:grid;place-items:center;height:100%;color:rgba(255,255,255,.75);background:radial-gradient(100% 120% at 30% 0%,#2f6a50,#0f2a1f)}

/* Tool cards — dark glass with cursor spotlight */
.tool-card{background:linear-gradient(160deg,#10271e,#0a1813);border-color:rgba(255,255,255,.07);color:#e7efe9}
.tool-card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,160,80,.18),transparent 45%);opacity:0;transition:opacity .3s;pointer-events:none}
.tool-card:hover::before{opacity:1}
a.tool-card:hover{color:#fff}
.tool-card h3{color:#fff}
.tool-card p{color:rgba(231,239,233,.72)}
.tool-card .more{color:var(--amber)}
.tool-card .body{padding:26px}
.icon-badge{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:#1b0d05;background:var(--flame);box-shadow:0 10px 26px -8px rgba(255,106,43,.7);margin-bottom:6px}
.light .tool-card,.tool-card.light{background:var(--paper);color:var(--ink);border-color:var(--line)}
.tool-card.light h3{color:var(--ink)} .tool-card.light p{color:var(--ink-2)} .tool-card.light .more{color:var(--forest)}

/* Destination cards — full-bleed photo */
.dest-card{aspect-ratio:4/5;color:#fff;border:0;background:var(--pine)}
.dest-card .media{position:absolute;inset:0;aspect-ratio:auto}
.dest-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,19,15,0) 35%,rgba(7,19,15,.88) 100%);z-index:1}
.dest-card .body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px;gap:6px}
.dest-card h3{color:#fff;font-family:var(--serif);font-size:1.45rem;font-weight:700}
.dest-card p{color:rgba(255,255,255,.85);font-size:.9rem}
.dest-card .meta{color:var(--amber)}
.dest-card .band{display:flex;gap:3px;margin-top:10px}
.dest-card .band i{flex:1;height:6px;border-radius:3px}
.dest-card .band-labels{display:flex;justify-content:space-between;font-size:.62rem;color:rgba(255,255,255,.6);letter-spacing:.06em}
a.dest-card:hover{color:#fff}
.dest-card .chip{align-self:flex-start;margin-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--sand);font-size:.82rem;font-weight:650;color:var(--ink-2);text-decoration:none;border:1px solid transparent;transition:background .2s,border-color .2s}
a.chip:hover,button.chip:hover{border-color:var(--forest);color:var(--ink)}
.chip.good{background:#dcf1e4;color:#18623b}
.chip.ok{background:#eef3d3;color:#5a6612}
.chip.fair{background:#fcecd0;color:#87570b}
.chip.poor{background:#f9dcd5;color:#8d2e1d}

/* Stats strip */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.08);border-radius:var(--r);overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.stats-strip div{background:rgba(7,19,15,.6);padding:26px 22px;backdrop-filter:blur(10px)}
.stats-strip b{display:block;font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);line-height:1;color:#fff;font-weight:800}
.stats-strip span{color:rgba(255,255,255,.7);font-size:.88rem}
@media (max-width:760px){.stats-strip{grid-template-columns:1fr 1fr}}

/* Feature split (photo + text) */
.feature{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}
.feature .photo{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:5/4;box-shadow:var(--shadow-lg)}
.feature .photo img{width:100%;height:100%;object-fit:cover}
.feature .photo .float{position:absolute;left:18px;bottom:18px;right:18px}
@media (max-width:900px){.feature{grid-template-columns:1fr;gap:30px}}
.check-list{list-style:none;padding:0}
.check-list li{padding-left:34px;position:relative;margin:12px 0}
.check-list li::before{content:"";position:absolute;left:0;top:3px;width:22px;height:22px;border-radius:50%;background:var(--flame) center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b0d05' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E")}

/* Rank list */
.rank{counter-reset:r;list-style:none;padding:0;margin:0}
.rank li{counter-increment:r;display:grid;grid-template-columns:auto 64px 1fr auto;gap:16px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:12px 18px 12px 14px;margin:10px 0;transition:transform .3s var(--ease),box-shadow .3s}
.rank li:hover{transform:translateX(4px);box-shadow:var(--shadow)}
.rank li::before{content:counter(r,decimal-leading-zero);font-family:var(--serif);font-weight:800;font-size:1.3rem;color:var(--muted);width:32px;text-align:center}
.rank li .thumb{width:64px;height:64px;border-radius:12px;object-fit:cover;background:var(--pine)}
.rank li a{font-weight:700;text-decoration:none;color:var(--ink);font-size:1.05rem}
.rank li a:hover{color:var(--ember)}
.rank li .why{font-size:.88rem;color:var(--muted)}
.rank li.nothumb{grid-template-columns:auto 1fr auto}
.score-pill{border-radius:999px;padding:6px 12px;color:#fff;font-weight:800;font-size:.82rem;white-space:nowrap}
.dark .rank li{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.dark .rank li a{color:#fff}
.dark .rank li .why{color:rgba(255,255,255,.6)}
@media (max-width:560px){.rank li{grid-template-columns:auto 1fr;}.rank li .thumb{display:none}.rank li .score-pill{grid-column:2;justify-self:start}.rank li::before{grid-row:span 2}}
.month-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 18px}
.month-tabs a,.month-tabs button{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:7px 14px;font-weight:700;font-size:.86rem;text-decoration:none;color:var(--ink-2);cursor:pointer;font-family:inherit;transition:all .2s}
.month-tabs a:hover,.month-tabs button:hover{border-color:var(--forest)}
.month-tabs a[aria-current=page],.month-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Campfire CTA band */
.band-cta{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(90% 140% at 50% 120%,#5a2410 0%,#1d120c 45%,#0b0907 100%);color:#efe4da;border-radius:32px;padding:64px 56px;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center;box-shadow:var(--shadow-lg)}
.band-cta canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.band-cta h2{color:#fff;margin:0 0 10px}
.band-cta p{color:rgba(239,228,218,.82)}
.band-cta .glow{position:absolute;left:50%;bottom:-120px;width:520px;height:260px;margin-left:-260px;background:radial-gradient(closest-side,rgba(255,130,50,.55),transparent);filter:blur(10px);z-index:-1;animation:flicker 3s infinite alternate}
@keyframes flicker{0%{opacity:.75;transform:scale(1)}30%{opacity:.95}55%{opacity:.7;transform:scale(1.04)}80%{opacity:1}100%{opacity:.8;transform:scale(.98)}}
@media (max-width:800px){.band-cta{grid-template-columns:1fr;padding:44px 28px}}

/* ---------- Article ---------- */
.crumbs{font-size:.84rem;color:var(--muted);margin:26px 0 10px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ember)}
.hero .crumbs,.hero .crumbs a{color:rgba(255,255,255,.7)}
.hero .crumbs{margin:0 0 18px}
.byline{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:.9rem;color:rgba(255,255,255,.8);margin:20px 0 0}
.byline a{color:#fff}
.byline .dot{width:4px;height:4px;border-radius:50%;background:var(--amber)}
.layout{display:grid;grid-template-columns:minmax(0,var(--read)) 300px;gap:64px;align-items:start;margin-top:40px}
.layout aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
@media (max-width:1080px){.layout{grid-template-columns:1fr}.layout aside{position:static}}
.prose{font-size:1.08rem}
.prose .lead{font-size:1.24rem;line-height:1.65;color:var(--ink-2)}
.prose .lead::first-letter{font-family:var(--serif);float:left;font-size:3.6em;line-height:.85;padding:.08em .1em 0 0;color:var(--ember);font-weight:800}
.prose h2{scroll-margin-top:96px;padding-top:.2em}
.prose li::marker{color:var(--ember)}
.prose blockquote{margin:1.4em 0;padding:6px 22px;border-left:3px solid var(--ember);color:var(--ink-2);font-family:var(--serif);font-size:1.2rem}
.table-wrap{overflow-x:auto;margin:1.4em 0;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
table{border-collapse:collapse;width:100%;font-size:.94rem}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--sand);font-weight:700;white-space:nowrap;font-size:.86rem;letter-spacing:.02em}
tr:last-child td{border-bottom:0}
tbody tr{transition:background .2s}
tbody tr:hover{background:#faf7ef}
.callout{border-radius:16px;padding:16px 18px 16px 20px;margin:1.5em 0;background:#edf4ef;border:1px solid #d4e4da;position:relative}
.callout.warn{background:#fdf0eb;border-color:#f6d2c5}
.callout.tool{background:linear-gradient(135deg,#fff4e3,#ffeede);border-color:#f6d9b0}
.callout.tool::before{content:"🧭";margin-right:6px}
.callout.tool a{font-weight:700}
.disclosure{font-size:.86rem;color:var(--muted);background:var(--sand);border-radius:12px;padding:10px 14px;margin:0 0 24px}
.toc,.side-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px 20px;box-shadow:var(--shadow)}
.toc h2,.side-card h3{font-family:var(--sans);font-size:.74rem;text-transform:uppercase;letter-spacing:.16em;margin:0 0 10px;color:var(--muted);font-weight:800}
.toc ol{margin:0;padding-left:1.2em;font-size:.92rem}
.toc a{text-decoration:none;color:var(--ink-2)}
.toc a:hover,.toc a.on{color:var(--ember-ink)}
.toc a.on{font-weight:700}
.side-card ul{list-style:none;padding:0;margin:0}
.side-card li{margin:8px 0;font-size:.93rem;line-height:1.4}
.side-card a{text-decoration:none}
.author-box{display:flex;gap:16px;align-items:flex-start;background:var(--sand);border-radius:20px;padding:22px;margin:44px 0}
.author-box .avatar{flex:none;width:58px;height:58px;border-radius:50%;background:var(--flame);display:grid;place-items:center;color:#1b0d05}
.author-box p{margin:4px 0 0;font-size:.95rem;color:var(--ink-2)}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:0 20px;margin:10px 0;transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:700;padding:16px 0;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--ember);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 16px;color:var(--ink-2)}

/* ---------- Climate ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.stat b{display:block;font-size:1.3rem;font-family:var(--serif);font-weight:700}
.stat span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;margin:16px 0}
.months .m{text-align:center;font-size:.76rem;font-weight:800;padding:10px 2px;border-radius:10px;color:#fff;transform-origin:bottom;animation:grow .7s var(--ease) both}
.months .m small{display:block;font-weight:600;opacity:.9}
@keyframes grow{from{transform:scaleY(.2);opacity:0}}
@media (max-width:640px){.months{grid-template-columns:repeat(6,1fr)}}
.m.good{background:var(--good)} .m.ok{background:var(--ok)} .m.fair{background:var(--fair)} .m.poor{background:var(--poor)}
.chart{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;height:240px;margin:24px 0 4px;padding:10px 6px 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(0deg,transparent 0 47px,rgba(20,33,27,.05) 47px 48px)}
.chart .col{position:relative;height:100%}
.chart .bar{position:absolute;left:16%;right:16%;border-radius:999px;background:linear-gradient(180deg,#ff6a2b,#ffbe55 45%,#6fb0d8);transform-origin:bottom;transition:transform 1s var(--ease)}
.chart.pre .bar{transform:scaleY(0)}
.chart .bar b,.chart .bar i{position:absolute;left:50%;transform:translateX(-50%);font-size:.7rem;font-style:normal;font-weight:800;white-space:nowrap;color:var(--ink-2)}
.chart .bar b{top:-20px} .chart .bar i{bottom:-20px}
.chart-labels{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;font-size:.74rem;color:var(--muted);text-align:center;margin-top:24px}
.precip{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;height:100px;margin-top:10px}
.precip div{background:linear-gradient(180deg,#6fb0d8,#a9d2ea);border-radius:8px 8px 3px 3px;position:relative}
.precip div span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:.68rem;color:var(--muted);white-space:nowrap}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.82rem;color:var(--muted);margin:8px 0}
.legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}
.season-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.season{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:6px 22px 10px;position:relative;overflow:hidden}
.season::before{content:attr(data-icon);position:absolute;right:14px;top:10px;font-size:1.8rem;opacity:.9}
.season h3{margin-top:16px;font-family:var(--serif);font-size:1.3rem}

/* Forecast widget */
.forecast{position:relative;overflow:hidden;background:linear-gradient(160deg,#10271e,#081510);color:#e7efe9;border-radius:24px;padding:20px;margin:18px 0;isolation:isolate}
.forecast canvas.wx{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.forecast a{color:var(--amber)}
.forecast .status{color:rgba(255,255,255,.7)}
.fc-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}
.fc-day{border-radius:16px;padding:12px 8px;text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:.84rem;backdrop-filter:blur(4px);transition:transform .3s var(--ease),background .3s}
.fc-day:hover{transform:translateY(-3px);background:rgba(255,255,255,.09)}
.fc-day b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.6)}
.fc-day .t{font-size:1.1rem;font-weight:800;margin:4px 0;color:#fff}
.fc-day .score{display:inline-block;margin-top:8px;border-radius:999px;padding:3px 9px;color:#fff;font-weight:800;font-size:.74rem}
.fc-day .small.muted,.forecast .small.muted{color:rgba(255,255,255,.6)}
.fc-warn{margin-top:16px;font-size:.92rem;color:#f3e6dd}
.fc-warn>strong{display:block;color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.fc-warn b{color:var(--amber)}
.fc-warn div{padding:10px 14px;border-radius:12px;background:rgba(255,106,43,.16);border:1px solid rgba(255,140,80,.35);margin:6px 0;color:#f6ebe3;line-height:1.5}
.forecast,.forecast p{color:#e7efe9}
.fc-day .small{color:rgba(255,255,255,.82)}
.fc-day .small.muted{color:rgba(255,255,255,.7)}

/* ---------- Tools ---------- */
.tool-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:start;margin:-70px 0 40px;position:relative;z-index:5}
@media (max-width:920px){.tool-shell{grid-template-columns:1fr}}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-lg);padding:26px}
.panel h2{margin-top:0;font-size:1.35rem}
.field{margin:0 0 18px}
.field label,.field .label{display:block;font-weight:700;font-size:.9rem;margin-bottom:7px}
.field .hint{font-size:.8rem;color:var(--muted);margin-top:5px}
input[type=text],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;font:inherit;font-size:1rem;padding:12px 14px;border:1.5px solid #ddd8cb;border-radius:14px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 4px rgba(255,106,43,.15)}
input[type=range]{width:100%;accent-color:var(--ember)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.seg{display:flex;flex-wrap:wrap;gap:7px}
.seg label{display:inline-flex;align-items:center;gap:7px;border:1.5px solid #ddd8cb;border-radius:999px;padding:8px 14px;font-weight:600;font-size:.88rem;cursor:pointer;background:#fff;transition:all .2s}
.seg input{accent-color:var(--ember)}
.seg label:hover{border-color:var(--ink-2)}
.seg label:has(input:checked){border-color:var(--ink);background:var(--ink);color:#fff}
.result-big{font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.4rem);font-weight:800;line-height:1.05;margin:4px 0;background:var(--flame);-webkit-background-clip:text;background-clip:text;color:transparent;animation:pop .5s var(--ease)}
@keyframes pop{from{opacity:.3;transform:translateY(6px)}}
.result-sub{color:var(--ink-2)}
.result-list{list-style:none;padding:0;margin:14px 0 0}
.result-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line)}
.result-list li span:last-child{font-weight:800;text-align:right}
.checklist h3{margin:20px 0 6px;font-size:1rem;display:flex;justify-content:space-between}
.checklist ul{list-style:none;padding:0;margin:0}
.checklist li{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid #f0ece2;transition:opacity .3s}
.checklist li input{margin-top:5px;accent-color:var(--ember);width:18px;height:18px;flex:none}
.checklist li.done span{text-decoration:line-through;color:var(--muted)}
.checklist li a{font-size:.78rem;margin-left:auto;white-space:nowrap}
.progress{height:10px;background:var(--sand);border-radius:99px;overflow:hidden;margin:10px 0 2px}
.progress i{display:block;height:100%;background:var(--flame);width:0;transition:width .4s var(--ease);border-radius:99px}
.ac-list{position:relative}
.ac-list ul{position:absolute;z-index:20;left:0;right:0;top:4px;background:#fff;border:1px solid var(--line);border-radius:14px;list-style:none;margin:0;padding:6px;box-shadow:var(--shadow-lg)}
.ac-list li{padding:9px 12px;border-radius:10px;cursor:pointer;margin:0}
.ac-list li:hover,.ac-list li.active{background:var(--sand)}
.status{font-size:.9rem;color:var(--muted);margin:8px 0}
.err{color:var(--poor)}

/* Gear */
.gear-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.gear-item{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:8px;transition:transform .3s var(--ease),box-shadow .3s}
.gear-item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.gear-item h3{margin:0;font-size:1rem}
.gear-item p{margin:0;font-size:.9rem;color:var(--ink-2)}
.gear-item a.btn{align-self:flex-start;margin-top:auto}

/* ---------- Footer ---------- */
.site-footer{position:relative;background:var(--night);color:#aebdb4;margin-top:120px;padding:40px 0 30px;font-size:.92rem;isolation:isolate}
.site-footer canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.site-footer .ridge-top{position:absolute;left:0;right:0;top:-119px;height:120px;pointer-events:none}
.site-footer .ridge-top svg{width:100%;height:100%;display:block}
.site-footer a{color:#e3ebe6;text-decoration:none}
.site-footer a:hover{color:var(--amber)}
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:32px}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
.site-footer h4{color:#fff;margin:0 0 12px;font-family:var(--sans);font-size:.78rem;text-transform:uppercase;letter-spacing:.16em}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:8px 0}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:36px;padding-top:20px;font-size:.8rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}

/* Motion preferences */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.reveal-stagger>*,.split-words .w{opacity:1!important;transform:none!important;filter:none!important}
  canvas.fx,.band-cta canvas,.site-footer canvas,.forecast canvas.wx{display:none}
}
@media print{
  .site-header,.site-footer,.no-print,aside,.hero .ridges,canvas,.grain,.progress-trail{display:none!important}
  .hero{background:none;color:#000;min-height:0!important}.hero h1,.hero p.lead{color:#000;text-shadow:none}.hero::after,.hero .bg{display:none}
  .tool-shell{grid-template-columns:1fr;margin:0}
  body{background:#fff}
}

/* Trip Finder */
.tf-empty{text-align:center;padding:40px 20px}
.tf-compass{font-size:3rem;display:inline-block;animation:spin 6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tf-head h2{margin:2px 0 6px}
.tf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:14px}
.tf-card{position:relative;border-radius:18px;overflow:hidden;background:var(--night);color:#fff;min-height:250px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow);animation:pop .5s var(--ease) both}
.tf-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.tf-card:hover img{transform:scale(1.06)}
.tf-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,19,15,.05) 20%,rgba(7,19,15,.92) 100%)}
.tf-body{position:relative;z-index:1;padding:16px}
.tf-body h3{margin:8px 0 6px;font-family:var(--serif);font-size:1.2rem}
.tf-body h3 a{color:#fff;text-decoration:none}
.tf-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;color:rgba(255,255,255,.85)}
.tf-links{display:flex;gap:12px;margin-top:10px;font-size:.82rem;font-weight:700}
.tf-links a{color:var(--amber)}
.tf-grid:nth-child(n) .tf-card:nth-child(2){animation-delay:.05s}.tf-card:nth-child(3){animation-delay:.1s}.tf-card:nth-child(4){animation-delay:.15s}.tf-card:nth-child(n+5){animation-delay:.2s}

.dark .kicker,.band-cta .kicker{color:var(--amber)}
.tool-card .meta{color:var(--amber)}
