/* Caved typography: one functional family, one optional expressive accent. */
@font-face{font-family:Neue;src:url('assets/fonts/HelveticaNeueLight.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:Climate;src:url('assets/fonts/ClimateCrisis-Regular-VariableFont_YEAR.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--type-body:16px;--type-small:13px;--type-label:12px;--type-h1:clamp(42px,5vw,72px);--type-h2:clamp(32px,3.2vw,46px);--leading-body:1.65}
body{font-family:Neue,sans-serif;font-weight:300;font-size:var(--type-body);line-height:var(--leading-body);font-synthesis:none}
h1,h2,h3,p{font-style:normal}h1{font-family:Neue,sans-serif;font-weight:300;font-size:var(--type-h1);line-height:1.08;letter-spacing:-.025em;max-width:15ch;text-wrap:balance;margin-bottom:28px}
h2{font-family:Neue,sans-serif;font-weight:300;font-size:var(--type-h2);line-height:1.12;letter-spacing:-.02em;text-wrap:balance;max-width:21ch}
h3{font-size:20px;font-weight:300;line-height:1.3;letter-spacing:-.01em}
p{line-height:var(--leading-body);max-width:60ch}strong,b{font-weight:300}
.hero>p{font-weight:300;font-size:24px;line-height:1.5;max-width:38ch}
.section-head{gap:48px;align-items:start}.section-head>p{font-size:15px;line-height:1.7;padding-top:30px;max-width:42ch}
.eyebrow,.role-meta{display:block;font-size:var(--type-label);font-weight:300;letter-spacing:.1em;line-height:1.5}.eyebrow{margin-bottom:18px}
.brand span{font-size:9px;font-weight:300;letter-spacing:.22em}nav a{font-size:13px;font-weight:300;line-height:1.5}nav a.current,nav a:hover{font-weight:300}nav span{font-size:10px}.aside-foot{font-size:11px;line-height:1.8;letter-spacing:0}
header{font-size:11px;letter-spacing:.08em}.text-link{font-size:13px;letter-spacing:0}
.hero-caption{font-size:9px;letter-spacing:.12em;line-height:1.5}
.stats b{font-family:Neue,sans-serif;font-size:32px;font-weight:300;line-height:1.2;font-variant-numeric:tabular-nums}.stats span{font-size:11px;font-weight:300;letter-spacing:.04em}
.note{font-size:13px;line-height:1.7;font-weight:300;max-width:65ch}.button{font-size:14px;font-weight:300;line-height:1.25;letter-spacing:0}.small-links,.font-card a,.image-card a{font-size:12px;line-height:1.5}
legend,.search-label{font-size:13px;font-weight:300;line-height:1.5}.logo-controls p{font-size:14px;line-height:1.65}.logo-card h3,.icon-card h3,.font-card h3{font-size:14px;line-height:1.4;font-weight:300}.colour-fill{font-family:Neue,sans-serif;font-size:32px;font-weight:300;line-height:1.2}
.code-format{font-size:11px;font-weight:300;letter-spacing:.05em}.code-value{font-size:14px;font-weight:300}.copy-label{font-size:11px}.contrast-row{font-size:13px;line-height:1.5}.font-card p{font-size:12px;line-height:1.65}
.type-toolbar{font-size:13px;line-height:1.5}.type-toolbar select{font:inherit;color:inherit;background:transparent;border:1px solid #4b322260;padding:9px;max-width:100%;display:block;margin-top:8px}
.type-tester textarea{font-family:Neue,sans-serif;font-weight:300;font-size:48px;line-height:1.2;letter-spacing:-.015em;min-height:200px}.type-toolbar label:last-child{font-size:12px}
.tabs button{font-size:13px;font-weight:300;line-height:1.5}.card-body h3{font-size:16px;line-height:1.35}.image-card h3{font-size:14px}.image-card small{font-size:12px}.guidance-grid p{font-size:15px;line-height:1.7}.guidance-grid article>span{font-size:12px}.download-panel p{font-size:14px;line-height:1.6}details{font-size:14px;line-height:1.7}footer{font-size:12px;line-height:1.5}#toast{font-size:13px}dialog p{font-size:14px}
.type-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-bottom:30px}.type-roles article{border-top:1px solid #4b322250;padding-top:20px;min-width:0}.type-roles article>p:not([class]){font-size:14px;line-height:1.65}.role-heading,.role-intro,.role-action{font-size:clamp(25px,2.2vw,34px);line-height:1.2;letter-spacing:-.015em;min-height:90px;margin:28px 0 20px}.role-heading{font-weight:300}.role-intro{font-weight:300}.role-action{font-weight:300}.role-meta{font-size:11px;letter-spacing:.04em}
.type-applications{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0 45px}.type-applications article{padding:32px;min-width:0}.menu-specimen{border:1px solid #4b322230;background:#eee7de}.menu-specimen h3{font-size:32px;line-height:1.15;margin:30px 0 16px}.menu-intro{font-size:22px;font-weight:300;line-height:1.5}.menu-item{border-top:1px solid #4b322230;padding:17px 0}.menu-item strong{font-size:16px;font-weight:300;display:block}.menu-item span{font-size:14px;display:block;margin-top:6px}.type-applications small{font-size:11px;display:block;margin-top:24px}.campaign-specimen{background:#4b3222;color:#c4af9b;display:flex;flex-direction:column;justify-content:space-between}.campaign-specimen p{color:inherit}.campaign-accent{font-family:Climate,sans-serif;font-weight:400;font-size:clamp(28px,3vw,44px);font-variation-settings:'YEAR' 1979;line-height:1.22;letter-spacing:0;margin:30px 0}
@media(max-width:760px){:root{--type-h1:44px;--type-h2:32px}.hero>p{font-size:21px}.section-head{gap:18px}.section-head>p{padding-top:0;font-size:15px}.brand span{font-size:8px}nav a{font-size:12px}header{font-size:9px}header .text-link{font-size:11px}.hero-caption{font-size:7px}.stats b{font-size:28px}.stats span{font-size:10px}.type-roles,.type-applications{grid-template-columns:1fr}.role-heading,.role-intro,.role-action{min-height:0;font-size:30px}.type-roles article{padding-bottom:10px}.type-applications article{padding:24px}.campaign-accent{font-size:38px}.type-tester textarea{font-size:36px}.type-toolbar{align-items:stretch}.type-toolbar select{width:100%}.contrast-row{font-size:12px}.tabs button{font-size:12px;padding:10px 12px}.button{font-size:13px}.text-link{font-size:12px}}

/* Short descriptive names carry the expressive brand voice. */
.colour-fill{font-family:Climate,sans-serif;font-weight:400;font-variation-settings:'YEAR' 1979;font-size:clamp(24px,2.5vw,36px);line-height:1.2;letter-spacing:0}
@media(max-width:760px){.colour-fill{font-size:34px}}

/* Audited editorial roles: explicit assignment, never based on heading level alone. */
.brand-title,.role-brand{font-family:Climate,sans-serif;font-weight:400;font-variation-settings:'YEAR' 1979;letter-spacing:0;line-height:1.22;text-wrap:balance}
h2.brand-title{font-size:clamp(28px,2.9vw,44px);max-width:19ch}
.role-brand{font-size:36px;margin:28px 0 20px;min-height:90px;color:#4b3222}
.type-roles article{padding:24px;border:1px solid #4b322225}.type-roles .expression-role{background:#c4af9b}
.type-roles article>p:not([class]){font-size:16px;max-width:45ch}.role-heading,.role-intro,.role-action{color:#4b3222}
.type-rule{border-left:3px solid #4b3222;padding:4px 0 4px 22px;margin:0 0 32px}.type-rule strong{font-size:18px}.type-rule p{margin:8px 0 0;font-size:16px}
.section-head>p{font-size:16px;line-height:1.65;max-width:45ch}.note{font-size:14px;line-height:1.65}
.brand span{font-size:10px}.aside-foot{font-size:12px}.hero-caption{font-size:11px}.role-meta{font-size:11px;line-height:1.6}.font-card p,.image-card small{font-size:13px}.font-card a,.small-links{font-size:13px}
.menu-specimen h3.brand-title{font-size:36px;line-height:1.22}.menu-item span{font-size:16px}.campaign-specimen>p:not(.campaign-accent){font-size:20px;font-weight:300;line-height:1.5}
.audit-notes{margin-bottom:36px}.audit-notes p{max-width:65ch}.audit-notes a{text-underline-offset:3px}
.colour-fill{height:auto;min-height:190px;overflow-wrap:normal}.type-roles article,.section-head>div,.section-head>p{min-width:0}
.small-links a,.font-card a,.image-card a{display:inline-flex;align-items:center;min-height:30px}.swatch-option{width:34px;height:34px}
@media(max-width:1050px) and (min-width:761px){.section-head{grid-template-columns:1fr;gap:18px}.section-head>p{padding-top:0;max-width:60ch}}
@media(max-width:760px){.type-roles{grid-template-columns:1fr}.type-roles article{padding:22px}.role-brand{font-size:34px;min-height:0}.section-head>p{font-size:16px}.hero-caption{font-size:9px;letter-spacing:.04em;gap:12px;flex-wrap:wrap}.brand span{font-size:9px}.stats span{font-size:11px}.colour-fill{min-height:145px}.type-tester textarea{min-width:0;width:100%;font-size:32px}.type-toolbar label{min-width:0;max-width:100%}.type-toolbar select{min-width:0;max-width:100%;white-space:normal}.type-applications small{font-size:12px}.campaign-accent{font-size:34px}}
/* Allow reader spacing overrides without cutting off expressive words. */
.brand-title,.role-brand,.campaign-accent,.colour-fill{overflow-wrap:anywhere}

/* Light-led revision: hierarchy through scale, space and contrast. */
:root{--type-body:18px;--type-small:16px;--type-label:13px}
body{font-weight:300;color:#4b3222}p{color:#4b3222}h1,h2,h3,strong,b{font-weight:300}
nav a,nav a:hover,nav a.current{font-weight:300;font-size:15px}nav a.current{border-bottom:2px solid #4b3222}
.section-head>p,.type-roles article>p:not([class]),.guidance-grid p{font-size:18px;line-height:1.6}
.note,.logo-controls p,.font-card p,.download-panel p{font-size:16px;line-height:1.65}
.button{font-size:16px;font-weight:300;min-height:46px}.eyebrow{font-size:13px;letter-spacing:.07em}.role-meta{font-size:12px}
.code-value{font-size:17px}.code-format,.copy-label{font-size:13px}.small-links,.font-card a,.image-card a{font-size:14px}
.logo-card h3,.icon-card h3,.font-card h3{font-size:16px}.type-toolbar,.tabs button{font-size:15px}
.role-action{font-weight:300}.type-rule strong{font-size:22px}.type-rule p{font-size:18px}.colour-code:hover .copy-label{font-weight:300;text-decoration-thickness:2px}
@media(max-width:760px){.section-head>p{font-size:18px}.note{font-size:16px}nav a{font-size:14px}.button{font-size:15px}.type-roles article>p:not([class]){font-size:17px}.code-value{font-size:16px}.type-toolbar select{font-size:14px}}

/* Final library pass: assets first. */
.hero{padding:42px 0}.hero h1{font-size:clamp(36px,4vw,56px);margin:0;max-width:none}.section-head{display:block;margin-bottom:24px}section{padding:48px 0}.section-head h2{font-size:36px}.type-roles article{padding:22px}.role-brand,.role-intro{margin:20px 0 0;min-height:0}.download-panel{margin:0}.font-card p:empty,#imageNote:empty{display:none}footer{padding:25px 0}
