
/* ---- children of a city guide: day pages and venue pages -------------- */
.hero h1 .city.name{font-size:clamp(44px,8.4vw,104px); line-height:1.05;
  overflow-wrap:anywhere}
.hero .type{color:var(--muted); font-size:16.5px; max-width:58ch; margin:14px 0 0}
.hero .g-a .nights{padding-top:22px}

.list{padding:52px 0 8px}
.list h2, .facts h2, .more h2{font-size:clamp(26px,3.6vw,36px); line-height:1.1;
  margin:0 0 18px; text-shadow:var(--neon-b)}
.slate{list-style:none; margin:0; padding:0}
.slate li{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr) minmax(0,3fr);
  gap:8px 30px; padding:20px 0 22px; border-top:1px solid var(--hairline)}
.slate li:last-child{border-bottom:1px solid var(--hairline)}
.slate h3{font-size:clamp(22px,2.6vw,26px); line-height:1.1}
.slate h3 a{color:inherit; text-decoration:underline; text-underline-offset:5px;
  text-decoration-thickness:1px; text-decoration-color:var(--accent-800)}
.slate h3 a:hover{color:var(--accent-400); text-decoration-color:var(--accent)}
/* The name's tap area: 44px+ without moving it (see "tap areas" in the base). */
.slate h3{position:relative; width:fit-content}
.slate h3 a::after{content:""; position:absolute; inset:-10px 0}
.slate .line{color:var(--muted); font-size:16px}
.slate .also{color:var(--ghost); font-size:14px; margin-top:4px}
.slate .when{font-family:var(--mono); font-size:13px; color:var(--muted);
  text-align:right; padding-top:3px}
/* A label, not a button: plain mono text, no capsule (owner, 2026-10-19). */
.tag{display:inline-block; margin:6px 0 0 10px; padding:0;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent-400); white-space:nowrap}
@media (max-width:760px){
  .slate li{grid-template-columns:minmax(0,1fr); gap:6px}
  .slate .when{text-align:left}
  .slate .when .tag:first-child{margin-left:0}
}

.facts{padding:52px 0 8px}
.facts .said{color:var(--muted); font-size:17px; max-width:62ch; padding-left:18px;
  border-left:2px solid var(--accent-800); margin:0 0 40px}
.sched-list{margin:0 0 40px; padding:0; max-width:var(--prose)}
.sched-list div{display:flex; justify-content:space-between; gap:18px;
  padding:12px 0; border-top:1px solid var(--hairline)}
.sched-list div:last-child{border-bottom:1px solid var(--hairline)}
.sched-list dt{font-weight:500}
.sched-list dd{margin:0; font-family:var(--mono); font-size:14px; color:var(--muted)}
.sched-list .none{color:var(--ghost)}
.addr, .nightline{font-size:18px; margin:0 0 16px}
.nightline{margin:0 0 6px}
.nightline + .note{margin-bottom:40px}
.maps{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px}
.maps a{display:inline-flex; align-items:center; min-height:44px; padding:8px 18px;
  border:1.5px solid var(--accent-400); border-radius:var(--r-pill);
  color:var(--text); text-decoration:none; font-size:15px;
  box-shadow:0 0 10px rgba(145,132,217,.3), inset 0 0 10px rgba(145,132,217,.08)}
.maps a:hover{box-shadow:0 0 16px rgba(145,132,217,.6)}
.checked, .note{color:var(--ghost); font-size:14px; max-width:62ch}
/* "Where" keeps its distance from whatever closes the nights block. The
   source line under a night ("Nights per an event listing.") had no margin,
   so the heading sat on it. Collapses with the 40px the other closers carry. */
.facts h2 ~ h2{margin-top:40px}
.note{margin:0 0 18px}

/* A nearby bar without a page of its own: a plain row, not the card the
   linked ones are, so only what works looks tappable (site-dead-night-pills.md). */
.near .nolink{display:block; background:none; border:0; border-left:2px solid var(--hairline);
  border-radius:0; padding:6px 0 6px 15px; color:var(--muted)}
