/* Shared editorial layout; colors and font families come from design/theme.json. */
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body-font);font-size:18px;line-height:1.75}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
button,input,textarea,select{font:inherit;touch-action:manipulation}
button{cursor:pointer}img{display:block;max-width:100%}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.skip{position:absolute;top:-100px;left:20px;background:var(--paper);color:var(--ink);padding:12px;z-index:30}.skip:focus{top:10px}
main{max-width:1280px;margin:auto;padding:0 5%}
header{background:var(--ink);color:var(--paper);padding:0 max(24px,calc((100vw - 1152px)/2))}
.masthead{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0 24px}
.brand,.footer-brand{font-family:var(--heading-font);font-weight:400;font-size:42px;line-height:1;text-decoration:none;letter-spacing:.4px}
.brand span{color:var(--brass);margin:0 8px}.brand i{display:block;font:600 11px/1.5 var(--body-font);letter-spacing:3px;text-transform:uppercase;margin-top:13px}
.top-link{font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:1px;text-decoration:none;border-bottom:1px solid var(--brass);padding-bottom:5px}
nav{display:flex;justify-content:space-between;gap:30px;overflow-x:auto;border-top:1px solid #ffffff25;padding:15px 0;scrollbar-width:thin}
nav a{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;text-decoration:none;white-space:nowrap;font-weight:600}nav a:hover,nav a[aria-current]{color:var(--brass)}
header :focus-visible,.intro :focus-visible,footer :focus-visible{outline-color:var(--brass)}
h1,h2,h3{margin:0;line-height:1.15;font-weight:400;font-family:var(--heading-font);letter-spacing:0}
em{font-family:var(--accent-font);font-style:italic;font-weight:500}
.eyebrow{display:block;font:700 11px/1.5 var(--body-font);letter-spacing:1.8px;text-transform:uppercase;color:var(--red);text-decoration:none}
.intro{position:relative;display:grid;grid-template-columns:1.16fr 1fr;gap:7%;padding:60px 0 68px;align-items:center;color:var(--paper);background:var(--ink);box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax);margin-bottom:55px}
.intro .eyebrow{color:var(--brass)}.intro h1{font-size:clamp(50px,6.8vw,88px);line-height:1.08;margin:23px 0 26px;text-transform:uppercase}.intro h1 em{display:inline-block;font-size:.58em;line-height:1.2;color:var(--brass);text-transform:none;max-width:500px}
.intro p{max-width:520px;font-size:17px;line-height:1.8;margin:22px 0 30px;color:var(--paper)}
.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.hero-secondary{font-size:13px;font-weight:600}
.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;padding:14px 21px;background:var(--red);border:1px solid var(--red);color:var(--primary-text);font:700 13px/1.5 var(--body-font);text-decoration:none;letter-spacing:.35px;min-height:48px;border-radius:2px}
.button:hover{filter:brightness(.88)}.button.light{border-color:var(--paper);background:transparent;color:var(--paper)}
.creed{margin:0;border-bottom:3px solid var(--brass);background:var(--ink)}.creed img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.creed figcaption{padding:20px 0 22px}
.number,.creed figcaption>span{font:600 10px/1.5 var(--body-font);letter-spacing:1.6px;color:var(--brass)}.creed figcaption p{font-family:var(--heading-font);font-size:24px;line-height:1.3;margin:10px 0;color:var(--paper);max-width:none}.creed p em{font-size:25px;color:var(--brass)}
.latest{padding:0 0 54px}.section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;padding:22px 0 26px;border-top:2px solid var(--ink)}.section-heading h2{font-size:32px;max-width:750px}.section-heading>span{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.feature-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;margin-bottom:24px}
.card{background:var(--surface);border:1px solid #101c241b;border-top:4px solid var(--red);padding:27px;display:flex;flex-direction:column;position:relative;min-width:0}
.card-link{text-decoration:none;display:block;flex:1}.card h2{font-size:30px;line-height:1.22;margin:16px 0}.card.lead h2{font-size:37px}.card p{font-size:15px;line-height:1.8;color:var(--muted);margin:16px 0 24px}.card:hover h2{color:var(--red)}.card:has(a:focus-visible){border-color:var(--teal)}.read{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.reading{font-size:12px;color:var(--muted);margin-top:21px}
.guide-callout{background:var(--ink);color:var(--paper);border-top:5px solid var(--brass);padding:42px;display:flex;align-items:center;justify-content:space-between;gap:35px;margin:12px 0 48px}.guide-callout .eyebrow{color:var(--brass)}.guide-callout h2{font-size:44px;margin:18px 0}.guide-callout p{font-size:16px;max-width:510px;margin-bottom:0}
.empty-note{font-size:14px;text-align:center;margin:35px 0 65px}.category-intro{max-width:950px;padding:54px 0 45px}.category-intro h1{font-size:clamp(42px,5vw,66px);margin:20px 0}.category-intro h1 em{font-size:.67em;color:var(--red)}.category-intro>p{max-width:720px;color:var(--muted);font-size:18px}
.article-head{max-width:970px;padding:60px 0 40px;border-bottom:3px solid var(--red)}.article-head h1{font-size:clamp(38px,5.5vw,64px);line-height:1.16;margin:24px 0;max-width:940px}.byline{font-size:13px;color:var(--muted)}.standfirst{font-family:var(--accent-font);font-style:italic;font-size:26px;line-height:1.6;margin:26px 0 0;max-width:900px}
.article-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:65px;padding:42px 0 65px;align-items:start}.toc{position:sticky;top:25px;font-size:13px}.toc .eyebrow{margin-bottom:14px}.toc a{display:block;text-decoration:none;padding:10px 0;border-bottom:1px solid #101c241b;line-height:1.6}.toc>a:last-child{color:var(--red);font-weight:600;margin-top:15px}
.prose{max-width:760px;min-width:0}.prose section{scroll-margin-top:25px}.prose h2{font-family:var(--body-font);font-weight:700;letter-spacing:-.5px;font-size:27px;line-height:1.35;margin:34px 0 15px}.prose p,.plain p{font-size:19px;line-height:1.9;margin:18px 0}.prose section:first-child h2{margin-top:0}.section-source-links small{font-size:12px;line-height:1.7;display:block;color:var(--muted)}
.exercise{background:var(--cream);border-left:4px solid var(--red);padding:27px 30px;margin:36px 0}.exercise h2{margin-top:14px}.exercise li{font-size:16px;line-height:1.8;margin:14px 0}.exercise ol{padding-left:23px}.prose .exercise p{font-size:17px;line-height:1.8}.sources{margin:40px 0;padding-top:25px;border-top:1px solid var(--line)}.sources h2{font-size:21px}.sources li{font-size:14px;line-height:1.8;margin:10px 0}.sources p{font-size:13px;line-height:1.8;color:var(--muted)}
.share{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:30px 0;font-size:14px}.share button{background:var(--surface);border:1px solid var(--line);padding:11px 15px;color:var(--ink)}.share button:hover{background:var(--cream)}
.related{padding:30px 0 65px}.related>h2{font-size:32px;margin:10px 0 25px}.related>p,.related>ul{font-size:16px;line-height:1.8}.related li{margin:10px 0}
.plain{max-width:820px;margin:55px auto 80px}.plain h1{font-size:clamp(38px,5vw,60px);margin:20px 0 35px}
footer{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:45px max(24px,calc((100vw - 1152px)/2));margin-top:50px;border-top:4px solid var(--brass)}.footer-brand{font-size:31px}.footer-links{display:flex;justify-content:end;align-content:start;gap:16px 23px;flex-wrap:wrap;font-size:12px}footer p{font-size:13px;line-height:1.8;color:var(--paper)}footer small{font-size:11px;color:var(--brass);grid-column:1/-1}.link-button{background:none;border:0;color:inherit;text-decoration:underline;padding:0;font-size:inherit}
.consent{position:fixed;bottom:18px;right:18px;max-width:400px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--red);box-shadow:0 8px 32px #101c2428;z-index:25;padding:24px;font-size:14px}.consent p{margin:0 0 16px;line-height:1.7}.consent-buttons{display:flex;gap:12px}.consent button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13px;padding:11px 15px}.consent button:last-child{background:var(--surface);color:var(--ink)}
.worksheet-share{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:25px 0}.worksheet-share span{font-size:13px;color:var(--muted)}dialog{max-width:520px;width:calc(100% - 28px);border:1px solid var(--line);border-top:4px solid var(--red);background:var(--paper);color:var(--ink);padding:28px;box-shadow:0 10px 60px #0003}dialog::backdrop{background:#101c2499}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-head h2{font-size:29px}.dialog-head button{background:none;border:0;font-size:28px;padding:0 5px;color:var(--ink)}.share-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.share-options a,.share-options button{display:block;text-align:center;text-decoration:none;border:1px solid var(--ink);background:var(--surface);color:var(--ink);font-size:14px;padding:12px}.share-options a:hover,.share-options button:hover{background:var(--cream)}.share-options [hidden]{display:none}.share-url-label{font-size:13px}.share-url-label input{width:100%;margin-top:8px;padding:11px;border:1px solid var(--line);background:white;color:var(--ink);font-size:13px}.share-status{font-size:13px;margin-bottom:0}dialog p{font-size:14px}
@media(max-width:900px){.intro{gap:5%}.intro h1{font-size:64px}.creed figcaption p,.creed p em{font-size:22px}.grid,.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-grid .lead{grid-column:1/-1}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:30px}.section-heading{align-items:start;flex-direction:column;gap:12px}.guide-callout{align-items:start;flex-direction:column}.card h2{font-size:29px}}
@media(max-width:680px){main{padding:0 24px}.masthead{padding:25px 0}.brand{font-size:33px}.brand i{font-size:9px;letter-spacing:2px}.top-link{font-size:10px;letter-spacing:.4px}nav{gap:25px;justify-content:start}nav a{font-size:11px}.intro{grid-template-columns:1fr;padding:38px 0 42px;gap:35px;margin-bottom:38px}.intro h1{font-size:clamp(52px,11vw,70px);margin:18px 0}.intro p{font-size:16px}.intro h1 em{max-width:100%;font-size:.58em}.creed{max-width:430px}.creed figcaption p{font-size:26px}.creed p em{font-size:25px}.grid,.feature-grid{grid-template-columns:1fr}.card,.card.lead{padding:25px}.card h2,.card.lead h2{font-size:32px}.latest{padding-bottom:38px}.section-heading h2{font-size:29px}.guide-callout{padding:30px 25px}.guide-callout h2{font-size:38px}.article-head{padding:38px 0 30px}.article-head h1{font-size:40px}.standfirst{font-size:23px}.article-layout{display:block;padding-top:25px}.toc{position:static;margin-bottom:35px}.toc a{font-size:13px}.prose p,.plain p{font-size:18px;line-height:1.85}.prose h2{font-size:25px}.exercise{padding:23px}.plain{margin-top:38px}.category-intro{padding:38px 0}footer{grid-template-columns:1fr;gap:20px}.footer-links{justify-content:start}.consent{left:12px;right:12px;bottom:12px}.hero-actions{gap:19px}}
@media(prefers-reduced-motion:no-preference){.button{transition:filter .15s}.card h2{transition:color .15s}}
@media(max-width:680px){nav{flex-wrap:wrap;overflow-x:visible;gap:12px 24px}}
@media print{header,footer,.toc,.share,.consent,.related,.skip,.worksheet-share,dialog{display:none!important}body{background:white;color:black}main{max-width:none;padding:0}.article-head{padding-top:0}.article-layout{display:block;padding-top:0}.prose,.plain,.worksheet{max-width:none;margin:0}.prose p,.plain p{font-size:12pt;line-height:1.6}.worksheet input,.worksheet textarea{border:1px solid #999!important;background:white!important}.exercise{break-inside:avoid;background:white}a{color:black;text-decoration:none}.article-head h1{font-size:28pt}.byline{font-size:9pt}}
