:root{--ink:#202b2b;--muted:#556360;--paper:#f7f5f0;--accent:#386b48;--line:#d7dcd4;--white:#fff;--radius:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:0}body.dialog-open{overflow:hidden}button,input,select{font:inherit}a{color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled{cursor:wait}h1,h2,h3,p{overflow-wrap:anywhere}a.skip{position:absolute;top:-100px;left:1rem;padding:1rem;background:white;z-index:20}a.skip:focus{top:1rem}.site-header{border-bottom:1px solid var(--line);background:#fff}.header-inner,.page,.site-footer{max-width:1220px;margin:auto;padding-inline:32px}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}.brand{font-size:1rem;font-weight:700;display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.brand-mark{letter-spacing:-.05em;font-size:1.55rem;font-weight:900;color:var(--accent)}.brand-divider{height:24px;border-left:1px solid var(--line)}.family-link{font-size:.85rem;text-decoration:none;padding:12px 0;white-space:nowrap}.preview-note{font-size:.73rem;font-weight:700;letter-spacing:.04em;padding:12px 32px;text-align:center;background:#e8ece5;border-bottom:1px solid var(--line);margin:0}.hero{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:40px;padding:68px 0 44px;align-items:center}.eyebrow{color:var(--accent);font-weight:700;font-size:.74rem;letter-spacing:.19em;margin:0 0 20px}.hero h1{font-size:clamp(2.4rem,5vw,4.6rem);font-weight:650;letter-spacing:-.055em;line-height:1.04;max-width:760px;margin:0 0 24px}.intro{font-size:1.07rem;color:var(--muted);line-height:1.65;max-width:650px}.hero-art{aspect-ratio:1;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;position:relative;overflow:hidden;background:repeating-linear-gradient(0deg,transparent,transparent 21px,#d7dcd450 22px)}.hero-art:before{content:"";position:absolute;width:64%;height:64%;border:1px solid var(--accent);border-radius:50%;opacity:.2}.hero-art span{font-size:115px;color:var(--accent);font-weight:300}.source-status{display:grid;grid-template-columns:minmax(170px,1fr) 2fr;gap:24px;background:#fff;border:1px solid var(--line);padding:22px 24px;border-radius:14px;margin-bottom:30px}.source-status h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin:0 0 10px}.source-status p{margin:4px 0;line-height:1.55;font-size:.86rem}.status-value{color:var(--accent);font-weight:750}.source-notice{color:var(--muted)}.search-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;background:#fff;border:1px solid var(--line);padding:20px;border-radius:14px}.search-field{flex:2 1 280px;min-width:0}.secondary-field{flex:1 1 150px;min-width:0}.search-form label{display:block;font-size:.75rem;font-weight:700;margin-bottom:8px}.search-form input,.search-form select{width:100%;min-width:0;min-height:46px;border:1px solid #aab5ae;border-radius:8px;background:white;padding:11px;color:var(--ink)}.button{border:1px solid #aab5ae;border-radius:8px;padding:12px 18px;background:#fff;color:var(--ink);min-height:46px}.button.primary{background:var(--accent);color:white;border-color:var(--accent);font-weight:650}.button:hover{filter:brightness(.94)}.filters{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0}.filter-tab{min-height:42px;border:1px solid var(--line);padding:9px 17px;border-radius:99px;background:#fff;color:var(--muted)}.filter-tab[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.result-bar{display:flex;gap:20px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:20px 0;color:var(--muted);font-size:.8rem}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.card-open{border:0;margin:0;padding:0;display:block;background:transparent;text-align:left;width:100%;height:100%;color:var(--ink)}.card-open:hover{background:#f3f6f0}.card:focus-within{outline:3px solid var(--accent);outline-offset:4px}.card-open:focus-visible{outline:none}.card-media{aspect-ratio:16/10;background:#e6e9e2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;overflow:hidden}.card-media img{width:100%;height:100%;object-fit:cover}.media-symbol{font-size:4rem;color:var(--accent);opacity:.55}.missing-image{font-size:.63rem;letter-spacing:.1em;font-weight:650;color:#4c5c50}.card-body{padding:22px}.card-category{font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:750;margin:0 0 12px}.card-title{font-size:1.22rem;line-height:1.3;letter-spacing:-.02em;margin:0 0 13px}.card-summary{font-size:.88rem;line-height:1.7;margin:0;color:var(--muted)}.read-more{display:inline;color:var(--accent);font-weight:750;white-space:nowrap}.card-meta{font-size:.69rem;border-top:1px solid var(--line);padding-top:15px;margin:19px 0 0;color:var(--muted)}.ad-slot{height:280px;min-height:280px;max-height:280px;margin:38px 0;border:1px dashed #acb7ab;border-radius:8px;background:#eff0eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;overflow:hidden;text-align:center;padding:20px}.ad-label{font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:#566354}.ad-empty{font-size:.77rem;color:#687261;margin:0}.state-panel{text-align:center;min-height:270px;padding:60px 32px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.state-panel h2{font-size:1.45rem;letter-spacing:-.03em}.state-panel p{max-width:670px;margin:15px auto 22px;color:var(--muted);line-height:1.75;font-size:.94rem}.site-footer{padding-block:35px 45px;margin-top:44px;border-top:1px solid var(--line)}.footer-copy{font-size:.8rem;color:var(--muted);line-height:1.7;max-width:700px}.service-nav{display:flex;flex-wrap:wrap;gap:8px 20px;padding:14px 0 18px}.service-link{font-size:.8rem;min-height:38px;display:flex;align-items:center;text-decoration:none;color:var(--muted)}.service-link[aria-current]{font-weight:750;color:var(--accent)}dialog{width:min(780px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:#122017ad}.detail-header{padding:24px 28px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:15px;justify-content:space-between;position:sticky;top:0;background:#fff;z-index:1}.detail-header h2{font-size:1.6rem;line-height:1.25;letter-spacing:-.035em;margin:0}.detail-header .eyebrow{margin-bottom:10px}.close-button{white-space:nowrap;flex:0 0 auto}#detail-content{padding:25px 28px}.detail-description{white-space:pre-line;line-height:1.8;font-size:1rem}.data-badge{display:inline-block;font-size:.73rem;font-weight:650;border-radius:5px;padding:8px 10px;background:#eaf0e7}.data-badge.stale{background:#fff0d9;color:#74480a}.fixture-warning{background:#fff1dd;padding:15px;border-left:3px solid #ad6c1c;font-size:.85rem;line-height:1.6}.facts{display:grid;grid-template-columns:150px minmax(0,1fr);gap:0;margin:28px 0;font-size:.86rem}.facts dt,.facts dd{border-bottom:1px solid var(--line);padding:13px 10px;overflow-wrap:anywhere}.facts dt{font-weight:650}.facts dd{margin:0;color:var(--muted)}.source-links{display:flex;flex-wrap:wrap;gap:16px;line-height:1.8;font-size:.85rem}.source-link{color:var(--accent);padding:10px 0}.detail-ad-section{padding-top:32px}.detail-ad-section .ad-slot{margin-top:24px;margin-bottom:0}.detail-image{width:100%;height:auto;border-radius:10px}.gac-root{max-inline-size:none!important;background:transparent!important}.gac-copy{max-width:850px}.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0}.family-card{padding:26px;border:1px solid var(--line);border-radius:16px;text-decoration:none;background:white;display:block}.family-card h2{font-size:1.15rem}.family-card p{font-size:.85rem;line-height:1.65;color:var(--muted)}.family-card small{font-size:.67rem;font-weight:700;color:#856226}.family-hero{padding:65px 0 30px}.family-hero h1{font-size:clamp(2rem,5vw,4rem);letter-spacing:-.05em;max-width:850px}.family-hero p{max-width:780px;line-height:1.75;color:var(--muted)}@media(max-width:850px){.hero{grid-template-columns:minmax(0,1fr) 180px;gap:24px}.hero-art span{font-size:80px}.card-grid,.family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.source-status{grid-template-columns:1fr;gap:12px}.header-inner,.page,.site-footer{padding-inline:22px}}@media(max-width:560px){.header-inner,.page,.site-footer{padding-inline:16px}.header-inner{min-height:72px;gap:12px}.brand{font-size:.82rem;gap:8px}.brand-mark{font-size:1.3rem}.family-link{font-size:.7rem}.preview-note{font-size:.62rem;padding:11px 16px}.hero{grid-template-columns:1fr;padding:40px 0 22px}.hero-art{display:none}.hero h1{font-size:2.7rem}.intro{font-size:.96rem}.source-status{padding:18px}.search-form{padding:16px;gap:12px}.search-field{flex-basis:100%}.secondary-field{flex:1 1 100%}.search-form .button{flex:1 1 auto}.filters{gap:7px}.filter-tab{padding:8px 12px;font-size:.82rem}.result-bar{align-items:flex-start;gap:10px;font-size:.69rem}.card-grid,.family-grid{grid-template-columns:minmax(0,1fr)}.card-body{padding:20px}.ad-slot{height:250px;min-height:250px;max-height:250px}.state-panel{padding:35px 20px}.state-panel h2{font-size:1.28rem}.detail-header{padding:18px 16px}.detail-header h2{font-size:1.2rem}.close-button{padding:8px 11px;font-size:.8rem}#detail-content{padding:20px 16px}.facts{grid-template-columns:105px minmax(0,1fr);font-size:.79rem}.facts dt,.facts dd{padding:12px 5px}.detail-description{font-size:.94rem}.service-nav{gap:4px 17px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}[hidden]{display:none!important}

.reading-aid{margin:24px 0;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff;line-height:1.7}.reading-aid h2{font-size:1.2rem}.reading-aid p{max-width:900px}.source-index summary{cursor:pointer;font-weight:650;padding:10px 0}.source-index li{margin:12px 0;overflow-wrap:anywhere}.source-index small{display:block;color:var(--muted)}.comparison-scroll{overflow-x:auto}.comparison-table{width:100%;border-collapse:collapse;min-width:480px;font-size:.9rem}.comparison-table caption{text-align:left;font-weight:650;padding:12px 0}.comparison-table th,.comparison-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px;vertical-align:top}.comparison-table th:first-child{padding-left:0}

