/* Art direction: theatrical images, compact editorial typography, clear UI. */
:root{--heading:var(--sans)}
body{font-weight:400;line-height:1.8}
.brand{font-family:var(--sans);font-weight:700;line-height:1.2;letter-spacing:-.045em}
.brand span{font-size:10px;line-height:1.8;letter-spacing:.12em}
.site-header nav{letter-spacing:0;gap:24px}
.site-header nav a{font-weight:500;letter-spacing:0}
.header-ticket{font-weight:700;letter-spacing:.02em;justify-content:center;min-width:148px}
.section-label h2,.section-top h2,.ticket-intro h2,.history h2,.archive-intro h1,.finalists h2,.event-film h3{font:700 clamp(2rem,2.7vw,2.5rem)/1.4 var(--heading);letter-spacing:-.035em}
.section-label h2 br{display:none}
.section-label h2{max-width:8em}
.section-top{margin-bottom:36px}
.lead{font:700 clamp(1.5rem,2.3vw,2rem)/1.6 var(--heading);letter-spacing:-.025em;margin-bottom:28px}
.about{grid-template-columns:minmax(0,1fr) minmax(0,2.1fr);gap:7%}
.about-prose{max-width:42em;line-height:1.95;letter-spacing:.015em;margin-top:32px}
.about-prose p+p{margin-top:24px}
.video-external{font-size:14px;line-height:1.7}
.hero-copy{letter-spacing:.045em}
.hero-date,.ticket-date,.ticket-year,.price,.bonus strong,.mobile-date,.vote-dates,.champion-label,.year-nav a,.finalist-grid p{font-family:var(--sans);font-variant-numeric:lining-nums tabular-nums}
.hero-date{font-size:clamp(2.5rem,4vw,3.625rem);font-weight:600;letter-spacing:-.035em;line-height:1.2}
.hero-date>span{font-size:.48em;letter-spacing:0;margin-right:4px}
.event-rail>p:not(.hero-date){font-size:14px;letter-spacing:0}
.scroll-cue{font-size:12px;letter-spacing:.04em}
.vote-kicker{font-size:16px;font-weight:600;letter-spacing:.035em}
.vote-section h2{font:700 clamp(2rem,4vw,3.5rem)/1.5 var(--heading);letter-spacing:-.025em;text-wrap:balance}
.vote-round h3{font:700 1.75rem/1.5 var(--heading);letter-spacing:-.02em}
.vote-intro{font-size:16px}
.vote-rounds{gap:48px}
.vote-dates{gap:16px;flex-wrap:wrap}
.vote-dates time{font-weight:600;letter-spacing:-.03em}
.vote-dates small{font-weight:400}
.vote-round button{letter-spacing:0;line-height:1.6}
.person h4{font:500 1rem/1.6 var(--sans);letter-spacing:.015em;margin-top:14px}
.role-title h3{font:700 1.375rem/1.5 var(--heading);letter-spacing:0}
.role-title{margin-bottom:22px}
.event-film h3{max-width:1000px}
.event-film video{margin-top:32px}
.tickets{padding-block:88px;gap:6%}
.ticket-intro h2{margin-bottom:20px}
.ticket-date{font-weight:600;font-size:clamp(3rem,5.5vw,4.75rem);line-height:1.2;letter-spacing:-.045em;margin:0}
.ticket-date small{font-family:var(--sans);font-size:16px;font-weight:500}
.ticket-year{letter-spacing:.02em;font-size:14px;margin-top:8px}
.ticket-hours{font-size:14px;white-space:normal}
.venue{font:500 1rem/1.8 var(--sans);letter-spacing:0}
.ticket-options{gap:20px;min-width:0}
.ticket-card{background:#19171d;border:1px solid #37323d;padding:30px 24px;min-width:0;min-height:320px;gap:0}
.ticket-card:before{display:none}
.ticket-card h3{font:600 1.25rem/1.5 var(--sans);letter-spacing:0;margin:0 0 24px;white-space:normal}
.ticket-card .price{font:600 clamp(2rem,3vw,2.75rem)/1.3 var(--sans);letter-spacing:-.03em;margin:0 0 12px;white-space:normal}
.price>span{font:500 1rem var(--sans);margin-left:6px}
.price>small{font:400 .875rem var(--sans);display:block;margin:0 0 4px;color:#cdc8d2}
.bonus{font:400 .875rem/1.7 var(--sans);white-space:normal;margin:0 0 28px;color:#ded9e3}
.bonus strong{font-size:1.25rem;font-weight:600;color:var(--paper)}
.ticket-card button{font-size:14px;line-height:1.6;letter-spacing:0;padding:14px 8px;margin-top:auto}
.ticket-card button:disabled{background:#302c35;color:#e0dbe5;border:1px solid #665e70}
.history-title>p:last-child{font:400 1rem/1.7 var(--sans);letter-spacing:.03em;margin-top:12px}
.winners{gap:32px}
.winner-card .champion-label{font-weight:600;letter-spacing:-.025em;gap:10px;flex-wrap:wrap;line-height:1.4}
.winner-card .champion-label small{border:0;padding:0;font:400 .875rem/1.5 var(--sans);letter-spacing:0;color:#e0dad0}
.winner-card>small{font-size:14px;letter-spacing:0}
.art-frame>span{font-family:var(--serif);font-weight:500;line-height:1.8;letter-spacing:.015em;overflow-wrap:normal;word-break:normal;line-break:strict;text-wrap:balance;width:100%}
.art-frame .title-line{display:block;color:inherit;font:inherit;letter-spacing:inherit;padding:0;overflow-wrap:normal}
.winner-card .art-frame>span{font-size:clamp(1rem,1.45vw,1.375rem);padding:20px 12px}
.winner-feature .art-frame>span{font-size:clamp(1.5rem,3vw,2.375rem);padding:32px}
.finalist-grid .art-frame{aspect-ratio:auto;min-height:200px;height:100%}
.finalist-grid>article{display:flex;flex-direction:column;min-width:0}
.finalist-grid .art-frame>span{font-size:clamp(1rem,1.4vw,1.25rem);padding:24px 12px}
.finalist-grid p{font-size:16px;color:#c9c2ce;margin-top:16px}
.year-nav a{font-weight:500;font-size:24px}
.pending{font-size:14px;color:#d1cbd6}
footer>small{font-size:12px;color:#aaa3b1}
footer>a:not(.brand){font-size:14px}
@media(max-width:1050px){.tickets{grid-template-columns:1fr}.ticket-intro h2{margin-bottom:16px}.ticket-date{grid-column:1;grid-row:2/4}.ticket-year{position:static;grid-column:1;grid-row:4;margin-top:8px}.ticket-options{gap:24px}.ticket-card{min-height:300px}.site-header{gap:20px}.site-header nav{gap:16px}.site-header nav a{font-size:14px}.header-ticket{min-width:132px;padding-inline:16px}.finalist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px) and (min-width:701px){.site-header{padding-inline:3%;gap:14px}.site-header nav{gap:12px}.site-header .brand{font-size:22px}.header-ticket{min-width:120px}.about{grid-template-columns:1fr;gap:28px}.section-label h2{max-width:none}}
@media(max-width:700px){
.section-label h2,.section-top h2,.ticket-intro h2,.history h2,.archive-intro h1,.finalists h2,.event-film h3{font-size:1.875rem;line-height:1.4;letter-spacing:-.035em}
.section-label h2{max-width:none}.section-label h2 br{display:none}
.about{grid-template-columns:1fr;gap:28px}.lead{font-size:1.5rem;line-height:1.65;margin-bottom:24px}.about-prose{line-height:1.95}
.hero-date{font-size:2.75rem}.hero-date>span{font-size:.5em}
.vote-section h2{font-size:1.9375rem;line-height:1.55}.vote-rounds{gap:40px}.vote-round h3{font-size:1.5rem}.vote-dates{gap:12px}.vote-dates time{font-size:2.125rem}.vote-dates small{margin-left:5px}
.person h4{font-size:1rem;line-height:1.6}.role-title h3{font-size:1.25rem}
.tickets{padding-block:60px}.ticket-intro{display:block}.ticket-intro h2{margin-bottom:20px}.ticket-date{font-size:4rem}.ticket-year{position:static;display:block;margin:8px 0 0}.ticket-hours{margin-top:20px}
.ticket-options{grid-template-columns:1fr;gap:20px}.ticket-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-items:baseline;gap:18px 12px;min-height:0;padding:28px 24px}
.ticket-card h3{grid-column:1;grid-row:1;font-size:1.125rem;margin:0}.ticket-card .price{grid-column:2;grid-row:1;text-align:right;font-size:2rem;margin:0}.ticket-card .price>small{display:inline;font-size:12px;margin-right:6px}.ticket-card .bonus{grid-column:1/-1;grid-row:2;text-align:right;margin:0;font-size:14px}.ticket-card button{grid-column:1/-1;grid-row:3;margin:6px 0 0}.venue-card button{grid-row:2}
.history{padding-inline:8%}.history-title{margin-bottom:40px}.winners{grid-template-columns:minmax(0,1fr);gap:44px;max-width:460px}.winner-card .champion-label{font-size:1.5rem;margin-bottom:22px;flex-wrap:nowrap}.winner-card .champion-label small{font-size:14px}.winner-card .art-frame{aspect-ratio:1.85;min-height:160px}.winner-card .art-frame>span{font-size:1.375rem;padding:22px}.winner-card>small{display:inline-block;margin-top:20px;padding-bottom:5px}
.finalist-grid{gap:32px 22px}.finalist-grid .art-frame{aspect-ratio:auto;min-height:185px}.finalist-grid .art-frame>span{font-size:1rem;padding:20px 10px;letter-spacing:0}.winner-feature .art-frame{aspect-ratio:auto;min-height:220px}.winner-feature .art-frame>span{padding:28px 18px;font-size:1.5rem}
.mobile-ticket{font:600 1rem/1.5 var(--sans);letter-spacing:0;padding-block:14px calc(14px + env(safe-area-inset-bottom))}.mobile-ticket>span:last-child{background:#7520b9;padding:9px 20px}.mobile-date{font-size:1.5rem;letter-spacing:-.02em}.mobile-date small{font-size:14px}
footer{padding-bottom:130px}.brand span{font-size:10px}.scroll-cue{font-size:12px}
}
@media(max-width:370px){.ticket-card{padding:24px 18px;grid-template-columns:1fr}.ticket-card h3{font-size:1.125rem}.ticket-card .price{grid-column:1;grid-row:2;text-align:left;font-size:2rem}.ticket-card .bonus{grid-row:3;text-align:left}.ticket-card button{grid-row:4}.venue-card button{grid-row:3}.finalist-grid{grid-template-columns:1fr}.finalist-grid .art-frame{min-height:160px}.vote-dates time{font-size:1.875rem}.mobile-ticket>span:last-child{padding-inline:16px}}

/* Supplied brand artwork and consistent cast sizing. */
.site-header .brand,footer .brand{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;width:128px;font-size:initial;line-height:1}
.brand img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:contain}
.brand span{font-size:10px;white-space:nowrap;letter-spacing:.1em;line-height:1.5;margin-top:2px}
footer .brand{width:160px}
.cast .support{max-width:none;display:block}
.cast .pair{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.cast .photo-slot{display:block;aspect-ratio:auto!important;height:0;padding-bottom:133.333333%;width:100%;position:relative}
.cast .photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cast .person{opacity:1;transform:none}
.winner-card .art-frame .title-line,.winner-feature .art-frame .title-line,.finalist-grid .art-frame .title-line{display:block;font:inherit;line-height:inherit;letter-spacing:inherit;padding:0;margin:0;overflow-wrap:normal;word-break:normal;color:inherit}
.winner-card .champion-label{white-space:nowrap}
.winner-feature .champion-label{white-space:nowrap}
@media(max-width:1050px){.cast .pair{gap:18px}}
@media(max-width:700px){.site-header .brand{width:104px}.cast .pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.winner-card .art-frame{aspect-ratio:auto;min-height:180px}.winner-card .art-frame>span{font-size:1.25rem;padding:24px 16px}.mobile-date{white-space:nowrap;flex-shrink:0}.mobile-ticket{gap:16px}.mobile-ticket>span:last-child{white-space:nowrap}.brand span{font-size:9px}}

/* Compact header logo with more breathing room. */
.site-header .brand{width:108px}
.site-header .brand span{font-size:9px;letter-spacing:.06em}
@media(max-width:700px){.site-header .brand{width:88px}.site-header .brand span{font-size:8px;letter-spacing:.04em}}
