:root{
  --ink:#151513; --ink-2:#1d1d1a; --bone:#ECE7DD; --bone-2:#E2DCCF;
  --mute:#A9A498; --mute-d:#5C584F;
  --line:rgba(236,231,221,.16); --line-d:rgba(21,21,19,.18);
  --em:#1F5C49; --em-l:#8FD0B3;
  --serif:"Bodoni Moda","Didot",Georgia,serif; --sans:"Figtree",system-ui,sans-serif;
  --gut:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--bone);font:400 17px/1.6 var(--sans);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
input,select,textarea{font-size:max(16px,1em)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{padding-inline:var(--gut);max-width:1320px;margin-inline:auto}
.narrow{max-width:980px}
em{font-style:italic}
.h2{font-family:var(--serif);font-weight:500;font-size:clamp(2.1rem,5vw,4rem);line-height:1.08;letter-spacing:-.01em}
.h2 em{color:var(--em-l)}
.light .h2 em{color:var(--em)}
.lede{max-width:46ch;margin-top:1.2rem;color:var(--mute);font-size:1.1rem}
.light .lede{color:var(--mute-d)}

/* bar */
.bar{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:28px;padding:14px var(--gut);padding-top:max(14px,env(safe-area-inset-top));transition:background .3s}
.bar.solid{background:var(--ink);border-bottom:1px solid var(--line)}
.mark{font-family:var(--serif);font-weight:600;font-size:1.35rem;text-decoration:none;letter-spacing:.01em;margin-right:auto}
.bar-nav{display:flex;gap:26px}
.bar-nav a{text-decoration:none;font-size:.95rem;opacity:.85}
.bar-nav a:hover{opacity:1}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;background:var(--em);color:#F3EFE6;font:600 1rem var(--sans);border:1px solid var(--em);border-radius:2px;text-decoration:none;cursor:pointer;transition:background .25s,color .25s}
.btn:hover{background:#F3EFE6;color:var(--ink)}
.btn-sm{min-height:42px;padding:0 20px;font-size:.92rem}
.btn-ghost{background:transparent;border-color:rgba(243,239,230,.55)}
.btn-ghost:hover{background:#F3EFE6;color:var(--ink)}

/* hero */
.hero{position:relative;height:340vh}
.stage{position:absolute;inset:0 0 auto 0;height:100vh;overflow:hidden;background:var(--ink)}
.stage.is-fixed{position:fixed}
.stage.is-after{top:auto;bottom:0}
.poster,.film{position:absolute;inset:0;width:100%;height:100%}
.poster img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.film{opacity:0;transition:opacity .4s}
.film.ready{opacity:1}
.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(21,21,19,.86) 0%,rgba(21,21,19,.55) 36%,rgba(21,21,19,0) 66%),linear-gradient(0deg,rgba(21,21,19,.7) 0%,rgba(21,21,19,0) 36%)}
.caps{position:absolute;left:var(--gut);bottom:15vh;max-width:min(640px,86vw)}
.cap{position:absolute;left:0;bottom:0;width:100%;opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s;pointer-events:none}
.cap.is-on{opacity:1;transform:none;pointer-events:auto;position:relative}
.cap h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,5.6vw,5rem);line-height:1.04;letter-spacing:-.01em}
.cap h1 em{color:var(--em-l)}
.cap p{margin-top:1.2rem;max-width:44ch;color:rgba(236,231,221,.9);font-size:1.12rem}
.cap .big{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4.6vw,4rem);line-height:1.1;margin:0;max-width:none;color:var(--bone)}
.cap .big em{color:var(--em-l)}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
.note{position:absolute;right:var(--gut);bottom:14px;font-size:.78rem;color:rgba(236,231,221,.6)}

/* statement */
.light{background:var(--bone);color:var(--ink)}
.statement{padding:clamp(90px,16vw,200px) 0}
.words{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.9vw,3.2rem);line-height:1.22}
.words span{opacity:.18;transition:opacity .25s}
.words span.on{opacity:1}

/* journeys */
.journeys{padding:clamp(80px,12vw,160px) 0}
.j-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,6vw,96px);margin-top:clamp(40px,6vw,80px);align-items:start}
.j-list{list-style:none}
.j-row{padding:2.2rem 0;border-top:1px solid var(--line);opacity:.4;transition:opacity .4s}
.j-row:last-child{border-bottom:1px solid var(--line)}
.j-row.is-on{opacity:1}
.j-row h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.1}
.j-row.is-on h3{color:var(--em-l)}
.j-row p{margin-top:.8rem;color:var(--mute);max-width:42ch}
.j-media{position:sticky;top:12vh}
.j-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:#000}
.j-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s}
.j-frame img.is-on{opacity:1}
.j-phone{display:none}