blockquote.said{font-style:normal}
.more{padding:44px 0 8px}
.more ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px}
.more a{display:inline-flex; align-items:center; min-height:44px; padding:8px 16px;
  border:1px solid var(--divider); border-radius:var(--r-md); color:var(--text);
  text-decoration:none; font-size:15px; background:var(--surface)}
.more a:hover{border-color:var(--accent-400); box-shadow:0 0 12px rgba(145,132,217,.35)}

/* ---- venue pages: "Before you get there" (before_you_go) ----
   Still: the hero's bulb chase stays the page's one motion; this only glows.
   Pink is the go-moment's alone (the phone's tube); every other icon is blurple. */
.appsec{padding:44px 0 8px}
.appsec > .wrap{border-top:1px solid var(--hairline); padding-top:32px; max-width:640px}
.appsec .bi{width:1em; height:1em; display:inline-block; fill:currentColor; flex:none}

/* The Magic Mic card: a working mini Magic Mic (build_picker.MIC_JS). Colour
   is light, never a fill: the slip is the page's ground with a faint amber
   wash, the title a pink neon line, "Pick my song" a blurple tube (a working
   action; the pink tube below stays the section's one go-moment). The title's
   letter-by-letter reveal is a one-shot; the hero's bulbs stay the one loop. */
.mic{background:var(--surface); border:1px solid rgba(145,132,217,.45); border-radius:18px;
  padding:20px 18px 18px; box-shadow:0 0 30px rgba(145,132,217,.14), inset 0 0 24px rgba(145,132,217,.05)}
.mic-top{display:flex; gap:14px; align-items:flex-start}
.medal{flex:none; width:52px; height:52px; display:grid; place-items:center; border-radius:50%;
  color:var(--accent-400); border:1.5px solid var(--accent-400); font-size:26px;
  box-shadow:0 0 12px rgba(145,132,217,.55), inset 0 0 10px rgba(145,132,217,.15)}
.mic h2{font-size:24px; overflow-wrap:anywhere; line-height:1.15; color:var(--blurple-ink); text-shadow:var(--neon-b); margin:0}
.mic-top p{color:var(--muted); font-size:15px; line-height:1.5; margin:4px 0 0}
/* with scripts off there's nothing to tap: the slip and the button stay away,
   and the line above and the full picker's link carry the card */
.mic-slip{display:none; position:relative; margin:16px 0 0; padding:12px 14px 14px; border-radius:12px 12px 4px 4px;
  border:1px dashed var(--divider); background:var(--chip-ground); min-height:118px}
.mic-slip::before{content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(120% 70% at 50% 0%,rgba(232,162,74,.08),transparent 65%)}
.js .mic-slip{display:block}
.mic-slip.on{border-style:solid; border-color:var(--hairline); box-shadow:0 0 18px rgba(232,162,74,.1)}
.mic-slip > *{position:relative}
.slip-k{margin:0; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--tube-a); line-height:1.4}
.slip-k .rq{color:var(--ghost); margin-right:4px}
.slip-t{margin:6px 0 0; font-family:var(--display); font-size:28px; line-height:1.1; color:var(--pink-ink);
  text-shadow:0 0 3px rgba(255,255,255,.6), 0 0 10px rgba(224,85,155,.7), 0 0 22px rgba(224,85,155,.35); overflow-wrap:anywhere}
.slip-t.long{font-size:24px} .slip-t.xlong{font-size:20px}
.slip-t .w{white-space:nowrap} .slip-t .ch{display:inline-block; animation:mic-lit .2s ease-out both; animation-delay:var(--d)}
@keyframes mic-lit{from{opacity:0; transform:translateY(3px) scale(1.2)} to{opacity:1; transform:none}}
.slip-blank{font-family:var(--body); font-size:15px; color:var(--ghost); text-shadow:none; font-style:italic}
.slip-a{margin:3px 0 0; font-size:14px; color:var(--muted)}
.slip-a:empty{display:none}
.slip-n{display:flex; gap:8px; align-items:flex-start; margin:8px 0 0; font-size:15px; line-height:1.45; color:var(--text)}
.slip-n .bi{font-size:16px; margin-top:3px; color:var(--tube-a); filter:drop-shadow(0 0 4px rgba(232,162,74,.6))}
.slip-n[hidden]{display:none}
.mic-slip .after{animation:mic-land .3s ease-out both; animation-delay:var(--d,0ms)}
@keyframes mic-land{from{opacity:0} to{opacity:1}}
.mic-slip.skipping .ch, .mic-slip.skipping .after{animation-duration:0s; animation-delay:0s}
.mic-go{display:none; align-items:center; justify-content:center; gap:10px; width:100%; min-height:52px;
  margin:14px 0 0; padding:0 22px; border:2px solid var(--accent-400); border-radius:var(--r-pill);
  background:transparent; color:var(--blurple-ink); font:500 17px var(--body); cursor:pointer;
  text-shadow:0 0 6px rgba(145,132,217,.7);
  box-shadow:0 0 14px rgba(145,132,217,.45), 0 0 30px rgba(145,132,217,.15), inset 0 0 12px rgba(145,132,217,.14)}
