/* Programme extension of the live site.css design system. */
.programme-schedule { align-content:start; }
.programme-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:var(--s-8); align-items:end; }
.programme-intro>p { color:var(--ink-2); max-width:48ch; }
.programme-intro .title { margin-top:var(--s-3); }
.agenda-confirmation { display:flex; align-items:flex-start; gap:var(--s-4); margin-top:var(--s-6); padding:var(--s-5); background:var(--teal-soft); border-left:2px solid var(--teal); }
.agenda-confirmation-mark { color:var(--teal); font-size:24px; line-height:1.3; }
.agenda-confirmation strong { font:500 var(--t-small)/1.4 var(--f-ui); color:var(--ink); }
.agenda-confirmation p { margin-top:var(--s-2); font-size:var(--t-small); color:var(--ink-2); max-width:76ch; }
.agenda-overview { display:flex; gap:var(--s-5); align-items:center; padding-block:var(--s-5); }
.agenda-overview p { color:var(--muted); font-size:13px; margin:0; }
.agenda-overview b { font-weight:500; color:var(--ink); }
.agenda-overview p:last-child { margin-left:auto; font-family:var(--f-mono); font-size:11px; }
.programme-days { display:grid; grid-template-columns:1fr 1fr; gap:var(--s-5); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.programme-days a { display:grid; grid-template-columns:1fr auto; align-items:center; gap:var(--s-2); min-height:100px; padding:var(--s-5) 0; text-decoration:none; color:var(--ink); transition:color var(--t-colour),background var(--t-surface); }
.programme-days a>span:first-child { grid-column:1/-1; font:500 11px/1.4 var(--f-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.programme-days a>b { font:500 18px/1.3 var(--f-ui); }
.programme-days a>span:last-child { color:var(--teal); transition:transform var(--t-surface) var(--ease-out); }
.programme-days a:hover>span:last-child { transform:translate(3px,-3px); }
.programme-days a:hover,.programme-days a:focus-visible { color:var(--teal); }
.agenda-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--s-7); margin-top:var(--s-7); align-items:start; }
.agenda-day { min-width:0; scroll-margin-top:calc(var(--head-h) + var(--s-5)); }
.agenda-day-head { display:flex; align-items:center; gap:var(--s-4); padding-bottom:var(--s-5); }
.programme-date { display:grid; justify-items:center; min-width:58px; padding-right:var(--s-4); border-right:1px solid var(--line); }
.programme-date span { font:400 10px/1.3 var(--f-mono); text-transform:uppercase; color:var(--muted); }
.programme-date b { font:500 50px/.9 var(--f-display); color:var(--teal); }
.agenda-day-head h2 { font:600 clamp(32px,3vw,44px)/1 var(--f-display); margin-top:var(--s-2); }
.agenda-day-head .label { font-size:10px; }
.agenda-day-range { font:400 11px/1.5 var(--f-mono); color:var(--muted); margin-top:var(--s-3); }
.agenda-day-count { margin-left:auto; font:400 10px/1.4 var(--f-mono); color:var(--muted); white-space:nowrap; }
.agenda-day-status { display:flex; gap:var(--s-2); align-items:center; color:var(--muted); font:400 11px/1.5 var(--f-mono); padding:var(--s-4) 0; border-top:1px solid var(--ink); }
.agenda-status-dot { width:5px; height:5px; border-radius:50%; background:var(--teal); flex:none; }
.agenda-slots { border-bottom:1px solid var(--line); }
.agenda-card { display:grid; grid-template-columns:60px minmax(0,1fr) 28px; gap:var(--s-4); padding:var(--s-5) 0; border-top:1px solid var(--line); }
.agenda-time { font:500 14px/1.5 var(--f-mono); font-variant-numeric:tabular-nums; color:var(--ink); padding-top:2px; }
.agenda-time span { display:block; font-size:11px; font-weight:400; color:var(--muted); margin-top:var(--s-1); }
.agenda-tags { display:flex; flex-wrap:wrap; gap:var(--s-2); align-items:baseline; }
.agenda-format { font:500 10px/1.5 var(--f-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--teal); }
.agenda-pillar { font:400 10px/1.5 var(--f-mono); color:var(--muted); }
.agenda-pillar::before { content:' / '; }
.agenda-card h3 { font:600 clamp(25px,2.1vw,30px)/1.05 var(--f-display); letter-spacing:-.01em; margin:var(--s-3) 0; text-wrap:pretty; overflow-wrap:anywhere; }
.agenda-speakers { font-size:13px; line-height:1.6; color:var(--ink-2); }
.agenda-speakers span { color:var(--muted); }
.agenda-duration { text-align:right; font:400 11px/1.4 var(--f-mono); color:var(--muted); padding-top:2px; }
.agenda-duration small { display:block; font-size:9px; margin-top:var(--s-1); }
.agenda-title-pending { color:var(--muted); font-size:12px; margin-top:var(--s-2); }
.agenda-card--organisation { background:var(--tint); padding-inline:var(--s-3); }
.agenda-card--organisation h3 { font-size:26px; }
.agenda-card--space { border:1px dashed var(--line); padding-inline:var(--s-3); }
.agenda-card--space h3 { font-size:24px; font-style:italic; }
.agenda-card--space .agenda-format { color:var(--muted); }
.agenda-awaiting { display:grid; grid-template-columns:1fr 1fr; gap:var(--s-7); margin-top:var(--s-7); padding-top:var(--s-6); border-top:1px solid var(--line); }
.agenda-awaiting h3 { font:600 30px/1.1 var(--f-display); margin-top:var(--s-3); }
.agenda-awaiting p { font-size:13px; color:var(--muted); margin-top:var(--s-3); }
.agenda-awaiting-people { padding-left:var(--s-5); border-left:2px solid var(--teal); }
.agenda-awaiting-people h3 { margin-top:0; }
.agenda-endnote { font-size:13px; color:var(--muted); border-top:1px solid var(--line); padding-top:var(--s-5); margin-top:var(--s-6); }
.programme-pillar-list { margin-top:var(--s-7); }
.programme-pillar-list article { display:grid; grid-template-columns:48px 1fr 1.3fr; gap:var(--s-5); align-items:baseline; border-top:1px solid var(--line); padding:var(--s-5) 0; }
.programme-pillar-list article:last-child { border-bottom:1px solid var(--line); }
.programme-pillar-list article>span { font-size:11px; white-space:nowrap; }
.programme-pillar-list article>span::before { width:12px; margin-right:8px; }
.programme-pillar-list h3 { font:600 30px/1.1 var(--f-display); }
.programme-pillar-list p { color:var(--ink-2); font-size:15px; }
@media(max-width:1100px) { .agenda-grid { gap:var(--s-6); } .agenda-day-count { display:none; } }
@media(max-width:900px) { .programme-intro,.agenda-grid,.agenda-awaiting { grid-template-columns:1fr; } .programme-intro { gap:var(--s-5); } .agenda-grid { gap:var(--s-8); } .agenda-day-count { display:block; } .agenda-card { grid-template-columns:72px minmax(0,1fr) 32px; } }
@media(max-width:640px) { .agenda-overview { gap:var(--s-2) var(--s-5); flex-wrap:wrap; } .agenda-overview p:last-child { margin-left:0; flex-basis:100%; margin-top:var(--s-2); } .agenda-confirmation { padding:var(--s-4); gap:var(--s-3); } .agenda-confirmation strong { font-size:14px; } .agenda-confirmation p { font-size:13px; } .programme-days { gap:var(--s-4); } .programme-days a { min-height:96px; } .programme-days a>b { font-size:14px; } .programme-days a>span:first-child { font-size:10px; } .agenda-day-count { display:none; } .agenda-card { grid-template-columns:51px minmax(0,1fr) 22px; gap:var(--s-3); } .agenda-card h3 { font-size:27px; } .agenda-time { font-size:14px; } .agenda-time span { font-size:11px; } .agenda-tags { gap:4px 8px; } .agenda-format,.agenda-pillar { font-size:11px; } .agenda-speakers { font-size:13px; } .agenda-duration { font-size:11px; } .agenda-duration small { font-size:10px; } .agenda-pillar::before { content:''; } .programme-pillar-list article { grid-template-columns:42px 1fr; gap:var(--s-3); } .programme-pillar-list p { grid-column:2; } }
@media print { .head,.drawer-layer,.progress,#opening,.programme-woven,.foot,.programme-days { display:none; } .programme-schedule { padding:0; } .agenda-grid { grid-template-columns:1fr 1fr; gap:24px; } .agenda-card { break-inside:avoid; } }

/* The site's existing pillar palette, with its text-safe companion tones. */
.agenda-card:not([data-pillar]) { --pc:var(--teal); --pc-text:var(--teal); }
.agenda-pillar-key { display:flex; flex-wrap:wrap; gap:12px 24px; margin:0 0 24px; padding:0; list-style:none; }
.agenda-pillar-key li { display:flex; align-items:center; gap:8px; color:var(--pc-text); font:400 12px/1.5 var(--f-mono); }
.agenda-pillar-key li>span { width:8px; height:8px; border-radius:50%; background:var(--pc); flex:none; }
.agenda-card { position:relative; isolation:isolate; padding-inline:12px; border-radius:4px; overflow:hidden; transition:transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out),background 220ms ease; }
.agenda-card[data-pillar] { background:linear-gradient(90deg,color-mix(in srgb,var(--pc) 5%,var(--paper)),var(--paper) 85%); }
.agenda-card::before { content:''; position:absolute; left:0; top:20px; bottom:20px; width:2px; background:var(--pc); opacity:.55; transition:opacity 180ms ease,top 220ms var(--ease-out),bottom 220ms var(--ease-out); }
.agenda-card::after { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(260px circle at var(--cursor-x,50%) var(--cursor-y,50%),color-mix(in srgb,var(--pc) 14%,transparent),transparent 80%); opacity:0; transition:opacity 220ms ease; z-index:0; }
.agenda-card>* { position:relative; z-index:1; }
.agenda-card .agenda-pillar { display:inline-flex; flex-wrap:wrap; gap:4px; align-items:center; color:var(--pc-text); }
.agenda-card .agenda-pillar::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--pc); margin-right:2px; }
.agenda-cross { color:var(--pc-text); }
.agenda-cross::before { content:''; display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--pc); margin-right:5px; vertical-align:1px; }
.agenda-card h3 { transition:color 180ms ease; }
@media(hover:hover) and (pointer:fine) {
  .agenda-card:hover { transform:translateY(-2px); box-shadow:0 8px 20px -14px color-mix(in srgb,var(--pc) 45%,transparent); }
  .agenda-card:hover::before { opacity:1; top:12px; bottom:12px; }
  .agenda-card[data-cursor]::after { opacity:1; }
  .agenda-card:hover h3 { color:var(--pc-text); }
}
@media(max-width:640px) { .agenda-pillar-key { gap:10px 16px; } .agenda-pillar-key li { font-size:11px; } .agenda-card { padding-inline:10px; } }
@media(prefers-reduced-motion:reduce) { .agenda-card,.agenda-card::before,.agenda-card::after,.agenda-card h3 { transition:none; } .agenda-card:hover { transform:none; } .agenda-card::after { display:none; } }
@media print { .agenda-card::after { display:none; } .agenda-card { transform:none; box-shadow:none; } }

