/* Programme page — port of design/schedule/code/css/programme.css onto the
   site tokens: the drop's self-contained names map to tokens.css custom
   properties, so the yearly re-skin (accent/stage) flows through. Loads only
   on the programme page template, after blocks.css. */
:root{--bg:var(--color-bg);--bg-alt:var(--color-bg-alt);--surface:var(--color-surface);--ink:var(--color-ink);--ink-soft:var(--color-ink-soft);--hairline:var(--color-hairline);--stage-bg:var(--color-stage);--stage-deep:var(--color-stage-deep);--stage-ink:var(--color-stage-ink);--stage-hair:var(--color-stage-hairline);--accent:var(--color-accent);--accent-ink:var(--color-accent-ink);--pad:max(var(--gutter),calc((100% - var(--container))/2));--header-h:104px}
/* --header-h = the solid header's real height (measured): the drop's 56px let
   the sticky tabs/time heads slide under it — 104px desktop, 64px ≤860. */
@media (max-width:860px){:root{--header-h:64px}}
/* :where() keeps this at element specificity, like the drop's bare `button`
   rule — .pr-view/.pr-day set their own (Anton) faces and must win. */
:where(.pr-page) button{font-family:var(--font-body);cursor:pointer}
.pr-page button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* hero */
.pr-hero{position:relative;overflow:hidden;background:var(--stage-deep);color:var(--stage-ink);padding:176px var(--pad) 0}
.pr-hero-art{position:absolute;inset:0;background-position:center;background-size:cover;opacity:.14}
.pr-hero-in{position:relative}
.pr-h1{font:400 64px 'Anton',sans-serif;line-height:var(--lh-display);margin:18px 0 0;text-transform:uppercase;transform:skewX(-5deg)}
.pr-h1 em{font-style:normal;color:var(--accent)}
.pr-lead{font-size:19px;font-weight:500;line-height:1.6;color:color-mix(in srgb,var(--stage-ink) 78%,transparent);margin:14px 0 0;max-width:600px}
.pr-stats{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 0;padding-bottom:26px;font:600 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;color:color-mix(in srgb,var(--stage-ink) 70%,transparent)}
.pr-chip-s{padding:7px 14px;border:1px solid var(--stage-hair);border-radius:999px}.pr-chip-s.strong{color:var(--stage-ink)}

