:root { --ink:#132019; --cream:#f3efe4; --paper:#fbf9f3; --lime:#d5f24b; --orange:#ed6a3a; --muted:#6e756f; --line:#d8d8ce; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Manrope",sans-serif; }
a { color:inherit; }
.shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.hero { min-height:760px; background:var(--ink); color:var(--paper); overflow:hidden; position:relative; }
.nav { height:90px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #ffffff26; position:relative; z-index:2; }
.brand { font:600 25px/1 "Newsreader",serif; text-decoration:none; letter-spacing:-2px; }
.brand span { color:var(--lime); font-style:italic; }
.nav-links { display:flex; gap:36px; }
.nav-links a { color:#cdd2cc; text-decoration:none; font-size:13px; }
.live-pill { border:1px solid #ffffff38; border-radius:999px; padding:8px 13px; text-transform:uppercase; font:500 10px "DM Mono",monospace; letter-spacing:.08em; }
.live-pill i { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--lime); margin-right:7px; }
.hero-content { position:relative; z-index:1; padding-top:112px; }
.eyebrow { margin:0 0 26px; text-transform:uppercase; font:500 11px "DM Mono",monospace; letter-spacing:.14em; color:var(--lime); }
.eyebrow span { margin:0 8px; }
h1,h2 { font-family:"Newsreader",serif; font-weight:500; margin:0; letter-spacing:-.045em; }
h1 { font-size:clamp(78px,11vw,148px); line-height:.75; }
h1 em { color:var(--lime); font-weight:500; }
.lede { max-width:520px; margin:42px 0 35px; font-size:17px; line-height:1.7; color:#bdc4be; }
.hero-actions { display:flex; align-items:center; gap:30px; }
.button { display:inline-flex; gap:28px; align-items:center; padding:16px 19px; text-decoration:none; font-size:13px; font-weight:600; }
.button-primary { background:var(--lime); color:var(--ink); }
.text-link { font-size:13px; color:#e5e7e3; text-decoration:none; border-bottom:1px solid #ffffff50; padding-bottom:5px; }
.text-link span { margin-left:8px; }
.route-line { position:absolute; right:-2%; bottom:58px; width:53%; display:flex; align-items:center; gap:0; color:#8f9891; font:12px "DM Mono",monospace; }
.route-line:before { content:""; position:absolute; height:1px; background:#ffffff30; left:25px; right:30px; }
.route-line i { position:relative; z-index:1; width:7px; height:7px; background:var(--ink); border:1px solid #859087; border-radius:50%; margin:auto; }
.route-line span { position:relative; z-index:1; width:50px; height:50px; display:grid; place-items:center; border:1px solid #ffffff4a; border-radius:50%; background:var(--ink); }
.route-line .route-destination { background:var(--lime); color:var(--ink); border:none; }
.stats { display:grid; grid-template-columns:repeat(4,1fr); padding:48px 0; border-bottom:1px solid var(--line); }
.stats div { display:flex; flex-direction:column; padding-left:35px; border-left:1px solid var(--line); }
.stats div:first-child { border:0; padding-left:0; }
.stats strong { font:500 44px "Newsreader",serif; }
.stats span { margin-top:4px; color:var(--muted); text-transform:uppercase; font:10px "DM Mono",monospace; letter-spacing:.12em; }
.route-section,.notes-section,.sleep-section { padding-block:115px; }
.section-heading { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:64px; }
.section-heading h2 { font-size:clamp(52px,6vw,78px); line-height:.9; }
.section-heading>p { max-width:470px; justify-self:end; margin:0; color:var(--muted); line-height:1.8; font-size:15px; }
.eyebrow.dark { color:#66715a; }
.route-card { background:#e7e2d5; padding:30px 36px 42px; }
.route-card-top { display:flex; justify-content:space-between; text-transform:uppercase; font:10px "DM Mono",monospace; letter-spacing:.11em; color:#6d716c; padding-bottom:30px; border-bottom:1px solid #c8c5ba; }
.cities { list-style:none; margin:45px 0 0; padding:0; display:grid; grid-template-columns:repeat(7,1fr); position:relative; }
.cities:before { content:""; position:absolute; top:7px; left:3%; right:3%; height:1px; background:#b3b2a9; }
.cities li { position:relative; padding-top:32px; font:500 13px "Newsreader",serif; }
.cities li:before { content:""; position:absolute; top:3px; left:0; width:8px; height:8px; border-radius:50%; background:#e7e2d5; border:2px solid var(--ink); }
.cities li:first-child:before,.cities li:last-child:before { width:14px; height:14px; top:0; background:var(--orange); border:0; }
.cities small { display:block; margin-top:4px; color:#777c76; font:9px "DM Mono",monospace; text-transform:uppercase; }
.itinerary-section { background:var(--ink); color:var(--paper); padding-block:110px; }
.itinerary-heading>p { color:#9da69f; }
.day-tabs { display:flex; border-bottom:1px solid #ffffff25; overflow-x:auto; }
.day-tab { flex:1; min-width:155px; color:#929a94; background:none; border:0; padding:22px 10px; text-align:left; cursor:pointer; font:12px "DM Mono",monospace; border-bottom:2px solid transparent; }
.day-tab strong { display:block; color:inherit; font:500 24px "Newsreader",serif; margin-top:6px; }
.day-tab[aria-selected="true"] { color:var(--lime); border-bottom-color:var(--lime); }
.day-summary { display:flex; justify-content:space-between; align-items:center; padding:36px 0; border-bottom:1px solid #ffffff20; }
.day-summary p { color:#a7afa9; margin:5px 0 0; font-size:13px; }
.day-metrics { display:flex; gap:35px; font:11px "DM Mono",monospace; color:#c9ceca; }
.timeline { list-style:none; margin:0; padding:15px 0 0; }
.stop { display:grid; grid-template-columns:105px 35px 1fr auto; gap:15px; padding:25px 0; position:relative; }
.stop:not(:last-child):after { content:""; position:absolute; top:51px; bottom:-26px; left:121px; width:1px; background:#ffffff24; }
.stop time { color:#9ca59e; font:11px "DM Mono",monospace; padding-top:4px; }
.stop time span,.stop time small { display:block; white-space:nowrap; }
.stop time small { margin-top:5px; color:#69736c; font:9px "DM Mono",monospace; }
.stop-dot { width:12px; height:12px; margin-top:3px; border:2px solid var(--lime); border-radius:50%; position:relative; z-index:1; background:var(--ink); }
.stop.food .stop-dot { border-color:var(--orange); }
.stop.photo .stop-dot { border-color:#75aee7; }
.stop.sleep .stop-dot,.stop.destination .stop-dot { background:var(--lime); }
.stop h3 { margin:0 0 5px; font:500 20px "Newsreader",serif; }
.stop p { margin:0; color:#929b94; font-size:12px; line-height:1.6; }
.stop-link { align-self:start; color:#d9ddd9; text-decoration:none; font:10px "DM Mono",monospace; border:1px solid #ffffff28; padding:9px 11px; }
.sleep-section { border-bottom:1px solid var(--line); }
.sleep-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.sleep-card { border:1px solid var(--line); padding:30px; min-height:270px; }
.sleep-card>p:first-child,.sleep-card span { text-transform:uppercase; font:10px "DM Mono",monospace; letter-spacing:.1em; }
.sleep-card span { display:inline-block; margin-top:28px; color:var(--orange); }
.sleep-card h3 { margin:10px 0 20px; font:500 28px "Newsreader",serif; }
.sleep-card p:last-child { color:var(--muted); font-size:13px; line-height:1.7; }
.sleep-rules { margin-top:18px; padding:32px; color:var(--paper); background:var(--ink); display:grid; grid-template-columns:1fr 2fr; gap:30px; }
.sleep-rules h3 { margin:0; font:500 26px "Newsreader",serif; }
.sleep-rules ul { margin:0; padding-left:18px; columns:2; column-gap:40px; color:#b8c0ba; font-size:12px; line-height:1.65; }
.sleep-rules li { break-inside:avoid; margin:0 0 14px; }
.note-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.note { background:var(--paper); padding:35px; min-height:220px; }
.note-number { color:var(--orange); font:11px "DM Mono",monospace; }
.note h3 { margin:50px 0 10px; font:500 24px "Newsreader",serif; }
.note p { color:var(--muted); font-size:13px; line-height:1.7; margin:0; }
.status-band { background:var(--orange); color:#1a1c18; padding-block:70px; }
.status-inner { display:flex; justify-content:space-between; align-items:end; }
.status-band .eyebrow { color:#5a2a18; margin-bottom:16px; }
.status-band h2 { font-size:52px; }
.status-band p { margin-bottom:0; }
.status-meta { text-align:right; display:flex; flex-direction:column; text-transform:uppercase; font:10px "DM Mono",monospace; }
.status-meta strong { margin-top:8px; font-size:12px; }
footer { min-height:150px; display:flex; justify-content:space-between; align-items:center; color:#707770; font:11px "DM Mono",monospace; }
.dark-brand { color:var(--ink); }
@media (max-width:760px) {
  .shell { width:min(100% - 30px,1180px); }
  .hero { min-height:700px; }
  .nav-links { display:none; }
  .hero-content { padding-top:95px; }
  h1 { font-size:72px; }
  .route-line { width:85%; bottom:38px; }
  .stats { grid-template-columns:1fr 1fr; gap:25px 0; }
  .stats div:nth-child(3) { border:0; padding-left:0; }
  .stats strong { font-size:34px; }
  .section-heading { grid-template-columns:1fr; gap:25px; }
  .section-heading>p { justify-self:start; }
  .cities { grid-template-columns:1fr; margin-top:25px; }
  .cities:before { left:6px; top:8px; bottom:8px; width:1px; height:auto; right:auto; }
  .cities li { padding:0 0 25px 30px; }
  .cities li:before { top:3px; }
  .cities li:first-child:before,.cities li:last-child:before { top:1px; }
  .day-tab { min-width:130px; }
  .day-summary { align-items:flex-start; gap:15px; }
  .day-metrics { flex-direction:column; gap:5px; text-align:right; }
  .stop { grid-template-columns:67px 20px 1fr; gap:9px; }
  .stop:not(:last-child):after { left:76px; }
  .stop-link { grid-column:3; justify-self:start; }
  .note-grid { grid-template-columns:1fr; }
  .sleep-grid { grid-template-columns:1fr; }
  .sleep-rules { grid-template-columns:1fr; }
  .sleep-rules ul { columns:1; }
  .status-inner { align-items:flex-start; gap:35px; flex-direction:column; }
  .status-meta { text-align:left; }
  footer { padding:35px 0; flex-direction:column; align-items:flex-start; gap:15px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
