/* Article typography and focused utility views. */
.article-heading{max-width:920px;margin:0 auto;padding:56px 0 36px;text-align:left}
.article-heading>.eyebrow{color:var(--accent);font-size:13px}
.article-heading h1{max-width:900px;margin:18px 0 22px;font:500 clamp(36px,4.7vw,64px)/1.1 var(--sans);letter-spacing:-.035em}
.article-heading .standfirst{max-width:730px;margin:0 0 24px;color:var(--muted);font:400 21px/1.55 var(--sans);text-wrap:pretty}
.article-heading .story-meta{flex-wrap:wrap;font-size:13px;line-height:1.5;gap:10px 18px}
.article-heading .story-meta time{font-variant-numeric:tabular-nums}
.article-toolbar{display:flex;align-items:center;gap:26px;margin:22px 0 0;font-size:14px}
.article-toolbar button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0;border-bottom:1px solid transparent}
.article-toolbar button:hover{border-color:var(--ink)}.article-toolbar svg{width:18px;height:18px}.article-toolbar .is-saved svg{fill:var(--ink)}
.art-with-credit{margin:0}.article-visual{height:clamp(280px,36vw,520px);max-width:1312px;margin:0 auto;overflow:hidden;background:#e9ece5}.article-visual img{display:block;width:100%;height:100%;object-fit:cover}.article-visual svg{display:block;width:100%;height:100%}
.photo-credit{max-width:1312px;margin:12px auto 0;color:var(--muted);font:12px/1.65 var(--sans)}.photo-credit a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr);margin:48px auto 80px}
.article-aside{width:min(680px,100%);margin:0 auto 34px;padding:0 0 22px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 22px;border-bottom:1px solid var(--line)}
.article-aside .eyebrow{flex-basis:100%;margin-bottom:5px;font-size:13px;color:var(--ink)}.article-aside a{font:14px/1.5 var(--sans);color:var(--muted);padding:10px 0;min-height:40px}.article-aside a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.article-body{width:min(680px,100%);min-width:0;margin:0 auto;font:400 20px/1.75 var(--serif);text-wrap:pretty}
.article-body section{scroll-margin-top:30px}.article-body h2{margin:40px 0 20px;font:500 29px/1.25 var(--sans);letter-spacing:-.025em}.article-body section:first-child h2{margin-top:0}.article-body p{margin:0 0 25px}
.source-inline{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 32px;font:12px/1.7 var(--sans);text-wrap:wrap}.source-inline a{color:var(--muted);text-decoration:underline;text-decoration-color:#a8b1a9;text-underline-offset:3px;padding:4px 0}.source-inline a:hover{color:var(--ink)}
.source-block{margin-top:48px;padding-top:26px;border-top:1px solid var(--line);font:15px/1.6 var(--sans);text-wrap:wrap}.article-body .source-block h2{margin:0 0 24px;font:600 27px/1.2 var(--sans)}.source-block ol{padding-left:22px;margin:0 0 26px}.source-block li{padding-left:6px;margin-bottom:18px;color:var(--muted);overflow-wrap:anywhere}.source-block li::marker{font-variant-numeric:tabular-nums;font-size:12px}.source-block a{color:var(--ink);text-decoration:underline;text-decoration-color:#a0aaa3;text-underline-offset:4px;text-decoration-thickness:1px}.source-block>p{font-size:13px;line-height:1.65;color:var(--muted);margin:0}
.article-layout .lab-section{grid-column:1/-1;margin-top:56px;margin-bottom:0}
.article-audio{width:min(920px,100%);display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0 auto 30px;padding:18px 20px;border:1px solid var(--line);font:14px/1.4 var(--sans);flex-wrap:wrap}.article-audio button{padding:10px 14px;min-height:44px}.article-audio #audio-toggle{background:var(--ink);color:var(--paper);min-width:76px}.article-audio select{max-width:300px;min-width:0;min-height:44px;padding:9px 28px 9px 12px;border:1px solid #78857c;border-radius:0;background:var(--paper);color:var(--ink);font:14px/1.4 var(--sans)}.article-audio p{flex-basis:100%;margin:3px 0 0;font-size:12px;color:var(--muted)}
.approach-copy{max-width:700px;margin:0 auto 80px;font:400 20px/1.75 var(--serif);text-wrap:pretty}.approach-copy h2{font:500 29px/1.25 var(--sans);letter-spacing:-.025em;margin:42px 0 20px;scroll-margin-top:30px}.approach-copy p{margin:0 0 24px}.approach-copy a{text-decoration:underline;text-decoration-color:#a0aaa3;text-underline-offset:4px;text-decoration-thickness:1px}.approach-copy .policy-note{margin:28px 0;padding:22px 24px;border-left:2px solid var(--accent);background:#eeefe9;font:15px/1.7 var(--sans);color:#414749;text-wrap:wrap}
dialog::backdrop{background:#12191bb8;backdrop-filter:blur(3px)}
.search-dialog{width:min(720px,calc(100% - 40px));max-height:calc(100svh - 48px);border:1px solid var(--line);padding:30px 36px 34px;background:var(--paper);color:var(--ink);box-shadow:0 16px 60px #0002;overflow:auto;overscroll-behavior:contain}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-top h2{font:600 29px/1.2 var(--sans);letter-spacing:-.025em;margin:0}.dialog-top .icon-button{flex:0 0 44px}
.search-dialog label{display:block;margin-bottom:8px;color:var(--muted);font:14px/1.5 var(--sans)}.search-dialog input{width:100%;min-width:0;border:1px solid #78857c;border-radius:0;background:transparent;padding:12px 14px;margin:0 0 16px;color:var(--ink);font:400 18px/1.4 var(--sans)}.search-dialog input::placeholder{color:#626c66;opacity:1}
.result-link{display:block;padding:22px 0;border-bottom:1px solid var(--line)}.result-link .eyebrow{color:var(--accent);font-size:12px}.result-link h3{font:600 24px/1.25 var(--sans);letter-spacing:-.02em;margin:8px 0}.result-link p{max-width:580px;font:15px/1.6 var(--sans);color:var(--muted);margin:0}.result-link:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.search-dialog .muted{font:14px/1.6 var(--sans);color:var(--muted);margin:0 0 12px}
#toast{position:fixed;z-index:60;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:14px 24px;background:var(--ink);color:var(--paper);font:14px/1.45 var(--sans);text-align:center;box-shadow:0 8px 24px #0002}
/* One identity, one task. The form fits without scrolling on ordinary phones. */
.portal-login{min-height:100svh;display:flex;flex-direction:column;background:var(--paper)}
.login-brand{padding:40px max(32px,6vw);display:flex;align-items:center}.login-brand>span{font:600 27px/1.15 var(--sans);letter-spacing:-.055em}
.login-entry{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;padding:64px 24px 160px}.login-entry-inner{width:min(360px,100%)}
.login-entry h1{margin:0 0 16px;font:500 36px/1.15 var(--sans);letter-spacing:-.035em}.login-entry>div>p{margin:0 0 32px;color:var(--muted);font:16px/1.6 var(--sans)}
.login-form label{display:block;margin-bottom:9px;font:14px/1.5 var(--sans);color:var(--ink)}.password-field{display:flex;align-items:center;border:1px solid #78857c;background:#fff}.password-field:focus-within{outline:2px solid var(--accent);outline-offset:3px}.password-field input{min-width:0;width:100%;padding:12px 14px;border:0;border-radius:0;background:transparent;color:var(--ink);font:18px/1.5 var(--sans)}.password-field input:focus{outline:none}.password-field .reveal{display:grid;place-items:center;min-width:48px;min-height:50px;padding:12px;color:var(--muted)}.password-field .reveal:hover{color:var(--ink)}.password-field .reveal svg{width:20px;height:20px}
.enter-button{display:flex;align-items:center;justify-content:space-between;min-height:52px;width:100%;margin-top:16px;padding:14px 18px;background:var(--ink);color:var(--paper);font:600 15px/1.5 var(--sans)}.enter-button:hover{background:var(--green)}.enter-button>span{font-size:20px;line-height:1}.form-error{margin:14px 0 0;color:#9e3025;font:14px/1.6 var(--sans)}.login-bottom{margin-top:36px;color:var(--muted);font:13px/1.6 var(--sans)}
@media(max-width:800px){.article-heading{padding-top:40px}.article-heading h1{font-size:46px}.article-heading .standfirst{font-size:20px}.article-body,.approach-copy{font-size:19px}.article-visual{height:340px}.login-brand{padding:28px 30px}}
@media(max-width:600px){.article-heading{padding:32px 0 28px}.article-heading h1{font-size:36px;margin:15px 0 20px}.article-heading .standfirst{font-size:18px}.article-toolbar{gap:26px;margin-top:18px}.article-visual{height:260px}.photo-credit{font-size:12px}.article-layout{margin-top:30px;margin-bottom:52px}.article-aside{gap:0 18px}.article-body h2,.approach-copy h2{font-size:27px;margin:34px 0 18px}.article-body{font-size:18px;line-height:1.75}.source-inline{font-size:12px}.source-block{font-size:14px}.article-layout .lab-section{margin-top:38px}.article-audio{padding:14px;gap:8px}.article-audio select{max-width:100%;font-size:14px}.article-audio #voice-select{flex:1;min-width:145px}.approach-copy{font-size:18px;margin-bottom:52px}.approach-copy .policy-note{padding:18px 20px;font-size:14px}.search-dialog{width:calc(100% - 24px);max-height:calc(100svh - 24px);padding:22px}.dialog-top{gap:12px;margin-bottom:20px}.dialog-top h2{font-size:26px}.result-link h3{font-size:23px}.login-brand{padding:28px 24px}.login-brand>span{font-size:26px}.login-entry{align-items:flex-start;padding:72px 24px 48px}.login-entry h1{font-size:32px}}

