:root{
  --sea-deep:#0F3D57;
  --sea-mid:#2C7DA0;
  --sea-light:#8FCBE0;
  --lemon:#F2B705;
  --lemon-deep:#B5820A;
  --majolica:#4C7A5E;
  --terracotta:#C1543D;
  --whitewash:#FBF7EE;
  --paper:#F3EDDD;
  --ink:#1F2E33;
  --ink-soft:#4B5B60;
  --line:#D8CFB8;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--whitewash);
  color:var(--ink);
  font-family:'Assistant',sans-serif;
  line-height:1.6;
}
h1,h2,h3,.disp{font-family:'Amatic SC',serif;}
a{color:inherit;}
img{max-width:100%;display:block;}

.daynav{
  position:sticky; top:0; z-index:50;
  background:var(--sea-deep);
  display:flex; overflow-x:auto; gap:2px;
  padding:0 10px; -webkit-overflow-scrolling:touch;
  box-shadow:0 2px 10px rgba(15,61,87,.25);
}
.daynav::-webkit-scrollbar{height:0;}
.daynav a{
  flex:0 0 auto; color:#CFE6EF; text-decoration:none;
  font-size:12.5px; padding:11px 12px; white-space:nowrap;
  border-bottom:3px solid transparent;
}
.daynav a:hover, .daynav a.active{color:#fff; border-bottom-color:var(--lemon);}
.daynav a.tab-info{color:var(--lemon); border-bottom-color:rgba(242,183,5,.35); font-weight:600;}
.daynav a.tab-info:hover, .daynav a.tab-info.active{color:#fff; border-bottom-color:var(--lemon);}

.hero{
  position:relative; background:linear-gradient(180deg,var(--sea-deep) 0%, var(--sea-mid) 100%);
  color:#fff; padding:64px 20px 120px; text-align:center; overflow:hidden;
}
.hero .eyebrow{ font-size:13px; letter-spacing:.14em; color:var(--lemon); font-weight:600; }
.hero h1{font-size:44px; margin:14px 0 6px; font-weight:700;}
.hero .sub{font-size:17px; color:#D9ECF2; margin:0;}
.hero .dates{
  display:inline-block; margin-top:22px; padding:9px 22px;
  border:1px solid rgba(255,255,255,.35); border-radius:30px; font-size:14.5px;
}
.wave{position:absolute; bottom:-1px; left:0; width:100%; line-height:0;}

.facts{
  max-width:980px; margin:-72px auto 0; position:relative; z-index:5;
  background:#fff; border-radius:16px; box-shadow:0 10px 30px rgba(15,61,87,.15);
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  overflow:hidden;
}
.facts .fact{padding:20px 18px; border-inline-start:1px solid var(--line);}
.facts .fact:first-child{border-inline-start:none;}
.facts .fact .lbl{font-size:11.5px; color:var(--ink-soft); letter-spacing:.06em;}
.facts .fact .val{font-size:15.5px; font-weight:600; margin-top:4px;}
.facts .fact .val small{display:block; font-weight:400; font-size:12.5px; color:var(--ink-soft); margin-top:2px;}

.wrap{max-width:980px; margin:0 auto; padding:0 20px;}
.section-title{text-align:center; margin:70px 0 8px;}
.section-title h2{font-size:36px; margin:0;}
.section-title p{color:var(--ink-soft); font-size:14.5px; margin:6px 0 0;}

#map{height:420px; border-radius:16px; margin:26px 0 10px; border:1px solid var(--line); filter:saturate(.9);}
.maplegend{display:flex; flex-wrap:wrap; gap:10px 18px; justify-content:center; font-size:12.5px; color:var(--ink-soft); margin-bottom:10px;}
.maplegend span{display:inline-flex; align-items:center; gap:6px;}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;}

.drivers{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:26px 0 10px;}
.driver-card{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px 14px; text-align:center; }
.driver-card .carnum{
  width:30px;height:30px;border-radius:50%;background:var(--sea-deep);color:#fff;
  display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-size:13px;font-weight:600;
}
.driver-card .names{font-size:14px; font-weight:600;}

.ribbon-wrap{position:relative; max-width:980px; margin:0 auto; padding:0 20px;}
.ribbon-svg{position:absolute; top:0; bottom:0; right:50%; width:3px; transform:translateX(50%);}
@media(max-width:720px){.ribbon-svg{right:26px; transform:none;}}

.day{ position:relative; margin:0 0 54px; scroll-margin-top:56px; }
.day-head{ display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.day-badge{
  flex:0 0 auto; width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  color:#fff; box-shadow:0 6px 16px rgba(0,0,0,.12);
}
.day-badge .num{font-family:'Frank Ruhl Libre',serif; font-size:22px; font-weight:700; line-height:1;}
.day-badge .dow{font-size:10px; letter-spacing:.05em; margin-top:1px;}
.day-head h2{margin:0; font-size:32px;}
.day-head .place{color:var(--ink-soft); font-size:14px; margin-top:2px;}

.day-body{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px 24px;
  box-shadow:0 4px 18px rgba(31,46,51,.05);
}
.day-hero{width:100%; height:150px; object-fit:cover; object-position:center; border-radius:12px; margin-bottom:18px;}

.timeline{list-style:none; margin:0; padding:0;}
.timeline li{
  display:grid; grid-template-columns:84px 62px 1fr; gap:12px; padding:10px 0; align-items:center;
  border-top:1px dashed var(--line);
}
.timeline li:first-child{border-top:none;}
.timeline .thumb{width:84px; height:84px; object-fit:cover; border-radius:10px; flex-shrink:0;}
.timeline .time{font-weight:600; color:var(--sea-deep); font-size:13.5px; padding-top:1px;}
.timeline .what b{display:block; font-size:15px; margin-bottom:2px;}
.timeline .what span{font-size:13.5px; color:var(--ink-soft);}

.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
.tag{ font-size:12.5px; padding:5px 12px; border-radius:20px; font-weight:600; display:inline-flex; align-items:center; gap:5px; }
.tag.parking{background:#EAF1F4; color:var(--sea-deep);}
.tag.food{background:#FCEFDD; color:#8A5A16;}
.tag.tip{background:#EFF4EA; color:var(--majolica);}
.tag.note{background:#FBEAE6; color:var(--terracotta);}

.intro-page{scroll-margin-top:56px;}
.intro-body p{font-size:15.5px; margin:0 0 14px;}
.intro-body p:last-child{margin-bottom:0;}

.checklist{list-style:none; margin:16px 0 44px; padding:0; display:flex; flex-direction:column; gap:10px;}
.checklist li{
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px 16px 12px 16px;
  font-size:14.5px; display:flex; align-items:flex-start; gap:10px;
}
.checklist li::before{content:'✓'; color:var(--majolica); font-weight:700; flex-shrink:0;}

footer{ text-align:center; padding:50px 20px 60px; color:var(--ink-soft); font-size:13px; }
footer .disp{font-size:20px; color:var(--sea-deep); margin-bottom:6px;}

@media(max-width:720px){
  .hero h1{font-size:44px;}
  .facts{grid-template-columns:repeat(2,1fr);}
  .facts .fact:nth-child(3){border-inline-start:none;}
  .drivers{grid-template-columns:repeat(2,1fr);}
  .day-body{padding:18px 16px;}
  .timeline li{grid-template-columns:66px 54px 1fr; gap:8px;}
  .timeline .thumb{width:66px;height:66px;}
}
