@font-face{font-family:"Gambarino";src:url("fonts/Gambarino-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Roundo";src:url("fonts/Roundo-ExtraLight.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:"Roundo";src:url("fonts/Roundo-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Roundo";src:url("fonts/Roundo-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Roundo";src:url("fonts/Roundo-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Roundo";src:url("fonts/Roundo-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Roundo";src:url("fonts/Roundo-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --blush:#F5E6E6;
  --ink:#111111;
  --hairline:rgba(17,17,17,.2);
  --cell-border:rgba(17,17,17,.28);
  --cell-dashed:rgba(17,17,17,.35);
  --amethyst:#7A1FA8;
  --serif:"Gambarino",Georgia,serif;
  --sans:"Roundo",system-ui,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--blush);color:var(--ink);overflow-x:hidden}
body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .2 0 0 0 0 .22 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
html{scroll-behavior:smooth;scroll-padding-top:12px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body.dialog-open{overflow:hidden}

a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--amethyst)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
img{display:block;max-width:100%}

.page{min-height:100vh;font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--ink)}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(18px,5vw,56px)}

/* "Label style": Gambarino, small caps, tracked */
.label{font-family:var(--serif);font-weight:400;font-variant-caps:all-small-caps;letter-spacing:.14em}
.nav-link{text-decoration:none}

/* Header */
.site-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px;padding:22px 0;border-bottom:1px solid var(--hairline);font-size:19px}
.site-header a:first-child{font-size:19px}
.site-header nav{display:flex;flex-wrap:wrap;gap:6px 28px;font-size:19px}

/* Title */
.title-strip{padding:clamp(16px,3vw,28px) 0 clamp(12px,2vw,20px)}
.title-strip h1{margin:0;width:100%;aspect-ratio:6 / 1}
.title-strip img{width:100%;height:100%;object-fit:contain}

/* Talkbacks section */
.talkbacks{padding:clamp(24px,3.5vw,40px) 0 clamp(40px,6vw,72px);border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:28px}
.tb-intro{display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}
.tb-intro h2{margin:0;letter-spacing:.18em;font-size:clamp(32px,5vw,52px);line-height:1.05}
.tb-intro p{margin:0;max-width:560px;text-wrap:pretty}

.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px}
.legend li{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.1em;font-size:18px}
.legend .swatch{width:12px;height:12px;transform:rotate(45deg);flex:none}

.action-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:12px 0}
.action-bar a{letter-spacing:.12em;font-size:18px;margin-left:auto}

/* Desktop calendar */
.grid{display:flex;flex-direction:column;gap:8px}
.grid-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.col-head{font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.2em;font-size:18px;text-align:center;padding-bottom:4px}
.cell{min-height:150px;min-width:0}
.cell.out{border:1px dashed var(--cell-dashed);opacity:.45;padding:12px 14px}
.cell.in{border:1px solid var(--cell-border);padding:12px 14px 14px;display:flex;flex-direction:column;gap:12px}
.cell .mon{font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.12em;font-size:16px}
.cell .num{font-family:var(--serif);font-weight:300;font-size:30px;line-height:1;margin-left:6px}

.badge{margin-top:auto;text-align:left;cursor:pointer;border:0;border-radius:0;padding:10px 12px;display:flex;flex-direction:column;gap:4px;font:inherit;width:100%}
.badge:hover{filter:brightness(1.12)}
.badge-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:600;font-size:15px;line-height:1.25}
.badge-time{font-size:13px;line-height:1.3}
.asl-tag{border:1px solid #F5E6E6;padding:1px 6px;font-size:12px;letter-spacing:.12em}

/* Mobile event list */
.events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.event-card{border:1px solid var(--cell-border);padding:18px;display:flex;flex-direction:column;gap:8px}
.event-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.event-date{font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.12em;font-size:19px}
.chip{font-size:12px;font-weight:600;letter-spacing:.06em;padding:3px 8px}
.event-title{font-weight:600;line-height:1.3;text-wrap:pretty}
.event-meta{font-size:15px;text-wrap:pretty}
.event-add{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.event-add a{letter-spacing:.1em;font-size:17px;padding:6px 0}

/* Production */
.production{padding:clamp(40px,6vw,72px) 0;border-top:1px solid var(--hairline)}
.production-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px}
.credits{display:flex;flex-direction:column;gap:10px;max-width:720px}
.credit-lines{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(24px,3.2vw,36px);line-height:1.2;text-wrap:pretty;display:flex;flex-direction:column}
.date-line{margin:0;font-size:21px}


/* Poster */
.poster-section{padding:clamp(40px,6vw,72px) 0;border-top:1px solid var(--hairline);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:32px 64px}
.poster-frame{width:min(300px,100%);border:1px solid var(--ink);padding:6px}
.poster-frame img{width:100%;height:auto;aspect-ratio:2 / 3;object-fit:contain}
.poster-text{display:flex;flex-direction:column;gap:18px;align-items:flex-start;max-width:420px}
.venue{margin:0;font-family:var(--serif);font-weight:300;font-size:30px;line-height:1.2}

/* Footer */
.site-footer{border-top:1px solid var(--hairline);padding:clamp(48px,7vw,88px) 0 40px;display:flex;flex-direction:column;align-items:center;gap:40px;text-align:center}
.dedication{margin:0;display:flex;flex-direction:column;gap:2px;font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(22px,2.6vw,28px);line-height:1.3}
.dedicatee{font-style:normal;font-weight:400;font-variant-caps:all-small-caps;letter-spacing:.18em;font-size:clamp(34px,5vw,48px);margin-top:6px}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 28px;font-size:18px}
.handle{font-size:15px;letter-spacing:.04em}

/* Dialog */
.backdrop{position:fixed;inset:0;background:rgba(17,17,17,.55);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}
.dialog{background:var(--blush);width:min(560px,100%);max-height:90vh;overflow:auto;border:1px solid var(--ink)}
.dialog-band{padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.dialog-date{font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:19px}
.dialog-close{background:transparent;border:1px solid currentColor;border-radius:0;color:inherit;width:36px;height:36px;font:inherit;font-size:20px;line-height:1;cursor:pointer;flex:none}
.dialog-body{padding:24px 22px 26px;display:flex;flex-direction:column;gap:10px}
.dialog-body h3{margin:0;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.15;text-wrap:pretty}
.dialog-body .speakers{text-wrap:pretty}
.dialog-add{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-top:10px}
.dialog-add a{letter-spacing:.1em;font-size:18px;align-self:flex-start}
.dialog-close:focus-visible{outline-color:currentColor}

/* Optional talkback note (e.g. N95 Mask Required) */
.badge-note{font-size:12px;font-weight:600;line-height:1.3;letter-spacing:.02em;border-top:1px solid currentColor;padding-top:5px;margin-top:2px}
.note-box{display:block;border:1px solid var(--ink);padding:8px 12px;align-self:flex-start;line-height:1.4}
.note-flag{font-weight:600;font-style:italic;margin-right:10px}
.note-dialog{margin-top:4px}
.note-card{font-size:15px}
