/* Optical tracking is tuned per face: display titles are tighter than small headings. */
html[data-body-font="plex"]{--body-type:"IBM Plex Sans",Arial,sans-serif}
html[data-body-font="geist"]{--body-type:Geist,Arial,sans-serif}
html[data-mono-font="plex"]{--mono-display-tracking:-.055em;--mono-heading-tracking:-.04em;--mono-small-tracking:-.025em;--heading-type:"IBM Plex Mono",monospace}
html[data-mono-font="jetbrains"]{--mono-display-tracking:-.05em;--mono-heading-tracking:-.035em;--mono-small-tracking:-.02em;--heading-type:"JetBrains Mono",monospace}
html[data-mono-font="space"]{--mono-display-tracking:-.06em;--mono-heading-tracking:-.04em;--mono-small-tracking:-.025em;--heading-type:"Space Mono",monospace}
html[data-mono-font="dm"]{--mono-display-tracking:-.05em;--mono-heading-tracking:-.035em;--mono-small-tracking:-.02em;--heading-type:"DM Mono",monospace}
html[data-mono-font="roboto"]{--mono-display-tracking:-.055em;--mono-heading-tracking:-.04em;--mono-small-tracking:-.025em;--heading-type:"Roboto Mono",monospace}
html[data-mono-font="source"]{--mono-display-tracking:-.055em;--mono-heading-tracking:-.04em;--mono-small-tracking:-.025em;--heading-type:"Source Code Pro",monospace}
html[data-mono-font="inconsolata"]{--mono-display-tracking:-.035em;--mono-heading-tracking:-.025em;--mono-small-tracking:-.015em;--heading-type:"Inconsolata",monospace;--heading-scale:1.2}
html[data-mono-font="azeret"]{--mono-display-tracking:-.045em;--mono-heading-tracking:-.03em;--mono-small-tracking:-.02em;--heading-type:"Azeret Mono",monospace;--heading-scale:.923}
/* Inconsolata is upright; retain its drawn letterforms rather than a synthetic slant. */
html[data-mono-font="inconsolata"] h1 em,html[data-mono-font="inconsolata"] h2 em{font-style:normal}
body{font-family:var(--body-type)}
html[data-body-font="plex"] .voice-card blockquote{font-family:var(--body-type);font-size:30px;line-height:1.3;letter-spacing:-.015em}
html:not([data-mono-font="serif"]) :is(h1,h2,h3,.big-number,.about-stats strong,.future-art>strong,.menu-feature strong){font-family:var(--heading-type);font-weight:400;font-variant-ligatures:none;letter-spacing:var(--mono-heading-tracking);line-height:1.16}
html:not([data-mono-font="serif"]) .en-hero>div:first-child{container-type:inline-size}
html:not([data-mono-font="serif"]) .en-hero h1{font-size:clamp(38px,calc(8.3cqw * var(--heading-scale,1)),calc(80px * var(--heading-scale,1)));line-height:1.1;letter-spacing:var(--mono-display-tracking);word-spacing:-.06em}
html:not([data-mono-font="serif"]) h2{font-size:clamp(34px,3.4vw,48px)}
html:not([data-mono-font="serif"]) h3{font-size:25px;letter-spacing:var(--mono-small-tracking);line-height:1.2}
html:not([data-mono-font="serif"]) .tile-copy h2{font-size:clamp(19px,1.55vw,24px);letter-spacing:var(--mono-small-tracking)}
html:not([data-mono-font="serif"]) .topic-card h3{font-size:clamp(22px,2vw,29px)}
html:not([data-mono-font="serif"]) .audience-grid h3{font-size:23px}
html:not([data-mono-font="serif"]) .programme-list h3{font-size:27px}
html:not([data-mono-font="serif"]) .big-number{font-size:80px}
html:not([data-mono-font="serif"]) .keynote-text h2{font-size:clamp(48px,5.5vw,80px)}
html:not([data-mono-font="serif"]) .edition-card h3{font-size:72px}
html:not([data-mono-font="serif"]) .portrait h3{font-size:21px;letter-spacing:var(--mono-small-tracking)}
html:not([data-mono-font="serif"]) .team-grid .portrait h3{font-size:20px;letter-spacing:var(--mono-small-tracking);line-height:1.2}
html:not([data-mono-font="serif"]) .about-stats strong{font-size:58px}
html:not([data-mono-font="serif"]) .registration-banner h2{font-size:clamp(40px,4.2vw,60px);line-height:1.12;max-width:80%}
html:not([data-mono-font="serif"]) .future-art>strong{font-size:110px}
html:not([data-mono-font="serif"]) .menu-feature strong{font-size:25px}
@media(max-width:1023px){
 html:not([data-mono-font="serif"]) .tile-copy h2{font-size:27px}
 html:not([data-mono-font="serif"]) .about-stats strong{font-size:48px}
}
@media(max-width:800px){
 html:not([data-mono-font="serif"]) h2{font-size:40px}
 html:not([data-mono-font="serif"]) .topic-card h3{font-size:27px}
 html:not([data-mono-font="serif"]) .keynote-text h2{font-size:68px}
 html:not([data-mono-font="serif"]) .registration-banner h2{max-width:100%;font-size:48px}
}
@media(max-width:479px){
 html:not([data-mono-font="serif"]) .en-hero h1{font-size:clamp(30px,calc(10vw * var(--heading-scale,1)),46px);line-height:1.13;letter-spacing:var(--mono-heading-tracking);word-spacing:-.035em}
 html:not([data-mono-font="serif"]) h2{font-size:clamp(27px,8vw,36px)}
 html:not([data-mono-font="serif"]) .hero-tile{aspect-ratio:auto;min-height:210px}
 html:not([data-mono-font="serif"]) .tile-copy h2{font-size:18px;line-height:1.14}
 html:not([data-mono-font="serif"]) .programme-list h3{font-size:22px}
 html:not([data-mono-font="serif"]) .audience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 html:not([data-mono-font="serif"]) .audience-grid h3{font-size:clamp(17px,5vw,20px)}
 html:not([data-mono-font="serif"]) .portrait h3{font-size:19px}
 html:not([data-mono-font="serif"]) .keynote-text h2{font-size:54px}
 html:not([data-mono-font="serif"]) .big-number{font-size:62px}
 html:not([data-mono-font="serif"]) .about-stats strong{font-size:64px}
 html:not([data-mono-font="serif"]) .registration-banner h2{font-size:clamp(26px,7.4vw,35px)}
 html:not([data-mono-font="serif"]) .future-art>strong{font-size:92px}
 html[data-body-font="plex"] .voice-card blockquote{font-size:26px}
}
@media(max-width:359px){html[data-mono-font="space"] .audience-grid h3{font-size:16px}}
@media(max-width:359px){html[data-mono-font="azeret"] .audience-grid{grid-template-columns:1fr}}

html:not([data-mono-font="serif"]) :is(.keynote-text h2,.registration-banner h2){letter-spacing:var(--mono-display-tracking);word-spacing:-.06em}
@media(max-width:479px){html:not([data-mono-font="serif"]) :is(.keynote-text h2,.registration-banner h2){letter-spacing:var(--mono-heading-tracking);word-spacing:-.035em}}

/* Plex Mono hero trial: compact word spacing requested by the organiser. */
html[data-mono-font="plex"] .en-hero h1{font-size:clamp(36px,7.9cqw,76px);word-spacing:-.16em}
@media(max-width:479px){html[data-mono-font="plex"] .en-hero h1{font-size:clamp(29px,9.5vw,43px);word-spacing:-.16em}}
