:root {
  --bg:#f7f9f7; --surface:#ffffff; --surface-alt:#eef2ef; --ink:#182638;
  --muted:#607182; --line:#e0e8e5; --accent:#4362e5; --accent-soft:#e8edff;
  --forest:#006e5d; --mint:#aeefce; --orange:#c86b40; --shadow:0 24px 80px rgba(15,40,49,.075);
  --radius:22px; --max:1220px; --ease:cubic-bezier(.2,.8,.2,1)
}
html[data-theme="dark"] {
  --bg:#0e1723; --surface:#152334; --surface-alt:#1b2d3c; --ink:#eff6f3;
  --muted:#a3b5c3; --line:#304353; --accent:#a9b9ff; --accent-soft:#26395a;
  --forest:#89dfbd; --mint:#355f53; --orange:#efae7f; --shadow:0 24px 80px rgba(0,0,0,.2)
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; scrollbar-gutter:stable }
body { margin:0; min-height:100vh; font-family:Inter,"Aptos", "Segoe UI",Helvetica,Arial,sans-serif; background:var(--bg); color:var(--ink); font-size:16px; line-height:1.57; -webkit-font-smoothing:antialiased; transition:background .25s,color .25s }
button,input,select { font:inherit }
button { cursor:pointer }
a { color:inherit; text-decoration:none }
img,svg { display:block; max-width:100% }
img { height:auto }
::selection { background:var(--mint); color:#143329 }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px }
[hidden] { display:none !important }
.shell { width:min(var(--max),calc(100% - 72px)); margin-inline:auto }
.skip-link { position:fixed; z-index:100; top:-100px; left:20px; background:var(--ink); color:var(--bg); padding:10px 18px; border-radius:10px }
.skip-link:focus { top:10px }
.site-header { position:sticky; top:0; z-index:50; border-bottom:1px solid transparent; background:color-mix(in srgb,var(--bg) 91%,transparent); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px) }
.site-header.scrolled { border-color:var(--line); box-shadow:0 8px 32px rgba(14,37,46,.025) }
.header-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:24px }
.brand { display:flex; gap:11px; align-items:center; min-width:max-content; font-size:18px; letter-spacing:-.055em; font-weight:790 }
.brand-mark { display:grid; place-items:center; height:43px; width:43px; color:white; background:#18293f; border-radius:14px; font-weight:850; font-size:15px; letter-spacing:-.06em; position:relative }
.brand-mark:after { position:absolute; content:""; width:7px; height:7px; border-radius:50%; background:#a8eecb; top:6px; right:6px }
.nav { display:flex; align-items:center; gap:3px }
.nav a { padding:10px 11px; border-radius:10px; color:var(--muted); font-weight:620; font-size:13px; transition:background .2s,color .2s; white-space:nowrap }
.nav a:hover,.nav a.active { color:var(--ink); background:var(--surface-alt) }
.header-actions { display:flex; align-items:center; gap:5px }
.icon-btn { border:1px solid transparent; background:transparent; color:var(--ink); width:39px; height:39px; border-radius:12px; display:grid; place-items:center; transition:background .2s,border .2s }
.icon-btn:hover { background:var(--surface-alt); border-color:var(--line) }
.icon-btn svg { width:19px; height:19px }
.lang-btn { font-size:11px; font-weight:790; letter-spacing:.03em; width:43px }
.menu-btn { display:none }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; background:var(--ink); color:var(--bg); border:1px solid var(--ink); border-radius:12px; padding:13px 18px; font-size:13px; font-weight:750; line-height:1.2; transition:transform .2s var(--ease),background .2s,border .2s }
.btn:hover { transform:translateY(-2px) }
.btn svg { height:16px; width:16px }
.btn.primary { background:var(--accent); border-color:var(--accent); color:#fff }
html[data-theme="dark"] .btn.primary { color:#101b2f }
.btn.outline { background:var(--surface); color:var(--ink); border-color:var(--line) }
.btn.outline:hover { border-color:var(--accent) }
.btn.ghost { background:transparent; border-color:transparent; color:var(--accent); padding-inline:0 }
.btn.ghost:hover { transform:none; text-decoration:underline; text-underline-offset:5px }
.btn:disabled { opacity:.5; pointer-events:none }
.inline-link { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:780; color:var(--accent); text-underline-offset:4px }
.inline-link:hover { text-decoration:underline }
.inline-link svg { width:16px;height:16px }
.eyebrow { display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--forest) }
.eyebrow:before { content:""; height:8px; width:8px; border-radius:50%; background:var(--forest); box-shadow:0 0 0 4px color-mix(in srgb,var(--forest) 12%,transparent) }
h1,h2,h3,h4,p { margin:0 }
h1,h2,h3,h4 { letter-spacing:-.058em; line-height:1.12 }
h1 { font-size:clamp(43px,5.35vw,76px); font-weight:780 }
h2 { font-size:clamp(31px,3.65vw,48px); font-weight:770 }
h3 { font-size:24px; font-weight:750 }
p { color:var(--muted) }
.lead { font-size:clamp(17px,1.6vw,21px); line-height:1.65; max-width:660px }
.small { font-size:13px }
.muted { color:var(--muted) }
.accent { color:var(--accent) }
.section { padding-block:88px }
.section.tight { padding-block:54px }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:32px }
.section-heading >div { display:grid; gap:13px }
.section-heading p { max-width:630px }
.divider { width:100%; height:1px; background:var(--line) }
.section-header-note { font-size:13px; max-width:240px; text-align:right }
.hero { padding:72px 0 100px; overflow:hidden }
.hero-layout { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); align-items:center; gap:clamp(30px,5vw,80px) }
.hero-copy { display:grid; justify-items:start; gap:27px; position:relative; z-index:1 }
.hero-title { max-width:750px }
.hero-title em { font-style:normal; color:var(--accent) }
.hero-copy .lead { max-width:590px }
.hero-cta { display:flex; flex-wrap:wrap; gap:11px; margin-top:4px }
.hero-detail { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:12px; font-weight:700; color:var(--muted); margin-top:8px }
.hero-detail .dot { width:4px;height:4px;border-radius:50%;background:var(--muted) }
.signal-panel { isolation:isolate; position:relative; min-height:510px; border-radius:30px; background:linear-gradient(145deg,#182940 7%,#203c4c 55%,#0d6255 125%); overflow:hidden; box-shadow:0 35px 80px rgba(20,43,53,.14) }
.signal-panel:after { content:""; position:absolute; inset:-30%; background:radial-gradient(circle at 71% 43%,rgba(144,243,186,.18),transparent 37%),radial-gradient(circle at 15% 80%,rgba(117,146,255,.25),transparent 40%); pointer-events:none }
.signal-grid { position:absolute; inset:0; opacity:.21; background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px); background-size:43px 43px; mask-image:linear-gradient(to bottom,transparent,black 22%,black 80%,transparent) }
.signal-svg { position:absolute; inset:12% 2% 15%; width:96%; height:73%; opacity:.93 }
.panel-top { display:flex; justify-content:space-between; align-items:center; position:absolute; top:29px;left:30px;right:30px; z-index:2; color:#e9f6f1; font-size:11px; font-weight:760; letter-spacing:.1em; text-transform:uppercase }
.panel-tag { border:1px solid rgba(214,247,234,.3); border-radius:999px; padding:6px 10px; color:#c0f3d8; font-size:10px }
.panel-bottom { display:flex; justify-content:space-between; align-items:end; position:absolute; bottom:32px; left:30px;right:30px;z-index:2;color:#eefaf5 }
.panel-bottom strong { font-size:24px; letter-spacing:-.05em; display:block; line-height:1.2 }
.panel-bottom span { display:block; font-size:12px; color:#bfdad4; margin-top:8px }
.panel-index { font-size:11px !important; letter-spacing:.1em }
.floating-note { position:absolute; z-index:3; right:25px; top:110px; border:1px solid rgba(235,255,244,.22); border-radius:13px; padding:12px 15px; background:rgba(16,42,55,.72); backdrop-filter:blur(10px); color:#f7fdfa; font-size:11px; font-weight:700; box-shadow:0 16px 33px rgba(6,19,29,.22) }
.floating-note span { color:#abefd0; display:block; font-size:9px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:2px }
/* Profile portrait: only rendered after the owner-provided original image has been added. */
.portrait-panel { position:relative; isolation:isolate; min-height:510px; overflow:hidden; border-radius:30px; background:#172c3b; box-shadow:0 35px 80px rgba(20,43,53,.14) }
.portrait-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 24%; filter:saturate(.97); }
.portrait-panel:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(9,23,36,.55) 0%,transparent 32%,transparent 47%,rgba(6,20,28,.85) 100%); pointer-events:none }
.portrait-grain { pointer-events:none; position:absolute; z-index:1; inset:0; opacity:.14; background-image:linear-gradient(rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px); background-size:52px 52px; mask-image:linear-gradient(140deg,black,transparent 62%) }
.portrait-top,.portrait-bottom { position:absolute; z-index:2; left:32px; right:32px; color:white }
.portrait-top { top:28px; display:flex; justify-content:space-between; align-items:flex-start; gap:14px; font-size:10px; font-weight:740; line-height:1.55; letter-spacing:.085em; text-transform:uppercase }
.portrait-top >span:first-child { max-width:75% }
.portrait-monogram { font-size:16px; letter-spacing:-.04em }
.portrait-bottom { bottom:32px; display:grid; gap:4px }
.portrait-bottom strong { font-size:clamp(30px,3vw,42px); line-height:1.1; letter-spacing:-.065em }
.portrait-label { color:#cef1e1; font-size:11px; font-weight:770; letter-spacing:.11em; text-transform:uppercase }
.portrait-bottom >span:last-child { font-size:12px; color:#dbebe4 }
.portrait-about-panel { min-height:380px }
@media(max-width:700px) { .portrait-panel {min-height:440px; border-radius:22px} .portrait-about-panel {min-height:390px} .portrait-top,.portrait-bottom {left:24px;right:24px} }
.ticker { background:var(--surface); border-block:1px solid var(--line) }
.ticker-row { min-height:83px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap }
.ticker-title { font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:800; color:var(--muted) }
.ticker-tags { display:flex; flex-wrap:wrap; gap:8px }
.tag { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:999px; padding:7px 11px; background:var(--surface); font-size:11px; font-weight:690; color:var(--muted); line-height:1.1 }
.tag.dot-tag:before { content:""; background:var(--forest); width:5px; height:5px; border-radius:50% }
.tag.tinted { background:var(--accent-soft); border-color:transparent; color:var(--accent) }
.cards-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px }
.cards-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:19px }
.cards-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px }
.research-card { min-height:306px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:25px; display:flex; flex-direction:column; gap:20px; position:relative; overflow:hidden; transition:transform .25s var(--ease),box-shadow .25s }
.research-card:hover { transform:translateY(-5px); box-shadow:var(--shadow) }
.card-topline { display:flex; align-items:start;justify-content:space-between }
.card-number { font-size:12px;color:var(--muted);font-weight:750;letter-spacing:.08em }
.card-symbol { display:grid; place-items:center; height:50px;width:50px; border-radius:15px; background:var(--accent-soft);color:var(--accent);font-size:27px;font-weight:730;letter-spacing:-.09em }
.card-content { display:grid; gap:11px }
.card-content h3 { font-size:22px }
.card-content p { font-size:13px; line-height:1.65 }
.card-footer { display:flex; gap:7px; flex-wrap:wrap; margin-top:auto }
.card-footer .tag { padding:6px 9px; font-size:10px }
.project-card { border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:26px; display:flex;flex-direction:column;gap:19px;min-height:272px; transition:transform .2s var(--ease),box-shadow .2s }
.project-card:hover { transform:translateY(-3px); box-shadow:var(--shadow) }
.project-card .project-head { display:flex;justify-content:space-between;gap:15px;align-items:start }
.project-card h3 { font-size:22px }
.project-card p { font-size:13px; line-height:1.75 }
.project-card .project-meta { display:flex; justify-content:space-between;align-items:center;gap:10px;margin-top:auto }
.project-card .project-meta .tag { background:var(--surface-alt) }
.project-arrow { display:grid;place-items:center;width:37px;height:37px;border:1px solid var(--line);border-radius:11px;color:var(--ink);transition:background .2s }
a.project-card:hover .project-arrow { background:var(--accent);color:white }
.status { font-size:10px; font-weight:780; letter-spacing:.03em; color:var(--forest); display:inline-flex;align-items:center;gap:6px }
.status:before { content:"";height:6px;width:6px;border-radius:50%;background:currentColor }
.feature-banner { position:relative; overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;background:#192b40;color:#f3f9f7;border-radius:30px;padding:clamp(30px,5vw,64px);isolation:isolate }
.feature-banner:after { position:absolute;z-index:-1;content:"";width:600px;height:600px;right:-130px;top:-210px;border-radius:50%;background:radial-gradient(circle,rgba(110,236,171,.24),transparent 65%) }
.feature-banner h2 { max-width:650px; font-size:clamp(32px,3.6vw,48px) }
.feature-banner p { color:#c1d3dc; max-width:620px; margin-top:18px }
.feature-banner .btn { margin-top:26px;background:#b2f1d5;border-color:#b2f1d5;color:#153429 }
.feature-banner .visual { min-height:245px;position:relative;display:grid;place-items:center }
.feature-orbit { width:265px;height:265px;border:1px solid rgba(190,239,226,.28);border-radius:50%;display:grid;place-items:center;position:relative }
.feature-orbit:before,.feature-orbit:after { content:"";position:absolute;inset:33px;border:1px dashed rgba(178,242,213,.33);border-radius:50% }
.feature-orbit:after { inset:76px;border-style:solid;background:rgba(139,230,184,.13) }
.feature-orbit strong { position:relative;z-index:1;font-size:57px;letter-spacing:-.09em;color:#c3f4d7 }
.orbit-node { position:absolute;display:grid;place-items:center;border-radius:50%;width:37px;height:37px;background:#b4efd3;color:#14382b;font-size:15px;font-weight:800;z-index:3 }
.orbit-node.one { top:9px;left:11px }.orbit-node.two { right:8px;top:65px }.orbit-node.three { bottom:11px;left:28px }
.page-hero { padding:78px 0 61px; border-bottom:1px solid var(--line) }
.page-hero .page-head { max-width:900px;display:grid;gap:23px }
.page-hero h1 { font-size:clamp(43px,5vw,68px) }
.page-hero .lead { max-width:790px }
.breadcrumb { font-size:12px;display:flex;gap:9px;align-items:center;color:var(--muted);font-weight:640 }
.breadcrumb a:hover { color:var(--accent) }
.breadcrumb .sep { color:var(--muted);opacity:.55 }
.toolbar { display:flex; align-items:center;gap:12px;flex-wrap:wrap;justify-content:space-between;margin:0 0 28px }
.filters { display:flex; align-items:center;gap:9px;flex-wrap:wrap }
.filter-pill { border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:10px 15px;color:var(--muted);font-size:12px;font-weight:750;transition:background .2s }
.filter-pill:hover,.filter-pill.active { background:var(--ink);color:var(--bg);border-color:var(--ink) }
.search-input { display:flex;align-items:center;gap:10px;min-width:280px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 13px }
.search-input svg { width:17px;height:17px;color:var(--muted) }
.search-input input { background:transparent;border:0;min-width:0;width:100%;outline:0;height:44px;color:var(--ink);font-size:13px }
.search-input:focus-within { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.sort-select { background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:10px 12px;border-radius:11px;font-size:12px;max-width:170px }
.count { font-size:12px;color:var(--muted);font-weight:680 }
.publication-list { display:grid;gap:14px }
.publication { border:1px solid var(--line);background:var(--surface);border-radius:19px;padding:25px;display:grid;grid-template-columns:84px 1fr;gap:25px }
.publication-year { font-size:13px;font-weight:800;letter-spacing:-.02em;color:var(--forest);padding-top:3px }
.publication-content { display:grid;gap:9px }
.publication h3 { font-size:20px;letter-spacing:-.04em;line-height:1.35 }
.publication .authors,.publication .venue { font-size:12px;line-height:1.5 }
.publication .venue { font-style:italic }
.publication .links { display:flex;flex-wrap:wrap;gap:9px;margin-top:5px }
.publication .links a,.publication .links button { font-size:11px;font-weight:790;border-radius:8px;border:1px solid var(--line);background:var(--surface-alt);color:var(--ink);padding:6px 10px }
.publication .links a:hover,.publication .links button:hover { border-color:var(--accent);color:var(--accent) }
.empty-state { background:var(--surface);border:1px dashed color-mix(in srgb,var(--muted) 40%,var(--line));border-radius:24px;padding:55px 28px;text-align:center;display:grid;justify-items:center;gap:12px }
.empty-icon { display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:var(--accent-soft);color:var(--accent);font-size:27px;margin-bottom:8px }
.empty-state h3 { font-size:23px }
.empty-state p { max-width:490px;font-size:14px }
.empty-state .btn { margin-top:6px }
.topic-card { padding:27px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:18px }
.topic-card h3 { font-size:22px }
.topic-card p { font-size:13px }
.topic-card .requirements { border-top:1px solid var(--line);padding-top:17px }
.topic-card .requirements b { color:var(--ink);font-size:12px;display:block;margin-bottom:7px }
.topic-card .level-tags { display:flex;gap:6px;flex-wrap:wrap }
.step-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px }
.step { border-top:2px solid var(--ink);padding-top:22px;display:grid;align-content:start;gap:13px }
.step .step-number { font-size:11px; font-weight:840;color:var(--forest);letter-spacing:.14em }
.step h3 { font-size:21px }
.step p { font-size:13px }
.note-box { border:1px solid var(--line);border-left:4px solid var(--forest);border-radius:0 15px 15px 0;background:var(--surface);padding:18px 23px;font-size:13px;color:var(--muted) }
.note-box strong { color:var(--ink) }
.split-section { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:clamp(35px,8vw,110px);align-items:start }
.prose { display:grid;gap:20px }
.prose p { font-size:15px;line-height:1.85 }
.principle-list { display:grid;gap:13px }
.principle { padding:20px;display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:15px }
.principle .num { font-size:12px;color:var(--forest);font-weight:820 }
.principle h3 { font-size:16px;margin-bottom:5px;letter-spacing:-.025em }
.principle p { font-size:12px }
.timeline { border-left:1px solid var(--line);display:grid;gap:30px;padding-left:26px;margin-left:5px }
.timeline-item { position:relative;display:grid;gap:5px }
.timeline-item:before { content:"";width:9px;height:9px;border:3px solid var(--bg);background:var(--forest);border-radius:50%;position:absolute;left:-32px;top:5px;box-sizing:content-box }
.timeline-year { color:var(--forest);font-size:11px;font-weight:850;letter-spacing:.1em }
.timeline-item h3 { font-size:18px }
.timeline-item p { font-size:13px }
.contact-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px }
.contact-card { display:grid;gap:15px;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px;min-height:225px }
.contact-card .contact-symbol { width:45px;height:45px;background:var(--accent-soft);color:var(--accent);border-radius:14px;display:grid;place-items:center;font-size:20px;font-weight:830 }
.contact-card h3 { font-size:21px }
.contact-card p { font-size:13px }
.contact-card .inline-link { margin-top:auto }
.profile-links { display:flex; flex-wrap:wrap;gap:9px }
.profile-links a { border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:12px 15px;font-weight:760;font-size:13px;display:inline-flex;align-items:center;gap:10px }
.profile-links a:hover { border-color:var(--accent);color:var(--accent) }
.profile-links svg { height:15px;width:15px }
.faq-list { display:grid;gap:12px }
details.faq { background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0 19px }
details.faq summary { list-style:none;display:flex;justify-content:space-between;gap:20px;cursor:pointer;font-size:14px;font-weight:750;padding-block:18px }
details.faq summary::-webkit-details-marker { display:none }
details.faq summary:after { content:"+";font-size:21px;line-height:1;opacity:.7 }
details.faq[open] summary:after { content:"−" }
details.faq p { padding:0 0 20px;font-size:13px }
.footer { margin-top:92px;border-top:1px solid var(--line);background:var(--surface) }
.footer-main { display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;padding-block:56px }
.footer-intro { display:grid;align-content:start;justify-items:start;gap:14px }
.footer-intro p { max-width:300px;font-size:13px }
.footer-col { display:grid;align-content:start;justify-items:start;gap:12px }
.footer-col h3 { font-size:12px;font-weight:820;letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px }
.footer-col a { font-size:13px;color:var(--muted) }
.footer-col a:hover { color:var(--accent) }
.footer-bottom { border-top:1px solid var(--line);padding-block:21px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted) }
.footer-bottom a { color:var(--forest) }
.toast { position:fixed;bottom:24px;right:24px;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:70;font-size:13px;font-weight:730;max-width:340px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.22s var(--ease) }
.toast.show { opacity:1;transform:translateY(0) }
.initial-loading { min-height:45vh;display:grid;place-items:center }
.loading-indicator { width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite }
@keyframes spin { to { transform:rotate(360deg) } }
.reveal { animation:enter .6s both var(--ease) }
@keyframes enter { from { opacity:0;transform:translateY(15px) } to { opacity:1;transform:translateY(0) } }
@media (max-width:1160px) {
 .nav a { padding-inline:8px;font-size:12px }
 .header-inner { gap:12px }
 .cards-4 { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media (max-width:970px) {
 .menu-btn { display:grid }
 .header-inner { min-height:73px }
 .nav { display:none;position:absolute;top:73px;left:0;right:0;background:var(--surface);padding:14px max(24px,calc((100% - var(--max))/2));border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:3px }
 .nav.open { display:flex }
 .nav a { padding:11px 14px;font-size:14px }
 .hero-layout { grid-template-columns:1fr;gap:44px }
 .hero-copy { max-width:780px }
 .signal-panel { min-height:430px }
 .feature-banner { grid-template-columns:1fr }
 .feature-banner .visual { display:none }
 .cards-3 { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media (max-width:700px) {
 .shell { width:calc(100% - 38px) }
 .hero { padding:45px 0 65px }
 .hero-copy { gap:23px }
 .hero-title { font-size:clamp(42px,11vw,62px) }
 .hero-cta { width:100% }
 .hero-cta .btn { flex:1 }
 .signal-panel { min-height:390px;border-radius:22px }
 .panel-bottom strong { font-size:21px }
 .floating-note { top:90px;right:15px }
 .section { padding-block:64px }
 .section.tight { padding-block:43px }
 .section-heading { align-items:start;flex-direction:column;gap:16px }
 .section-header-note { text-align:left }
 .cards-2,.cards-3,.cards-4,.step-grid,.contact-grid,.split-section { grid-template-columns:1fr }
 .research-card { min-height:255px }
 .page-hero { padding:50px 0 44px }
 .publication { grid-template-columns:1fr;gap:9px;padding:20px }
 .publication-year { font-size:11px }
 .search-input { min-width:min(100%,320px);flex:1 }
 .feature-banner { border-radius:23px;padding:30px }
 .footer { margin-top:65px }
 .footer-main { grid-template-columns:1fr 1fr;gap:35px;padding-block:42px }
 .footer-intro { grid-column:1/-1 }
 .ticker-row { padding-block:18px;gap:11px }
}
@media (max-width:390px) {
 .brand { font-size:15px }
 .brand-mark { height:37px;width:37px }
 .lang-btn { width:35px }
 .header-actions { gap:0 }
 .hero-cta { flex-direction:column }
 .footer-main { grid-template-columns:1fr }
}
@media (prefers-reduced-motion:reduce) {
 *,*:before,*:after { animation-duration:.01ms !important;scroll-behavior:auto !important;transition-duration:.01ms !important }
}
@media print {
 :root { --bg:white;--surface:white;--ink:black;--muted:#333;--line:#ccc }
 .site-header,.footer,.hero-cta,.toolbar,.btn,.toast { display:none !important }
 .shell { width:100% }
 .section { padding-block:24px }
 .hero-layout { grid-template-columns:1fr }
 .signal-panel { display:none }
 .research-card,.project-card,.publication,.topic-card { break-inside:avoid;box-shadow:none }
}
/* Academic editorial identity — restrained type, rules and a genuine portrait. */
:root {
  --bg:#f8f7f3; --surface:#fffefa; --surface-alt:#f0f0e9;
  --ink:#22302d; --muted:#5a6864; --line:#d9ddd7;
  --accent:#2c554a; --accent-soft:#e8efea; --forest:#32584b;
  --mint:#dbe9dc; --orange:#976a52;
  --shadow:none; --radius:3px; --max:1380px;
}
html[data-theme="dark"] {
  --bg:#161d1c; --surface:#1b2422; --surface-alt:#24302c;
  --ink:#f3f1e9; --muted:#b5c0ba; --line:#394640;
  --accent:#a9d1b7; --accent-soft:#2e4038; --forest:#a9d1b7;
  --mint:#355047; --shadow:none;
}
body { background:var(--bg); font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif; font-size:16px; line-height:1.68; }
h1,h2,h3,h4 { font-family:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,serif; letter-spacing:-.033em; font-weight:500; line-height:1.18; }
h1 {font-size:clamp(47px,5.7vw,78px)}
h2 {font-size:clamp(31px,3.25vw,45px)}
h3 {font-size:clamp(21px,2vw,26px)}
p {color:var(--muted)}
.lead {font-size:clamp(17px,1.5vw,20px);line-height:1.7}
.shell {width:min(var(--max),calc(100% - 80px))}
.site-header {background:color-mix(in srgb,var(--bg) 96%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header.scrolled {box-shadow:none;border-color:var(--line)}
.header-inner {min-height:76px;gap:18px}
.brand {font-family:Georgia,"Iowan Old Style",serif;font-size:22px;font-weight:600;letter-spacing:-.04em;gap:0}
.brand-mark {display:none}
.nav {gap:0}
.nav a {font-size:13px;font-weight:500;padding:10px 10px;border-radius:0}
.nav a:hover,.nav a.active {background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.icon-btn {border-radius:0}
.lang-btn {font-size:12px;font-weight:600}
.eyebrow {font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);line-height:1.6}
.eyebrow:before {display:none}
.section {padding-block:78px}
.section.tight {padding-block:45px}
.section-heading {margin-bottom:28px;align-items:end}
.section-heading >div {gap:9px}
.section-heading p {max-width:590px;font-size:14px}
.inline-link {font-size:13px;font-weight:600;color:var(--accent);text-underline-offset:5px}
.inline-link:hover {text-decoration:underline}
.hero {padding:90px 0 82px;overflow:visible}
.hero-layout {grid-template-columns:minmax(0,1.05fr) minmax(330px,.72fr);align-items:center;gap:clamp(40px,7vw,115px)}
.hero-copy {gap:17px;max-width:650px}
.hero .eyebrow {max-width:520px}
.hero-title {font-size:clamp(58px,6.4vw,92px);font-weight:500;line-height:1.03;max-width:710px;letter-spacing:-.055em}
.hero-position {font-size:14px;color:var(--accent);font-weight:600;letter-spacing:.004em;margin-top:3px}
.hero-copy .lead {font-size:18px;max-width:580px;line-height:1.75;margin-top:6px}
.hero-cta {gap:27px;margin-top:17px}
.hero-cta .inline-link {font-size:14px}
.portrait-panel {margin:0;min-height:0;overflow:visible;border-radius:0;background:transparent;box-shadow:none;}
.portrait-panel:after {display:none}
.portrait-panel .portrait-image {position:relative;inset:auto;width:100%;height:500px;object-fit:cover;object-position:center 26%;filter:none;border-radius:0;}
.portrait-panel .portrait-grain,.portrait-panel .portrait-top,.portrait-panel .portrait-bottom {display:none}
.portrait-caption {display:block;margin-top:13px;color:var(--muted);font-size:11px;line-height:1.5;letter-spacing:.01em}
.portrait-about-panel .portrait-image {height:440px}
.ticker {background:transparent;border-block:1px solid var(--line)}
.ticker-row {padding-block:17px;min-height:0;justify-content:flex-start;gap:35px}
.ticker-title {font-weight:600;letter-spacing:.12em;white-space:nowrap}
.ticker-row p {font-size:13px;line-height:1.6}
.tag {font-size:11px;font-weight:500;border-radius:2px;padding:5px 7px;background:transparent}
.tag.dot-tag:before {display:none}
.tag.tinted {color:var(--accent);background:var(--accent-soft)}
.cards-4 {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 42px}
.cards-2 {gap:0 42px}
.cards-3 {gap:0 28px}
.research-card,.project-card,.topic-card,.publication,.contact-card {
  border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;
  transition:none;
}
.research-card,.project-card {min-height:0;padding:24px 2px 26px 0;gap:12px}
.research-card:hover,.project-card:hover {transform:none;box-shadow:none}
.research-card .card-topline {min-height:0;align-items:center}
.card-number {font-size:11px;font-weight:600;color:var(--accent);letter-spacing:.06em}
.card-symbol {display:none}
.card-content {gap:8px}
.research-card h3 {font-size:24px;line-height:1.24}
.research-card .card-content p {font-size:14px;line-height:1.68;max-width:450px}
.research-card .card-footer {margin-top:2px;gap:0 10px}
.research-card .card-footer .tag {background:none;border:0;padding:0;color:var(--muted);font-size:11px}
.research-card .card-footer .tag+ .tag:before {content:"·";margin-right:10px}
.project-card .card-content p {font-size:14px;line-height:1.7}
.project-card h3 {font-size:23px}
.project-card .project-meta {margin-top:3px}
.project-card .project-meta .tag {background:none;border:0;padding:0}
.project-card .card-footer {gap:0 10px}
.project-card .card-footer .tag + .tag:before {content:"·";margin-right:10px}
.status {font-size:11px;font-weight:500;color:var(--accent);letter-spacing:0}
.status:before {display:none}
.feature-banner {display:flex;justify-content:space-between;align-items:end;gap:30px;background:var(--surface-alt);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:34px 38px}
.feature-banner:after {display:none}
.feature-banner .eyebrow {color:var(--accent)!important}
.feature-banner h2 {font-size:clamp(27px,3vw,37px);margin-top:10px!important}
.feature-banner p {color:var(--muted);margin-top:10px;font-size:14px}
.feature-banner .inline-link {white-space:nowrap;align-self:center}
.page-hero {padding:64px 0 49px;background:transparent}
.page-hero .page-head {gap:15px}
.page-hero h1 {font-size:clamp(44px,5vw,69px)}
.page-hero .lead {font-size:17px}
.breadcrumb {font-size:11px;font-weight:500}
.filter-pill {background:transparent;border:1px solid var(--line);border-radius:2px;padding:9px 12px;font-size:12px;font-weight:500}
.filter-pill:hover,.filter-pill.active {background:var(--ink);color:var(--bg);border-color:var(--ink)}
.search-input,.sort-select {background:transparent;border-radius:2px}
.publication-list {gap:0}
.publication {display:grid;grid-template-columns:75px 1fr;gap:17px;padding:25px 0}
.publication-year {color:var(--accent);font-size:13px;font-weight:600}
.publication .card-footer {gap:8px}
.publication .card-footer .tag:not(.tinted) {display:none}
.publication .card-footer .tag.tinted {padding:0;border:0;background:none;color:var(--accent);font-weight:600}
.publication h3 {font-size:23px;line-height:1.25;letter-spacing:-.03em}
.publication .authors,.publication .venue {font-size:13px}
.publication .links {gap:14px}
.publication .links a,.publication .links button {border:0;border-radius:0;border-bottom:1px solid var(--line);background:transparent;font-size:12px;font-weight:600;padding:3px 0;color:var(--accent)}
.publication .links a:hover,.publication .links button:hover {border-bottom-color:var(--accent)}
.topic-card {padding:25px 0 28px;gap:12px}
.topic-card h3 {font-size:24px}
.topic-card p {font-size:14px}
.topic-card .requirements {padding-top:14px}
.people-directory,.course-list {border-bottom:1px solid var(--line)}
.person-entry,.course-entry {display:flex;justify-content:space-between;gap:25px;align-items:start;padding:29px 0;border-top:1px solid var(--line)}
.person-entry-main,.course-entry>div:first-child {display:grid;gap:7px}
.person-entry h2,.course-entry h2 {font-size:26px}
.person-entry p,.course-entry p {font-size:14px}
.course-meta {text-align:right;color:var(--muted);font-size:12px;white-space:nowrap}
.directory-note {margin-top:23px;font-size:12px;max-width:720px}
.note-box {background:transparent;border-left:2px solid var(--accent);border-block:0;border-right:0;border-radius:0}
.profile-links a {border-radius:0;background:transparent;font-weight:500}
.footer {background:transparent;margin-top:70px}
.footer-main {padding-block:44px;gap:55px}
.footer-col h3 {font-weight:650;letter-spacing:.1em}
.footer-intro .brand {font-size:22px}
.footer-intro .tag {border:0;padding:0}
.btn {border-radius:2px;font-weight:600;box-shadow:none}
.btn:hover {transform:none}
@media(max-width:970px) {
 .nav {box-shadow:none;background:var(--surface);}
 .hero-layout {grid-template-columns:1fr 0.84fr;gap:30px}
 .hero-title {font-size:clamp(49px,6vw,76px)}
 .portrait-panel .portrait-image {height:430px}
 .feature-banner {align-items:start}
}
@media(max-width:800px) {
 .hero-layout {grid-template-columns:1fr;gap:34px}
 .portrait-panel {max-width:540px}
 .hero-copy {max-width:740px}
 .hero {padding-top:57px}
 .portrait-panel .portrait-image {height:450px}
}
@media(max-width:700px) {
 .shell {width:calc(100% - 40px)}
 .hero {padding:43px 0 49px}
 .hero-title {font-size:clamp(51px,12vw,70px)}
 .hero-copy {gap:14px}
 .hero-copy .lead {font-size:16px;line-height:1.72}
 .hero-cta {width:auto;gap:24px;flex-wrap:wrap}
 .hero-cta .inline-link {flex:none}
 .portrait-panel {min-height:0;border-radius:0}
 .portrait-panel .portrait-image {height:390px}
 .portrait-about-panel {min-height:0}
 .portrait-about-panel .portrait-image {height:380px}
 .section {padding-block:53px}
 .section.tight {padding-block:35px}
 .cards-2,.cards-3,.cards-4 {grid-template-columns:1fr;gap:0}
 .research-card {min-height:0}
 .page-hero {padding:41px 0 37px}
 .feature-banner {display:block;padding:25px 22px}
 .feature-banner .inline-link {display:inline-flex;margin-top:19px;white-space:normal}
 .ticker-row {display:block;padding-block:16px}
 .ticker-row p {margin-top:5px}
 .publication {grid-template-columns:53px 1fr;gap:9px;padding:22px 0}
 .publication-year {font-size:12px}
 .publication h3 {font-size:21px}
 .person-entry,.course-entry {display:block}
 .course-meta {text-align:left;white-space:normal;margin-top:13px}
 .footer {margin-top:50px}
}

/* Academic reading library: an annotated bibliography, not a marketing card grid. */
.reading-link{align-self:start;color:var(--accent);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:5px;margin-top:5px}
.reading-cta{border-top:1px solid var(--line);padding:32px 0 9px;margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:35px}
.reading-cta>div{max-width:690px}.reading-cta h3{margin:8px 0;font-size:clamp(24px,3vw,34px)}.reading-cta p{font-size:14px}.reading-cta .inline-link{white-space:nowrap}
.reading-section{padding-top:48px}.reading-note{border-left:2px solid var(--accent);padding:10px 20px;margin-bottom:55px;max-width:940px;font-size:14px;color:var(--muted)}.reading-note strong{color:var(--ink)}
.reading-layout{display:grid;grid-template-columns:minmax(190px,.3fr) minmax(0,1fr);gap:clamp(32px,7vw,98px);align-items:start}
.reading-index{position:sticky;top:105px;display:grid;gap:0;border-top:1px solid var(--line)}.reading-index .eyebrow{padding:18px 0 12px}.reading-index a{border-top:1px solid var(--line);padding:13px 0;color:var(--muted);font-size:13px;line-height:1.4;display:flex;justify-content:space-between;gap:8px}.reading-index a:hover,.reading-index a:focus-visible{color:var(--accent)}.reading-index a span{font-size:11px;color:var(--accent)}
.reading-area{scroll-margin-top:96px;border-top:1px solid var(--line);padding:38px 0 80px}.reading-area:first-child{padding-top:10px;border-top:0}.reading-area h2{font-size:clamp(30px,3.1vw,44px);margin:13px 0 16px}.reading-area p{font-size:15px;line-height:1.78;max-width:780px}.reading-question{font-family:Georgia,'Iowan Old Style',serif;font-size:clamp(18px,2.05vw,23px)!important;line-height:1.43!important;color:var(--ink);margin:18px 0}.reading-prereq{margin-top:22px;font-size:13px!important}.reading-prereq strong{color:var(--ink)}
.reading-path,.reading-bibliography{margin-top:38px}.reading-path h3,.reading-bibliography h3{font-size:21px;margin-bottom:17px}.reading-path ol{counter-reset:study;list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.reading-path li{counter-increment:study;border-bottom:1px solid var(--line);padding:14px 0 14px 40px;position:relative;font-size:14px;line-height:1.65;color:var(--muted)}.reading-path li:before{content:counter(study,decimal-leading-zero);position:absolute;left:0;top:15px;color:var(--accent);font-size:11px;font-weight:650}
.reading-bibliography>ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.reading-reference{padding:21px 0;border-bottom:1px solid var(--line)}.reading-ref-top{display:flex;gap:15px;font-size:11px;color:var(--accent);letter-spacing:.04em;margin-bottom:8px}.reading-ref-year{color:var(--muted)}.reading-reference h4{font-size:20px;line-height:1.3;max-width:760px}.reading-reference h4 a{display:inline;color:var(--ink);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px}.reading-reference h4 a:hover{text-decoration-color:var(--accent);color:var(--accent)}.reading-reference h4 svg{display:inline;vertical-align:middle;color:var(--accent)}.reading-reference p{font-size:13px;line-height:1.6;margin-top:5px}.reading-authors{color:var(--ink)!important}.reading-back{display:inline-block;font-size:12px;color:var(--accent);margin-top:28px;text-decoration:underline;text-underline-offset:5px}
/* The new image contains additional torso space; preserve a natural 3:4 website framing. */
.portrait-panel{max-width:415px;width:100%;margin-left:auto}
.portrait-panel .portrait-image{height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center 35%}
.portrait-about-panel{max-width:390px}
.portrait-about-panel .portrait-image{height:auto;aspect-ratio:3/4;object-position:center 35%}
@media(max-width:840px){.reading-layout{grid-template-columns:1fr}.reading-index{position:static;display:flex;flex-wrap:wrap;gap:0 20px}.reading-index .eyebrow{flex-basis:100%}.reading-index a{max-width:46%;flex:1 1 39%}.reading-note{margin-bottom:30px}.reading-cta{align-items:start;flex-direction:column;gap:15px}.reading-cta .inline-link{white-space:normal}.portrait-panel{max-width:405px;margin:0}}
@media(max-width:600px){.reading-index a{max-width:100%;flex:1 1 100%}.reading-area{padding:30px 0 55px}.reading-reference h4{font-size:19px}.reading-section{padding-top:28px}.portrait-panel{max-width:390px}.portrait-panel .portrait-image{height:auto;aspect-ratio:3/4}}
.reading-link{display:inline-flex;align-items:center;gap:8px}
.reading-link svg{display:inline-block;flex:none}

/* Directory pages: one person / course per record; archives scale beyond one academic year. */
.academic-level{margin-bottom:65px;border-top:1px solid var(--line);padding-top:23px}
.academic-level:last-of-type{margin-bottom:34px}
.directory-heading{display:flex;align-items:baseline;gap:12px;margin-bottom:28px}
.directory-heading h2{font-size:clamp(26px,3vw,37px);letter-spacing:-.035em}
.directory-count{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.people-subgroup + .people-subgroup{margin-top:34px}
.people-subgroup>h3{font-size:16px;letter-spacing:-.02em;display:flex;align-items:baseline;gap:10px;margin-bottom:15px}
.person-entry{padding:18px 0;min-height:75px;align-items:center}
.person-entry h3,.course-entry h3{font-size:clamp(18px,2.2vw,23px);letter-spacing:-.024em;line-height:1.35}
.directory-period{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.directory-archive{border-top:1px solid var(--line);margin:3px 0 24px}
.directory-archive>summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:650;padding:17px 0;list-style:none}
.directory-archive>summary::-webkit-details-marker{display:none}
.directory-archive>summary::after{content:' + ';font-size:19px;font-weight:400}
.directory-archive[open]>summary::after{content:' −'}
.directory-archive .people-directory,.directory-archive .course-list{margin-top:5px}
.course-toolbar{margin:22px 0 19px;gap:18px}
.course-toolbar .search-input{flex:1;max-width:410px}
.course-year-filter{display:inline-flex;gap:10px;align-items:center;color:var(--muted);font-size:13px}
.course-entry{padding:24px 0;align-items:start}
.course-entry>div:first-child{gap:10px}
.course-entry .course-meta{display:flex;flex-direction:column;gap:10px}
.course-history{font-size:13px;margin-top:5px}
.course-history>summary{cursor:pointer;color:var(--accent);font-weight:650}
.course-history ul{list-style:none;border-left:1px solid var(--line);padding:0 0 0 17px;margin:13px 0 0;display:grid;gap:9px;font-variant-numeric:tabular-nums;color:var(--muted)}
.spaced-intro{margin-top:43px}
.filter-count{font-size:10px;margin-left:3px;opacity:.65;font-variant-numeric:tabular-nums}
.topic-card{gap:19px}
.topic-card .card-content{gap:15px}
.topic-card .card-content h3{line-height:1.32}
.topic-card .card-content p{line-height:1.76}
.topic-area{color:var(--accent);font-size:11px;line-height:1.45;text-decoration:underline;text-underline-offset:3px}
/* A separate, deliberately collapsed notebook for speculative faculty-led research directions. */
.research-notebook{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.idea-group{border-bottom:1px solid var(--line)}.idea-group:last-child{border-bottom:0}
.idea-group>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 2px;font-size:18px;font-weight:650;list-style:none}
.idea-group>summary::-webkit-details-marker{display:none}
.idea-group>summary span:first-child:before{content:'+';font-weight:400;color:var(--accent);display:inline-block;width:30px}
.idea-group[open]>summary span:first-child:before{content:'−'}
.research-idea-list{margin:0 0 25px 32px;border-top:1px solid var(--line)}
.research-idea{padding:23px 0;border-bottom:1px solid var(--line);max-width:860px;display:grid;gap:11px}
.research-idea h4{font-size:21px;letter-spacing:-.028em;line-height:1.36}
.research-idea p{font-size:14px;line-height:1.72}
.research-idea-caution{font-size:13px!important;padding-left:15px;border-left:2px solid var(--line)}
.research-idea-caution strong{color:var(--ink)}
/* Reading guides: readable separation of claims, learning paths and annotated citations. */
.reading-note + .reading-note{margin-top:-25px;margin-bottom:46px}
.reading-extra{border-top:1px solid var(--line);margin-top:50px;padding-top:31px;display:grid;gap:17px}
.reading-extra h3{font-size:clamp(21px,2.2vw,26px);margin:0 0 7px;line-height:1.35}
.reading-extra h4{font-size:17px;letter-spacing:-.01em;margin:14px 0 1px;line-height:1.4}
.reading-extra p{line-height:1.9!important;max-width:760px;margin:0}
.reading-extra p+p{margin-top:6px}
.reading-extra ul,.reading-extra ol{margin:0;padding-left:25px;display:grid;gap:13px}
.reading-extra li{padding-left:5px;color:var(--muted);line-height:1.76;font-size:14px;max-width:770px}
.reading-extra li strong{color:var(--ink)}
.reading-path{margin-top:48px}
.reading-bibliography{margin-top:54px}
.reading-reference{padding:28px 0 31px}
.reading-reference h4{margin:0 0 14px;line-height:1.43}
.reading-reference p{line-height:1.82;margin-top:10px}
.reading-reference p+p{margin-top:13px}
.reading-ref-top{margin-bottom:12px}
.reading-prereq{margin-top:25px!important}
@media(max-width:700px){
 .academic-level{margin-bottom:45px}.people-subgroup + .people-subgroup{margin-top:28px}
 .course-toolbar{align-items:stretch}.course-toolbar .search-input{max-width:100%;min-width:0;flex:1 1 100%}
 .course-year-filter{justify-content:space-between;width:100%}
 .research-idea-list{margin-left:12px}.idea-group>summary{font-size:16px}
 .reading-extra{margin-top:37px;padding-top:24px;gap:14px}.reading-extra ul,.reading-extra ol{gap:12px}
 .reading-bibliography{margin-top:38px}.reading-reference{padding:24px 0}
}



/* Concise public reading library: shared foundations and three dependent-data routes. */
.reading-area-compact{padding:28px 0 48px}
.reading-area-compact .reading-question,.reading-area-intro .reading-question{font-size:clamp(17px,1.9vw,21px)!important;margin:11px 0 14px}
.reading-area-compact .reading-prereq,.reading-area-intro .reading-prereq{margin-top:12px!important}
.reading-area-compact .reading-path,.reading-area-compact .reading-bibliography{margin-top:25px}
.reading-area-compact .reading-path h3,.reading-bibliography-short h3{font-size:18px;margin-bottom:12px}
.reading-area-compact .reading-path li{padding-top:10px;padding-bottom:10px}
.reading-area-compact .reading-path li:before{top:12px}
.reading-bibliography-short{margin-top:27px}
.reading-bibliography-short .reading-reference{padding:14px 0 16px}
.reading-reference-compact h4{font-size:16px;line-height:1.45;margin:0 0 4px}
.reading-reference-compact p{font-size:12px;line-height:1.65;margin-top:4px}
.reading-area-compact .reading-back,.reading-area-intro .reading-back{margin-top:18px}
.reading-area-intro{padding:28px 0 48px}
.reading-anchor-alias{display:block;height:0;scroll-margin-top:96px}
.reading-shared{border-top:1px solid var(--line);margin-top:25px;padding-top:22px;scroll-margin-top:96px}
.reading-shared h3,.reading-tracks>h3{font-size:19px;line-height:1.4;margin:0 0 10px}
.reading-shared p{font-size:14px;line-height:1.75;margin:0}
.reading-tracks{margin-top:27px}
.reading-track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:15px}
.reading-track{border:1px solid var(--line);border-radius:11px;padding:17px;display:flex;flex-direction:column;gap:10px;min-width:0;scroll-margin-top:96px}
.reading-track h4{font-size:16px;line-height:1.42;margin:0}
.reading-track p{font-size:13px;line-height:1.72;margin:0}
.reading-track-links{font-size:12px;line-height:1.65;margin-top:auto;padding-top:10px;border-top:1px solid var(--line);overflow-wrap:anywhere;color:var(--muted)}
.reading-track-links strong{color:var(--ink)}
.reading-track-links a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.reading-track a:focus-visible,.reading-reference-compact a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.reading-area-intro .reading-bibliography-short{margin-top:29px}
@media(max-width:1180px){.reading-track-grid{grid-template-columns:1fr}}
@media(max-width:840px){.reading-track-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.reading-track-grid{grid-template-columns:1fr}.reading-track{padding:16px}.reading-area-compact,.reading-area-intro{padding-bottom:36px}}

/* Topic 2 and information geometry: one unobtrusive cross-guide link. */
.reading-crosslink{font-size:13px!important;line-height:1.7!important;margin:19px 0 3px;max-width:760px}
.reading-crosslink a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.reading-crosslink a:focus-visible,.inference-guide .reading-track a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.inference-guide .reading-reference-compact{scroll-margin-top:92px}


/* Topic 3 only: concise imaging pathways with visible scope and cross-guide links. */
.image-guide .reading-track-status{display:inline-block;align-self:flex-start;font-size:10px;line-height:1.4;font-weight:650;letter-spacing:.025em;color:var(--accent);background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 9px}
.image-guide .reading-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:25px 0 10px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.image-guide .reading-related>strong{grid-column:1/-1;font-size:13px;color:var(--ink)}
.image-guide .reading-related>a{font-size:12px;line-height:1.7;color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.image-guide .reading-related>a:focus-visible,.image-guide .reading-track-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.image-guide .reading-reference-compact{scroll-margin-top:95px}
@media(max-width:620px){.image-guide .reading-related{grid-template-columns:1fr}}


/* Information Geometry only: concise, mobile-readable research pathways. */
.geometry-guide .reading-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:25px 0 10px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.geometry-guide .reading-related>strong{grid-column:1/-1;font-size:13px;color:var(--ink)}
.geometry-guide .reading-related>a{font-size:12px;line-height:1.7;color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.geometry-guide .reading-related>a:focus-visible,.geometry-guide .reading-track-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.geometry-guide .reading-reference-compact{scroll-margin-top:95px}
@media(max-width:620px){.geometry-guide .reading-related{grid-template-columns:1fr}}


/* Regression guide only: compact pathway and accessible related-guide links. */
.regression-guide .reading-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:25px 0 10px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.regression-guide .reading-related>strong{grid-column:1/-1;font-size:13px;color:var(--ink)}
.regression-guide .reading-related>a{font-size:12px;line-height:1.7;color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.regression-guide .reading-related>a:focus-visible,.regression-guide .reading-track-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.regression-guide .reading-reference-compact{scroll-margin-top:95px}
@media(max-width:620px){.regression-guide .reading-related{grid-template-columns:1fr}}


/* Causal Inference guide only: concise linked research pathways. */
.causal-guide .reading-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:25px 0 10px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.causal-guide .reading-related>strong{grid-column:1/-1;font-size:13px;color:var(--ink)}
.causal-guide .reading-related>a{font-size:12px;line-height:1.7;color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.causal-guide .reading-related>a:focus-visible,.causal-guide .reading-track-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.causal-guide .reading-reference-compact{scroll-margin-top:95px}
@media(max-width:620px){.causal-guide .reading-related{grid-template-columns:1fr}}

/* 2026-09-29: more generous desktop canvas; retain readable text measures in research guides. */
body{font-size:17px}
.section-heading p,.research-card .card-content p,.project-card .card-content p,.topic-card p{font-size:15px}
.prose p,.reading-area .reading-intro>p{font-size:16px}
.reading-note,.reading-area .reading-shared p{font-size:15px}
.reading-track p,.reading-reference p,.reading-reference-compact p{font-size:14px;line-height:1.7}
.course-entry .course-meta{font-size:14px;line-height:1.55;font-variant-numeric:tabular-nums}
.course-level{margin-bottom:42px}
.course-level:last-child{margin-bottom:0}
.course-level .directory-heading{margin-bottom:15px}
.course-level .course-entry>div:first-child{gap:8px}
@media(max-width:700px){
  body{font-size:16px}
  .course-level{margin-bottom:32px}
  .course-level .directory-heading{margin-bottom:10px}
}

/* Fluid viewport layout: adapt to the space available, not a device model. */
:root { --page-gutter:clamp(20px,3.5vw,52px) }
.shell {width:min(var(--max),calc(100% - var(--page-gutter) - var(--page-gutter)))}
body {font-size:clamp(1rem,calc(.95rem + .13vw),1.0625rem)}
.hero-copy,.page-head,.reading-layout>*,.reading-area,.reading-track,
.publication-content,.card-content,.split-section>*,.course-entry>div {min-width:0}
.reading-layout {grid-template-columns:minmax(190px,.22fr) minmax(0,1fr);gap:clamp(28px,3vw,52px)}
.reading-track-grid {grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.cards-3 {grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.cards-2,.contact-grid {grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
.step-grid {grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.reading-area p {max-width:min(100%,76ch)}
.reading-reference h4 a,.reading-track-links a,.publication h3,.research-card h3,
.project-card h3,.course-entry h3 {overflow-wrap:break-word}
.reading-track p,.reading-reference-compact p {font-size:clamp(.875rem,calc(.82rem + .16vw),.94rem);line-height:1.7}
@media (max-width:1180px) {
  .reading-layout {grid-template-columns:minmax(0,1fr)}
  .reading-index {position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:0 20px}
  .reading-index .eyebrow {grid-column:1/-1}
  .reading-index a {max-width:none;min-width:0;overflow-wrap:anywhere}
}
@media (max-width:1050px) {
  .hero-layout,.split-section {grid-template-columns:minmax(0,1fr)}
  .hero-layout {gap:clamp(24px,4vw,44px)}
  .portrait-panel {max-width:min(100%,405px);margin-left:0}
}
@media (max-width:970px) {
  .nav {top:100%;max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain}
  .header-actions .icon-btn {min-width:44px;min-height:44px}
  .nav a {min-height:44px;display:flex;align-items:center}
}
@media (max-width:760px) {
  .cards-4 {grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px) {
  .cards-2,.cards-3,.cards-4,.step-grid,.contact-grid {grid-template-columns:minmax(0,1fr)}
  .reading-track-grid {grid-template-columns:minmax(0,1fr)}
  .reading-index a,.filter-pill {min-height:44px}
  .reading-area p,.reading-track p,.reading-reference p {max-width:100%}
}
@media print {
  .shell {width:100%}
}


/* Single-guide research library: one visible article, six durable anchor links. */
.reading-layout{grid-template-columns:minmax(245px,.33fr) minmax(0,1fr);gap:clamp(28px,4.5vw,64px)}
.reading-main{min-width:0}
.reading-index{max-height:calc(100vh - 124px);overflow-y:auto;scrollbar-width:thin;align-self:start}
.reading-index a{display:grid;grid-template-columns:27px minmax(0,1fr) 13px;align-items:start;column-gap:12px;padding:15px 10px;border-left:2px solid transparent;font-size:16px;line-height:1.48;font-weight:550;color:var(--ink);transition:color .15s ease,background-color .15s ease;overflow-wrap:anywhere}
.reading-index .reading-nav-number{font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--muted);line-height:1.65}
.reading-index .reading-nav-title{min-width:0}
.reading-index .reading-nav-arrow{font-size:12px;color:var(--muted);line-height:1.65}
.reading-index a[aria-current="location"]{color:var(--ink);background:var(--accent-soft);border-left-color:var(--accent);font-weight:700}
.reading-index a[aria-current="location"] .reading-nav-number,.reading-index a[aria-current="location"] .reading-nav-arrow{color:var(--accent)}
.reading-guides>.reading-area:not([hidden]){border-top:0;padding-top:10px;padding-bottom:31px}
.reading-mobile-picker{display:none}
.reading-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.reading-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(15px,3vw,35px);border-top:1px solid var(--line);padding:22px 0 10px}
.reading-page-link{display:block;min-width:0;padding:9px 0;color:var(--ink);overflow-wrap:anywhere}
.reading-page-link.next{text-align:right}
.reading-page-direction{display:block;color:var(--accent);font-size:12px;font-weight:680;line-height:1.5}
.reading-page-title{display:block;font-size:13px;line-height:1.5;color:var(--muted);margin-top:5px}
.reading-page-link:hover .reading-page-title,.reading-page-link:focus-visible .reading-page-title{color:var(--accent)}
.reading-page-placeholder{display:block}
#top.reading-section{scroll-margin-top:86px}
@media(max-width:840px){
  .reading-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .reading-index{display:none}
  .reading-mobile-picker{display:grid;gap:8px;margin:0 0 27px}
  .reading-mobile-picker label{font-size:12px;color:var(--muted);font-weight:650}
  .reading-mobile-picker select{display:block;width:100%;min-height:48px;padding:10px 13px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
  .reading-guides>.reading-area:not([hidden]){padding-top:4px}
}
@media(max-width:480px){
  .reading-page-title{font-size:12px}
  .reading-page-link{padding:8px 0}
  .reading-pagination{gap:14px}
}
@media(prefers-reduced-motion:reduce){.reading-index a{transition:none}}


/* Closing editorial review: consistent cross-area links for the first two guides. */
.dependent-guide .reading-related,.inference-guide .reading-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:25px 0 10px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dependent-guide .reading-related>strong,.inference-guide .reading-related>strong{grid-column:1/-1;font-size:13px;color:var(--ink)}
.dependent-guide .reading-related>a,.inference-guide .reading-related>a{font-size:13px;line-height:1.65;color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.dependent-guide .reading-related>a:focus-visible,.inference-guide .reading-related>a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
@media(max-width:620px){.dependent-guide .reading-related,.inference-guide .reading-related{grid-template-columns:1fr}}