/* Source-separated articles and optional, local reading tools. */
.reading-guide{max-width:74ch;margin:1.5rem auto;line-height:1.8}.article-intro{font-size:1.2rem;line-height:1.65}.article-status{font-size:.85rem;font-weight:700;color:var(--muted)}.article-status.identity-unresolved,.article-status.bounded{color:#8a4308}.article-section{margin:1.8rem 0}.article-section h3{font-size:1.15rem;margin-bottom:.45rem}.article-section p{margin:.65rem 0}.article-section-sources{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.8rem;line-height:1.5}.article-limits{border-left:4px solid #bc742a;padding:.75rem 1rem;background:#fff8eb;color:#513312}.article-limits h3{margin-top:0}.article-related{border-top:1px solid #d8d9dc;padding-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.article-related h3{width:100%;margin:.25rem 0}.article-evidence,.source-record{border-top:1px solid #d8d9dc;margin-top:1.25rem;padding:1rem 0}.article-evidence summary,.source-record summary{cursor:pointer;font-weight:700}.record-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding:.7rem 0}.card>.record-actions{padding:.7rem 1rem;border-top:1px solid #dedee0}.record-actions .button{font-size:.8rem;min-height:42px}.record-actions .button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.reader-tools{margin:1rem 0;padding:1rem;border:1px solid #d8d9dc;border-radius:12px}.reader-tools p{font-size:.875rem;margin:.3rem 0}.reader-status{min-height:1.5em;font-size:.85rem}.comparison-panel{margin:1rem 0 2rem;padding:1rem;border:1px solid #d8d9dc;border-radius:12px}.comparison-panel[hidden]{display:none}.comparison-scroll{overflow:auto}.comparison-table{border-collapse:collapse;width:100%;min-width:640px;table-layout:fixed;line-height:1.6}.comparison-table caption{text-align:left;font-weight:700;margin:.5rem 0}.comparison-table th,.comparison-table td{border:1px solid #d8d9dc;padding:.75rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}.comparison-table th:first-child{width:22%}.comparison-table .button{white-space:normal;text-align:left}.record-permalink{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.record-permalink label{width:100%;font-size:.8rem;font-weight:700}.record-permalink input{flex:1;min-width:160px;max-width:100%;border:1px solid #b8bac0;border-radius:6px;padding:.5rem;background:transparent;color:inherit}.record-permalink .reader-status{width:100%;margin:0}.button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.article-intro{font-size:1.08rem}.article-section-sources{display:block}.article-section-sources a{display:block;margin:.4rem 0}.record-actions .button{flex:1}.reader-tools{padding:.75rem}.comparison-panel{padding:.65rem}.article-related .button{width:100%;text-align:left}}@media print{.record-actions,.record-permalink,.ad-slot,.reader-tools{display:none!important}.article-evidence,.source-record{display:block}.reading-guide{max-width:none}}
.action-feedback{width:100%;margin:0;min-height:0}.action-feedback:empty{display:none}
.unresolved-option{display:block;margin:.6rem 0;font-size:.85rem}.unresolved-option[hidden]{display:none}.unresolved-warning{font-weight:700;color:#8a4308}

/* Viewport shell: the article/collection pane scrolls; footer is a grid row,
   never a fixed overlay. Original non-shell routes keep their current layout. */
.viewport-shell{height:100vh;height:var(--viewport-block-size,100dvh);min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow-wrap:anywhere}
.viewport-shell>[data-viewport-header]{min-width:0}
.viewport-shell .header-inner{min-height:3.5rem;padding-block:.45rem;gap:.4rem 1rem;flex-wrap:wrap}
.viewport-shell .brand{flex-wrap:wrap;gap:.35rem .65rem;max-width:100%}
.viewport-shell .brand-mark{font-size:1.35rem}
.viewport-shell .family-link{white-space:normal;overflow-wrap:anywhere;max-width:100%;padding:.3rem 0}
.viewport-shell .viewport-main{width:100%;height:100%;min-width:0;min-height:0;margin:0 auto;overflow-y:auto;overflow-x:auto;scrollbar-gutter:stable;padding-block:.75rem 1rem;scroll-padding-block:1rem;-webkit-overflow-scrolling:touch}
.viewport-main:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
.viewport-shell .preview-note{padding:.45rem .6rem;margin:0 0 .6rem;font-size:.7rem;border-radius:6px}
.viewport-shell .hero{display:block;padding:.5rem 0 .8rem}
.viewport-shell .hero-art{display:none}
.viewport-shell .hero h1,.viewport-shell .family-hero h1{font-size:clamp(1.35rem,2.5vw,1.9rem);line-height:1.25;letter-spacing:-.025em;margin:.25rem 0 .5rem;max-width:none}
.viewport-shell .hero .eyebrow,.viewport-shell .family-hero .eyebrow{margin:0 0 .4rem;letter-spacing:.1em}
.viewport-shell .intro{font-size:.95rem;line-height:1.55;margin:.5rem 0;max-width:85ch}
.viewport-shell .family-hero{padding:.3rem 0 .5rem}
.viewport-shell .family-hero p{margin:.45rem 0;line-height:1.6}
.viewport-shell .family-grid{gap:1rem;margin:.5rem 0 1rem}
.viewport-shell .family-card{padding:1rem}
.viewport-shell .family-card h2{margin:.45rem 0;font-size:1.08rem}
.viewport-shell .family-card .eyebrow{margin:0 0 .4rem}
.viewport-shell .family-card p{margin:.5rem 0;line-height:1.55}
.viewport-shell .viewport-notes{margin:.5rem 0 .8rem;border:1px solid var(--line);border-radius:8px;padding:.1rem .75rem;background:#fff}
.viewport-shell .viewport-notes>summary{cursor:pointer;font-size:.9rem;font-weight:650;padding:.65rem .1rem;overflow-wrap:anywhere}
.viewport-shell .viewport-notes>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.viewport-shell .viewport-notes .source-status{margin:.3rem 0 .75rem}
.viewport-shell .viewport-site-notes{margin-top:1.25rem}
.viewport-shell .search-form{padding:.85rem;gap:.65rem}
.viewport-shell .filters{margin:.85rem 0}
.viewport-shell .result-bar{padding:.75rem 0;flex-wrap:wrap;gap:.5rem}
.viewport-shell .button,.viewport-shell .filter-tab{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.viewport-shell .viewport-footer{width:100%;max-width:none;margin:0;padding:.45rem max(1rem,calc((100% - 1156px)/2));background:var(--paper);border-top:1px solid var(--line);min-width:0}
.viewport-reservation{margin:0}
.viewport-ad-label,.viewport-disclosure{font-size:.72rem;line-height:1.4;margin:.2rem 0;overflow-wrap:anywhere}
.viewport-ad-label{color:var(--muted);font-weight:650}
.viewport-ad{block-size:clamp(40px,6dvh,64px);min-block-size:40px;max-block-size:64px;border:1px dashed #acb7ab;border-radius:6px;background:#eff0eb}
.viewport-disclosure{color:var(--muted)}
.viewport-rem-probe{position:absolute;inline-size:1rem;block-size:1rem;visibility:hidden;pointer-events:none;inset:0}
/* Preserve document scrolling when translation, text zoom or a virtual keyboard
   leaves less than 12rem for reading. JS re-enters at 13rem to avoid flapping. */
.viewport-shell.viewport-fallback{height:auto;min-height:100vh;min-height:100dvh;display:block}
.viewport-shell.viewport-fallback .viewport-main{height:auto;min-height:12rem;overflow:visible;scrollbar-gutter:auto}
/* CSS-only safety, including when scripts are unavailable. */
@media(max-height:30rem){
 .viewport-shell{height:auto;min-height:100vh;min-height:100dvh;display:block}
 .viewport-shell .viewport-main{height:auto;min-height:12rem;overflow:visible;scrollbar-gutter:auto}
}
@media print{
 .viewport-shell{height:auto;display:block}
 .viewport-shell .viewport-main{height:auto;overflow:visible}
 .viewport-footer{display:none}
}

/* Native modal content stays inside the measured header/footer band.
   A transparent backdrop preserves native inert/focus behavior without
   painting over the reserved footer. Small-height fallback stays original. */
@media(min-height:30.001rem){
 body[data-viewport-shell]:not(.viewport-fallback)>dialog[open]{position:fixed;inset-block-start:var(--viewport-dialog-top,4rem);inset-block-end:auto;margin-block:0;block-size:auto;max-block-size:var(--viewport-dialog-max-block-size,calc(100dvh - 12rem));min-block-size:0;overflow-y:auto;overscroll-behavior-y:contain;box-shadow:none}
 body[data-viewport-shell]:not(.viewport-fallback)>dialog[open]::backdrop{background:transparent}
}

/* Keep only Close sticky. A long title must scroll with the article rather
   than enlarge the sticky box beyond the native dialog's visible height.
   Preserve native showModal, the full title, inherited font sizes and the
   existing measured footer boundary in fixed and natural-flow layouts. */
body[data-viewport-shell]>dialog#detail[open]{display:flex;flex-direction:column}
body[data-viewport-shell]>dialog#detail>.detail-header{display:contents}
body[data-viewport-shell]>dialog#detail>.detail-header>div{order:1;flex:0 0 auto;min-inline-size:0;padding:24px 28px;border-bottom:1px solid var(--line)}
body[data-viewport-shell]>dialog#detail>.detail-header>.close-button{order:0;flex:0 0 auto;align-self:flex-end;position:sticky;inset-block-start:8px;margin:8px 28px 0;max-inline-size:calc(100% - 56px);white-space:normal;overflow-wrap:anywhere;background:#fff;z-index:2}
body[data-viewport-shell]>dialog#detail>#detail-content{order:2;flex:0 0 auto;min-inline-size:0}
@media(max-width:560px){
 body[data-viewport-shell]>dialog#detail>.detail-header>div{padding:18px 16px}
 body[data-viewport-shell]>dialog#detail>.detail-header>.close-button{margin-inline:16px;max-inline-size:calc(100% - 32px)}
}
