/* Semantic colours keep every surface and clinical detail readable in either theme. */
:root {
 color-scheme: light;
 --text:#213d3d; --page:#f6f5f0; --surface:#ffffff; --eyebrow:#557675;
 --muted:#526664; --border:#dce4df; --input-border:#aabcb8; --divider:#e8ede8;
 --accent:#2c756b; --link:#226e65; --button:#e4efea; --error:#94341f;
 --bar-track:#edf0eb; --bar-fill:#5c998e; --badge-text:#426c62; --badge-bg:#edf4ef;
 --focus:#b86a2d;
}
:root[data-theme="dark"] {
 color-scheme: dark;
 --text:#e3eeea; --page:#121b1b; --surface:#1b2827; --eyebrow:#a1bbb2;
 --muted:#acbeb7; --border:#3d5350; --input-border:#68837b; --divider:#344844;
 --accent:#9ed8c9; --link:#a6ddce; --button:#293d36; --error:#ffb59f;
 --bar-track:#30433e; --bar-fill:#83bfae; --badge-text:#c5e4d7; --badge-bg:#30473e;
 --focus:#e9b876;
}
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--page);font-synthesis:none;line-height:1.6;font-size:16px}*{box-sizing:border-box}body{margin:0}main{position:relative;max-width:1120px;margin:auto;padding:48px 32px 80px}header{max-width:780px}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.16em;color:var(--eyebrow)}h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.1;letter-spacing:-.045em;margin:18px 0}.intro{font-size:1.1rem;color:var(--muted)}.controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:30px 0 20px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.control{min-width:0}label{display:block;font-size:.85rem;font-weight:650;margin-bottom:6px}select,input,button{font:inherit;color:inherit;border:1px solid var(--input-border);border-radius:7px;background:var(--surface);padding:9px 12px;min-height:44px;width:100%}.age-control{grid-column:1/-1;display:grid;grid-template-columns:max-content 120px minmax(0,1fr);align-items:center;gap:8px}.age-control label{margin:0}.hint,.age-error{font-size:.8rem;margin:0}.age-error{color:var(--error);grid-column:2/-1}.age-error:empty{display:none}.explanation{max-width:820px;font-size:.9rem;color:var(--muted)}.status{font-size:.8rem;color:var(--muted);margin:24px 0}button{width:auto;cursor:pointer;background:var(--button)}.timeline{position:relative}.period{display:grid;grid-template-columns:125px minmax(0,1fr);gap:28px;margin:0 0 28px}.age-band{font-size:1.35rem;font-weight:600;margin:20px 0;color:var(--accent)}.period-body{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px 26px;min-width:0}.current .period-body{border:2px solid var(--accent)}.current-marker{color:var(--accent);font-size:.8rem;font-weight:700;margin:0}.period-meta{font-size:.8rem;color:var(--muted);margin:0 0 18px}.ranking{list-style:none;padding:0;margin:0}.cause{border-top:1px solid var(--divider);padding:17px 0}.cause summary{display:flex;gap:12px;align-items:baseline;cursor:pointer;list-style:none}.cause summary::-webkit-details-marker{display:none}.rank{font-size:.85rem;color:var(--muted);min-width:22px}.cause-label{font-weight:650;flex:1;min-width:0;overflow-wrap:anywhere}.share{font-weight:700;white-space:nowrap;color:var(--accent)}.cause summary::after{content:'+';color:var(--accent);font-size:1.1rem}.cause-details[open]>summary::after{content:'−'}.bar{height:4px;background:var(--bar-track);border-radius:2px;margin:10px 0 0 34px;overflow:hidden}.bar span{display:block;height:100%;background:var(--bar-fill)}.metrics{font-size:.75rem;color:var(--muted);margin:8px 0 0 34px}.coverage{border-top:1px solid var(--divider);padding-top:14px;font-size:.8rem;color:var(--muted);margin-bottom:0}.data-notes{margin:36px 0 0 153px;border-top:1px solid var(--border);padding-top:18px;font-size:.9rem}.data-notes>summary{font-weight:650;cursor:pointer}.notes-body{max-width:760px}a{color:var(--link);overflow-wrap:anywhere}p{overflow-wrap:anywhere}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button[hidden]{display:none}.cause-panel{margin:18px 0 14px 34px;line-height:1.7;font-size:.9rem}.cause-panel h3{font-size:1rem;margin:24px 0 12px}.claim{border-left:2px solid var(--border);padding-left:16px;margin:18px 0}.badge{font-size:.7rem;color:var(--badge-text);background:var(--badge-bg);padding:3px 8px;border-radius:4px}.claim details>summary{display:list-item;list-style:revert;font-size:.8rem;color:var(--accent);margin:10px 0}.claim details>summary::after{content:none}.claim dt{font-weight:650;margin-top:16px}.claim dd{margin:4px 0 0}.claim ul{padding-left:20px}.claim li{margin:8px 0}.unranked{font-size:.8rem}@media(max-width:760px){main{padding:28px 18px 48px}.controls{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:14px}.age-control{grid-template-columns:max-content minmax(80px,112px);gap:8px}.age-control input{margin:0}.age-control .hint,.age-control .age-error{grid-column:1/-1}.hint{margin:0}.period{display:block;margin-bottom:24px}.age-band{margin:0 0 9px;font-size:1.15rem}.period-body{padding:18px 16px}.data-notes{margin-left:0}.cause-panel{margin-left:0}.metrics{margin-left:0}.bar{margin-left:0}.cause summary{gap:8px}.rank{min-width:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media(min-width:761px){.timeline::before{content:'';position:absolute;left:137px;top:34px;bottom:34px;width:1px;background:var(--border)}.period{position:relative}.age-band::after{content:'';position:absolute;left:133px;top:31px;width:9px;height:9px;background:var(--bar-fill);border:2px solid var(--page);border-radius:50%}.current .age-band::after{background:var(--accent)}}

.toolbar{position:absolute;top:32px;right:32px;display:flex;align-items:center;gap:10px}
.language-toggle{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.flag-button,.theme-toggle{display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid transparent;border-radius:7px;line-height:1}
.flag-button{font-size:1.45rem}
.flag-button[aria-pressed="true"]{background:var(--button);border-color:var(--input-border)}
.flag-button:hover,.theme-toggle:hover{background:var(--button)}
.theme-toggle{border-color:var(--border);background:var(--surface)}
.theme-toggle svg{width:22px;height:22px}
.eyebrow{padding-right:160px}
@media(max-width:760px){.toolbar{position:static;justify-content:flex-end;margin-bottom:22px}.eyebrow{padding-right:0}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .age-control{display:flex;flex-wrap:wrap;gap:8px}
 .age-control label{flex:0 0 auto}
 .age-control input{flex:0 0 112px;width:112px;min-width:0}
 .age-control .hint,.age-control .age-error{flex:0 0 100%;min-width:0}
}
