@font-face{font-family:"Bricolage";src:url(../fonts/bricolage-grotesque-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Fragment Mono";src:url(../fonts/fragment-mono-latin-400-normal.woff2) format("woff2");font-display:swap}
:root{--green:#1E4D3A;--green-2:#2E6B52;--cream:#F3E9D2;--card:#C89B62;--card-2:#E2C597;--tape:#E8C24A;--ink:#1A1A17;--ink-2:#4B4A44;--dusk:#2B2440;
  --disp:"Bricolage",system-ui,sans-serif;--mono:"Fragment Mono",ui-monospace,monospace;--gut:clamp(16px,4.4vw,64px)}
.sw-root{--sw-bg:#F3E9D2;--sw-ink:#1A1A17;--sw-ink-soft:#4B4A44;--sw-accent:#1E4D3A;--sw-font-display:var(--disp);--sw-font-body:var(--disp)}
html,body{background:var(--cream)}
body{margin:0;color:var(--ink);font:400 clamp(16px,1.05vw,18px)/1.6 var(--disp)}
a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:fixed;left:-999px;top:10px;z-index:200;background:var(--green);color:var(--cream);padding:.6rem 1rem;border-radius:8px}
.skip:focus{left:10px}
:focus-visible{outline:3px solid var(--tape);outline-offset:3px}
.sw-topbar{display:none!important}

.bar{position:fixed;inset:0 0 auto;z-index:120;display:flex;justify-content:space-between;align-items:center;padding:clamp(12px,2vw,22px) var(--gut);pointer-events:none}
.bar a{pointer-events:auto}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;background:var(--cream);padding:.55rem .95rem .55rem .6rem;border-radius:14px;box-shadow:0 10px 30px -14px rgb(0 0 0 / .45)}
.logo>span:last-child{font:800 1.05rem/1 var(--disp);letter-spacing:-.02em;color:var(--green);display:flex;flex-direction:column}
.logo em{font:400 .62rem/1.4 var(--mono);font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.van{width:38px;height:24px;border-radius:5px 9px 4px 4px;background:var(--green);position:relative;box-shadow:inset -12px 0 0 var(--green-2)}
.van::before,.van::after{content:"";position:absolute;bottom:-4px;width:9px;height:9px;border-radius:50%;background:var(--ink);border:2px solid var(--cream)}
.van::before{left:5px}.van::after{right:5px}
.bar-cta{font:700 .88rem/1 var(--disp);text-decoration:none;background:var(--tape);color:var(--ink);padding:.95rem 1.2rem;border-radius:12px;box-shadow:0 10px 30px -14px rgb(0 0 0 / .45);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.bar-cta:hover{transform:translateY(-2px) rotate(-1deg)}

/* film chrome: copy on a torn cardboard label */
.sw-copylayer::before{display:none}
.sw-copy{width:min(30rem,40vw)!important;background:var(--card-2);padding:1.6rem 1.8rem 1.8rem;border-radius:4px;transform:translateY(-50%) rotate(-1.2deg)!important;
  box-shadow:0 26px 50px -24px rgb(0 0 0 / .55);
  background-image:linear-gradient(transparent 0 0),repeating-linear-gradient(90deg,rgb(0 0 0 / .025) 0 2px,transparent 2px 6px)}
.sw-copy::before{content:"";position:absolute;left:50%;top:-12px;width:110px;height:26px;transform:translateX(-50%) rotate(2deg);background:rgb(232 194 74 / .85);box-shadow:0 2px 6px rgb(0 0 0 / .12)}
.sw-copy__num{font:400 .72rem/1 var(--mono)!important;letter-spacing:.14em;color:var(--ink-2)!important}
.sw-copy__eyebrow{font:400 .74rem/1.3 var(--mono)!important;letter-spacing:.16em!important;color:var(--green)!important}
.sw-copy__title{font:800 clamp(2rem,3.6vw,3.4rem)/.98 var(--disp)!important;letter-spacing:-.035em!important;text-shadow:none!important;color:var(--ink)!important}
.sw-copy__body{color:var(--ink-2)!important;text-shadow:none!important}
.sw-copy__tags li{background:var(--cream)!important;color:var(--green)!important;border:1.5px dashed var(--green)!important;font:400 .74rem/1 var(--mono)!important;border-radius:4px!important}
.sw-btn--primary{background:var(--green)!important;color:var(--cream)!important;border-radius:10px!important}
.sw-btn--ghost{border-radius:10px!important}
.sw-route__label{background:var(--cream)!important;color:var(--green)!important;font-family:var(--mono)!important}
.sw-hint{color:var(--cream)!important;text-shadow:0 1px 8px rgb(0 0 0 / .6)}
.sw-hint i{border-color:var(--cream)!important}
@media (max-width:860px){ .sw-copy{width:auto!important;transform:rotate(-1deg)!important} }

.odo{position:fixed;right:var(--gut);bottom:clamp(16px,3vh,28px);z-index:45;background:var(--cream);border-radius:14px;padding:.9rem 1rem 1rem;width:250px;box-shadow:0 18px 40px -18px rgb(0 0 0 / .5);transition:opacity .5s}
.route{width:100%;height:auto;display:block}
.r-bg{fill:none;stroke:rgb(30 77 58 / .18);stroke-width:4;stroke-linecap:round;stroke-dasharray:2 7}
.r-fg{fill:none;stroke:var(--green);stroke-width:4;stroke-linecap:round}
.r-dot{fill:var(--tape);stroke:var(--green);stroke-width:2.5}
.odo-row{display:flex;align-items:baseline;gap:.5rem;margin-top:.4rem}
.odo-n{font:400 2rem/1 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.odo-u,.odo-s{font:400 .7rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
body.past-film .odo,body.past-film .sw-route,body.past-film .sw-hint{opacity:0;pointer-events:none}

.after{position:relative;z-index:70;background:var(--cream);box-shadow:0 -40px 80px rgb(243 233 210 / .9)}
.after::before{content:"";position:absolute;left:0;right:0;top:-24vh;height:24vh;background:linear-gradient(transparent,var(--cream));pointer-events:none}
.stamp,.label{display:inline-block;font:400 .74rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#9A3B2A;border:2px solid #9A3B2A;padding:.5rem .7rem;border-radius:4px;transform:rotate(-2deg);margin:0 0 1.6rem}
h2{font:800 clamp(2.4rem,6vw,6.2rem)/.92 var(--disp);letter-spacing:-.045em;margin:0}
h2 span{color:var(--green);font-weight:300}
.intro{padding:18vh var(--gut) 12vh;max-width:1300px}
.manifest{padding:10vh var(--gut) 14vh}
.m-head{max-width:46rem;margin-bottom:6vh}
.lede{color:var(--ink-2);margin-top:1.4rem}
.calc{display:grid;grid-template-columns:1fr minmax(0,22rem);gap:clamp(24px,4vw,60px);align-items:start}
.rooms{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rooms input{position:absolute;opacity:0}
.box{display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:1;padding:1rem;border-radius:6px;background:var(--card);color:#2a1b0c;cursor:pointer;position:relative;
  box-shadow:inset 0 -10px 0 rgb(0 0 0 / .06),0 12px 24px -16px rgb(0 0 0 / .6);transition:transform .35s cubic-bezier(.3,1.6,.5,1),background .3s;
  background-image:linear-gradient(90deg,transparent 46%,rgb(232 194 74 / .0) 46% 54%,transparent 54%)}
.box::before{content:"";position:absolute;left:44%;right:44%;top:0;bottom:0;background:rgb(232 194 74 / .9);transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.box b{font:800 1.15rem/1.05 var(--disp);letter-spacing:-.02em;position:relative}
.box i{font:400 .7rem/1.4 var(--mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;position:relative;opacity:.75}
.rooms input:checked+.box{transform:translateY(-6px) rotate(-1deg);background:#B98A50}
.rooms input:checked+.box::before{transform:none}
.rooms input:focus-visible+.box{outline:3px solid var(--green);outline-offset:3px}
.ticket{position:sticky;top:110px;background:#fff;border-radius:6px;padding:1.6rem;box-shadow:0 24px 50px -24px rgb(0 0 0 / .5);
  background-image:radial-gradient(circle at 0 50%,var(--cream) 10px,transparent 11px),radial-gradient(circle at 100% 50%,var(--cream) 10px,transparent 11px)}
.t-row{display:flex;justify-content:space-between;align-items:baseline;padding:.7rem 0;border-bottom:1px dashed rgb(0 0 0 / .15);font:400 .82rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}
.t-row b{font:800 1.4rem/1 var(--disp);letter-spacing:-.02em;color:var(--ink);text-transform:none}
.t-row.big b{font-size:2.4rem;color:var(--green)}
.cta{display:block;text-align:center;margin-top:1.4rem;background:var(--green);color:var(--cream);text-decoration:none;font:700 .95rem/1 var(--disp);padding:1rem;border-radius:10px}
.route-map{padding:12vh var(--gut);background:var(--green);color:var(--cream)}
.route-map h2{margin-bottom:8vh}
.stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);position:relative}
.stops::before{content:"";position:absolute;left:24px;right:0;top:24px;border-top:3px dashed rgb(243 233 210 / .4)}
.pin{display:grid;place-items:center;width:48px;height:48px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--tape);color:var(--ink);font:800 1.1rem/1 var(--disp);position:relative}
.stops h3{font:800 1.8rem/1 var(--disp);letter-spacing:-.03em;margin:1.6rem 0 .6rem}
.stops p{color:rgb(243 233 210 / .82)}
.book{padding:14vh var(--gut)}
.b-grid{display:grid;grid-template-columns:1fr minmax(0,30rem);gap:clamp(32px,7vw,120px);margin-top:7vh}
.b-grid p{color:var(--ink-2)}
.tel{display:block;font:800 clamp(2.4rem,5vw,4.6rem)/1 var(--disp);letter-spacing:-.04em;color:var(--green);text-decoration:none;margin:1.6rem 0 .6rem}
.form{display:grid;gap:1.2rem}
.form span{display:block;font:400 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.45rem}
.form input{width:100%;box-sizing:border-box;background:#fff;border:2px solid transparent;border-radius:10px;font:500 1.05rem/1.4 var(--disp);padding:.9rem 1rem;color:var(--ink);box-shadow:0 8px 20px -14px rgb(0 0 0 / .4)}
.form input:focus{outline:none;border-color:var(--green)}
.form button{justify-self:start;background:var(--tape);color:var(--ink);border:0;border-radius:10px;padding:1rem 1.4rem;font:700 .95rem/1 var(--disp);cursor:pointer}
.msg{min-height:1.2em;margin:0;color:var(--green)}
.foot{padding:10vh var(--gut) 6vh;border-top:2px dashed rgb(0 0 0 / .15)}
.foot .foot-mark{font:800 clamp(4rem,15vw,15rem)/.85 var(--disp);letter-spacing:-.06em;color:var(--green);margin:0 0 2.4rem}
.foot p{color:var(--ink-2);margin:.4rem 0}
.demo{font:400 .78rem/1.5 var(--mono)}
@media (max-width:900px){
  .bar-cta{padding:.75rem .9rem;font-size:.8rem}
  .odo{width:170px;padding:.6rem .7rem;top:84px;bottom:auto}
  .odo-n{font-size:1.4rem}
  .calc,.b-grid{grid-template-columns:1fr}
  .rooms{grid-template-columns:repeat(2,1fr)}
  .ticket{position:static}
  .stops{grid-template-columns:1fr 1fr}
  .stops::before{display:none}
}
@media (max-width:560px){ .logo em{display:none} .stops{grid-template-columns:1fr} }