/* fleet */
.fleet{padding:clamp(80px,12vw,160px) 0 clamp(50px,8vw,100px)}
.car{max-width:1500px;margin-inline:auto;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;margin-top:clamp(50px,8vw,110px);padding-left:var(--gut)}
.car.flip{grid-template-columns:1fr 1.3fr;padding:0 var(--gut) 0 0}
.car.flip .car-img{order:2}
.car-img img{width:100%;aspect-ratio:16/10;object-fit:cover}
.car-txt{padding-right:var(--gut)}
.car.flip .car-txt{padding-left:0}
.year{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(3.5rem,8vw,7rem);line-height:.9;color:var(--em)}
.car h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3.2vw,2.8rem);margin:.4rem 0 1rem}
.car p{max-width:40ch}
.car .tag{margin-top:1.2rem;color:var(--mute-d);font-size:.98rem;border-top:1px solid var(--line-d);padding-top:1rem}
.fine{margin-top:2.5rem;font-size:.85rem;color:var(--mute-d)}

/* routes */
.routes{padding:clamp(80px,12vw,160px) 0}
.ledger{list-style:none;margin-top:clamp(36px,5vw,64px);max-width:980px}
.ledger li{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:16px;align-items:baseline;padding:1.5rem 0;border-top:1px solid var(--line);transition:padding .3s,color .3s}
.ledger li:last-child{border-bottom:1px solid var(--line)}
.ledger li:hover{padding-left:12px;color:var(--em-l)}
.to{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.4rem);font-weight:500}
.mi,.hr{color:var(--mute);font-size:1rem}
.hr{text-align:right}

/* standard */
.standard{padding:clamp(80px,12vw,150px) 0}
.std{margin-top:clamp(36px,5vw,64px);max-width:980px}
.std>div{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;padding:1.8rem 0;border-top:1px solid var(--line-d)}
.std>div:last-child{border-bottom:1px solid var(--line-d)}
.std dt{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.15}
.std dd{color:var(--mute-d)}

/* request */
.request{padding:clamp(80px,12vw,150px) 0}
.req-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:start}
.req-img{display:none}
.form{display:grid;gap:18px}
.form label{display:grid;gap:6px;font-size:.92rem;color:var(--mute)}
.form input,.form select,.form textarea{width:100%;min-height:50px;padding:12px 14px;background:var(--ink-2);color:var(--bone);border:1px solid var(--line);border-radius:2px;font-family:var(--sans)}
.form select{color:var(--ink);background:var(--bone)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--em-l);outline-offset:1px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .btn{justify-self:start}
.status{min-height:1.5em;font-size:.95rem}
.status.ok{color:var(--em-l)} .status.err{color:#F1A99B}

/* footer */
.foot{border-top:1px solid var(--line);padding:56px 0 calc(40px + env(safe-area-inset-bottom))}
.foot-in{display:flex;flex-wrap:wrap;gap:30px 60px;align-items:flex-start;justify-content:space-between}
.foot .mark{display:block;margin:0 0 .5rem}
.foot p{color:var(--mute)}
.foot-links{display:grid;gap:8px}
.foot-links a,.by a{color:var(--bone)}
.by{width:100%;font-size:.85rem}

/* phone */
@media (max-width:759px){
  body{font-size:16px}
  .bar{gap:12px}
  .bar-nav{display:none}
  .mark{font-size:1.2rem}
  .hero{height:300vh}
  .hero .stage{height:100lvh}
  .caps{bottom:calc(6vh + (100lvh - 100svh));left:var(--gut);right:var(--gut);max-width:none}
  .shade{background:linear-gradient(0deg,rgba(21,21,19,.92) 0%,rgba(21,21,19,.7) 34%,rgba(21,21,19,0) 74%)}
  .cap h1{font-size:clamp(2.3rem,10vw,3rem)}
  .cap .big{font-size:clamp(2rem,9vw,2.8rem)}
  .cta .btn{flex:1 1 140px}
  .note{display:none}
  .j-grid{grid-template-columns:1fr}
  .j-media{display:none}
  .j-row{opacity:1}
  .j-row.is-on h3{color:var(--bone)}
  .j-phone{display:block;margin-top:2rem}
  .j-phone img{width:100%;aspect-ratio:4/5;object-fit:cover}
  .car,.car.flip{grid-template-columns:1fr;padding:0}
  .car.flip .car-img{order:0}
  .car-img img{aspect-ratio:4/5}
  .car-txt,.car.flip .car-txt{padding:6px var(--gut) 0}
  .ledger li{grid-template-columns:1fr 1fr;row-gap:2px}
  .ledger .to{grid-column:1/-1}
  .hr{text-align:left}
  .std>div{grid-template-columns:1fr;gap:6px}
  .req-grid{grid-template-columns:1fr}
  .req-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;margin-top:1.6rem}
  .two{grid-template-columns:1fr}
  .form .btn{justify-self:stretch}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero{height:auto}
  .stage,.stage.is-fixed,.stage.is-after{position:relative;height:100svh}
  .film{display:none}
  .cap{opacity:0;transition:none}
  .cap.is-on{opacity:1}
  .words span{opacity:1}
  *{transition-duration:.01ms!important}
}
