:root {
  --bg: #fff4d6;
  --surface: #ffffff;
  --ink: #1a1a2e;
  --yellow: #ffd93d;
  --pink: #ff5c8a;
  --green: #3ddc97;
  --orange: #ff7a3d;
  --violet: #7b5cfa;
  --text: #1a1a2e;
  --muted: #6b6452;
  --border: #1a1a2e;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  background-color: var(--bg);
  background-image: radial-gradient(circle, rgba(26,26,46,0.07) 2px, transparent 2px);
  background-size: 22px 22px;
  color: var(--text);
  font-family: 'Nunito', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 { font-family:'Fredoka', sans-serif; font-weight:600; line-height:1.2; color: var(--ink); }
a { color: inherit; text-decoration:none; }

.section-inner { max-width: 920px; margin:0 auto; padding: 88px 24px; }

.eyebrow {
  font-family:'JetBrains Mono', monospace;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.7rem;
  color: var(--pink);
  margin-bottom:16px;
  font-weight:700;
}

.nav { position:sticky; top:0; z-index:10; background: var(--yellow); border-bottom:3px solid var(--ink); }
.nav-inner { max-width:920px; margin:0 auto; padding:16px 24px; display:flex; justify-content:space-between; align-items:center; }
.logo { font-family:'Fredoka', sans-serif; font-weight:700; font-size:1.3rem; color: var(--ink); transform: rotate(-2deg); display:inline-block; }
.nav-cta { font-size:0.85rem; padding:10px 18px; border-radius:999px; background: var(--pink); color:#fff; font-weight:700; border:2.5px solid var(--ink); box-shadow: 3px 3px 0 var(--ink); transition: transform .15s, box-shadow .15s; }
.nav-cta:hover { transform: translateY(-2px); box-shadow: 4px 5px 0 var(--ink); }

.hero-inner { max-width:680px; margin:0 auto; padding:80px 24px 100px; text-align:center; }
.hero h1 { font-size: clamp(2.3rem, 6vw, 3.6rem); margin-bottom:20px; }
.hero-sub { color: var(--muted); font-size:1.05rem; max-width:540px; margin:0 auto 32px; font-weight:600; }
.hero-actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:40px; }

.btn { display:inline-block; padding:14px 30px; border-radius:999px; font-weight:700; font-size:0.95rem; border:2.5px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); transition: transform .15s, box-shadow .15s; }
.btn:focus-visible { outline:2px solid var(--violet); outline-offset:3px; }
.btn:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--ink); }
.btn-primary { background: var(--orange); color: var(--ink); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 5px 6px 0 var(--ink); }
.btn-ghost { background: var(--surface); color: var(--ink); }
.btn-ghost:hover { background: var(--yellow); transform: translateY(-2px); box-shadow: 5px 6px 0 var(--ink); }

.chip-row { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:40px; }
.chip { background: var(--surface); border:2.5px solid var(--ink); padding:8px 16px; border-radius:999px; font-size:0.85rem; font-weight:700; color: var(--ink); box-shadow: 3px 3px 0 var(--ink); transition: transform .15s; }
.chip:nth-child(odd) { transform: rotate(-3deg); }
.chip:nth-child(even) { transform: rotate(2deg); }
.chip:hover { transform: scale(1.08) rotate(0deg); }

.tracker-card { background: var(--surface); border:3px solid var(--ink); border-radius:22px; padding:24px; max-width:380px; margin:0 auto; text-align:left; box-shadow: 6px 6px 0 var(--ink); }
.tracker-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.tracker-id { font-family:'JetBrains Mono', monospace; font-size:0.75rem; color: var(--muted); }
.tracker-eta { font-family:'JetBrains Mono', monospace; font-size:0.75rem; color: var(--orange); font-weight:700; }
.tracker-restaurant { font-weight:700; margin-bottom:18px; font-family:'Fredoka', sans-serif; }

