*,*::before,*::after{box-sizing:border-box}
:root{
  --mustard:#E8A93A; --teal:#1B7A72; --orange:#D24E1F; --aubergine:#3A1642;
  --paper:#F6EFDD; --ink:#1A1512;
  --rule:4px solid var(--ink);
  --dots:radial-gradient(var(--ink) 1.1px, transparent 1.2px);
}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Work Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:17px;line-height:1.68;font-weight:380}
h1,h2,h3,.display{font-family:"Archivo Black","Arial Black",Impact,sans-serif;
  font-weight:400;letter-spacing:-.018em;line-height:.94;text-transform:uppercase}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.col{max-width:62ch}

/* ---------- header: ticket-booth window ---------- */
.booth{background:var(--mustard);border-bottom:var(--rule)}
.booth-in{max-width:1180px;margin:0 auto;padding:18px 22px;
  display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.mark{display:block;border:var(--rule);background:var(--paper);
  padding:10px 18px 12px;text-decoration:none;flex:0 0 auto;align-self:stretch;
  display:flex;flex-direction:column;justify-content:center}
.mark b{font-family:"Archivo Black",sans-serif;font-size:27px;letter-spacing:-.03em;
  text-transform:uppercase;display:block;line-height:1}
.mark i{font-style:normal;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  display:block;margin-top:5px;font-weight:600}
.compartments{display:flex;flex-wrap:wrap;gap:12px;margin-left:auto;align-items:stretch}
.comp{border:var(--rule);text-decoration:none;padding:10px 15px;
  display:flex;flex-direction:column;justify-content:center;min-width:128px}
.comp span{font-family:"Archivo Black",sans-serif;font-size:15px;text-transform:uppercase;
  letter-spacing:-.01em;line-height:1.05;display:block}
.comp em{font-style:normal;display:block;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;margin-bottom:5px;opacity:.8}
.c-mustard{background:var(--mustard)} .c-teal{background:var(--teal);color:var(--paper)}
.c-orange{background:var(--orange);color:var(--paper)} .c-aubergine{background:var(--aubergine);color:var(--paper)}
.comp.c-mustard{background:var(--paper)}
.comp[aria-current="page"]{box-shadow:inset 0 0 0 4px var(--paper)}
.comp:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}

/* ---------- hero image ---------- */
.hero{border:var(--rule);margin:30px 0;overflow:hidden;background:var(--ink);
  aspect-ratio:21/9;max-height:420px}
.hero img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}

/* ---------- category intro with side image ---------- */
.intro-split{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start;
  margin:30px 0 8px}
.intro-split .opener{flex:1 1 320px;padding-top:8px;min-width:0}
.side-shot{flex:0 1 280px;margin:0;border:var(--rule);overflow:hidden;
  max-width:280px;width:100%}
.side-shot img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}
@media(max-width:760px){
  .side-shot{max-width:220px;margin-left:auto;margin-right:auto}
  .intro-split{justify-content:center}
}

/* ---------- page opener ---------- */
.opener{padding:44px 0 10px}
.kicker{font-size:11px;letter-spacing:.26em;text-transform:uppercase;font-weight:700;
  display:inline-block;border:var(--rule);padding:6px 12px;background:var(--paper)}
.opener h1{font-size:clamp(42px,8.2vw,96px);margin:20px 0 18px}
.opener .col{font-size:19px}

/* ---------- ticket strip (home + category intro) ---------- */
.strip{display:flex;flex-wrap:wrap;gap:16px;margin:36px 0 8px}
.ticket{flex:1 1 230px;border:var(--rule);text-decoration:none;padding:20px 18px 22px;
  display:flex;flex-direction:column;min-height:200px}
.ticket h3{font-size:26px;margin:0 0 10px}
.ticket p{margin:0;font-size:14.5px;line-height:1.55}
.ticket em{font-style:normal;margin-top:auto;padding-top:14px;font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.ticket:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 var(--ink)}

/* ---------- divider with halftone ---------- */
.break{height:64px;margin:52px 0;border-top:var(--rule);border-bottom:var(--rule);
  background-image:var(--dots);background-size:9px 9px}

