:root {
    --night: #0b1325;
    --snow: #f5f7f3;
    --pine: #234f43;
    --ember: #e87342;
    --ink: #111827;
    --header-height: 92px;
}

* { box-sizing: border-box; }
html { background: var(--night); scroll-behavior: auto; }
body { margin: 0; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
::selection { background: var(--ember); color: #fff; }

::-webkit-scrollbar { width: 7px; }
::-webkit-scrollbar-track { background: var(--night); }
::-webkit-scrollbar-thumb { background: var(--ember); border-radius: 10px; }

.noise {
    position: fixed; inset: 0; z-index: 90; opacity: .035; pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.85'/%3E%3C/svg%3E");
    transform: translateZ(0); contain: strict;
}

.page-loader {
    position: fixed; inset: 0; z-index: 200; display: grid; place-content: center;
    justify-items: center; background: var(--night); color: #fff;
}
.page-loader.is-complete { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .45s ease, visibility 0s .45s; }
.page-loader__mark { font-size: clamp(4rem, 9vw, 8rem); line-height: 1; letter-spacing: -.08em; }
.page-loader__mark span { color: var(--ember); font-style: italic; }
.page-loader__line { width: 180px; height: 1px; margin-top: 24px; overflow: hidden; background: rgba(255,255,255,.18); }
.page-loader__line span { display: block; width: 100%; height: 100%; transform: translateX(-100%); background: var(--ember); }
.page-loader p { margin-top: 14px; font: 500 9px/1 'DM Mono',monospace; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.42); }

.site-header { position: fixed; top: 0; width: 100%; z-index: 100; height: var(--header-height); color: var(--night); transition: height .35s ease,background-color .35s ease,color .35s ease,box-shadow .35s ease; }
.site-header--overlay { color: #fff; }
.site-header--solid { background: var(--snow); }
.site-header--solid + main { padding-top: var(--header-height); }
.site-header.is-scrolled { height: 72px; color: var(--night); background: rgba(245,247,243,.92); backdrop-filter: blur(14px); box-shadow: 0 1px rgba(11,19,37,.08); }
.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand__mountain { width: 39px; }
.brand__copy { display: flex; flex-direction: column; font-size: 16px; line-height: .9; letter-spacing: -.02em; }
.brand__copy b { font-family: 'Playfair Display',serif; font-size: 19px; font-weight: 600; }
.brand__copy em { margin-left: 13px; font: 500 8px/1.5 'DM Mono',monospace; letter-spacing: .24em; text-transform: uppercase; }
.nav-link { position: relative; font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.nav-link::after { content: ''; position: absolute; right: 0; bottom: -6px; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: currentColor; transition: transform .35s ease; }
.nav-link:hover::after,.nav-link.is-active::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { position: relative; z-index: 2; width: 45px; height: 45px; border: 1px solid currentColor; border-radius: 50%; }
.menu-toggle span { position: absolute; left: 12px; width: 19px; height: 1px; background: currentColor; transition: transform .35s ease,top .35s ease; }
.menu-toggle span:first-child { top: 18px; }.menu-toggle span:last-child { top: 25px; }
.menu-toggle.is-open span:first-child { top: 22px; transform: rotate(45deg); }.menu-toggle.is-open span:last-child { top: 22px; transform: rotate(-45deg); }
.mobile-menu { position: fixed; inset: 0; display: flex; visibility: hidden; flex-direction: column; justify-content: center; padding: 100px 8vw 50px; transform: translateY(-100%); background: var(--night); color: #fff; }
.mobile-menu nav { display: flex; flex-direction: column; }
.mobile-menu a { width: max-content; font: 500 clamp(3rem,12vw,6rem)/1.16 'Playfair Display',serif; }
.mobile-menu sup { margin-left: 7px; vertical-align: top; font: 400 9px/1 'DM Mono',monospace; color: var(--ember); }
.mobile-menu p { margin-top: 40px; color: rgba(255,255,255,.5); }

.eyebrow { display: flex; align-items: center; gap: 12px; font: 500 10px/1.3 'DM Mono',monospace; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 34px; height: 1px; background: currentColor; }
.display-title { font-family: 'Playfair Display',serif; letter-spacing: -.045em; }
.display-title em { font-weight: 500; }
.clip-line { display: block; overflow: hidden; padding-bottom: .18em; margin-bottom: -.18em; }
.clip-line > span { display: inline-block; }
.button-primary { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 16px 23px; border-radius: 999px; background: var(--ember); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; transition: background .3s ease,color .3s ease; }
.button-primary:hover { background: #fff; color: var(--night); }
.button-outline { display: inline-flex; align-items: center; gap: 12px; padding: 15px 22px; border: 1px solid rgba(11,19,37,.22); border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; transition: .3s ease; }
.button-outline:hover { border-color: var(--ember); background: var(--ember); color: #fff; }
.arrow-link { border-bottom: 1px solid rgba(255,255,255,.3); padding-bottom: 10px; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.arrow-link i { font-size: 18px; font-style: normal; color: var(--ember); }

.image-reveal { position: relative; overflow: hidden; }
.image-reveal::after { content: ''; position: absolute; inset: 0; z-index: 2; transform-origin: top; background: var(--snow); }
.image-reveal[data-dark]::after { background: var(--night); }
.image-reveal img { width: 100%; height: 100%; object-fit: cover; backface-visibility: hidden; }
[data-hero-parallax], [data-parallax], .manifesto__image { will-change: transform; backface-visibility: hidden; }

.cursor { position: fixed; z-index: 150; display: none; width: 14px; height: 14px; pointer-events: none; border-radius: 50%; background: var(--ember); color: #fff; mix-blend-mode: difference; }
.cursor span { position: absolute; top: 50%; left: 50%; opacity: 0; transform: translate(-50%,-50%); font: 500 9px 'DM Mono',monospace; letter-spacing: .12em; text-transform: uppercase; }
@media (pointer:fine) { .cursor { display: block; } body,a,button { cursor: none; } }

.field { position: relative; }
.field label { display: block; margin-bottom: 8px; font: 500 9px 'DM Mono',monospace; letter-spacing: .16em; text-transform: uppercase; color: #65706c; }
.field input,.field select,.field textarea { width: 100%; border: 0; border-bottom: 1px solid #cbd2cd; border-radius: 0; background: transparent; padding: 10px 0 13px; color: var(--ink); outline: 0; transition: border-color .25s; }
.field input:focus,.field select:focus,.field textarea:focus { border-color: var(--ember); }
.field textarea { min-height: 105px; resize: vertical; }

.site-footer a:not(.arrow-link) { display: block; width: max-content; margin-bottom: 12px; font-size: 14px; color: rgba(255,255,255,.62); transition: color .25s; }
.site-footer a:hover { color: #fff; }
.footer-label { margin-bottom: 22px; font: 500 9px 'DM Mono',monospace; letter-spacing: .2em; text-transform: uppercase; color: var(--ember); }
.footer-orbit { position: absolute; top: 12%; right: -10vw; width: 42vw; height: 42vw; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.footer-orbit::before,.footer-orbit::after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.06); border-radius: 50%; }
.footer-orbit::before { inset: 13%; }.footer-orbit::after { inset: 28%; }

.section-pad { padding: clamp(5rem,10vw,10rem) 0; }
.page-hero { min-height: 60vh; padding-top: calc(var(--header-height) + 6vw); background: var(--night); color: #fff; }
.tag { display: inline-flex; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; padding: 7px 11px; font: 500 8px 'DM Mono',monospace; letter-spacing: .15em; text-transform: uppercase; }
.prose-offbeat p { margin-bottom: 1.35rem; color: #4b5653; font-size: 1.05rem; line-height: 1.85; }
.scroll-wheel { position: relative; width: 18px; height: 28px; border: 1px solid rgba(255,255,255,.45); border-radius: 20px; }
.scroll-wheel::after { content: ''; position: absolute; top: 6px; left: 8px; width: 2px; height: 5px; border-radius: 3px; background: var(--ember); animation: scrollDot 1.8s infinite; }
@keyframes scrollDot { 0% { transform: translateY(0); opacity: 0; } 25% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(10px); opacity: 0; } }
.float-note { z-index: 3; }
.destination-track { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-behavior: smooth; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.destination-track::-webkit-scrollbar { display: none; }
.destination-card { scroll-snap-align: start; }
.slider-button { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; transition: .3s; }
.slider-button:hover { border-color: var(--ember); background: var(--ember); }
.slider-progress { transition: width .2s ease; }
.manifesto { position: relative; }
.manifesto__visuals { position: sticky; top: 0; z-index: 0; width: 100%; height: 100svh; margin-bottom: -100svh; overflow: hidden; }
.manifesto__image { position: absolute; inset: 0; opacity: 0; transform: scale(1.04); background-position: center; background-size: cover; }
.manifesto__image.is-active { opacity: 1; transform: scale(1); }
.manifesto__step { position: relative; z-index: 2; min-height: 100svh; }
.detail-label { margin-bottom: 7px; font: 500 8px 'DM Mono',monospace; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.detail-value { font-family: 'Playfair Display',serif; font-size: 1.25rem; }
.itinerary-list { position: relative; --line: 100%; }
.itinerary-list::before { content: ''; position: absolute; top: 0; bottom: 0; left: 16px; width: 1px; background: linear-gradient(to bottom,var(--ember) var(--line),rgba(11,19,37,.12) var(--line)); }
.itinerary-item { position: relative; border-bottom: 1px solid rgba(11,19,37,.14); }
.itinerary-number { position: relative; z-index: 2; display: grid; width: 33px; height: 33px; flex: none; place-items: center; border-radius: 50%; background: #e7ebe5; border: 1px solid rgba(11,19,37,.17); font: 500 9px 'DM Mono',monospace; color: var(--ember); transition: .3s; }
.itinerary-item.is-open .itinerary-number { border-color: var(--ember); background: var(--ember); color: #fff; }
.itinerary-plus { font-size: 24px; line-height: 1.3; transition: transform .35s; }
.itinerary-item.is-open .itinerary-plus { transform: rotate(45deg); }
.itinerary-panel { padding: 0 42px 28px 53px; color: #58615f; line-height: 1.75; }
.gallery-grid { display: grid; grid-auto-rows: 240px; gap: 12px; }
.gallery-grid__item { min-height: 240px; }
.gallery-grid__item:first-child { grid-row: span 2; }
.check-list li { display: flex; gap: 14px; padding: 15px 0; border-bottom: 1px solid rgba(11,19,37,.12); color: #4b5653; font-size: 14px; }
.check-list span { color: var(--pine); font-weight: 700; }.check-list--muted span { color: var(--ember); }
.filter-row button { border: 1px solid rgba(11,19,37,.16); border-radius: 999px; padding: 9px 13px; font-size: 10px; font-weight: 600; transition: .25s; }
.filter-row button:hover,.filter-row button.is-active { border-color: var(--pine); background: var(--pine); color: #fff; }
.destination-grid { transition: opacity .25s; }.destination-grid.is-loading { opacity: .45; }
.loading-ring { width: 34px; height: 34px; border: 2px solid rgba(11,19,37,.15); border-top-color: var(--ember); border-radius: 50%; animation: ring 1s linear infinite; }
.stories-title {
    color: #0b1325 !important;
    -webkit-text-fill-color: #0b1325;
    font-weight: 600;
    text-shadow: 0 1px 0 rgba(255,255,255,.8);
}
.stories-title em {
    color: #e87342 !important;
    -webkit-text-fill-color: #e87342;
}
@keyframes ring { to { transform: rotate(360deg); } }
@media (min-width: 768px) {
    .gallery-grid { grid-template-columns: 1.4fr 1fr 1fr; grid-auto-rows: 280px; }
    .gallery-grid__item:first-child { grid-row: span 2; }
    .gallery-grid__item:nth-child(4) { grid-column: span 2; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
    .page-loader { display: none; }
}

@media (max-width: 640px) {
    :root { --header-height: 76px; }
    .footer-orbit { width: 90vw; height: 90vw; }
    .noise { display: none; }
    [data-hero-parallax], [data-parallax], .manifesto__image { will-change: auto; }
}
