/* General Sans and Switzer, Indian Type Foundry. ITF Free Font License. UI only. */
@font-face{font-family:'General Sans';src:url('/assets/fonts/general-sans-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'General Sans';src:url('/assets/fonts/general-sans-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'Switzer';src:url('/assets/fonts/switzer-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Switzer';src:url('/assets/fonts/switzer-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'Switzer';src:url('/assets/fonts/switzer-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{--font-display:'General Sans','Helvetica Neue',Helvetica,Arial,sans-serif;--font-site:Switzer,'Helvetica Neue',Helvetica,Arial,'PingFang SC','Microsoft YaHei',sans-serif;--serif:var(--font-display)}
body{font-family:var(--font-site);font-weight:400;letter-spacing:0;font-kerning:normal;font-synthesis:none}
button,input,select,textarea{font-family:var(--font-site)}
h1,h2,h3,h1 em,h2 em{font-family:var(--font-display);font-weight:500;font-style:normal;letter-spacing:0;line-height:1.2}
.word-logo,.logo{font-family:var(--font-display);font-size:30px;font-weight:500;letter-spacing:-.055em;line-height:1;text-transform:uppercase}
.footer-top>.word-logo{font-family:var(--font-display);font-weight:500;letter-spacing:-.055em;font-size:clamp(36px,6.3vw,92px);line-height:1.15}
.campaign-content h1{font-family:var(--font-display);font-weight:500;font-size:clamp(44px,4.6vw,70px);line-height:1.04;letter-spacing:-.045em}
.campaign-content h1 em{font-style:normal}
.statement h2,.section-heading h2,.method h2,.book-feature h2,.closing h2,.journal-grid h3,.study-detail h2,.palette-editorial h2{font-family:var(--font-display);font-weight:400;letter-spacing:-.035em;line-height:1.12}
.kicker,.eyebrow,.campaign-content .kicker{font-weight:500;letter-spacing:.12em}
.desktop-link,.nav-cta,.menu-toggle,.button,.campaign-actions a{font-family:var(--font-site);font-weight:400;letter-spacing:.01em}
.menu-drawer a{font-family:var(--font-site);font-weight:400;letter-spacing:.01em}
.case-caption h3{font-weight:500;letter-spacing:.07em}
.discovery-rail b{font-family:var(--font-site);font-weight:400;letter-spacing:0}
.contrast-readout output{font-family:var(--font-site);font-weight:400;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.panel-title h2,.result-header h2,.export-panel h3,.book-heading h2,.preflight-panel h2,.preflight-panel h3{font-family:var(--font-display);font-weight:500;letter-spacing:-.025em;line-height:1.2}
.field input,.field select,.field textarea,.status{font-family:var(--font-site)}
.file-label input::file-selector-button{font-family:var(--font-site)}
.logo .beta{font-family:var(--font-site);font-weight:400;letter-spacing:.12em;line-height:1.4}
@media(max-width:760px){.word-logo,.logo{font-size:24px;letter-spacing:-.04em}.campaign-content h1{font-size:42px;line-height:1.06;letter-spacing:-.04em}.footer-top>.word-logo{font-size:clamp(30px,8.5vw,52px);letter-spacing:-.045em}}

/* Reading rhythm and navigation hierarchy. */
.campaign-service{font-size:14px;line-height:1.75;max-width:33ch}.article-body{line-height:1.8}.discovery-rail b{font-family:var(--font-display);letter-spacing:-.025em}.case-caption h3{font-family:var(--font-display);letter-spacing:.015em}.menu-drawer a{font-family:var(--font-display);letter-spacing:-.035em}.book-heading h2{font-family:var(--font-display)}