/* ---------- method boxes ---------- */
.boxrow{display:flex;flex-wrap:wrap;gap:18px}
.pbox{flex:1 1 280px;border:var(--rule);background:var(--paper);padding:22px 20px 24px}
.pbox h3{font-size:21px;margin:0 0 10px}
.pbox p{margin:0;font-size:15px}
.pbox .num{font-family:"Archivo Black",sans-serif;font-size:13px;letter-spacing:.14em;
  background:var(--ink);color:var(--paper);padding:4px 9px;display:inline-block;margin-bottom:12px}

/* ---------- hotel entries: full-width alternating bands ---------- */
.entry{border-top:var(--rule);padding:56px 0 58px}
.entry:last-of-type{border-bottom:var(--rule)}
.entry .wrap{display:block}
.entry .no{font-family:"Archivo Black",sans-serif;font-size:12px;letter-spacing:.24em;
  display:inline-block;border:var(--rule);padding:5px 11px;margin-bottom:16px}
.entry h2{font-size:clamp(34px,6.4vw,76px);margin:0 0 10px;max-width:19ch}
.entry .place{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;
  margin:0 0 26px}
.entry .col{font-size:17.5px}
.entry .col p{margin:0}
.pill{display:inline-block;border:3px solid currentColor;border-radius:999px;
  padding:1px 12px 2px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;
  font-weight:700;margin:0 4px;white-space:nowrap;vertical-align:baseline}
.b-mustard{background:var(--mustard);color:var(--ink)}
.b-teal{background:var(--teal);color:var(--paper)}
.b-orange{background:var(--orange);color:var(--paper)}
.b-aubergine{background:var(--aubergine);color:var(--paper)}
.b-paper{background:var(--paper);color:var(--ink)}
.entry .no{border-color:currentColor}

/* ---------- prose pages ---------- */
.prose{padding:8px 0 60px}
.prose h2{font-size:27px;margin:38px 0 12px}
.prose .col p{margin:0 0 16px}
.prose .col ul{max-width:62ch;padding-left:20px}
.prose .col li{margin-bottom:9px}

/* ---------- footer: torn boarding-pass stub ---------- */
.stub{background:var(--aubergine);color:var(--paper);margin-top:70px;
  padding:54px 0 40px;clip-path:polygon(0.000% 0.00%, 2.273% 2.20%, 4.545% 0.00%, 6.818% 2.20%, 9.091% 0.00%, 11.364% 2.20%, 13.636% 0.00%, 15.909% 2.20%, 18.182% 0.00%, 20.455% 2.20%, 22.727% 0.00%, 25.000% 2.20%, 27.273% 0.00%, 29.545% 2.20%, 31.818% 0.00%, 34.091% 2.20%, 36.364% 0.00%, 38.636% 2.20%, 40.909% 0.00%, 43.182% 2.20%, 45.455% 0.00%, 47.727% 2.20%, 50.000% 0.00%, 52.273% 2.20%, 54.545% 0.00%, 56.818% 2.20%, 59.091% 0.00%, 61.364% 2.20%, 63.636% 0.00%, 65.909% 2.20%, 68.182% 0.00%, 70.455% 2.20%, 72.727% 0.00%, 75.000% 2.20%, 77.273% 0.00%, 79.545% 2.20%, 81.818% 0.00%, 84.091% 2.20%, 86.364% 0.00%, 88.636% 2.20%, 90.909% 0.00%, 93.182% 2.20%, 95.455% 0.00%, 97.727% 2.20%, 100.000% 0.00%, 100% 100%, 0% 100%);text-align:center}
.stub .name{font-family:"Archivo Black",sans-serif;font-size:clamp(28px,5vw,54px);
  text-transform:uppercase;letter-spacing:-.02em;margin:0 0 8px}
.stub .line{font-size:14px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 26px;opacity:.85}
.stub nav{display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:center;margin-bottom:22px}
.stub nav a{border:3px solid var(--paper);padding:7px 14px;text-decoration:none;
  font-family:"Archivo Black",sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:.02em}
.stub nav a:hover{background:var(--paper);color:var(--aubergine)}
.stub .legal{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;
  font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}
.stub .legal a{text-decoration:none;opacity:.85}
.stub .legal a:hover{opacity:1;text-decoration:underline}
.stub .colophon{margin:26px auto 0;max-width:56ch;font-size:12.5px;opacity:.7;line-height:1.6}
@media(max-width:760px){
  .compartments{margin-left:0;width:100%}
  .comp{flex:1 1 44%;min-width:0}
  .mark{width:100%}
  body{font-size:16px}
}
