/* Shared type scale for all live pages. Numeric tracking never leaks into labels. */
:root{--type-section:clamp(2rem,2.7vw,2.5rem);--type-subhead:1.25rem;--type-body:1rem;--type-label:.875rem;--type-note:.875rem;--tracking-text:0em;--tracking-heading:0em;--tracking-number:-.025em}
body{font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.8;letter-spacing:var(--tracking-text);font-kerning:normal}
.section-label h2,.section-top h2,.cast .role-title h3,.ticket-intro h2,.history h2,.archive-intro h1,.finalists h2,.event-film h3{font:700 var(--type-section)/1.4 var(--sans);letter-spacing:var(--tracking-heading)}
.cast .section-top,.cast .role-title{margin-bottom:32px}
.lead{letter-spacing:var(--tracking-heading)}
.about-prose,.person h4,.venue,.history-title>p:last-child{font-size:var(--type-body);letter-spacing:var(--tracking-text)}
.person h4{font-weight:500;line-height:1.6}
.vote-section h2,.vote-action strong{letter-spacing:var(--tracking-heading)}
.vote-kicker{font-size:var(--type-label);letter-spacing:var(--tracking-text)}
.vote-round .round-period,.vote-round .round-summary{font-size:var(--type-label);letter-spacing:var(--tracking-text);line-height:1.8}
.action-caption{font-size:var(--type-body);letter-spacing:var(--tracking-text);line-height:1.6}
.vote-note,.ticket-benefit,.event-film>small,.pending,.finalist-grid small{font:400 var(--type-note)/1.8 var(--sans);letter-spacing:var(--tracking-text)}
.ticket-card h3{font:700 var(--type-subhead)/1.5 var(--sans);letter-spacing:var(--tracking-heading)}
.ticket-card .price{font-size:clamp(2rem,3vw,2.625rem);font-weight:700;line-height:1.25;letter-spacing:var(--tracking-number);font-variant-numeric:lining-nums tabular-nums}
.ticket-card .price>small{font:500 var(--type-label)/1.6 var(--sans);letter-spacing:var(--tracking-text);font-variant-numeric:normal;display:block;margin:0 0 6px}
.ticket-card .price>span{font:500 var(--type-label)/1.6 var(--sans);letter-spacing:var(--tracking-text);font-variant-numeric:normal;margin-left:5px}
.ticket-hours,.ticket-year,.ticket-intro .ticket-launch{font-size:var(--type-label);letter-spacing:var(--tracking-text)}
.ticket-launch strong{font-size:var(--type-body);letter-spacing:var(--tracking-text)}
.hero-date,.ticket-date,.mobile-date{font-variant-numeric:lining-nums tabular-nums;letter-spacing:var(--tracking-number)}
.hero-date>span,.hero-date small,.ticket-date small,.mobile-date small{letter-spacing:var(--tracking-text)}
.site-header nav a,.header-ticket,.rail-link,.video-external,.back,.ticket-link,.winner-card>small,footer>a:not(.brand),#video-dialog>a{font-size:var(--type-label);letter-spacing:var(--tracking-text);line-height:1.6}
.ticket-card .ticket-action,.mobile-ticket{font-size:var(--type-body);letter-spacing:var(--tracking-text)}
.winner-card .champion-label{letter-spacing:var(--tracking-number)}
.winner-card .champion-label small{font:400 var(--type-label)/1.6 var(--sans);letter-spacing:var(--tracking-text)}
.art-frame>span,.art-frame .title-line,.winner-card .art-frame .title-line,.winner-feature .art-frame .title-line,.finalist-grid .art-frame .title-line{letter-spacing:var(--tracking-text)}
.winner-feature .champion-label{font-family:var(--sans);letter-spacing:var(--tracking-text)}
.year-nav a,.finalist-grid p{letter-spacing:var(--tracking-text)}
dialog h2{font:700 1.5rem/1.5 var(--sans);letter-spacing:var(--tracking-heading)}
dialog p:not(.eyebrow){font:400 var(--type-body)/1.8 var(--sans);letter-spacing:var(--tracking-text)}
@media(max-width:700px){:root{--type-section:1.875rem}.cast .section-top,.cast .role-title{margin-bottom:28px}.ticket-card .price{font-size:2.375rem}.site-header nav a{font-size:var(--type-body)}}
@media(max-width:370px){.ticket-card .price{font-size:2.0625rem}}