/* Agenda navigation and exploration use the existing paper, type, and pillar tokens. */
.agenda-tools { display:flex; align-items:start; justify-content:space-between; gap:24px; padding:8px 0 0; }
.agenda-tool-label,.agenda-timezone label { display:block; font:500 10px/1.5 var(--f-mono); text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:10px; }
.agenda-pillar-key { gap:8px; margin-bottom:0; }
.agenda-pillar-key button { display:inline-flex; align-items:center; gap:7px; border:1px solid transparent; border-radius:999px; background:transparent; color:inherit; font:inherit; padding:8px 10px; min-height:40px; cursor:pointer; transition:background 180ms ease,border-color 180ms ease; }
.agenda-pillar-key button>span { width:7px; height:7px; border-radius:50%; background:var(--pc); }
.agenda-pillar-key button:hover,.agenda-pillar-key button[aria-pressed="true"] { border-color:var(--pc,var(--teal)); background:color-mix(in srgb,var(--pc,var(--teal)) 8%,var(--paper)); }
.agenda-pillar-key li:last-child { color:var(--teal); }
.agenda-pillar-key button:focus-visible,.agenda-speaker-link:focus-visible,.agenda-timezone select:focus-visible,.agenda-profile-close:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.agenda-timezone { flex:0 0 220px; }
.agenda-timezone select { width:100%; min-height:42px; border:1px solid var(--line); border-radius:4px; background:var(--paper); color:var(--ink); padding:8px 12px; font:400 13px var(--f-ui); }
.agenda-timezone p { font:400 10px/1.5 var(--f-mono); color:var(--muted); margin-top:8px; overflow-wrap:anywhere; }
.agenda-tool-status { margin:14px 0 22px; font:400 11px/1.5 var(--f-mono); color:var(--muted); min-height:1.5em; }
.programme-days { position:sticky; top:var(--agenda-sticky-top,88px); z-index:20; background:var(--paper); box-shadow:0 8px 16px -16px var(--ink); }
.programme-days a { min-height:72px; padding:12px 4px; }
.programme-days a[aria-current="location"] { color:var(--teal); border-radius:8px; background:color-mix(in srgb,var(--coral) 5%,var(--paper)); box-shadow:inset 0 0 0 2px var(--coral); }
main .agenda-day[id] { scroll-margin-top:var(--agenda-anchor-offset,180px); }
.agenda-match { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pc) 35%,transparent); }
.agenda-unselected { background:var(--paper)!important; }
.agenda-unselected::before { opacity:.18; }
.agenda-unselected .agenda-pillar,.agenda-unselected .agenda-cross { color:var(--muted); }
.agenda-speakers { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; }
.agenda-speakers>span[aria-hidden="true"] { display:none; }
.agenda-speaker-link,.agenda-speaker-identity { display:inline-flex; align-items:center; gap:8px; max-width:100%; color:inherit; text-decoration:none; border-radius:3px; }
.agenda-speaker-name { color:inherit!important; text-decoration:underline; text-decoration-color:color-mix(in srgb,var(--pc) 35%,transparent); text-underline-offset:4px; }
.agenda-speaker-identity .agenda-speaker-name { text-decoration:none; }
.agenda-speaker-portrait { display:block; width:32px; height:32px; flex:none; border:1px solid color-mix(in srgb,var(--pc) 28%,var(--line)); border-radius:50%; object-fit:cover; object-position:center; background:var(--tint); }
.agenda-speaker-initials { display:grid; place-items:center; color:var(--pc-text)!important; font:600 10px/1 var(--f-mono); letter-spacing:.03em; }
.agenda-speaker-link:hover { color:var(--pc-text); text-decoration-color:currentColor; }
.agenda-speaker-link:hover .agenda-speaker-name { text-decoration-color:currentColor; }
.agenda-local-date { display:block; font:400 9px/1.5 var(--f-mono); color:var(--pc-text); margin-top:6px; }
.agenda-profile { border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); padding:40px; margin:auto; width:min(660px,calc(100% - 32px)); max-height:85dvh; overflow:auto; box-shadow:0 24px 70px #0f222940; }
.agenda-profile::backdrop { background:#0f222999; backdrop-filter:blur(4px); }
.agenda-profile h2 { font:600 clamp(32px,5vw,48px)/1.1 var(--f-display); padding-right:30px; margin:12px 0; }
.agenda-profile-identity { color:var(--teal); font-size:14px; }
.agenda-profile section { margin-top:24px; }
.agenda-profile section h3 { font:500 11px/1.5 var(--f-mono); color:var(--muted); text-transform:uppercase; margin-bottom:8px; }
.agenda-profile section p { font:400 15px/1.7 var(--f-body); white-space:pre-line; overflow-wrap:anywhere; }
.agenda-profile-source { border-top:1px solid var(--line); padding-top:20px; margin-top:28px; font-size:12px; color:var(--muted); }
.agenda-profile-close { position:absolute; right:16px; top:16px; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--teal); font-size:26px; cursor:pointer; }
.agenda-profile-open { overflow:hidden; }
/* Native dialogs sit above the site's cursor canvas. Restore the real pointer while one is open. */
body.agenda-profile-open .inter-cursor-layer { display:none!important; }
html.has-inter-cursor body.agenda-profile-open,
html.has-inter-cursor body.agenda-profile-open * { cursor:auto!important; }
html.has-inter-cursor body.agenda-profile-open button,
html.has-inter-cursor body.agenda-profile-open a[href] { cursor:pointer!important; }
@media(max-width:900px) { .agenda-tools { flex-direction:column; gap:20px; } .agenda-timezone { flex:auto; width:min(100%,300px); } }
@media(max-width:640px) { .programme-days a { min-height:64px; } .programme-days a>b { font-size:13px; } .programme-days a>span:first-child { font-size:9px; } .agenda-profile { padding:28px 22px; } .agenda-pillar-key button { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .agenda-pillar-key button { transition:none; } }
@media print { .agenda-tools,.agenda-tool-status,.agenda-profile { display:none; } .agenda-speaker-link { text-decoration:none; } .agenda-match { box-shadow:none; } }

/* Concurrent programme labels retain the existing agenda layout. */
.agenda-room-label{font-size:11px;font-weight:600;border:1px solid currentColor;border-radius:20px;padding:4px 8px}.agenda-tags{flex-wrap:wrap}.agenda-time strong{font-size:15px}.agenda-card{min-width:0}

/* Time zone panel: one obvious switch above the schedule. Alberta time or
   the visitor's own, plus any place in the world. Paper, teal and coral
   tokens, the same pill shape as the pillar buttons. */
.agenda-tools { flex-wrap:wrap; }
.agenda-timezone { order:-1; flex:1 1 100%; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:14px 32px; padding:22px 24px; border:1px solid var(--line); border-radius:8px; background:color-mix(in srgb,var(--teal) 5%,var(--paper)); }
.agenda-zone-head { display:flex; flex-wrap:wrap; align-items:end; gap:14px 20px; }
.agenda-zone-head .agenda-tool-label { flex-basis:100%; margin-bottom:0; }
.agenda-zone-switch { display:inline-flex; padding:4px; gap:4px; border:1px solid var(--line); border-radius:999px; background:var(--paper); }
.agenda-zone-switch button { min-height:40px; padding:8px 16px; border:0; border-radius:999px; background:transparent; color:var(--ink); font:500 14px/1.2 var(--f-ui); cursor:pointer; white-space:nowrap; transition:background 180ms ease,color 180ms ease; }
.agenda-zone-switch button:hover { color:var(--teal); }
.agenda-zone-switch button[aria-pressed="true"] { background:var(--teal); color:var(--paper); }
.agenda-zone-switch button:focus-visible { outline:2px solid var(--coral); outline-offset:2px; }
.agenda-timezone .agenda-zone-place { display:flex; flex-direction:column; gap:6px; margin:0; font:500 10px/1.5 var(--f-mono); text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.agenda-timezone .agenda-zone-place select { width:min(260px,100%); min-height:44px; text-transform:none; letter-spacing:0; }
.agenda-timezone .agenda-zone-open { grid-column:1; margin:0; font:400 clamp(20px,2.4vw,26px)/1.3 var(--f-display); color:var(--ink); overflow-wrap:normal; }
.agenda-timezone .agenda-zone-open b { font-weight:600; color:var(--teal); }
.agenda-timezone .agenda-zone-meta { grid-column:2; grid-row:2; margin:0; text-align:right; }
@media(max-width:900px) { .agenda-timezone { width:auto; grid-template-columns:1fr; padding:18px 16px; } .agenda-timezone .agenda-zone-meta { grid-column:1; grid-row:auto; text-align:left; } .agenda-zone-switch { width:100%; } .agenda-zone-switch button { flex:1 1 0; padding-inline:10px; white-space:normal; } .agenda-timezone .agenda-zone-place, .agenda-timezone .agenda-zone-place select { width:100%; } }
@media(prefers-reduced-motion:reduce) { .agenda-zone-switch button { transition:none; } }
@media(max-width:520px) { .agenda-zone-where { display:none; } }
/* The switch sits in its own dark band right under the hero, so visitors
   pick their time before they read any of the programme. The band shares
   the hero's ground; site.js lays the fade into the light timeline below. */
.programme-your-time { padding-top:0; min-height:0; }
.programme-your-time .agenda-timezone { max-width:1040px; margin-inline:auto; }
.scr--deep .agenda-timezone { background:rgba(255,255,255,.04); border-color:rgba(217,221,214,.18); }
.scr--deep .agenda-timezone .agenda-tool-label,.scr--deep .agenda-timezone .agenda-zone-place { color:var(--mist-dim); }
.scr--deep .agenda-zone-switch { background:var(--deep-2); border-color:rgba(217,221,214,.18); }
.scr--deep .agenda-zone-switch button { color:var(--mist); }
.scr--deep .agenda-zone-switch button:hover { color:#fff; }
.scr--deep .agenda-zone-switch button[aria-pressed="true"] { background:var(--teal-lt); color:var(--deep); }
.scr--deep .agenda-timezone select { background:var(--deep-2); color:var(--mist); border-color:rgba(217,221,214,.25); }
.scr--deep .agenda-timezone .agenda-zone-open { color:#fff; }
.scr--deep .agenda-timezone .agenda-zone-open b { color:var(--teal-lt); }
.agenda-timezone .agenda-zone-meta { display:none; }
/* The five pillars on the dark ground. */
.scr--deep .programme-pillar-list article { border-color:rgba(217,221,214,.18); }
.scr--deep .programme-pillar-list p { color:var(--mist); }
.agenda-timezone .calendar-add { grid-column: 1; margin: 0; }