.js .mic-go{display:flex}
.mic-go .bi{font-size:22px}
.mic-go:hover{box-shadow:0 0 20px rgba(145,132,217,.65), 0 0 36px rgba(145,132,217,.22), inset 0 0 14px rgba(145,132,217,.2)}
.mic-go:active{border-color:var(--accent); transform:scale(.98)}
.mic-go:focus-visible{outline:2px solid var(--accent-400); outline-offset:3px}
.mic-go[aria-busy="true"]{cursor:progress}
.mic-go[aria-busy="true"] .bi{animation:mic-breathe 1.2s ease-in-out infinite}
@keyframes mic-breathe{50%{opacity:.4}}
.mic-voice{border:0; margin:12px 0 0; padding:0; display:flex; align-items:center; gap:6px; min-width:0}
.mic-voice[hidden]{display:none}
.mic-voice legend{float:left; padding:0; margin-right:4px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ghost); white-space:nowrap}
.mic-voice label{position:relative; display:inline-flex; align-items:center; min-height:44px; cursor:pointer}
.mic-voice input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer}
.mic-voice span{padding:5px 11px; border:1px solid var(--divider); border-radius:8px; font-size:13.5px; color:var(--muted);
  background:var(--chip-ground); white-space:nowrap}
.mic-voice input:checked + span{border-color:var(--accent-400); color:var(--blurple-ink); box-shadow:0 0 8px rgba(145,132,217,.45)}
.mic-voice input:focus-visible + span{outline:2px solid var(--accent-400); outline-offset:2px}
.mic-after[hidden]{display:none}
.mic-more{margin:14px 0 12px; font-size:15px; line-height:1.5}
/* inline, so the arrow follows the words; the padding makes the 44px target */
.mic-more a{padding:12px 0; color:var(--accent-400);
  text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--accent-800)}
.mic-more a .bi{font-size:15px; vertical-align:-2px; margin-left:4px}
.mic-more a:hover{text-decoration-color:var(--accent)}
.sr{position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
@media (prefers-reduced-motion: reduce){
  .slip-t .ch, .mic-slip .after, .mic-go[aria-busy="true"] .bi{animation:none}
  .mic-go:active{transform:none}
}

.go{display:grid; justify-items:center; gap:12px; text-align:center; margin-top:18px; padding-top:18px; border-top:1px solid var(--hairline)}
.tube-go{display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:0 30px; width:min(100%,340px);
  border:2px solid var(--tube-p); border-radius:var(--r-pill);
  color:var(--pink-ink); text-decoration:none; font-size:17px; font-weight:500;
  text-shadow:0 0 6px rgba(224,85,155,.7);
  box-shadow:0 0 14px rgba(224,85,155,.5), 0 0 34px rgba(224,85,155,.18), inset 0 0 12px rgba(224,85,155,.16)}
.tube-go:hover{box-shadow:0 0 20px rgba(224,85,155,.7), 0 0 40px rgba(224,85,155,.25), inset 0 0 14px rgba(224,85,155,.22)}
.tube-go:active{border-color:var(--gel-a)}
.tube-go:focus-visible{outline:2px solid var(--accent-400); outline-offset:3px}
.go-badges{display:none}
@media (min-width:761px){
  .tube-go{display:none}
  .go-badges{display:inline-flex}
}
:root{--blurple-ink:#efeaff; --pink-ink:#ffe3f1; --chip-ground:#100c1c}