/* view toggle */
.pr-toggle{background:var(--bg);border-bottom:1px solid var(--hairline);padding:14px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pr-view{min-height:52px;border-radius:12px;border:1px solid rgba(26,43,48,.22);background:var(--surface);color:var(--ink);font-family:'Anton',sans-serif;font-size:17px;text-transform:uppercase;letter-spacing:.02em}
.pr-view[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* pre-event — panel look is the shared .cs-panel (main.css); this file keeps
   only what's programme-specific: the show/hide toggle and the day pills */
.pr-pre{display:none}
.pr-page[data-pre-event="1"] .pr-pre{display:block}
.pr-page[data-pre-event="1"] #prProg,.pr-page[data-pre-event="1"] #prAuto,.pr-page[data-pre-event="1"] .pr-pill-mob{display:none!important}
.pr-pre-days{display:flex;justify-content:center;gap:10px;margin:24px 0 0}
.pr-pre-day{width:96px;padding:14px 0;border:1px dashed rgba(26,43,48,.25);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:4px}
.pr-pre-day b{font:400 15px 'Anton',sans-serif;text-transform:uppercase;color:var(--ink)}
.pr-pre-day i{font:700 9px 'Barlow Condensed',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}

/* sticky day tabs */
.pr-tabsbar{position:sticky;top:var(--header-h);z-index:40;background:var(--bg);border-bottom:1px solid var(--hairline);padding:8px var(--pad);display:flex;align-items:center;gap:8px}
.pr-tabs{display:flex;gap:8px;flex:1}
.pr-day{height:48px;min-width:92px;flex:1;max-width:170px;border-radius:12px;border:1px solid rgba(26,43,48,.22);background:var(--surface);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center}
.pr-day b{font:400 19px 'Anton',sans-serif;text-transform:uppercase;line-height:1}
.pr-day i{font:600 10px 'Barlow Condensed',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.1em;opacity:.65;margin-top:2px}
.pr-day[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* my day pill */
.pr-pill{height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border-radius:999px;border:1px solid rgba(26,43,48,.3);background:var(--surface);color:var(--ink);font:800 13px 'Hanken Grotesk',sans-serif;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.pr-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pr-pill-mob{display:none;position:fixed;bottom:18px;right:16px;z-index:80;height:50px;border:none;background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 30px rgba(26,43,48,.35)}
.pr-pill-mob.active{background:var(--ink);color:var(--bg)}

.pr-body{padding:0 var(--pad) 90px}

/* now & next */
.pr-now{margin-top:20px}
.pr-now .lbl{font:700 13px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em}
.pr-nowrow{display:flex;gap:10px;margin-top:10px;padding-bottom:4px;overflow-x:auto;scrollbar-width:none}
.pr-nowrow::-webkit-scrollbar{display:none}
.pr-nowcard{min-width:235px;max-width:265px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:11px 14px;flex-shrink:0}
.pr-nowcard .b{display:flex;align-items:center;gap:7px;font:700 10.5px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}
.pr-nowcard .b.live{color:var(--ink)}
.pr-nowcard .t{font-weight:700;font-size:13.5px;line-height:1.25;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-nowcard .m{display:flex;align-items:center;gap:8px;font:600 11px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-top:6px}
.pr-nowcard .m .pr-hall{margin-left:0}
.pr-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:prNow 1.6s ease infinite}
@keyframes prNow{0%,100%{opacity:1}50%{opacity:.4}}

/* filters */
.pr-filters{margin-top:20px}
.pr-filters .lblrow{display:flex;align-items:center;gap:12px}
.pr-filters .lbl{font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}
.pr-clear{font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);background:none;border:none;border-bottom:2px solid var(--accent);padding:0 0 1px}
.pr-chips{display:flex;gap:8px;margin-top:8px;padding-bottom:4px;overflow-x:auto;scrollbar-width:none}
.pr-chips::-webkit-scrollbar{display:none}
.pr-chip{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;gap:7px;background:var(--surface);color:var(--ink);border:1px solid rgba(26,43,48,.22);font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;padding:12px 16px;border-radius:999px;flex-shrink:0}
.pr-chip:hover{border-color:var(--ink)}
.pr-chip[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pr-chip .dot{width:8px;height:8px;border-radius:50%}

/* event list */
.pr-timehead{position:sticky;top:calc(var(--header-h) + 65px);z-index:30;background:var(--bg);display:flex;align-items:center;gap:9px;padding:10px 0 8px;border-bottom:1px solid var(--hairline)}
.pr-timehead .dash{width:18px;height:3px;border-radius:2px;background:var(--accent)}
.pr-timehead b{font:700 14px 'Barlow Condensed',sans-serif;letter-spacing:.12em}
.pr-group{display:flex;flex-direction:column;gap:8px;padding:10px 0 16px}
.pr-card{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:7px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.pr-card:hover{border-color:rgba(26,43,48,.3);box-shadow:0 8px 24px rgba(26,43,48,.10)}
.pr-card:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}
.pr-card.open{border-color:var(--accent)}
.pr-row{display:grid;grid-template-columns:54px 1fr 44px;gap:10px;align-items:center}
.pr-time b{display:block;font-weight:800;font-size:14px}
.pr-time i{display:block;font-style:normal;font-size:11.5px;color:var(--ink-soft);margin-top:1px}
/* Row anatomy (design exploration 2026-08-23, variant C "split placement"):
   line 1 title; line 2 = category micro-label LEFT in its stripe ink +
   hall as a neutral pill flush RIGHT — the two metadata types differ by
   position, form and colour, one container per row; the right-aligned pills
   form a scannable hall lane. Category is never colour-only (the label). */
.pr-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.pr-title{font-weight:700;font-size:14.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pr-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.pr-cat{font:700 9.5px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pr-hall{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:999px;background:var(--bg-alt);color:var(--ink-soft);font:600 10.5px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;line-height:1;white-space:nowrap;margin-left:auto;flex-shrink:0}
.pr-star{width:44px;height:44px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center}
.pr-star:hover{background:var(--bg-alt)}
.pr-x{border-top:1px solid var(--hairline);margin-top:10px;padding-top:12px;cursor:default}
.pr-x p{font-size:14px;line-height:1.6;color:var(--ink-soft);margin:0;max-width:720px}
.pr-x .guest{display:inline-flex;align-items:center;gap:10px;margin-top:14px;text-decoration:none;color:var(--ink)}
.pr-x .guest .av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-stage-soft),var(--stage-deep));color:var(--stage-ink);display:inline-flex;align-items:center;justify-content:center;font-family:'Anton',sans-serif;font-size:15px;overflow:hidden}
.pr-x .guest b{font-weight:800;font-size:14px;display:block}
.pr-x .guest i{font:600 11px 'Barlow Condensed',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.pr-maplink{display:inline-block;margin-top:12px;font:700 13px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:2px}
.pr-empty{margin-top:26px;border:1.5px dashed rgba(26,43,48,.25);border-radius:14px;padding:52px 24px;text-align:center}
.pr-empty b{font-weight:800;font-size:17px}
.pr-empty p{font-size:14px;color:var(--ink-soft);margin:6px 0 0}
.pr-empty .pr-btn{margin-top:18px;font-size:13px;padding:11px 22px}

/* my day */
.pr-mydayhead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-top:20px}
.pr-mydayhead h2{font:400 32px 'Anton',sans-serif;margin:0;text-transform:uppercase;transform:skewX(-4deg)}
.pr-mydayhead .n{font:700 13px 'Barlow Condensed',sans-serif;letter-spacing:.1em;color:var(--ink-soft);text-transform:uppercase}
.pr-dayhead{display:flex;align-items:baseline;gap:10px;margin-top:30px}
.pr-dayhead b{font:400 22px 'Anton',sans-serif;text-transform:uppercase}
.pr-dayhead i{font:600 12px 'Barlow Condensed',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}

/* autographs view */
.pr-info{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:10px;padding:12px 16px;font-size:13.5px;line-height:1.55;margin-top:20px}
.pr-info a{font-weight:700;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:2px}
.pr-dayfilter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.pr-dayfilter .lbl{font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}
.pr-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px;font-size:12.5px;color:var(--ink-soft)}
.pr-legend .key{display:inline-flex;align-items:center;gap:7px;font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
.pr-legend .g{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.pr-legend .g.sign{background:var(--surface);border:1px solid rgba(26,43,48,.25);color:var(--ink)}
.pr-legend .g.photo{background:color-mix(in srgb,var(--stage-bg) 8%,#ffffff);border:1px solid color-mix(in srgb,var(--stage-bg) 30%,transparent);color:var(--stage-bg)}
.pr-guests{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:18px}
.pr-guest{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.pr-guest:hover{border-color:rgba(26,43,48,.3);box-shadow:0 8px 24px rgba(26,43,48,.10)}
.pr-guest.open{border-color:var(--accent);grid-column:1/-1}
.pr-ghead{display:flex;align-items:center;gap:12px}
.pr-ghead .av{width:48px;height:48px;border-radius:50%;flex-shrink:0;color:var(--stage-ink);display:inline-flex;align-items:center;justify-content:center;font-family:'Anton',sans-serif;font-size:19px;overflow:hidden}
.pr-ghead .av img,.pr-x .guest .av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.pr-ghead .nm{min-width:0;flex:1}
.pr-ghead .nm b{display:block;font-weight:800;font-size:15px;line-height:1.2}
.pr-ghead .nm i{display:block;font:600 10.5px 'Barlow Condensed',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin-top:3px}
.pr-gsum{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.pr-gsum .t{font:600 12px 'Hanken Grotesk',sans-serif;color:var(--ink-soft)}
.pr-gsum .pills{display:inline-flex;gap:4px;margin-left:auto}
.pr-gsum .pills span{font:700 10px 'Barlow Condensed',sans-serif;letter-spacing:.08em;padding:4px 8px;border:1px solid var(--hairline);border-radius:999px}
.pr-gx{border-top:1px solid var(--hairline);margin-top:14px;padding-top:2px;cursor:default}
.pr-gday{border-bottom:1px solid var(--hairline);padding:7px 0}
.pr-gday .dline{display:flex;align-items:flex-start;gap:12px}
.pr-gday .dl{width:46px;flex-shrink:0;font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em;padding-top:15px}
.pr-gday .chips{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pr-tchip{min-height:46px;padding:0 15px;border-radius:999px;border:1px solid rgba(26,43,48,.25);background:var(--surface);color:var(--ink);font:700 14px 'Hanken Grotesk',sans-serif;display:inline-flex;align-items:center;gap:7px}
.pr-tchip .g{font-size:15px;opacity:.8}
.pr-tchip .note{font:600 10px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.04em;opacity:.8}
.pr-tchip.photo{background:color-mix(in srgb,var(--stage-bg) 8%,#ffffff);border-color:color-mix(in srgb,var(--stage-bg) 30%,transparent)}
.pr-tchip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.pr-named{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:48px;padding:2px 0 2px 58px}
.pr-named b{font-weight:700;font-size:14px}
.pr-named .tm{font:700 13px 'Barlow Condensed',sans-serif;letter-spacing:.06em}
.pr-named .hl{font:600 11px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}

/* sheets (mobile) */
.pr-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--stage-deep) 55%,transparent);z-index:190}
.pr-panel{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--surface);border-radius:18px 18px 0 0;padding:18px 20px 26px;max-height:78vh;overflow-y:auto;animation:prSheet .25s ease both}
@keyframes prSheet{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
.pr-panel .grab{width:40px;height:4px;border-radius:2px;background:var(--hairline);margin:0 auto}
.pr-panel .close{width:44px;height:44px;border-radius:50%;border:1px solid var(--hairline);background:var(--surface);font-size:18px;flex-shrink:0}
.pr-panel .quiet{width:100%;margin-top:18px;background:transparent;color:var(--ink);border:1px solid rgba(26,43,48,.35);font-weight:700;font-size:13px;padding:13px 22px;border-radius:999px;text-transform:uppercase}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:960px){.pr-h1{font-size:52px}.pr-hero{padding-top:150px}}
/* ── PHONES (mobile design 2026-09-06) ──────────────────────────────────
   Day tabs stay sticky (the drop made them static) with a Filter button
   beside them; the inline hall/category chip rows (~170px) move into a
   bottom sheet and active filters show as removable chips; the view toggle
   is one segmented control; autograph sessions are one row each. */
@media (max-width:560px){
  .pr-toggle{display:block}
  .pr-seg{display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border:1px solid rgba(26,43,48,.22);border-radius:12px;padding:3px}
  .pr-seg .pr-view{min-height:44px;border:0;border-radius:9px;background:transparent;font-size:16px}
  .pr-seg .pr-view[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
  .pr-day{height:44px;min-width:0}
  .pr-day b{font-size:17px}
  .pr-day i{font-size:9px}
  .pr-tabsbar .pr-filterbtn{display:flex} /* descendant selectors: the base display:none rules sit later in the file */
  .pr-timehead{top:calc(var(--header-h) + 61px)} /* 8 + 44 + 8 tabs bar + 1px rule */
  .pr-filters{display:none}
  .pr-body .pr-active{display:flex}
  #prPillDesk{display:none}
  .pr-pill-mob{display:inline-flex}
  .pr-x{display:none} /* inline expand replaced by bottom sheet */
  .pr-named{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;grid-template-areas:"b tm star" "hl hl star";align-items:center;gap:2px 10px;padding:6px 0 6px 0;border-top:1px solid var(--hairline)}
  .pr-named b{grid-area:b;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pr-named .tm{grid-area:tm}
  .pr-named .hl{grid-area:hl}
  .pr-named .pr-star{grid-area:star}
  .pr-gday .dline{flex-direction:column;gap:6px}
  .pr-gday .dl{width:auto;padding-top:8px}
}
@media (min-width:561px){.pr-seg{display:contents}}

/* Filter button (tabs bar, phones) + active-filter strip + filter sheet */
.pr-filterbtn{display:none;position:relative;width:44px;height:44px;flex:none;border-radius:12px;border:1px solid rgba(26,43,48,.22);background:var(--surface);color:var(--ink);align-items:center;justify-content:center;padding:0}
.pr-filterbtn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.pr-filterbtn .n{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--ink);color:var(--accent);font:800 10px/18px var(--font-body);text-align:center}
.pr-filterbtn .n[hidden]{display:none}
.pr-active{display:none;align-items:center;gap:8px;margin-top:16px;overflow-x:auto;scrollbar-width:none}
.pr-active::-webkit-scrollbar{display:none}
.pr-active .lbl{flex:none;font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}
.pr-active .pr-chip{min-height:36px;padding:0 12px 0 14px;background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pr-active .x{font-size:14px;line-height:1}
.pr-fsheet .head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.pr-fsheet .ttl{font-family:var(--font-display);font-size:24px;line-height:1.02;text-transform:uppercase}
.pr-fsheet .lbl{margin-top:18px;font:700 12px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}
.pr-fsheet .row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pr-fsheet .foot{display:flex;gap:10px;margin-top:22px}
.pr-fsheet .quiet{width:auto;flex:none;margin-top:0}
.pr-fsheet .apply{flex:1;background:var(--accent);color:var(--accent-ink);border:0;font-weight:800;font-size:14px;padding:13px 26px;border-radius:999px;text-transform:uppercase}
@media (min-width:561px){#prSheet{display:none!important}}
