:root{
  --ink:#04060A; --ink-2:#080B11; --ink-3:#0D1219;
  --text:#F3EFE7; --mute:#98A0AB;
  --gold:#D9B66C; --gold-hi:#F0DDA8; --gold-lo:#8A6B2E;
  --foil:linear-gradient(105deg,#7A5B24 0%,#E8CE8C 26%,#B98E3F 48%,#F4E4B4 72%,#9A7430 100%);
  --line:rgba(217,182,108,.3); --line-s:rgba(243,239,231,.1);
  --sans:"Host Grotesk",system-ui,sans-serif; --serif:"Source Serif 4",Georgia,serif;
  --gut:clamp(20px,5vw,76px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--ink)}
body{color:var(--text);font:400 18px/1.62 var(--sans);overflow-x:hidden;background:transparent}
img,video{display:block;max-width:100%}
a{color:inherit}
input,select,textarea{font-size:max(16px,1em)}
.wrap{padding-inline:var(--gut);max-width:1340px;margin-inline:auto}
main,.foot{position:relative;z-index:2}
#dust{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold-hi);letter-spacing:0}
.h2{font-weight:500;font-size:clamp(2.1rem,4.6vw,3.8rem);line-height:1.06;letter-spacing:-.035em}
.h2.xl{font-size:clamp(2.6rem,7.2vw,6.4rem);line-height:1;letter-spacing:-.045em}
.lead{max-width:44ch;margin-top:1.6rem;color:#D4D0C6;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.6}

/* bar */
.bar{position:fixed;inset:0 0 auto 0;z-index:60;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-s)}
.mark{font-weight:600;font-size:1.3rem;letter-spacing:-.02em;text-decoration:none;margin-right:auto;color:var(--gold-hi)}
.bar-nav{display:flex;gap:26px}
.bar-nav a{text-decoration:none;font-size:.96rem;opacity:.82}
.bar-nav a:hover{opacity:1;color:var(--gold-hi)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 32px;background:var(--foil);background-size:260% 100%;background-position:0 0;color:#1A1304;font:600 1rem var(--sans);letter-spacing:-.005em;border:0;border-radius:2px;text-decoration:none;cursor:pointer;transition:background-position .6s cubic-bezier(.2,.7,.2,1)}
.btn:hover{background-position:100% 0}
.btn-sm{min-height:42px;padding:0 20px;font-size:.92rem}
.btn-ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1px rgba(243,239,231,.5)}
.btn-ghost:hover{background:var(--text);color:#0A0D12}

/* scenes: fixed stage inside a tall wrapper */
.scene{position:relative}
.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{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#film{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .5s}
#film.ready{opacity:1}
.shade{position:absolute;inset:0;pointer-events:none}
.hero{height:660vh}
.hero .shade{background:linear-gradient(0deg,rgba(4,6,10,.7) 0%,rgba(4,6,10,0) 40%),linear-gradient(180deg,rgba(4,6,10,.55) 0%,rgba(4,6,10,0) 22%)}
.bars{position:absolute;inset:0;pointer-events:none;z-index:3}
.bars i{position:absolute;left:0;right:0;height:var(--bar,11vh);background:var(--ink)}
.bars i:first-child{top:0}.bars i:last-child{bottom:0}
.caps{position:absolute;inset:0;z-index:4;pointer-events:none}
.card{position:absolute;left:var(--gut);right:var(--gut);text-align:center;opacity:0;transform:translateY(14px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.card.is-on{opacity:1;transform:none;pointer-events:auto}
.c1,.c2{bottom:19vh;font-weight:500;font-size:clamp(2.6rem,7vw,6.2rem);line-height:1;letter-spacing:-.045em;text-shadow:0 2px 40px rgba(0,0,0,.65)}
.card.name{bottom:16vh}
.wordmark{font-weight:600;font-size:clamp(3.6rem,11.5vw,10rem);line-height:.95;letter-spacing:-.055em;color:var(--gold-hi);text-shadow:0 2px 50px rgba(0,0,0,.75)}
.sub{margin-top:1.1rem;font-size:clamp(1rem,1.5vw,1.3rem);color:var(--text)}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8rem;justify-content:center}
.scrollhint{position:absolute;left:50%;bottom:calc(11vh + 18px);transform:translateX(-50%);z-index:4;font-size:.85rem;color:var(--text);opacity:.85;transition:opacity .4s}
.scrollhint::after{content:"";display:block;width:1px;height:34px;margin:8px auto 0;background:linear-gradient(var(--gold),transparent)}
.note{position:absolute;right:var(--gut);bottom:calc(11vh + 12px);z-index:4;font-size:.76rem;color:rgba(243,239,231,.55)}

/* promise */
.promise{padding:clamp(130px,19vw,260px) 0 clamp(100px,14vw,200px)}
.promise .h2{max-width:13ch}

/* route */
.route{height:560vh}
.route .shade{background:linear-gradient(90deg,rgba(4,6,10,.88) 0%,rgba(4,6,10,.55) 38%,rgba(4,6,10,0) 68%),linear-gradient(0deg,rgba(4,6,10,.6) 0%,rgba(4,6,10,0) 30%)}
.chap-wrap{position:absolute;z-index:4;left:var(--gut);top:50%;transform:translateY(-50%);width:min(560px,86vw);height:60vh}
.chap{position:absolute;left:0;top:50%;width:100%;transform:translateY(-46%);opacity:0;transition:opacity .7s,transform .7s}
.chap.on{opacity:1;transform:translateY(-50%)}
.chap .num{font-family:var(--serif);font-style:italic;font-size:clamp(3rem,6vw,5rem);color:var(--gold);line-height:1}
.chap h3{font-weight:500;font-size:clamp(2.2rem,4.6vw,4rem);line-height:1.02;letter-spacing:-.04em;margin:.3rem 0 1.1rem}
.chap p{max-width:40ch;color:#DAD6CC;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.6}
.trail{position:absolute;z-index:4;left:var(--gut);bottom:calc(11vh + 22px);width:min(560px,86vw)}
.trail-line{position:relative;display:block;height:2px;background:rgba(243,239,231,.2)}
.trail-line i{position:absolute;left:0;top:0;width:100%;height:2px;background:var(--foil);transform-origin:left;transform:scaleX(0)}
.trail ol{list-style:none;display:flex;justify-content:space-between;margin-top:.7rem;font-size:.92rem;color:var(--mute)}
.trail li{transition:color .4s}.trail li.on{color:var(--gold-hi)}

/* inside */
.inside{height:340vh}
.inside .shade{background:linear-gradient(0deg,rgba(4,6,10,.85) 0%,rgba(4,6,10,.2) 45%,rgba(4,6,10,0) 70%)}
.in-caps{left:var(--gut);right:var(--gut);bottom:11vh;top:auto}
.in-caps .h2,.in-caps .lead{opacity:0;transform:translateY(16px);transition:opacity .9s,transform .9s}
.in-caps.on .h2,.in-caps.on .lead{opacity:1;transform:none}
.in-caps .lead{transition-delay:.15s}

/* hands */
.hands{padding:clamp(100px,14vw,200px) 0}
.hands-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(30px,6vw,100px);align-items:center}
.hands-vid{position:relative;overflow:hidden;aspect-ratio:16/10;border:1px solid var(--line)}
.hands-vid video,.hands-vid .vp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fcard .vp,video[data-src]{opacity:0;transition:opacity .6s}video[data-src].on{opacity:1}
.hands-txt .lead{max-width:36ch}

/* fleet */
.fleet{padding:clamp(80px,12vw,180px) 0 clamp(60px,8vw,100px)}
.fan{display:grid;grid-template-columns:1fr 1fr;max-width:1500px;margin:clamp(50px,7vw,100px) auto 0;padding:0 var(--gut);perspective:1800px;--sp:0}
.fcard{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);background:var(--ink-3);will-change:transform}
.fcard:first-child{transform:translateX(calc((1 - var(--sp)) * 22%)) rotateY(calc((1 - var(--sp)) * 14deg));transform-origin:100% 50%;z-index:2}
.fcard:last-child{transform:translateX(calc((1 - var(--sp)) * -22%)) rotateY(calc((1 - var(--sp)) * -14deg));transform-origin:0 50%;margin-left:clamp(14px,2vw,28px)}
.fcard::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,6,10,.92) 0%,rgba(4,6,10,.3) 45%,rgba(4,6,10,0) 70%)}
.fc-t{position:absolute;z-index:2;left:clamp(18px,2.6vw,38px);right:clamp(18px,2.6vw,38px);bottom:clamp(18px,2.6vw,36px)}
.yr{font-family:var(--serif);font-style:italic;font-size:clamp(2.4rem,4.4vw,3.8rem);color:var(--gold);line-height:1}
.fc-t h3{font-weight:500;font-size:clamp(1.6rem,2.8vw,2.4rem);letter-spacing:-.03em;line-height:1.05;margin:.3rem 0 .6rem}
.fc-t p{max-width:34ch;color:#DAD6CC;font-size:1.02rem}
.fine{margin-top:2rem;font-size:.84rem;color:var(--mute)}

/* how */
.how{padding:clamp(90px,13vw,190px) 0}
.steps{list-style:none;margin-top:clamp(40px,6vw,80px);max-width:1040px}
.steps li{display:grid;grid-template-columns:clamp(80px,12vw,170px) 1fr;gap:20px;align-items:baseline;padding:1.8rem 0;border-top:1px solid var(--line)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps .n{font-family:var(--serif);font-style:italic;font-size:clamp(3.4rem,8vw,6.6rem);line-height:.9;color:var(--gold)}
.steps h3{font-weight:500;font-size:clamp(1.6rem,3vw,2.6rem);letter-spacing:-.035em;line-height:1.1}
.steps p{margin-top:.5rem;color:var(--mute);max-width:46ch}

/* quiet */
.quiet{padding:clamp(80px,12vw,170px) 0}
.std{margin-top:clamp(40px,6vw,80px);max-width:1040px}
.std>div{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;padding:1.6rem 0;border-top:1px solid var(--line)}
.std>div:last-child{border-bottom:1px solid var(--line)}
.std dt{font-weight:500;font-size:clamp(1.5rem,2.6vw,2.2rem);letter-spacing:-.03em}
.std dd{color:var(--mute);align-self:center}

/* faq */
.faq{padding:clamp(80px,12vw,160px) 0}
.faq-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(30px,6vw,90px);align-items:start}
.qa details{border-top:1px solid var(--line)}
.qa details:last-child{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;padding:1.3rem 2.4rem 1.3rem 0;position:relative;font-weight:500;font-size:clamp(1.2rem,1.9vw,1.5rem);letter-spacing:-.02em;line-height:1.25}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:4px;top:50%;width:13px;height:13px;margin-top:-10px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);transition:transform .3s}
.qa details[open] summary::after{transform:rotate(-135deg);margin-top:-4px}
.qa p{padding:0 0 1.5rem;max-width:52ch;color:var(--mute)}