.stepper { display:flex; justify-content:space-between; position:relative; }
.stepper::before { content:""; position:absolute; top:7px; left:7px; right:7px; height:3px; background: var(--bg); border-top:1px dashed var(--ink); z-index:0; }
.step { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:8px; flex:1; }
.step .dot { width:16px; height:16px; border-radius:50%; background: #fff; border:2.5px solid var(--ink); }
.step.is-done .dot { background: var(--green); }
.step.is-active .dot { background: var(--orange); animation: pulse-glow 1.2s ease-in-out infinite; }
.step-label { font-size:0.68rem; color: var(--muted); text-align:center; font-weight:700; }
.step.is-active .step-label { color: var(--orange); }

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,122,61,0.5); }
  50% { box-shadow: 0 0 0 7px rgba(255,122,61,0.18); }
}

.how h2, .why h2, .restaurants h2, .access h2, .faq h2 { font-size: clamp(1.8rem,4vw,2.4rem); margin-bottom:40px; max-width:560px; }

.steps { list-style:none; display:flex; flex-direction:column; gap:28px; }
.steps li { display:flex; gap:18px; align-items:flex-start; }
.step-num { font-family:'Fredoka', sans-serif; font-weight:700; font-size:0.95rem; color: var(--ink); border:2.5px solid var(--ink); border-radius:50%; width:38px; height:38px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background: var(--yellow); box-shadow: 3px 3px 0 var(--ink); }
.steps h3 { font-size:1.1rem; margin-bottom:4px; }
.steps p { color: var(--muted); font-size:0.9rem; font-weight:600; }

.why { background: var(--surface); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.why-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:20px; }
.why-card { background: var(--bg); border:2.5px solid var(--ink); border-radius:18px; padding:24px; box-shadow: 4px 4px 0 var(--ink); }
.why-card:nth-child(1) { border-top:6px solid var(--orange); }
.why-card:nth-child(2) { border-top:6px solid var(--pink); }
.why-card:nth-child(3) { border-top:6px solid var(--green); }
.why-card:nth-child(4) { border-top:6px solid var(--violet); }
.why-card h3 { font-size:1.1rem; margin-bottom:8px; }
.why-card p { color: var(--muted); font-size:0.9rem; font-weight:600; }

.restaurants { background: var(--violet); }
.restaurants .eyebrow { color: var(--yellow); }
.restaurants h2 { color:#fff; }
.restaurants-text { color: #ece7ff; max-width:560px; margin-bottom:28px; font-size:1rem; font-weight:600; }

.access { background: linear-gradient(135deg, var(--orange), var(--pink)); text-align:center; }
.access .eyebrow { color: var(--ink); }
.access h2 { color: var(--ink); margin-left:auto; margin-right:auto; }

.footer { text-align:center; padding:36px 24px; color: var(--bg); font-size:0.85rem; background: var(--ink); font-weight:700; }

.faq-list { display:flex; flex-direction:column; gap:12px; }
.faq-item { background: var(--surface); border:2.5px solid var(--ink); border-radius:14px; overflow:hidden; box-shadow: 3px 3px 0 var(--ink); }
.faq-q { width:100%; text-align:left; padding:18px 20px; background:none; border:none; font-family:'Fredoka', sans-serif; font-weight:600; font-size:1rem; color: var(--ink); display:flex; justify-content:space-between; align-items:center; cursor:pointer; }
.faq-icon { color: var(--pink); font-size:1.3rem; transition: transform .25s; }
.faq-item.is-open .faq-icon { transform: rotate(135deg); }
.faq-a { max-height:0; overflow:hidden; transition: max-height .25s ease; padding:0 20px; }
.faq-a p { color: var(--muted); font-size:0.9rem; padding-bottom:18px; font-weight:600; }

.reveal { opacity:0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-visible { opacity:1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1; transform:none; transition:none; }
  .step.is-active .dot { animation:none; }
}

@media (max-width:640px) {
  .section-inner { padding:60px 20px; }
  .hero-inner { padding:56px 20px 72px; }
  .why-grid { grid-template-columns: 1fr; }
  .step-label { font-size:0.6rem; }
}