:root{
  --forest:#16301f; --canopy:#24492f; --birch:#eaf0e4; --paper:#fbfcf7;
  --fern:#2f7a45; --fern-dark:#235e35; --signal:#b4530a; --alert:#9d2f2f;
  --line:#d2dbca; --muted:#5c6b58;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--birch);
  color:var(--forest);-webkit-font-smoothing:antialiased;line-height:1.5}
h1,h2,h3{font-family:'Bricolage Grotesque',Inter,sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.08;margin:0 0 12px}
h1{font-size:28px} h2{font-size:19px} p{margin:0 0 10px}
a{color:var(--fern-dark)}
button{font-family:inherit;cursor:pointer}
.wrap{max-width:640px;margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;border-radius:6px;z-index:99}

.masthead{background:var(--forest);color:var(--birch)}
.masthead-in{display:flex;align-items:center;justify-content:space-between;padding:13px 18px}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:15px}
.waymark{width:10px;height:22px;border-radius:2px;
  background:linear-gradient(180deg,var(--birch) 0 45%,var(--signal) 45% 100%)}
.brand-note{font-size:11px;opacity:.6;text-transform:uppercase;letter-spacing:.05em}

main{padding:0 0 40px}
.hero,.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:20px 18px;margin:16px 0}
.eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal);font-weight:600;margin-bottom:7px}
.lede{color:var(--muted);font-size:15px}
.lede-sm{color:var(--muted);font-size:13.5px}
.fine{font-size:11.5px;color:var(--muted)}
.back{background:none;border:0;color:var(--fern-dark);font-size:13.5px;font-weight:600;
  padding:14px 0 0;display:inline-block;text-decoration:none}

.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 0}
.facts div{border-top:2px solid var(--forest);padding-top:7px}
.facts dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.facts dd{margin:3px 0 0;font-weight:600;font-size:14.5px}
.facts .unit{font-weight:400;color:var(--muted);font-size:12.5px}

.options{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.option{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);
  border-left:4px solid var(--fern);border-radius:11px;padding:15px;text-decoration:none;color:var(--forest)}