/* request */
.request{padding:clamp(90px,13vw,190px) 0;background:linear-gradient(180deg,rgba(4,6,10,0),rgba(8,11,17,.9) 22%)}
.req-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:start}
.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:54px;padding:12px 14px;background:var(--ink);color:var(--text);border:1px solid var(--line);border-radius:2px;font-family:var(--sans)}
.form select{color:#0A0D12;background:#EDE7D8}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);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(--gold-hi)} .status.err{color:#F1A99B}

.foot{border-top:1px solid var(--line);padding:56px 0 calc(40px + env(safe-area-inset-bottom));background:var(--ink)}
.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(--text)}
.by{width:100%;font-size:.85rem}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

/* phone */
@media (max-width:759px){
  body{font-size:17px}
  .bar{gap:12px}.bar-nav{display:none}.mark{font-size:1.2rem}
  .stage,.hero .stage,.route .stage,.inside .stage{height:100lvh}
  .hero{height:560vh}.route{height:480vh}.inside{height:300vh}
  .bars i{height:var(--bar,6vh)}
  .hero .shade{background:linear-gradient(0deg,rgba(4,6,10,.9) 0%,rgba(4,6,10,.45) 36%,rgba(4,6,10,0) 64%),linear-gradient(180deg,rgba(4,6,10,.6) 0%,rgba(4,6,10,0) 20%)}
  .c1,.c2{bottom:calc(14vh + (100lvh - 100svh));text-align:left;font-size:clamp(2.6rem,12.5vw,3.6rem)}
  .card.name{bottom:calc(9vh + (100lvh - 100svh));text-align:left}
  .wordmark{font-size:clamp(3.4rem,17.5vw,5rem)}
  .cta{justify-content:flex-start}.cta .btn{flex:1 1 150px}
  .scrollhint,.note{display:none}
  .route .shade{background:linear-gradient(0deg,rgba(4,6,10,.92) 0%,rgba(4,6,10,.6) 34%,rgba(4,6,10,0) 62%)}
  .chap-wrap{left:var(--gut);right:var(--gut);width:auto;top:auto;bottom:calc(8vh + (100lvh - 100svh));transform:none;height:36vh}
  .chap{top:auto;bottom:0;transform:translateY(10px)}.chap.on{transform:none}
  .chap .num{font-size:2.4rem}.chap h3{font-size:clamp(2rem,9.5vw,2.8rem);margin-bottom:.7rem}
  .trail{left:var(--gut);right:var(--gut);bottom:calc(3vh + (100lvh - 100svh));width:auto}
  .trail ol{display:none}
  .in-caps{bottom:calc(8vh + (100lvh - 100svh))}
  .hands-grid,.faq-grid,.req-grid{grid-template-columns:1fr}
  .hands-vid{aspect-ratio:4/5}
  .fan{grid-template-columns:1fr;gap:16px;--sp:1}
  .fcard:first-child,.fcard:last-child{transform:none;margin-left:0}
  .steps li{grid-template-columns:64px 1fr}
  .std>div{grid-template-columns:1fr;gap:6px}
  .two{grid-template-columns:1fr}
  .form .btn{justify-self:stretch}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero,.route,.inside{height:auto}
  .stage,.stage.is-fixed,.stage.is-after{position:relative;height:100svh}
  #film,#dust{display:none}
  .card{position:relative;opacity:1;transform:none;margin-top:1rem}
  .card:not(.is-on){display:none}
  .chap{position:relative;opacity:1;transform:none;margin-bottom:2rem}.chap-wrap{height:auto;position:relative;transform:none;top:auto}
  .in-caps .h2,.in-caps .lead{opacity:1;transform:none}
  .rv{opacity:1;transform:none}
  .fan{--sp:1}
  *{transition-duration:.01ms!important}
}
