/* Shared type roles. Component files own colour, imagery and layout.
   Pixel headings and actions pair with IBM Plex Mono for reading and commerce.
   Pixel is the existing, locally bundled Press Start 2P font from game.css. */
@font-face{font-family:ArcadeMono;src:url('assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:ArcadeMono;src:url('assets/fonts/ibm-plex-mono/IBMPlexMono-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
:root{
 --type-arcade:Pixel,monospace;
 --type-mono:ArcadeMono,'Courier New',monospace;
 --type-reading:var(--type-mono);
 --type-headline-size:clamp(18px,2vw,26px);
 --type-lead-size:clamp(14px,1.2vw,16px);
 --type-body-size:15px;
 --type-display:400 var(--type-headline-size)/1.6 var(--type-arcade);
 --type-title:600 clamp(18px,2.2vw,30px)/1.35 var(--type-reading);
 --type-intro:400 var(--type-lead-size)/1.7 var(--type-reading);
 --type-copy:400 var(--type-body-size)/1.65 var(--type-reading);
 --type-meta:400 12px/1.65 var(--type-reading);
 --type-price:600 14px/1.55 var(--type-reading);
 --type-headline:400 var(--type-headline-size)/1.6 var(--type-arcade);
 --type-lead:400 var(--type-lead-size)/1.7 var(--type-reading);
 --type-body:400 var(--type-body-size)/1.65 var(--type-reading);
 --type-label:400 7px/1.8 var(--type-arcade);
 --type-action:400 8px/1.8 var(--type-arcade);
}
/* Site-wide contract. Component styles may change size, weight and colour,
   but every public view resolves to these two locally hosted families. */
html body{font-family:var(--type-reading);font-kerning:normal;text-rendering:optimizeLegibility}
:where(button,input,select,textarea){font-family:inherit}
:where(.catalog-screen,.vintage-room,.video-room,.about-screen,.story-page,#item-dialog,#collection-dialog,.match-app){font-family:var(--type-reading)}
:where(.catalog-price,.vintage-price,.merch-purchase>span,.home-edit-price,.mobile-price){font-variant-numeric:tabular-nums}
/* Headline: entrances and editorial titles. The campaign poster and printed
   fan ticket retain their own scale, with the same arcade font family. */
.home-screen :is(.shop-window-copy h2,.home-archive-copy h2,.home-vintage-find-intro h2){font:var(--type-headline);letter-spacing:-.04em;max-width:100%}
.home-screen .home-archive-copy h2{min-height:4.8em}
.home-screen .home-vintage-copy h2,.home-screen .home-video-copy h2{font:var(--type-headline);letter-spacing:-.04em}
.home-screen .merch-copy h2{font:400 clamp(20px,2.4vw,32px)/1.45 var(--type-arcade);letter-spacing:-.045em}
.home-screen .merch-copy h2 span{white-space:normal;overflow-wrap:anywhere}
.home-screen .home-vintage-product h3{font:400 11px/1.85 var(--type-arcade);letter-spacing:0;min-height:5.55em}
.home-screen .reward-ticket h3{font:400 15px/1.7 var(--type-arcade);letter-spacing:-.025em}
/* Ingress: a short introduction, never the same size or rhythm as a headline. */
.home-screen :is(.shop-window-intro>p:last-child,.challenge-copy>p:not(.challenge-kicker),.home-archive-copy>[data-archive-detail],.home-vintage-copy>p,.home-vintage-find-intro>p:last-child,.home-video-copy p:not(.vr-eyebrow),.home-story-moments){font:var(--type-lead);font-weight:400;letter-spacing:0}
.home-screen .home-archive-copy>[data-archive-detail]{min-height:6.8em}
/* Reading: factual product information, prices, quiz questions and longer
   supporting copy remain readable. Small legal/help notes retain their scale. */
.home-screen :is(.home-story-invitation,.merch-product-name){font-family:var(--type-reading);font-weight:400}
.home-screen .home-story-invitation{font:var(--type-body)}
/* Labels and actions: one voice for dates, counters and navigation controls. */
.home-screen .home-archive-date strong{font:400 28px/1.4 var(--type-arcade);letter-spacing:-.04em}
.home-screen :is(.home-archive-category,.home-vintage-product p,.story-ticket-edition>span){font:var(--type-label);letter-spacing:.025em}
.home-screen :is(.home-archive-report,.home-vintage-view){font:var(--type-action)}
.home-screen :is(.home-archive-controls [data-archive-count],.home-archive-controls [data-archive-pause],.home-vintage-controls [data-vintage-count],.home-vintage-controls [data-vintage-pause]){font:var(--type-label)}
@media(min-width:701px) and (max-width:1000px){
 .home-screen .home-archive-copy h2{font-size:16px;min-height:6.4em}
 .home-screen .home-archive-date strong{font-size:23px}
 .home-screen .home-vintage-product h3{font-size:10px}
}
@media(max-width:700px){
 :root{--type-headline-size:20px;--type-lead-size:14px;--type-body-size:14px}
 .home-screen .shop-window-copy h2{max-width:100%}
 .home-screen .home-archive-copy h2{font-size:18px;min-height:4.8em}
 .home-screen .home-archive-date strong{font-size:29px}
 .home-screen .merch-copy h2{font-size:clamp(12px,3.6vw,18px);line-height:1.5;letter-spacing:-.04em}
 .home-screen .home-vintage-product h3{font-size:10px}
 .home-screen .home-vintage-product p{font-size:6px}
}
@media(max-width:360px){
 :root{--type-headline-size:18px;--type-lead-size:13px}
 .home-screen .home-archive-copy h2{font-size:16px}
 .home-screen .home-archive-date strong{font-size:23px}
 .home-screen .home-vintage-product h3{font-size:9px}
}
/* Supporting information uses the approved reading face at each component scale. */
.home-screen .home-archive-date :is(time,span){font-family:var(--type-mono);font-size:12px;letter-spacing:0}
.home-screen :is(.merch-product-name,.merch-purchase>span,.home-vintage-price),.vintage-room .vintage-price{font-family:var(--type-mono);font-variant-numeric:tabular-nums;letter-spacing:0}
.vintage-room :is(.vintage-card-copy,.vintage-card h3,.vintage-card .vintage-kicker){font-family:var(--type-mono)}
.vintage-room .vintage-card h3{font-weight:600}
.home-screen :is(.merch-purchase>span,.home-vintage-price),.vintage-room .vintage-price{font-weight:600}
.vintage-room .vintage-price>strong{font-weight:600}
.vintage-room .vintage-price>span{font-weight:400}
@media(max-width:700px){.home-screen .home-archive-date :is(time,span){font-size:11px}}

.home-screen :is(.shop-window-note,.home-vintage-copy small,.home-vintage-disclosure,.home-story-note,.challenge-modes small,.quiz-question-caption,.quiz-explanation,.quiz-answer,.home-vintage-product h3){font-family:var(--type-reading)}
.home-screen .home-vintage-product h3{font-size:15px;font-weight:600;line-height:1.6;min-height:4.8em}
.home-shopping .story-ticket-reverse .home-story-moments{font-size:13px;line-height:1.6}
.home-shopping .story-ticket-reverse .home-story-invitation{font-size:12px;line-height:1.6}
@media(min-width:1001px){.home-shopping .home-archive-copy h2{font-size:20px}.home-shopping .shop-window-copy h2{font-size:20px}}
