:root{
  --paper:#f7fbfe;
  --white:#fff;
  --sky:#75c9fa;
  --sky-soft:#dff1fd;
  --blue:#0870ca;
  --blue-deep:#0260d9;
  --navy:#0b2a6b;
  --ink:#10172a;
  --mute:#5c6780;
  --line:#dce6f0;
  --sun:#f6c445;
  --radius:28px;
  --gutter:clamp(16px,4vw,64px);
  --display:"Montserrat",system-ui,sans-serif;
  --body:"Figtree",system-ui,sans-serif;
  --shadow:0 24px 60px -24px rgba(11,42,107,.28);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--body);overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:var(--gutter)}
h1,h2,h3{font-family:var(--display);color:var(--navy);line-height:1.08;letter-spacing:-.02em}
h2{font-size:clamp(2rem,4vw,3.25rem);font-weight:700}
section{padding-block:clamp(56px,8vw,112px)}
.kicker{font:700 1rem/1 var(--display);color:var(--blue);letter-spacing:.04em;text-transform:uppercase}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 30px;border-radius:99px;background:var(--blue);color:#fff;font:600 1rem/1 var(--display);text-decoration:none;white-space:nowrap;box-shadow:0 14px 26px -12px rgba(10,120,214,.7);transition:background .2s,transform .2s}
.btn:hover{background:var(--blue-deep);transform:translateY(-1px)}
.btn-sm{min-height:44px;padding:0 22px;font-size:.9rem;box-shadow:none}