.option:hover{box-shadow:0 2px 10px rgba(22,48,31,.1)}
.opt-main{flex:1;display:grid;gap:2px}
.opt-main strong{font-family:'Bricolage Grotesque',sans-serif;font-size:16px}
.opt-sub{font-size:11.5px;color:var(--muted)}
.opt-price{display:grid;justify-items:end}
.opt-price strong{font-family:'Bricolage Grotesque',sans-serif;font-size:19px}
.opt-price em{font-style:normal;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.opt-go{color:var(--fern);font-size:17px}

.daystrip{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px}
.day{flex:0 0 auto;width:56px;padding:9px 0;border-radius:9px;border:1px solid var(--line);
  background:#fff;display:grid;gap:1px;justify-items:center;color:var(--forest)}
.day-name{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.day-num{font-family:'Bricolage Grotesque',sans-serif;font-size:18px;font-weight:800;line-height:1.1}
.day-month{font-size:10px;color:var(--muted)}
.day-on{background:var(--forest);border-color:var(--forest);color:#fff}
.day-on .day-name,.day-on .day-month{color:rgba(255,255,255,.7)}
.day-full{opacity:.35}

.slots{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:8px}
.slot{width:100%;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);
  border-radius:9px;background:#fff;text-align:left;color:var(--forest)}
.slot:hover:not(:disabled){border-color:var(--fern)}
.slot:disabled{opacity:.45}
.slot-time{font-family:'Bricolage Grotesque',sans-serif;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.slot-meta{display:grid;gap:1px;flex:1}
.slot-spaces{font-size:13px;font-weight:500}
.slot-kit{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.slot-go{color:var(--fern);font-size:17px}

.counter{display:flex;align-items:center;gap:16px;margin:14px 0 18px}
.counter button{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--forest);
  background:#fff;font-size:21px;color:var(--forest)}
.counter button:disabled{opacity:.28}
.counter-value{font-family:'Bricolage Grotesque',sans-serif;font-size:26px;font-weight:800}
.counter-unit{font-family:Inter,sans-serif;font-size:13px;font-weight:400;color:var(--muted);margin-left:7px}

.rack{display:grid;gap:12px;margin-bottom:18px}
.rail{border:1px solid var(--line);border-radius:9px;padding:11px 12px;background:#fff}
.rail-short{border-color:var(--signal);background:#fdf6ec}
.rail-head{display:flex;justify-content:space-between;align-items:baseline}
.rail-label{font-family:'Bricolage Grotesque',sans-serif;font-size:16px;font-weight:800}
.rail-count{font-size:11.5px;color:var(--muted)}
.rail-short .rail-count{color:var(--signal);font-weight:700}
.ticks{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px;min-height:12px}
.tick{width:15px;height:9px;border-radius:2px;border:1.5px solid var(--forest)}
.tick-taken{background:var(--fern);border-color:var(--fern)}
.tick-missing{border-color:var(--signal);border-style:dashed;background:none}

.riders{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:8px}
.riders li{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
.rider-n{font-size:13px;font-weight:500}
.choice{display:flex;gap:6px}
.chip{padding:7px 13px;border-radius:999px;border:1.5px solid var(--line);background:#fff;
  font-size:13px;font-weight:700;color:var(--forest)}
.chip-on{background:var(--forest);border-color:var(--forest);color:#fff}
.chip:disabled{opacity:.4}

.notice{background:#fdf5e8;border:1px solid #e3c893;border-radius:9px;padding:12px;margin-bottom:16px;font-size:13px;color:#7a4a08}
.notice p{margin:0 0 4px}
.notice-head{font-weight:700;font-size:14px}

.total{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--forest);
  padding-top:11px;margin-bottom:14px;font-size:13.5px;color:var(--muted)}
.total strong{font-family:'Bricolage Grotesque',sans-serif;font-size:24px;color:var(--forest)}

.cta{width:100%;padding:15px;border:0;border-radius:10px;background:var(--fern);color:#fff;
  font-family:'Bricolage Grotesque',sans-serif;font-size:16px;font-weight:800}
.cta:hover:not(:disabled){background:var(--fern-dark)}
.cta:disabled{background:#aab5a5}

.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.fields label{display:grid;gap:5px;font-size:12.5px;font-weight:500}
.fields .wide{grid-column:1/-1}
.fields input{padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:15px;background:#fff;color:var(--forest)}
.fields input:focus{outline:2px solid var(--fern);outline-offset:1px}
.fields small{font-size:11px;color:var(--muted);font-weight:400}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin-bottom:10px}
.check input{width:19px;height:19px;margin:0;accent-color:var(--fern)}

.timer{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;
  background:#e4efe0;color:var(--fern-dark);font-size:12.5px;font-weight:700;margin-bottom:14px;font-variant-numeric:tabular-nums}
.timer-dot{width:7px;height:7px;border-radius:50%;background:var(--fern)}
.timer-low{background:#fbeedb;color:#8a4708}
.timer-low .timer-dot{background:var(--signal)}

.stamp{display:inline-block;padding:5px 11px;border:2px solid var(--fern);color:var(--fern-dark);
  border-radius:5px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  transform:rotate(-1.5deg);margin-bottom:14px}
.ref{display:grid;gap:3px;padding:15px;border-radius:10px;background:var(--forest);color:#fff;margin-bottom:6px}
.ref span{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.65}
.ref strong{font-family:'Bricolage Grotesque',sans-serif;font-size:29px;letter-spacing:.04em;font-weight:800}
.ref small{font-size:11.5px;opacity:.7}
.reserved{border:1px solid var(--line);border-radius:9px;padding:12px;background:#fff;margin:14px 0}
.reserved-head{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:7px}
.reserved ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.reserved li{display:flex;gap:10px;align-items:center;font-size:13px}
.asset{font-family:ui-monospace,Menlo,monospace;font-size:11px;background:var(--birch);padding:2px 7px;border-radius:4px}

.shot{margin:16px 0;padding:0}
.shot img{width:100%;height:auto;border-radius:12px;display:block;border:1px solid var(--line)}
.shot figcaption{font-size:11.5px;color:var(--muted);margin-top:7px}

.loading{display:flex;align-items:center;gap:10px;padding:30px 0;color:var(--muted);font-size:13.5px}
.spinner{width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--fern);
  border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.foot{padding:18px 0 34px;font-size:11.5px;color:var(--muted)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:7px}
.sep{opacity:.4}

button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:420px){h1{font-size:24px}.facts,.fields{grid-template-columns:1fr}}
