/* Shared presentation for the research index and operations case study. */
:root{color-scheme:light;--bg:#fff;--surface:#fff;--raised:#f7fafc;--text:#2d3748;--muted:#4a5568;--line:#e2e8f0;--accent:#2b6cb0;--heading:#1a365d;--tag:#f7fafc;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0f141d;--surface:#161d2b;--raised:#161d2b;--text:#e8edf4;--muted:#a0aec0;--line:#2a3444;--accent:#63b3ed;--heading:#e2e8f0;--tag:#161d2b}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#0f141d;--surface:#161d2b;--raised:#161d2b;--text:#e8edf4;--muted:#a0aec0;--line:#2a3444;--accent:#63b3ed;--heading:#e2e8f0;--tag:#161d2b}}
*{box-sizing:border-box}html{scroll-padding-top:1.5rem}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.65 var(--sans)}
a{color:var(--accent);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,select{font:inherit;color:var(--text)}button,select{cursor:pointer}button{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.55rem .85rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden],.hidden{display:none!important}
.site-header{max-width:1200px;margin:auto;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.brand{color:var(--heading);font-size:1rem;font-weight:750;text-decoration:none;letter-spacing:.025em}.brand-subtitle{font-size:.8rem;color:var(--muted);margin-top:2px}
.site-nav{display:flex;gap:25px;flex-wrap:wrap}.site-nav a{font-size:.9rem;color:var(--muted);text-decoration:none;padding:7px 0}.site-nav a[aria-current]{color:var(--accent);border-bottom:2px solid var(--accent)}
.theme-toggle-btn{font-size:.8rem;min-height:44px;white-space:nowrap}.skip-link{position:absolute;top:-100px;left:20px;padding:10px;background:var(--surface);z-index:10}.skip-link:focus{top:15px}
.page-shell,.swiss-grid{max-width:1200px;margin:auto;padding:0 28px}.hero,.rail-header{padding:58px 0 40px;margin:0;max-width:850px}.eyebrow,.tag{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 16px;font-weight:650}
h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.12;letter-spacing:-.045em;font-weight:660;margin:0 0 22px}h2{line-height:1.3;letter-spacing:-.025em}p{overflow-wrap:anywhere}.hero p,.rail-header>p:not(.eyebrow){font-size:1.12rem;line-height:1.7;color:var(--muted);max-width:66ch;margin-bottom:0}
.control-header{margin:0 0 28px;padding:20px;background:var(--raised);border:1px solid var(--line);border-radius:12px}.search-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-input{min-width:0;flex:1 1 260px;padding:.65rem .85rem;background:var(--surface);border:1px solid var(--line);border-radius:7px}.search-input::placeholder{color:var(--muted);opacity:1}.subject-control{display:flex;gap:10px;align-items:center;font-size:.86rem}.subject-control select{min-height:48px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:8px}.search-clear{min-height:48px;font-size:.9rem}.search-summary{font-size:.85rem;color:var(--muted);margin-top:12px}.search-summary:empty{display:none}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.section-label{grid-column:1/-1;margin:22px 0 0;font-size:.85rem;color:var(--muted);letter-spacing:.045em}
.entry-row{min-width:0;padding:27px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:flex-start}.entry-top{display:flex;gap:8px 12px;flex-wrap:wrap;align-items:center;font-size:.71rem;color:var(--muted);margin-bottom:15px;overflow-wrap:anywhere}.tag-badge{font-size:.67rem;background:var(--tag);border:1px solid var(--line);padding:3px 6px;border-radius:4px;letter-spacing:.03em}.entry-row h2{font-size:1.35rem;margin:0 0 16px}.entry-row h2 a{color:var(--heading);text-decoration-color:var(--line)}.entry-row h2 a:hover{color:var(--accent)}.entry-row p{font-size:1rem;margin:0 0 18px;line-height:1.75;max-width:72ch}.entry-bottom{width:100%;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.stack-line{display:block;font-size:.77rem;color:var(--muted);margin-bottom:14px}.action-group{display:flex;gap:12px 22px;flex-wrap:wrap;font-size:.85rem}.action-group a{padding:4px 0}
.featured-entry{grid-column:1/-1;border-top:3px solid var(--accent);position:relative;padding:32px}.featured-entry h2{font-size:clamp(1.55rem,3vw,2rem);max-width:750px}.featured-entry .entry-top::before{content:"START HERE";font-weight:700;color:var(--accent);letter-spacing:.09em}.featured-entry .entry-bottom{margin-top:8px}.featured-entry p{max-width:90ch}
.evidence-notes{margin:45px 0;padding:26px 0;border-top:1px solid var(--line)}.evidence-notes h2{font-size:1.3rem;margin:0 0 25px}.stat-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.stat-label{font-size:.76rem;color:var(--muted)}.stat-num{font-size:1.05rem;font-weight:650;margin:7px 0}.stat-desc{font-size:.82rem;color:var(--muted);line-height:1.6}
.hub-footer{max-width:1144px;margin:0 auto;padding:26px 0 40px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}.footer-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:20px}.ai-disclaimer{margin-bottom:10px}
.case-hero{max-width:960px;padding-bottom:34px}.case-hero h1{max-width:20ch}.case-context{display:grid;grid-template-columns:1fr 1.3fr;gap:25px;padding:22px 26px;background:var(--raised);border:1px solid var(--line);border-radius:12px;margin-bottom:40px}.case-context p{font-size:.93rem;line-height:1.6;margin:0}.case-context strong{display:block;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.case-section{display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px;padding:36px 0;border-top:1px solid var(--line)}.case-section h2{font-size:1.4rem;margin:3px 0 0}.case-content{max-width:76ch}.case-content p{margin:0 0 20px}.case-content p:last-child{margin-bottom:0}.section-number{display:block;font-size:.72rem;font-weight:500;color:var(--accent);letter-spacing:.1em;margin-bottom:10px}
.route{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 22px}.route li{padding:16px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:.88rem;font-weight:650}.route li span{display:block;color:var(--accent);font-size:.7rem;margin-bottom:7px}.route-note{font-size:.9rem;color:var(--muted)}.limits{padding:24px;background:var(--raised);border-radius:10px;border-left:3px solid var(--accent)}.limits p{font-size:.95rem}.verification p{font-size:.92rem;color:var(--muted)}.case-footer{margin-top:30px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:850px){.site-header{flex-wrap:wrap;gap:15px}.site-nav{order:3;width:100%;gap:25px}.theme-toggle-btn{margin-left:auto}.case-section{grid-template-columns:1fr;gap:18px}.section-number{display:inline;margin-right:12px}.stat-group{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){body{font-size:16px}.site-header{padding:20px}.page-shell,.swiss-grid{padding:0 20px}.hero,.rail-header{padding:36px 0 28px}.hero p,.rail-header>p:not(.eyebrow){font-size:1rem}.project-grid{grid-template-columns:1fr;gap:18px}.entry-row,.featured-entry{padding:23px}.control-header{padding:15px}.search-input{flex-basis:100%;width:100%}.subject-control{flex:1;min-width:0}.subject-control select{min-width:0;width:100%}.case-context{grid-template-columns:1fr;padding:20px;gap:18px;margin-bottom:25px}.route{grid-template-columns:repeat(2,minmax(0,1fr))}.case-section{padding:28px 0}.hub-footer{margin:0 20px}.stat-group{gap:20px}.limits{padding:20px}.theme-toggle-btn{font-size:.72rem}.site-nav{gap:20px}.site-nav a{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media print{.site-header,.control-header,.skip-link{display:none}.project-grid{display:block}.entry-row,.case-section{break-inside:avoid}.entry-row{margin:18px 0}body{background:white;color:black}.hidden{display:block!important}}

/* Heading colour follows the paper and Article 50 palette in both themes. */
h1,h2{color:var(--heading)}
