/* Show calendar v1, local preview 26-10-24. House tokens from site.css (--ink, --paper, --signal, Objectivity). */
.shows-page .site-head{position:sticky;top:0;background:rgba(2,2,2,.72);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom-color:rgba(255,255,255,.08)}
.showmap{position:relative;background:var(--ink);overflow:hidden;padding:0}
.showmap-stage{position:relative;height:min(calc(100dvh - 64px),860px);min-height:560px}
#map{position:absolute;inset:0;width:100%;height:100%;display:block}
#map .sphere{fill:#0b0b0b;stroke:#2a2a2a;stroke-width:1}
#map .grat{fill:none;stroke:#1d1d1d;stroke-width:.6}
#map .land{fill:#1a1a1a;stroke:#3a3a3a;stroke-width:.6}
#map .states{fill:#141414}
#map .borders{fill:none;stroke:#3d3d3d;stroke-width:.7;stroke-linejoin:round}
#map .nation{fill:none;stroke:#8a8a8a;stroke-width:1.2;stroke-linejoin:round}
#map .pin{fill:var(--steel);stroke:var(--ink);stroke-width:2}
#map .pin.live{fill:var(--signal)}
#map .ring{fill:none;stroke:var(--signal);stroke-width:2}
#map .lead{stroke:#6a6a6a;stroke-width:1}

.ship{position:absolute;left:0;top:0;width:120px;height:60px;transform-origin:50% 50%;pointer-events:none;opacity:0;z-index:3;filter:drop-shadow(0 6px 18px rgba(0,123,253,.35))}
.ship .flame{animation:flick .09s steps(2) infinite}
@keyframes flick{50%{opacity:.55}}

/* slips: small setlist papers taped at each city */
.slips{position:absolute;inset:0;pointer-events:none;z-index:2}
.slip{position:absolute;pointer-events:auto;background:var(--paper);color:var(--ink);border:0;font:inherit;text-align:left;cursor:pointer;
  padding:.55rem .7rem .45rem;min-width:96px;box-shadow:0 10px 24px rgba(0,0,0,.6);
  transform:translate3d(0,8px,0) rotate(var(--r,-2deg)) scale(.6);opacity:0;transition:transform .5s var(--spring),opacity .25s}
.slip.on{transform:translate3d(0,0,0) rotate(var(--r,-2deg)) scale(1);opacity:1}
.slip::before{content:"";position:absolute;top:-8px;left:50%;width:44px;height:14px;transform:translateX(-50%) rotate(3deg);background:#9c9c9c;opacity:.9}
.slip b{display:block;font-weight:900;text-transform:uppercase;font-size:.82rem;line-height:1.05;letter-spacing:-.01em}
.slip span{display:block;font-weight:500;font-size:.7rem;color:#555;margin-top:.15rem}
.slip.live{min-width:150px}
.slip.live b{font-size:1rem}
.slip.live span{color:var(--signal);font-weight:700}
.slip:hover,.slip:focus-visible{transform:translate3d(0,-3px,0) rotate(0deg) scale(1.04)}
.slip:active{transform:scale(.97)}

.showmap-copy{position:absolute;left:var(--gutter);bottom:clamp(20px,4vh,40px);max-width:26rem;z-index:2;opacity:0;transform:translate3d(0,16px,0);transition:opacity .5s,transform .6s var(--spring)}
.showmap-copy.on{opacity:1;transform:none}
.showmap-copy h1{font-weight:900;font-size:clamp(2rem,3.8vw,3.4rem);line-height:.95;letter-spacing:-.025em;margin:0 0 .8rem;color:var(--paper)}
.showmap-copy p{margin:0;color:var(--fog);max-width:40ch}

.intro-ctl{position:absolute;right:var(--gutter);bottom:clamp(24px,5vh,56px);z-index:4}
.ctl{font:700 .85rem/1 "Objectivity",system-ui,sans-serif;color:var(--fog);background:rgba(2,2,2,.6);border:1px solid #444;padding:.7rem 1rem;min-height:44px;cursor:pointer}
.ctl:hover{border-color:var(--paper);color:var(--paper)}

/* impact on landing */
.showmap.hit .showmap-stage{animation:hit .32s cubic-bezier(.36,.07,.19,.97)}
@keyframes hit{20%{transform:translate3d(-4px,2px,0)}40%{transform:translate3d(4px,-2px,0)}60%{transform:translate3d(-2px,1px,0)}80%{transform:translate3d(1px,0,0)}}

/* the big setlist panel */
.panel{position:absolute;top:24px;right:var(--gutter);width:min(420px,calc(100% - 2*var(--gutter)));z-index:5;max-height:calc(100% - 48px);overflow:auto;padding-top:22px}
.panel[hidden]{display:none}
.panel-close{position:absolute;top:0;right:0;z-index:6;font:700 .8rem/1 "Objectivity",system-ui,sans-serif;background:var(--ink);color:var(--paper);border:1px solid #555;padding:.5rem .7rem;cursor:pointer;min-height:36px}
.big-setlist{transform:rotate(-1.2deg);animation:drop .5s var(--spring)}
@keyframes drop{from{transform:translate3d(0,-24px,0) rotate(-4deg);opacity:0}to{transform:rotate(-1.2deg);opacity:1}}
.big-setlist li .show-when{display:block;font-weight:500;text-transform:none;font-size:.78rem;color:#555;letter-spacing:0}
.big-setlist .placeholder-note{font-size:.72rem;color:#777;margin:.6rem 0 0}
.big-setlist form{display:grid;gap:.5rem;margin-top:.9rem}
.big-setlist label{font-weight:700;font-size:.85rem}
.big-setlist input{font:500 1rem "Objectivity",system-ui,sans-serif;padding:.7rem .8rem;border:2px solid var(--ink);background:var(--paper);color:var(--ink);min-height:48px}
.big-setlist button.btn{border-color:var(--signal);color:var(--paper)}
.big-setlist .thanks{font-weight:700;color:var(--signal)}

/* city list (always present; the only view on phones) */
.city-list{padding-block:clamp(48px,7vw,88px) 0}
.city-list h2,.submit-strip h2{font-weight:900;font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 1.2rem;color:var(--paper)}
.city-list ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem 1.2rem}
.city-list li button{width:100%;text-align:left;font:700 1rem/1.2 "Objectivity",system-ui,sans-serif;color:var(--fog);background:none;border:0;border-bottom:1px solid #333;padding:.8rem 0;cursor:pointer;min-height:48px}
.city-list li button span{display:block;font-weight:500;font-size:.8rem;color:var(--steel)}
.city-list li.live button{color:var(--paper)}
.city-list li.live button span{color:var(--signal);font-weight:700}
.city-list li button:hover{color:var(--paper);border-bottom-color:var(--signal)}
.submit-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:clamp(48px,7vw,88px)}
.submit-strip p{margin:0;max-width:52ch}

@media (max-width:767px){
  .showmap-stage{height:62svh;min-height:380px}
  .slip:not(.live){display:none}
  .showmap-copy{position:relative;left:auto;bottom:auto;padding:1.2rem var(--gutter) 0}
  .showmap-copy h1{font-size:2.2rem}
  .panel{position:fixed;inset:auto 0 0 0;top:auto;width:100%;max-height:78svh;padding:22px 16px 16px;background:rgba(2,2,2,.92)}
  .big-setlist{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .slip,.showmap-copy{transition:none}
  .ship .flame{animation:none}
  .showmap.hit .showmap-stage{animation:none}
  .big-setlist{animation:none}
}
.big-setlist li a{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.15;padding:.32rem 0}
.big-setlist .setlist-head{font-size:.85rem}
