/* Web composition. The mobile app's Fraunces files and semantic colours are shared. */
@font-face {
 font-family:Fraunces; font-style:normal; font-weight:400; font-display:swap;
 src:url('/assets/fonts/Fraunces9pt-Regular.ttf') format('truetype');
}
@font-face {
 font-family:Fraunces; font-style:normal; font-weight:600; font-display:swap;
 src:url('/assets/fonts/Fraunces9pt-SemiBold.ttf') format('truetype');
}
:root { --editorial:Fraunces,ui-serif,Georgia,serif; --numeric:ui-rounded,"SF Pro Rounded",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
html { scroll-padding-top:88px; }
body { background:var(--surface); }
main { max-width:1240px; padding:32px 48px 72px; }
h1,h2,h3 { font-family:var(--editorial); font-weight:400; letter-spacing:-.035em; }
button,a { -webkit-tap-highlight-color:transparent; }
.button,.text-button { min-height:44px; border-radius:999px; font-size:.875rem; font-weight:500; line-height:1.4; gap:8px; transition:background-color 180ms,color 180ms,box-shadow 180ms,transform 180ms; }
.button { padding:11px 22px; border:1px solid transparent; }
.button.secondary-button { background:var(--tinted-surface); color:var(--ink); border-color:transparent; }
.text-button { padding:10px 14px; border:0; }
button:focus-visible,a.button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.button:active:not(:disabled),.text-button:active:not(:disabled) { transform:scale(.98); }
.button:disabled,.text-button:disabled { opacity:.5; transform:none; box-shadow:none; }
.icon-button,.privacy-notice-close { display:inline-grid; position:relative; place-items:center; flex-shrink:0; width:44px; height:44px; min-height:44px; padding:0; border:0; border-radius:50%; color:var(--secondary-ink); background:transparent; line-height:1; }
.icon-button::before,.privacy-notice-close::before { content:""; position:absolute; inset:4px; border-radius:50%; background:var(--tinted-surface); transition:background-color 180ms,transform 180ms; }
.icon-button svg,.privacy-notice-close svg { position:relative; width:16px; height:16px; pointer-events:none; }
.icon-button:focus-visible,.privacy-notice-close:focus-visible { outline-offset:-2px; }
.icon-button:active::before,.privacy-notice-close:active::before { transform:scale(.92); }
.privacy-notice-close { color:#fff; }
.privacy-notice-close::before { background:#ffffff1f; }
.privacy-notice .button { border-radius:999px; font-weight:500; }
.view-switch { gap:4px; padding:4px; border-radius:999px; background:var(--tinted-surface); }
.view-switch button { padding:9px 20px; border:1px solid transparent; border-radius:999px; font-size:.875rem; font-weight:500; background:transparent; color:var(--secondary-ink); transition:background-color 180ms,color 180ms,box-shadow 180ms; }
.view-switch button[aria-pressed=true] { background:var(--elevated-surface); color:var(--ink); border-color:color-mix(in srgb,var(--separator) 65%,transparent); box-shadow:0 1px 4px #00000014; }
@media(hover:hover) {
 .button:hover:not(:disabled) { background:color-mix(in srgb,var(--action-fill) 86%,black); box-shadow:0 3px 10px #00000012; }
 .button.secondary-button:hover:not(:disabled) { background:color-mix(in srgb,var(--tinted-surface) 80%,var(--separator)); box-shadow:none; }
 .text-button:hover:not(:disabled) { background:var(--tinted-surface); }
 .icon-button:hover { color:var(--ink); }
 .icon-button:hover::before { background:color-mix(in srgb,var(--tinted-surface) 72%,var(--separator)); }
 .privacy-notice-close:hover::before { background:#ffffff30; }
 .privacy-notice .button:hover { background:#e8e8e8; color:#171717; }
 .view-switch button:hover { color:var(--ink); }
}
.text-button span,.article-link span { display:inline-block; transition:transform 220ms ease; }
.text-button:hover span,.article-link:hover span { transform:translateX(4px); }
.card { box-shadow:none; border-color:color-mix(in srgb,var(--separator) 65%,transparent); border-radius:20px; padding:28px; }
.page-heading { margin:0 0 26px; }
.page-path { font-size:.75rem; }
.page-intro { margin:0 0 36px; }
.page-intro h1 { font-size:clamp(2.75rem,5vw,4.25rem); line-height:1.08; margin:0 0 14px; }
.page-intro>p { font-size:1.125rem; color:var(--secondary-ink); margin:0; }
.data-status { gap:8px; flex-direction:row; align-items:center; }
.data-status:not(:empty):before { content:""; width:5px; height:5px; border-radius:50%; background:var(--secondary-ink); }
.eyebrow { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.6875rem; font-weight:500; letter-spacing:.12em; }
/* A compact global masthead and a separate sticky page navigation. */
.site-header { position:relative; z-index:40; background:var(--surface); }
.header-inner { max-width:1240px; min-height:60px; padding:0 48px; gap:36px; }
.header-inner .brand { gap:9px; font-family:var(--editorial); font-size:1.25rem; font-weight:600; letter-spacing:-.035em; }
.header-inner .brand span { display:inline; }
.header-inner .brand img { width:28px; height:28px; border-radius:7px; }
.header-inner .main-menu { justify-content:center; gap:42px; }
.header-inner .main-menu a { position:relative; transition:color 200ms; }
.header-inner .main-menu a:after { content:""; position:absolute; bottom:4px; left:0; right:0; height:1px; background:currentColor; transform:scaleX(0); transition:transform 250ms; }
.header-inner .main-menu a:hover:after { transform:scaleX(1); }
.header-inner .appearance-control select { font-size:.8125rem; }
.appearance-control { position:relative; flex-shrink:0; }
.appearance-trigger { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--secondary-ink); transition:background-color 180ms,color 180ms; }
.appearance-trigger>span { display:flex; }
.appearance-trigger:hover,.appearance-trigger[aria-expanded=true] { background:var(--tinted-surface); color:var(--ink); }
.appearance-trigger:focus-visible { outline:2px solid var(--accent); outline-offset:-4px; }
.appearance-menu { position:absolute; z-index:45; top:calc(100% + 8px); right:0; width:196px; padding:8px; border:1px solid var(--separator); border-radius:14px; background:var(--elevated-surface); color:var(--ink); box-shadow:0 12px 36px #0003; animation:appearance-in 160ms ease-out; }
.appearance-menu-title { margin:4px 10px 8px; font-size:.6875rem; font-weight:500; color:var(--secondary-ink); }
.appearance-menu [role=menuitemradio] { display:flex; align-items:center; gap:12px; width:100%; min-height:44px; padding:10px; border:0; border-radius:8px; background:transparent; color:var(--ink); text-align:left; font-size:.875rem; line-height:1.4; }
.appearance-menu [role=menuitemradio]:hover,.appearance-menu [role=menuitemradio]:focus-visible { background:var(--tinted-surface); outline:2px solid transparent; outline-offset:-2px; }
.appearance-menu [role=menuitemradio]:focus-visible { outline-color:var(--control-border); }
.appearance-menu [role=menuitemradio][aria-checked=true] { color:var(--accent); }
.appearance-check { margin-left:auto; opacity:0; }
[aria-checked=true]>.appearance-check { opacity:1; }
@keyframes appearance-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
.menu-toggle { display:none; align-items:center; justify-content:center; gap:10px; min-width:44px; min-height:44px; padding:0; color:var(--ink); border:0; background:transparent; }
.navigation-ready .menu-toggle { display:flex; }
.menu-label { font-size:.8125rem; }
.menu-symbol { position:relative; display:block; width:20px; height:20px; }
.menu-symbol i { position:absolute; width:18px; height:1.5px; left:1px; top:6px; background:currentColor; transition:transform 350ms cubic-bezier(.22,1,.36,1); }
.menu-symbol i+ i { top:12px; }
.menu-open .menu-symbol i { transform:translateY(3px) rotate(45deg); }
.menu-open .menu-symbol i+ i { transform:translateY(-3px) rotate(-45deg); }
.site-menu { display:none; position:absolute; top:100%; inset-inline:0; background:var(--surface); visibility:hidden; clip-path:inset(0 0 100%); opacity:0; transition:clip-path 400ms cubic-bezier(.22,1,.36,1),opacity 250ms,visibility 400ms; box-shadow:0 32px 40px #0000000d; }
.navigation-ready .site-menu { display:block; }
.menu-open .site-menu { visibility:visible; clip-path:inset(0); opacity:1; }
.site-menu-inner { display:grid; grid-template-columns:1.25fr 1.25fr 1fr; gap:64px; max-width:1240px; margin:auto; padding:40px 48px 52px; }
.nav-group,.nav-note { transform:translateY(-10px); opacity:0; transition:transform 450ms cubic-bezier(.22,1,.36,1),opacity 300ms; }
.menu-open .nav-group,.menu-open .nav-note { transform:translateY(0); opacity:1; transition-delay:80ms; }
.menu-open .nav-group:nth-child(2) { transition-delay:130ms; }
.menu-open .nav-note { transition-delay:180ms; }
.nav-caption { font-size:.75rem; color:var(--secondary-ink); margin:0 0 12px; }
.nav-group a { display:flex; align-items:center; min-height:44px; width:fit-content; text-decoration:none; font-size:.9375rem; color:var(--ink); }
.nav-group a:hover { color:var(--accent); }
.nav-group .nav-feature { font-family:var(--editorial); font-size:1.75rem; gap:20px; margin-bottom:10px; }
.nav-feature span { font:1rem -apple-system,sans-serif; }
.nav-description,.nav-note small { font-size:.8125rem; line-height:1.6; color:var(--secondary-ink); }
.nav-description { margin:18px 0 0; max-width:260px; }
.nav-note { border-left:1px solid var(--separator); padding-left:32px; }
.nav-note .leaf-icon { color:var(--accent); margin-bottom:16px; }
.nav-note p { font-family:var(--editorial); font-size:1.65rem; line-height:1.25; }
.navigation-modal { overflow:hidden; }
body:after { content:""; position:fixed; inset:0; z-index:35; background:#0003; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity 350ms,visibility 350ms; }
.navigation-open:after { opacity:1; visibility:visible; }
.local-header { z-index:30; background:color-mix(in srgb,var(--surface) 88%,transparent); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); }
.local-header-inner { max-width:1240px; min-height:64px; padding:0 48px; }
.local-title { font-family:var(--editorial); font-size:1.375rem; margin:0; }
.local-header .section-nav a { position:relative; transition:color 200ms; }
.local-header .section-nav a:hover { color:var(--accent); }
.section-toggle span { transition:transform 300ms cubic-bezier(.22,1,.36,1); }
/* Latest draw gets the largest visual weight. Context shares its first section. */
.feature-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:24px; align-items:stretch; }
.feature-grid .latest-card { background:var(--canvas); border:0; padding:36px; display:flex; flex-direction:column; }
.latest-card .card-meta { margin-bottom:30px; font-size:.8125rem; }
.latest-card h2 { font-size:clamp(1.75rem,3.1vw,2.65rem); max-width:600px; margin:0 0 12px; line-height:1.16; }
.latest-card .subtitle { margin-bottom:0; }
.latest-card .metrics { gap:24px 44px; margin:32px 0; align-items:flex-end; }
.metric,.metric-small,.delta-grid strong,.row-stat strong,.summary-stat strong,.ring strong { font-family:var(--numeric); font-variant-numeric:tabular-nums; }
.latest-card .metric { font-size:clamp(4rem,7vw,6rem); font-weight:600; line-height:1; color:var(--accent); }
.latest-card .metric-small { font-size:clamp(2.5rem,4.5vw,3.75rem); line-height:1.1; font-weight:500; }
.latest-card .unreported { font-size:1.65rem; letter-spacing:-.02em; max-width:260px; overflow-wrap:anywhere; }
.latest-card .metric-label { font-size:.8125rem; }
.latest-card .card-footer { margin-top:auto; padding-top:16px; }
.card-footer .text-button { width:auto; padding-inline:14px; margin-left:-14px; font-size:.875rem; }
.feature-grid .comparison-card { padding:36px 28px; display:flex; flex-direction:column; justify-content:center; border:0; }
.comparison-card h2 { font-size:1.65rem; margin:12px 0; }
.comparison-card .subtitle { font-size:.9375rem; }
.comparison-card .delta-grid { margin:24px 0; gap:16px; }
.comparison-card .delta-grid strong { font-size:2.2rem; font-weight:500; }
.comparison-card .card-footer { margin-top:16px; }
.comparable-scores { margin:18px 0 0; border-bottom:1px solid var(--separator); }
.comparable-scores>summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 4px; font-size:.875rem; color:var(--secondary-ink); cursor:pointer; list-style:none; }
.comparable-scores>summary::-webkit-details-marker { display:none; }
.comparable-scores>summary span { transition:transform 250ms; }
.comparable-scores[open]>summary span { transform:rotate(45deg); }
.comparable-scores .score-card { border:0; padding:20px 4px; }
.comparable-scores .chart { max-width:700px; }
/* Editorial sections replace the equally weighted dashboard tile grid. */
.web-section { margin-top:80px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:28px; }
.section-heading h2 { font-size:clamp(2rem,3.6vw,3rem); margin:0 0 12px; }
.section-heading .subtitle { margin:0; font-size:1rem; }
.section-heading>.text-button { flex-shrink:0; }
.overview-recent { background:transparent; border:0; border-radius:0; padding:0; box-shadow:none; }
.overview-recent .draw-list { border-radius:0; border:0; box-shadow:none; border-top:1px solid var(--separator); }
.overview-recent .draw-row { grid-template-columns:minmax(0,1fr) 120px 140px 20px; gap:28px; min-height:106px; padding:20px 4px; }
.overview-recent .row-title { font-size:1rem; }
.overview-recent .row-stat strong { font-size:1.5rem; font-weight:500; }
.overview-recent .row-stat span,.overview-recent .row-meta { font-size:.8125rem; }
.overview-recent .row-arrow { display:block; color:var(--secondary-ink); }
.draw-row { transition:background-color 180ms; }
.draw-row:hover { background:color-mix(in srgb,var(--canvas) 60%,transparent); }
.summary-strip { box-shadow:none; border:0; background:var(--canvas); padding:28px 8px; border-radius:20px; margin-bottom:28px; }
.summary-stat { padding:8px 28px; }
.summary-stat strong { font-size:2.5rem; font-weight:500; margin:12px 0 6px; line-height:1.1; }
.summary-stat:last-child strong { font-size:1.75rem; }
.summary-stat span { font-size:.875rem; }
.summary-stat small { font-size:.75rem; }
.analytics-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.analytics-grid .overview-activity { display:contents; }
.analytics-grid .overview-chart { grid-column:1/-1; padding:32px; }
.analytics-grid .mix-card,.analytics-grid .monthly-card { grid-column:auto; }
.analytics-grid .archive-coverage { grid-column:1/-1; }
.analytics-grid h2 { font-size:1.5rem; }
.overview-chart .chart { height:212px; padding-top:20px; }
.overview-chart .chart-bar { max-width:32px; border-radius:5px 5px 0 0; }
.overview-chart .fine-print { font-size:.8125rem; }
.overview-chart .chart-date,.overview-chart .chart-value { font-size:.75rem; }
.archive-coverage .coverage-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.archive-coverage .coverage-list>div { border:0; }
.resources-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.resources-grid>.card { grid-column:auto; border:0; padding:0; background:transparent; }
.resources-grid h2,.resources-grid h3 { font-size:1.65rem; }
.resources-grid .coverage-card>.eyebrow { display:none; }
.resources-grid .coverage-card .subtitle { font-size:1rem; }
.resources-grid .coverage-card .source-card p,.resources-grid .coverage-card .source-card a,.coverage-fact,.coverage-fact strong { font-size:.875rem; }
.resources-grid .resource-list { margin:20px 0; }
.resource-list .article-link { border-bottom:1px solid var(--separator); margin:0; padding:16px 0; font-weight:400; }
.search-intro { margin-top:64px; padding:28px 0 0; border:0; border-top:1px solid var(--separator); border-radius:0; background:transparent; }
.search-intro h2 { font-family:inherit; font-size:.875rem; font-weight:600; letter-spacing:0; }
.search-intro p { font-size:.8125rem; color:var(--secondary-ink); max-width:940px; }
.footer { max-width:1144px; margin:0 auto; padding:32px 0 44px; border:0; border-top:1px solid var(--separator); border-radius:0; box-shadow:none; background:transparent; }
.footer-brand { display:flex; align-items:center; gap:9px; font-family:var(--editorial); font-size:1.3rem; font-weight:600; }
.footer-brand img { border-radius:7px; }
.footer p { margin-block:14px; }
.legal-layout { margin-top:32px; }
.legal-document h1 { font-size:2.5rem; }
/* A web navigation sheet, with the complete logo still visible at phone widths. */
@media(max-width:1000px) {
 .header-inner { gap:24px; }
 .feature-grid { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:8px; }
 .feature-grid .latest-card { padding:28px; }
 .feature-grid .comparison-card { padding:28px 20px; }
 .site-menu-inner { gap:32px; }
 .nav-note { display:none; }
 .site-menu-inner { grid-template-columns:1fr 1fr; }
 .summary-stat { padding-inline:20px; }
 .summary-stat strong { font-size:2rem; }
 .summary-stat:last-child strong { font-size:1.5rem; }
 .footer { margin-inline:48px; }
 .overview-recent .draw-row { grid-template-columns:minmax(0,1fr) 100px 120px 16px; gap:16px; }
}
@media(max-width:760px) {
 html { scroll-padding-top:72px; }
 main { padding:24px 24px 48px; }
 .header-inner { padding:0 20px; min-height:60px; gap:16px; }
 .header-inner .brand { font-size:1.2rem; gap:8px; margin-right:auto; }
 .header-inner .brand span { display:inline; }
 .header-inner .brand img { width:28px; height:28px; }
 .header-inner .main-menu { display:flex; gap:16px; flex:0; }
 .navigation-ready .main-menu { display:none; }
 .site-header:not(.navigation-ready) .header-inner { flex-wrap:wrap; }
 .site-header:not(.navigation-ready) .main-menu { order:3; flex-basis:100%; }
 .header-inner .appearance-control select { font-size:16px; max-width:92px; }
 .menu-label { display:none; }
 .menu-open { position:sticky; top:0; }
 .site-menu { height:calc(100dvh - 60px); overflow-y:auto; overscroll-behavior:contain; box-shadow:none; }
 .site-menu-inner { grid-template-columns:1fr; padding:28px 32px max(40px,env(safe-area-inset-bottom)); gap:32px; }
 .nav-group .nav-feature { font-size:2rem; margin-bottom:8px; }
 .nav-group a { font-size:1.125rem; min-height:46px; }
 .nav-description { display:none; }
 .local-header-inner { min-height:56px; padding:0 24px; }
 .local-title { font-size:1.25rem; }
 .local-header .section-nav { display:flex; max-height:0; opacity:0; visibility:hidden; overflow:hidden; padding:0; transition:max-height 350ms cubic-bezier(.22,1,.36,1),opacity 250ms,visibility 350ms,padding 350ms; }
 .sections-open .section-nav { max-height:320px; padding:8px 0 20px; opacity:1; visibility:visible; }
 .local-header .section-nav a { min-height:48px; font-size:.9375rem; }
 .page-heading { margin-bottom:24px; gap:12px; }
 .page-path { font-size:.6875rem; }
 .page-intro { margin-bottom:28px; }
 .page-intro h1 { font-size:2.75rem; }
 .page-intro>p { font-size:1rem; }
 .preview-banner { padding:8px 24px; text-align:center; }
 .feature-grid { grid-template-columns:1fr; gap:0; }
 .feature-grid .latest-card { padding:28px 24px; border-radius:18px; }
 .latest-card .card-meta { gap:12px; margin-bottom:24px; font-size:.75rem; }
 .latest-card h2 { font-size:2rem; }
 .latest-card .metrics { margin:28px 0; gap:20px 32px; }
 .latest-card .metric { font-size:4.5rem; }
 .latest-card .metric-small { font-size:3rem; }
 .latest-card .unreported { font-size:1.5rem; }
 .latest-card .metrics>div { gap:6px; }
 .feature-grid .comparison-card { padding:32px 4px 12px; }
 .comparison-card h2 { font-size:1.5rem; }
 .comparison-card .delta-grid { max-width:none; margin:18px 0; }
 .comparable-scores { margin-top:12px; }
 .comparable-scores>summary { font-size:.8125rem; }
 .web-section { margin-top:56px; }
 .section-heading { align-items:flex-start; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
 .section-heading h2 { font-size:2.125rem; }
 .section-heading .subtitle { font-size:.9375rem; }
 .section-heading>.text-button { margin-left:-14px; }
 .overview-recent { padding:0; }
 .draw-row,.overview-recent .draw-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; padding:20px 4px; }
 .draw-row>div:first-child { grid-column:1/-1; }
 .draw-row .row-stat:nth-of-type(3) { display:flex; }
 .row-stat { text-align:left; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
 .overview-recent .row-stat strong { font-size:1.375rem; }
 .overview-recent .row-stat span { font-size:.75rem; }
 .overview-recent .row-arrow { display:none; }
 .overview-recent .row-title { font-size:1rem; min-height:44px; }
 .summary-strip { grid-template-columns:1fr 1fr; padding:24px 0 0; }
 .summary-stat { padding:0 20px 24px; }
 .summary-stat strong { font-size:2rem; margin-top:10px; }
 .summary-stat:last-child { padding:16px 20px; }
 .summary-stat:last-child strong { font-size:1.125rem; }
 .summary-stat span { font-size:.8125rem; }
 .summary-stat small { font-size:.6875rem; }
 .analytics-grid { grid-template-columns:1fr; gap:20px; }
 .analytics-grid .card { grid-column:auto; padding:24px; }
 .analytics-grid .overview-chart { padding:24px 20px; }
 .overview-chart .block-heading { align-items:flex-start; }
 .overview-chart .chart { height:220px; }
 .overview-chart .chart-value { font-size:.75rem; }
 .score-card .chart-value,.monthly-card .chart-value { writing-mode:horizontal-tb; transform:none; }
 .archive-coverage .coverage-list { grid-template-columns:1fr 1fr; gap:8px 20px; }
 .mix-content { flex-direction:row; }
 .mix-content .ring { width:120px; height:120px; }
 .resources-grid { grid-template-columns:1fr; gap:36px; }
 .search-intro { margin-top:48px; padding-top:24px; }
 .footer { margin:0 24px; padding:28px 0; }
 .footer nav { gap:12px 24px; }
}
@media(max-width:380px) {
 main { padding-inline:18px; }
 .header-inner { padding-inline:14px; gap:8px; }
 .header-inner .brand { font-size:1.05rem; gap:6px; }
 .header-inner .brand img { width:24px; height:24px; }
 .header-inner .appearance-control select { max-width:86px; }
 .local-header-inner { padding-inline:18px; }
 .feature-grid .latest-card { padding:24px 20px; }
 .latest-card .metric { font-size:4rem; }
 .latest-card .metric-small { font-size:2.5rem; }
 .latest-card .unreported { font-size:1.5rem; }
 .summary-stat { padding-inline:16px; }
 .summary-stat strong { font-size:1.75rem; }
 .mix-content { flex-direction:column-reverse; }
}
/* Search forms: persistent labels, useful hints, and grouped optional limits. */
.search-panel { padding:28px; border-radius:20px; background:var(--canvas); margin-bottom:24px; }
.search-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:24px; }
.search-panel-heading h2 { font-size:1.65rem; margin:0 0 8px; }
.search-panel-heading p { font-size:.9375rem; color:var(--secondary-ink); margin:0; }
.search-panel-heading>.button { flex-shrink:0; }
.search-panel .field { min-width:0; }
.field input,.field select { min-height:48px; padding:12px 14px; border-color:var(--separator); border-radius:12px; box-shadow:0 1px 2px #00000005; transition:border-color 160ms,box-shadow 160ms; }
.field input::placeholder { color:var(--secondary-ink); opacity:.85; }
.field input:focus-visible,.field select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-color:transparent; box-shadow:none; }
.field label { font-size:.8125rem; font-weight:600; }
.field-hint { font-size:.8125rem; color:var(--secondary-ink); line-height:1.55; margin:0; }
.search-input-wrap { position:relative; display:flex; align-items:center; }
.search-input-wrap>svg { position:absolute; left:16px; color:var(--secondary-ink); pointer-events:none; }
.search-input-wrap input { min-height:54px; padding:14px 52px 14px 48px; font-size:1rem; }
.search-input-wrap input::-webkit-search-cancel-button { -webkit-appearance:none; }
.search-clear { position:absolute; right:5px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--secondary-ink); }
.search-clear:hover { background:var(--tinted-surface); color:var(--ink); }
.search-clear:focus-visible { outline-offset:-4px; }
.quick-filters { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:20px; margin-top:24px; }
.search-panel .filter-panel { background:transparent; border:0; border-top:1px solid var(--separator); border-radius:0; margin:24px 0 0; }
.search-panel .filter-panel>summary { display:flex; align-items:center; justify-content:space-between; gap:16px; list-style:none; padding:20px 0 0; min-height:44px; font-weight:500; }
.search-panel .filter-panel>summary::-webkit-details-marker { display:none; }
.search-panel .filter-panel summary small { font-size:.75rem; font-weight:400; color:var(--secondary-ink); margin-left:10px; }
.filter-disclosure { font-size:1.25rem; transition:transform 200ms; }
.filter-panel[open] .filter-disclosure { transform:rotate(45deg); }
.search-panel .filter-fields { grid-template-columns:1fr 1fr; gap:24px; padding:24px 0 0; }
#filters-help { grid-column:1/-1; }
.filter-group { min-width:0; padding:0; margin:0; border:0; }
.filter-group legend { padding:0; margin-bottom:8px; font-size:.9375rem; font-weight:600; }
.filter-group>.field-hint { margin-bottom:16px; }
.range-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.search-panel .filter-actions { border-top:1px solid var(--separator); padding-top:24px; align-items:center; flex-wrap:wrap; }
.filter-error:empty { display:none; }
.filter-error:not(:empty) { flex-basis:100%; padding:12px 16px; background:var(--surface); border-left:3px solid var(--accent); border-radius:4px; font-size:.875rem; }
.active-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }
.active-filters:empty { display:none; }
.filter-chip { display:inline-flex; align-items:center; gap:10px; min-height:44px; max-width:100%; padding:9px 14px; border:1px solid var(--separator); border-radius:999px; background:var(--surface); color:var(--ink); text-align:left; overflow-wrap:anywhere; font-size:.8125rem; line-height:1.4; }
.filter-chip:hover { background:var(--tinted-surface); }
.filter-chip span { font-size:1rem; color:var(--secondary-ink); }
.search-feedback { font-size:.8125rem; color:var(--secondary-ink); margin:16px 0 24px; }
.comparison-form .search-feedback { margin:12px 0 24px; }
.comparison-form .compare-pickers { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:20px; align-items:center; margin:0; }
.round-picker { min-width:0; }
.picker-step { font-size:.6875rem; font-weight:600; letter-spacing:.08em; color:var(--accent); margin:0 0 12px; }
.round-picker>.field-hint { margin-top:10px; min-height:40px; }
.comparison-form .swap-rounds { padding-inline:16px; background:var(--surface); }
.swap-rounds span { font-size:1.125rem; }
.comparison-explainer { padding-top:20px; margin:20px 0 0; border-top:1px solid var(--separator); font-size:.8125rem; color:var(--secondary-ink); }
@media(max-width:760px) {
 .search-panel { padding:24px 20px; }
 .search-panel-heading { gap:16px; flex-wrap:wrap; }
 .search-panel-heading h2 { font-size:1.5rem; }
 .search-panel .field input,.search-panel .field select { font-size:16px; }
 .quick-filters { grid-template-columns:1fr 1fr; gap:16px; }
 .quick-filters>.field:first-child { grid-column:1/-1; }
 .search-panel .filter-fields { grid-template-columns:1fr; gap:28px; }
 .date-group .range-fields { grid-template-columns:1fr; }
 .search-panel .filter-panel summary small { display:block; margin:4px 0 0; }
 .comparison-form .compare-pickers { grid-template-columns:1fr; gap:16px; }
 .round-picker>.field-hint { min-height:0; }
 .comparison-form .swap-rounds { justify-self:end; }
 .comparison-form .swap-rounds span { transform:rotate(90deg); }
 .search-input-wrap input { text-overflow:ellipsis; }
}
@media(max-width:380px) {
 .search-panel { padding:20px 16px; }
 .quick-filters,.range-fields { grid-template-columns:1fr; }
 .search-panel .filter-actions>.button { width:100%; }
}

@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media(forced-colors:active) {
 .button,.text-button,.view-switch button,.icon-button,.privacy-notice-close { border:1px solid ButtonText; }
 .view-switch button[aria-pressed=true] { outline:2px solid Highlight; outline-offset:-3px; }
 .icon-button::before,.privacy-notice-close::before { background:Canvas; }
 .icon-button,.privacy-notice-close { color:ButtonText; }
 .menu-symbol i { background:ButtonText; }
 .feature-grid .latest-card { border:1px solid CanvasText; }
}
@media print {
 .site-header,.local-header,.preview-banner { display:none; }
 body:after { display:none; }
 main { padding:0; }
 .web-section { margin-top:28px; }
}

/* Clear dataset context and compact web exploration. */
.shimmer-loading { width:100%; min-width:0; padding-block:8px 24px; }
.loading-caption { margin:0 0 18px; color:var(--secondary-ink); font-size:.875rem; }
.skeleton-layout { display:grid; gap:20px; }
.skeleton-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; }
.skeleton-card { display:grid; gap:22px; padding:28px; border:1px solid var(--separator); border-radius:20px; background:var(--canvas); min-width:0; }
.skeleton-block { display:block; height:14px; width:100%; border-radius:6px; background:linear-gradient(100deg,color-mix(in srgb,var(--ink) 7%,transparent) 25%,color-mix(in srgb,var(--ink) 14%,transparent) 45%,color-mix(in srgb,var(--ink) 7%,transparent) 65%); background-size:250% 100%; animation:loading-shimmer 1.8s ease-in-out infinite; }
.skeleton-eyebrow { width:30%; height:10px; }
.skeleton-title { width:72%; height:28px; border-radius:8px; }
.skeleton-short { width:65%; }
.skeleton-metrics { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding-block:8px; }
.skeleton-metric { height:64px; width:80%; border-radius:10px; }
.skeleton-action { width:120px; height:40px; border-radius:24px; }
.skeleton-input { height:48px; border-radius:12px; }
.skeleton-history,.skeleton-facts { border-block:1px solid var(--separator); }
.skeleton-row { display:grid; grid-template-columns:1fr 2fr 1fr; align-items:center; gap:24px; min-height:76px; padding:20px 12px; }
.skeleton-row+.skeleton-row { border-top:1px solid var(--separator); }
.skeleton-chart { height:220px; display:flex; align-items:flex-end; gap:18px; padding:16px 0 0; border-bottom:1px solid var(--separator); }
.skeleton-bar { height:60%; border-radius:6px 6px 0 0; }
.skeleton-bar:nth-child(3n+1) { height:80%; }
.skeleton-bar:nth-child(3n+2) { height:45%; }
.shimmer-loading.compact { padding-block:16px; }
.shimmer-loading.compact .skeleton-row { min-height:44px; padding:14px 0; }
@keyframes loading-shimmer { from { background-position:150% 0; } to { background-position:-150% 0; } }
@media(max-width:760px) {
 .skeleton-grid { grid-template-columns:1fr; gap:16px; }
 .skeleton-card { padding:22px; gap:18px; }
 .skeleton-row { gap:16px; grid-template-columns:1fr 2fr 1fr; }
 .skeleton-chart { gap:10px; }
}
@media(prefers-reduced-motion:reduce) {
 .skeleton-block { animation:none; background:color-mix(in srgb,var(--ink) 9%,transparent); }
}
@media(forced-colors:active) {
 .skeleton-block { animation:none; background:Canvas; border:1px solid GrayText; }
}
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.data-status { display:flex; flex-wrap:wrap; justify-content:flex-end; max-width:640px; gap:3px 14px; font-size:.75rem; }
.data-status:before { display:none; }
.freshness-details summary { cursor:pointer; min-height:44px; align-content:center; }
.freshness-details p { margin:0 0 8px; }
.data-status .freshness-state { font-weight:600; }
.data-status .stale { color:var(--accent); }
.data-coverage { margin:0 0 14px; color:var(--secondary-ink); font-size:.8125rem; }
.archive-summary small { display:block; color:var(--secondary-ink); font-size:.75rem; margin-top:8px; }
.inventory-context { display:flex; flex-wrap:wrap; gap:12px 32px; padding:16px 20px; margin:16px 0; background:var(--canvas); border-radius:12px; font-size:.875rem; }
.comparison-notice { padding:14px 18px; margin:0 0 16px; border-radius:12px; background:var(--canvas); color:var(--secondary-ink); font-size:.875rem; }
.comparison-notice.different,.comparison-notice.unverified { border-left:3px solid var(--accent); }
.comparison-selection { display:block; margin-top:8px; }
.comparison-card .comparison-notice { padding:12px; margin:12px 0 0; }
.compact-comparison { margin-bottom:20px; padding:20px 24px; }
.compact-comparison h2 { margin:0 0 6px; font-size:1.4rem; }
.compact-comparison .delta-grid { margin:16px 0 0; }
.comparison-chart { margin-top:20px; }
.comparison-chart summary { cursor:pointer; min-height:44px; padding-block:12px; font-size:.875rem; }
.comparison-form { position:relative; padding:24px; }
.comparison-form .search-panel-heading { margin-bottom:16px; }
.comparison-form .search-feedback { margin:8px 0 16px; }
.comparison-form .round-picker>.field-hint { margin-bottom:0; }
.comparison-form .swap-rounds { margin-top:0; }
.utility-page .page-intro h1 { font-size:clamp(2rem,4vw,3.25rem); }
.utility-page .page-intro { margin-bottom:24px; }
.history-table-wrap { border-block:1px solid var(--separator); }
.history-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:.875rem; }
.history-table th { text-align:left; padding:14px 12px; color:var(--secondary-ink); font-weight:500; font-size:.75rem; }
.history-table th:first-child { width:17%; }
.history-table th:nth-child(2) { width:40%; }
.history-table th:nth-child(3),.history-table th:nth-child(4) { width:15%; text-align:right; }
.history-table th:last-child { width:13%; }
.history-table .draw-row { display:table-row; min-height:0; padding:0; border:0; background:transparent; }
.history-table td { padding:16px 12px; border-top:1px solid var(--separator); vertical-align:middle; overflow-wrap:anywhere; }
.history-table .history-name strong { font-weight:500; }
.history-table .row-meta,.history-table .row-context { display:block; margin-top:5px; font-size:.75rem; }
.history-table .row-stat { display:table-cell; text-align:right; }
.history-table .row-stat strong { font-size:1.05rem; font-weight:500; }
.history-table .mobile-stat-label { display:none; }
.history-table .history-action { text-align:right; }
.history-details { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 8px; border:0; border-radius:10px; background:transparent; color:var(--accent); font:inherit; text-decoration:none; }
.history-details:hover { background:var(--tinted-surface); }
.history-details span { font-size:1.3rem; }
@media(max-width:760px) {
 .page-heading { align-items:flex-start; gap:12px; }
 .data-status { justify-content:flex-start; max-width:100%; font-size:.6875rem; }
 .data-status>span { width:100%; }
 .utility-page .page-heading { margin-bottom:18px; }
 .utility-page .page-intro h1 { font-size:2rem; }
 .utility-page .page-intro>p { font-size:.9375rem; }
 .comparison-form { padding:20px; margin-bottom:16px; }
 .comparison-form .search-panel-heading { margin-bottom:12px; padding-right:70px; }
 .comparison-form .search-panel-heading h2 { font-size:1.25rem; margin-bottom:0; }
 .comparison-form .field-hint { font-size:.75rem; line-height:1.4; margin-top:6px; }
 .comparison-form .search-feedback { font-size:.75rem; margin:6px 0 14px; }
 .comparison-form .compare-pickers { gap:14px; }
 .comparison-form .swap-rounds { position:absolute; top:10px; right:12px; padding:8px 12px; min-height:44px; font-size:.8125rem; }
 .comparison-form .search-input-wrap input { min-height:48px; }
 .comparison-notice { padding:12px 14px; font-size:.8125rem; }
 .compact-comparison { padding:18px 20px; }
 .compact-comparison .delta-grid strong { font-size:2rem; }
 .history-table,.history-table tbody { display:block; }
 .history-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .history-table .draw-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:12px; padding:18px 0; border-top:1px solid var(--separator); }
 .history-table .draw-row:first-child { border-top:0; }
 .history-table td { display:block; padding:0; border:0; }
 .history-table .history-date { grid-column:1/-1; color:var(--secondary-ink); font-size:.75rem; }
 .history-table .history-date .row-meta { display:inline; margin-left:12px; }
 .history-table .history-name { grid-column:1/-1; font-size:.9375rem; }
 .history-table .row-stat { display:block; text-align:left; }
 .history-table .row-stat strong { font-size:1.125rem; }
 .history-table .mobile-stat-label { display:block; margin-bottom:5px; font-size:.6875rem; color:var(--secondary-ink); }
 .history-table .history-action { align-self:center; }
 .history-details { font-size:.8125rem; }
}

/* Every bar chart uses the same touch targets and native horizontal scrolling. */
.interactive-chart { min-width:0; }
.interactive-chart .chart-scroll { padding:6px; margin-inline:-6px; }
.interactive-chart .chart { min-width:100%; width:max-content; min-height:232px; }
.interactive-chart [data-chart-point] {
 color:var(--ink); background:transparent; border:0; border-radius:6px;
 padding:4px; min-width:64px; flex:1 0 64px; cursor:pointer;
 touch-action:pan-x pan-y pinch-zoom;
}
.interactive-chart [data-chart-point][aria-pressed="true"] {
 outline:2px solid var(--accent); outline-offset:-2px; background:var(--surface);
}
.interactive-chart [data-chart-point]:focus-visible { outline:3px solid var(--accent); outline-offset:-3px; }
.interactive-chart .chart-value,.interactive-chart .chart-date {
 writing-mode:horizontal-tb; transform:none; white-space:nowrap; font-size:.75rem;
}
.interactive-chart .chart-bar { flex-shrink:0; }
.interactive-chart .comparison-observation { flex:0 0 120px; }
.chart-selection { min-height:3.1em; margin:12px 0; font-size:.875rem; overflow-wrap:anywhere; }
.chart-instructions { margin-block:12px 4px; }
@media(forced-colors:active) {
 .interactive-chart [aria-pressed="true"] { outline-color:Highlight; }
}

/* Overview is a brief entry point; detailed analysis lives in its own section. */
.overview-next { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:32px 0; }
.overview-next a { display:flex; flex-direction:column; gap:8px; padding:20px; border:1px solid var(--separator); border-radius:12px; text-decoration:none; min-height:44px; }
.overview-next strong { display:flex; justify-content:space-between; gap:12px; }
.overview-next a>span { color:var(--secondary-ink); font-size:.875rem; }
.analysis-details { margin-block:24px; }
.analysis-disclosure { border-top:1px solid var(--separator); padding-block:8px; }
.analysis-disclosure>summary { cursor:pointer; padding:16px 4px; min-height:44px; font-weight:600; }
.analysis-disclosure>summary>span { display:block; margin-top:4px; color:var(--secondary-ink); font-size:.8125rem; font-weight:400; }
.analysis-disclosure[open]>summary { margin-bottom:12px; }
.analysis-disclosure .analytics-grid { margin-top:0; }
@media(max-width:760px) { .overview-next { grid-template-columns:1fr; } }

/* The result count is announced once above the archive. */
.archive-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:600px) { .archive-summary { grid-template-columns:1fr; } }