/* nav */
.nav{position:fixed;z-index:30;top:32px;left:50%;transform:translateX(-50%);width:min(1240px,calc(100% - 2*var(--gutter) - 24px));display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 8px 7px 12px;border-radius:99px;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 30px -14px rgba(11,42,107,.35);transition:top .25s}
.nav.stuck{top:12px;background:rgba(255,255,255,.94)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--blue);font-family:var(--display)}
.brand img{width:40px;height:40px}
.brand span{display:grid;line-height:1}
.brand small{font-size:.8125rem;font-weight:600}
.brand b{font-size:1rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.nav-links{display:flex;gap:30px}
.nav-links a{font:500 .92rem/1 var(--display);text-decoration:none;color:var(--ink);padding:10px 0}
.nav-links a:hover{color:var(--blue)}

/* hero */
.hero{padding:12px 12px 0;position:relative}
.scene{position:relative;height:clamp(640px,92vh,900px);border-radius:var(--radius);overflow:hidden;background:#2b83de;isolation:isolate}
.sky,.land{position:absolute;inset:-4% 0 auto;width:100%;height:108%;object-fit:cover;object-position:50% 45%}
.ghost{position:absolute;left:0;right:0;top:calc(46% - 3.5vw);text-align:center;font:900 16vw/1 var(--display);letter-spacing:-.03em;color:#fff;opacity:.26;white-space:nowrap;animation:rise 1.4s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{transform:translateY(7vw);opacity:0}}
.hero-copy{position:absolute;inset:clamp(116px,15vh,142px) 16px auto;text-align:center;color:#fff}
.hero-copy h1{color:inherit;display:grid;gap:12px;justify-items:center}
.hero-copy h1 span{font:500 clamp(1.05rem,2.5vw,2.1rem)/1 var(--display);letter-spacing:.5em;margin-right:-.5em;text-transform:uppercase}
.hero-copy h1 strong{font:800 clamp(3rem,9vw,8rem)/.95 var(--display);letter-spacing:-.025em;text-transform:uppercase;text-wrap:balance;text-shadow:0 6px 40px rgba(2,60,140,.35)}
.hero-copy p{max-width:38em;margin:18px auto 0;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:500;text-shadow:0 1px 14px rgba(2,50,120,.55)}
.pill{position:absolute;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-radius:99px;background:#fff;color:var(--navy);font:700 .8125rem/1 var(--display);letter-spacing:.02em;text-transform:uppercase;box-shadow:var(--shadow);transition:transform .2s}
.pill:hover{transform:translateY(-3px)}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--navy)}
.pill b{padding:6px 10px;border-radius:99px;background:var(--navy);color:#fff;font-weight:700;text-transform:none}
.pill-a{left:9%;bottom:27%}
.pill-b{right:8%;bottom:37%}

/* finder */
.finder{position:relative;z-index:3;width:min(1120px,calc(100% - 2*var(--gutter)));margin:-112px auto 0;padding:14px 32px 28px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.finder-tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.finder-tabs button{display:flex;align-items:center;gap:8px;padding:14px 2px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--mute);font:500 .95rem/1 var(--display);white-space:nowrap}
.finder-tabs svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.finder-tabs .on{color:var(--blue);border-color:var(--blue);font-weight:600}
.finder-row{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:22px;align-items:end;padding-top:22px}
.field{display:grid;gap:2px;padding-right:18px;border-right:1px solid var(--line)}
.field:nth-child(3){border-right:0}
.field span{font:700 .95rem/1.2 var(--display);color:var(--navy)}
.field select{appearance:none;width:100%;min-height:36px;padding-right:22px;border:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6780' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right center/16px no-repeat;color:var(--mute);font-size:1rem;cursor:pointer}

/* departures board */
.board{padding-top:64px;padding-bottom:0}
.board-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-bottom:20px}
.board-head h2{font-size:clamp(1.7rem,3vw,2.5rem)}
.board-head p{color:var(--mute)}
.rows{list-style:none;padding:0;border-top:2px solid var(--navy)}
.row{display:grid;width:100%;grid-template-columns:150px 1.3fr 1.2fr 150px 32px;gap:18px;align-items:center;padding:18px 6px;border-bottom:1px solid var(--line);text-align:left;transition:background .15s}
.row:hover{background:var(--sky-soft)}
.row time{font:700 1.05rem/1.1 var(--display);color:var(--blue-deep)}
.row b{font:700 1.08rem/1.2 var(--display);color:var(--navy)}
.row span{color:var(--mute);font-size:.96rem}
.row strong{font:700 1.05rem/1 var(--display);color:var(--navy);text-align:right}
.row strong small{display:block;margin-top:3px;font:400 .8125rem/1 var(--body);color:var(--mute)}
.row svg{width:20px;height:20px;fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;justify-self:end}
.more{margin-top:18px;font:600 .95rem/1 var(--display);color:var(--blue);text-decoration:underline;text-underline-offset:4px;padding:8px 0}
.board-note{margin-top:12px;color:var(--mute);font-size:.95rem}

/* trips */
.trips h2{margin-bottom:22px}
.tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs button{padding:0 2px 12px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--mute);font:500 1rem/1 var(--display);white-space:nowrap}
.tabs .on{color:var(--navy);font-weight:700;border-color:var(--blue)}
.rail{display:flex;gap:24px;margin:26px calc(var(--gutter)*-1) 0;padding:6px var(--gutter) 26px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter);scrollbar-width:none}
.rail::-webkit-scrollbar,.polaroids::-webkit-scrollbar{display:none}
.card{flex:0 0 clamp(250px,24vw,310px);scroll-snap-align:start;border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--line);overflow:hidden;text-align:left;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.card[hidden]{display:none}
.card img{width:100%;aspect-ratio:15/10;object-fit:cover}
.card span{display:block;padding:16px 18px 18px;color:var(--mute);font-size:.95rem}
.card b{display:block;font:700 1.15rem/1.25 var(--display);color:var(--navy)}
.rail-nav{display:flex;gap:10px;justify-content:flex-end}
.rail-nav button{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--navy);transition:background .2s}
.rail-nav button:hover{background:var(--sky-soft)}
.rail-nav svg{width:20px;height:20px;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* about */
.about{text-align:center;padding-inline:var(--gutter);padding-bottom:clamp(40px,5vw,72px);overflow:hidden}
.about .kicker{color:var(--navy)}
.statement{max-width:24em;margin:26px auto 0;font:500 clamp(1.5rem,3vw,2.5rem)/1.26 var(--display);letter-spacing:-.015em;text-transform:uppercase;color:var(--ink)}
.statement .w{color:#77829a;transition:color .35s}
.statement .w.lit{color:var(--ink)}
.bunting{margin:clamp(30px,5vw,56px) calc(var(--gutter)*-1) 0}
.bunting svg{width:100%;min-width:760px;height:auto;margin-inline:auto;overflow:visible}
.flag{transform-box:fill-box;transform-origin:50% 0;animation:sway 4.6s ease-in-out infinite alternate}
.flag:nth-of-type(3n){animation-duration:5.8s}
.flag:nth-of-type(4n+1){animation-delay:-2s}
@keyframes sway{from{transform:skewX(-5deg)}to{transform:skewX(5deg)}}
.why{list-style:none;padding:0;max-width:1200px;margin:clamp(32px,5vw,64px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:34px 44px;text-align:left}
.why li{color:var(--mute);font-size:1rem}
.why b{display:block;margin-bottom:6px;font:700 1.12rem/1.25 var(--display);color:var(--navy)}

/* big three */
.picked{padding-top:clamp(40px,5vw,72px)}
.picked-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:38px}
.picked-head p{margin-top:8px;color:var(--mute);font-size:1.15rem}
.tickets{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.ticket{border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column}
.ticket img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ticket>div{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.ticket h3{font-size:1.25rem;font-weight:700;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.ticket em{flex:none;font:600 .9rem/1 var(--body);color:var(--blue)}
.ticket p{margin:12px 0 18px;color:var(--mute);font-size:.98rem}
.ticket footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px}
.ticket footer span{font:800 1.45rem/1 var(--display);color:var(--navy)}
.ticket footer small{display:block;margin-bottom:6px;font:400 .8125rem/1 var(--body);color:var(--mute)}

/* polaroids */
.camps{padding-top:0;overflow:hidden}
.camps-head{display:grid;grid-template-columns:1.2fr 1fr;gap:20px 60px;align-items:end}
.camps-head p{color:var(--mute);font-size:1.1rem}
.polaroids{display:flex;justify-content:center;gap:1.6vw;padding:52px 2vw 40px}
.polaroids figure{flex:0 1 14.6vw;min-width:0;max-width:280px;padding:10px 10px 0;background:#fff;border-radius:16px;box-shadow:0 16px 36px -18px rgba(11,42,107,.42);transition:transform .3s}
.polaroids figure:nth-child(1){transform:rotate(-6deg) translateY(-18px)}
.polaroids figure:nth-child(2){transform:rotate(3deg) translateY(10px)}
.polaroids figure:nth-child(3){transform:rotate(-1deg) translateY(30px)}
.polaroids figure:nth-child(4){transform:rotate(1.5deg) translateY(30px)}
.polaroids figure:nth-child(5){transform:rotate(-3deg) translateY(10px)}
.polaroids figure:nth-child(6){transform:rotate(6deg) translateY(-18px)}
.polaroids figure:hover{transform:rotate(0) translateY(0) scale(1.05);z-index:2}
.polaroids img{width:100%;aspect-ratio:1/1.08;object-fit:cover;border-radius:10px}
.polaroids figcaption{padding:12px 0 14px;text-align:center;font:500 .92rem/1 var(--display)}

/* journal */
.journal{text-align:center;padding-top:clamp(20px,3vw,40px)}
.journal h2{margin-top:14px}
.stories{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1100px;margin:44px auto 0;text-align:left}
.stories a{text-decoration:none}
.stories img{width:100%;aspect-ratio:1.05;object-fit:cover;border-radius:20px;transition:filter .25s}
.stories a:hover img{filter:brightness(1.07)}
.stories h3{margin-top:20px;font-size:1.1rem;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:0}
.stories p{margin-top:8px;color:var(--mute)}
.stories-arrow{position:absolute;left:50%;top:calc(50% - 60px);transform:translate(-50%,-50%);display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--blue);pointer-events:none}
.stories-arrow svg,.cta-go svg{width:36px;height:36px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* faq */
.know{display:grid;grid-template-columns:.8fr 1.4fr;gap:24px 60px;padding-top:0}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:20px 0;font:600 1.12rem/1.3 var(--display);color:var(--navy)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;line-height:1;color:var(--blue);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 40px 22px 0;color:var(--mute)}

/* cta */
.cta{position:relative;padding:0;min-height:clamp(460px,48vw,680px);overflow:hidden;color:#fff;display:flex;background:#3e6b74}
.cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.cta::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,42,64,.72),rgba(6,42,64,.1) 62%)}
.cta-copy{position:relative;z-index:1;align-self:flex-start;max-width:min(760px,86%);padding:clamp(40px,6vw,76px) var(--gutter)}
.cta h2{color:#fff;font-weight:600;text-transform:uppercase;font-size:clamp(2rem,4.2vw,3.4rem)}
.cta p{margin-top:22px;font-size:clamp(1.1rem,1.8vw,1.5rem)}
.cta-go{position:absolute;z-index:1;right:var(--gutter);bottom:clamp(28px,4vw,52px);display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:#fff;transition:transform .2s}
.cta-go:hover{transform:scale(1.07)}
.cta-go svg{stroke:var(--navy)}

/* footer */
.foot{padding-block:clamp(48px,6vw,80px) 44px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:40px}
.foot-mark{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--blue);font:500 clamp(1.8rem,5vw,3.6rem)/1 var(--display);letter-spacing:-.02em}
.foot-mark b{font-weight:800}
.foot-mark img{width:clamp(48px,6vw,72px);height:auto}
.foot-top>span{padding:6px 0 8px 26px;border-bottom:3px solid var(--navy);font-weight:600;color:var(--navy)}
.foot-cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}
.foot-cols>p{max-width:20em;color:var(--navy)}
.foot h4{margin-bottom:12px;font:700 .8125rem/1 var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--navy)}
.foot-cols div a,.foot-cols div span{display:block;padding:4px 0;color:var(--navy);text-decoration:none;font-size:.98rem}
.foot-cols div a:hover{color:var(--blue)}

/* trip sheet */
.sheet{width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:var(--radius);color:var(--ink);box-shadow:0 40px 100px -30px rgba(4,20,60,.6)}
.sheet::backdrop{background:rgba(6,24,66,.6)}
.sheet-x{position:sticky;top:12px;float:right;z-index:2;margin:12px 12px -56px 0;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.sheet-x svg{width:20px;height:20px;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round}
.sheet-img{width:100%;aspect-ratio:2/1;object-fit:cover}
.sheet-in{padding:26px clamp(20px,4vw,36px) 28px}
.sheet h2{font-size:clamp(1.7rem,4vw,2.3rem)}
.sheet-lede{margin-top:10px;color:var(--mute)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:22px 0 4px;padding:16px 0;border-block:1px solid var(--line)}
.facts dt{font-size:.8125rem;color:var(--mute)}
.facts dd{margin:2px 0 0;font:700 1rem/1.25 var(--display);color:var(--navy)}
.sheet h3{margin:24px 0 10px;font-size:1.08rem;font-weight:700}
.sheet ul,.sheet ol{padding-left:20px;color:#39445c}
.sheet li{margin-bottom:6px}
.sheet li b{color:var(--navy)}
.prices{width:100%;border-collapse:collapse;font-size:.97rem}
.prices td{padding:9px 0;border-bottom:1px solid var(--line);vertical-align:top}
.prices td:last-child{text-align:right;font:700 1rem/1.3 var(--display);color:var(--navy);white-space:nowrap;padding-left:14px}
.prices small{display:block;color:var(--mute)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{padding:6px 12px;border-radius:99px;background:var(--sky-soft);color:var(--navy);font-size:.9rem;font-weight:600}
.sheet-go{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:10px;padding:14px clamp(20px,4vw,36px);background:#fff;border-top:1px solid var(--line)}
.sheet-go .btn{flex:1}
.btn-line{background:none;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--navy)}
.btn-line:hover{background:var(--sky-soft)}

@media (max-width:1000px){
  .nav-links{display:none}
  .polaroids{justify-content:flex-start;gap:16px;overflow-x:auto;scrollbar-width:none;padding-inline:24px}
  .polaroids figure{flex:0 0 210px;max-width:none}
  .finder-row{grid-template-columns:repeat(3,1fr)}
  .finder-row .btn{grid-column:1/-1}
  .tickets{grid-template-columns:1fr 1fr}
  .tickets .ticket:last-child{grid-column:1/-1}
  .why{grid-template-columns:1fr 1fr}
  .row{grid-template-columns:120px 1fr 120px 24px}
  .row span{display:none}
  .camps-head,.know{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  section{padding-block:56px}
  .nav{top:24px;width:calc(100% - 44px)}
  .hero{padding:8px 8px 0}
  .scene{height:640px;border-radius:22px}
  .sky,.land{object-position:58% 50%;inset:0;height:100%}
  .ghost{top:40%;font-size:16.5vw}
  .hero-copy{top:112px}
  .hero-copy h1 span{letter-spacing:.34em;margin-right:-.34em;font-size:.95rem}
  .hero-copy h1 strong{font-size:17.5vw}
  .pill{font-size:.8125rem;padding:6px 6px 6px 12px;letter-spacing:0}
  .pill-a{left:10px;bottom:30%}
  .pill-b{right:10px;bottom:21%}
  .finder{margin-top:-96px;width:calc(100% - 16px);padding:6px 18px 20px}
  .finder-tabs{gap:16px}
  .finder-tabs svg{display:none}
  .finder-tabs button{font-size:.92rem}
  .finder-row{grid-template-columns:1fr;gap:14px}
  .field{padding:0 0 12px;border-right:0;border-bottom:1px solid var(--line)}
  .field:nth-child(3){border-bottom:1px solid var(--line)}
  .field select{min-height:44px}
  .board{padding-top:48px;padding-bottom:0}
  .row{grid-template-columns:1fr auto;gap:2px 12px;padding:14px 2px}
  .row time{grid-column:1;font-size:.95rem}
  .row b{grid-column:1}
  .row strong{grid-column:2;grid-row:1/3;align-self:center}
  .row svg{display:none}
  .why{grid-template-columns:1fr;gap:22px}
  .tickets{grid-template-columns:1fr}
  .tickets .ticket:last-child{grid-column:auto}
  .polaroids{justify-content:flex-start;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:40px 24px 44px}
  .polaroids figure{flex:0 0 210px;max-width:none;scroll-snap-align:center}
  .polaroids figure:nth-child(n){transform:rotate(-2deg)}
  .polaroids figure:nth-child(2n){transform:rotate(2.5deg)}
  .stories{grid-template-columns:1fr;gap:30px}
  .stories-arrow{display:none}
  .faq p{padding-right:0}
  .cta{min-height:560px}
  .cta::after{background:linear-gradient(180deg,rgba(6,42,64,.78),rgba(6,42,64,.1) 75%)}
  .cta img{object-position:70% 100%}
  .foot-cols{grid-template-columns:1fr 1fr}
  .foot-cols>p{grid-column:1/-1}
  .foot-top>span{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .statement .w{color:var(--ink)}
}
