/* 01. Design tokens */
:root{--charcoal:#20282d;--burgundy:#713e4a;--indigo:#4c5f7d;--sage:#718477;--copper:#b37654;--amber:#c69a50;--powder:#dfe8ee;--sage-wash:#e5ebe6;--rose:#f0e5e7;--ivory:#f8f4ea;--gray:#edf0f1;--graphite:#353b3e;--muted:#747b7e;--white:#fff;--font-editorial:Georgia,Cambria,"Times New Roman",Times,serif;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;--fs-sm:.78rem;--fs-body:clamp(.98rem,.3vw + .9rem,1.08rem);--fs-h3:clamp(1.25rem,1vw + 1rem,1.75rem);--fs-h2:clamp(2.1rem,4vw,4.4rem);--fs-h1:clamp(2.9rem,5.5vw,6.2rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:clamp(5rem,10vw,9rem);--container:1200px;--border:1px solid rgba(32,40,45,.17);--radius:12px;--radius-lg:24px;--shadow:0 18px 50px rgba(32,40,45,.08);--transition:220ms ease}
/* 02. Reset */
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0}img,svg{display:block;max-width:100%}button,input{font:inherit}a{color:inherit}
/* 03. Base */
body{background:var(--ivory);color:var(--graphite);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.65;overflow-x:hidden}::selection{background:var(--amber);color:var(--charcoal)}
/* 04. Accessibility */
.skip-link{position:fixed;z-index:999;top:1rem;left:1rem;padding:.75rem 1rem;background:var(--white);color:var(--charcoal);transform:translateY(-180%)}.skip-link:focus{transform:none}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--amber);outline-offset:4px}
.copy-buffer{position:fixed;opacity:0;pointer-events:none}
/* 05. Typography */
h1,h2,h3{color:var(--charcoal);font-family:var(--font-editorial);font-weight:400;line-height:1.05}h1{font-size:var(--fs-h1);letter-spacing:-.045em}h1 em{color:var(--burgundy);font-style:italic}h2{font-size:var(--fs-h2);letter-spacing:-.035em}h3{font-size:var(--fs-h3)}.eyebrow,.diagram-title,.category,.route-id,.note-category{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.eyebrow{color:var(--copper);margin-bottom:1.25rem}.lead{font-size:clamp(1.08rem,.7vw + .9rem,1.35rem);max-width:42rem}.micro{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}.micro span{display:inline-block;width:28px;height:1px;margin-right:.5rem;background:var(--amber);vertical-align:middle}
/* 06. Layout */
.container{width:min(calc(100% - 3rem),var(--container));margin-inline:auto}.section{padding-block:var(--space-6)}.section-head{max-width:850px;margin-bottom:var(--space-5)}.section-head>p:last-child{max-width:760px;margin-top:1.5rem}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem;margin-block:2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.25rem;border:1px solid var(--charcoal);text-decoration:none;font-weight:700;font-size:.9rem;transition:background var(--transition),color var(--transition),transform var(--transition)}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--charcoal);color:var(--white)}.button.primary:hover{background:var(--burgundy);border-color:var(--burgundy)}.text-button{border-color:transparent;border-bottom-color:var(--charcoal)}
/* 07. Header */
.site-header{position:sticky;z-index:100;top:0;background:rgba(248,244,234,.96);border-bottom:var(--border);backdrop-filter:blur(12px)}.header-inner{display:flex;min-height:76px;align-items:center;justify-content:space-between}.brand{width:250px}.primary-nav{display:flex;align-items:center;gap:clamp(.7rem,1.4vw,1.5rem)}.primary-nav a{text-decoration:none;font-size:.82rem;font-weight:650}.primary-nav a:hover{color:var(--burgundy)}.primary-nav .nav-cta{padding:.55rem .8rem;border:1px solid var(--charcoal)}.menu-toggle{display:none;width:44px;height:42px;border:0;background:transparent}.menu-toggle span{display:block;width:25px;height:1px;margin:7px auto;background:var(--charcoal);transition:transform var(--transition)}
/* 08. Hero */
.hero{padding:clamp(4rem,8vw,8rem) 0 var(--space-6);background:linear-gradient(110deg,var(--ivory) 0 62%,var(--sage-wash) 62%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(450px,.92fr);gap:clamp(3rem,6vw,6rem);align-items:center}.hero-copy{padding-right:2rem}.hero-copy .lead{margin-top:2rem}.hero-trace{padding:2rem;background:var(--white);border:var(--border);box-shadow:var(--shadow)}
/* 09. Trace diagram */
.diagram-title{padding-bottom:1rem;border-bottom:var(--border);color:var(--muted)}.trace-stage{position:relative;margin:2.2rem 0 3.4rem}.trace-stage svg{overflow:visible}.trace-base{fill:none;stroke:var(--gray);stroke-width:4}.trace-progress{fill:none;stroke:var(--copper);stroke-width:2;stroke-dasharray:5 7}.trace-stage circle{stroke:var(--white);stroke-width:3}.trace-stage circle:nth-of-type(1){fill:var(--sage)}.trace-stage circle:nth-of-type(2){fill:var(--amber)}.trace-stage circle:nth-of-type(3){fill:var(--indigo)}.trace-stage circle:nth-of-type(4){fill:var(--burgundy)}.trace-stage rect{fill:var(--charcoal)}.node-labels{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.node-labels span{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase}.node-labels b{display:block;color:var(--copper);font-size:.7rem}.trace-questions details{border-top:var(--border)}.trace-questions details:last-child{border-bottom:var(--border)}.trace-questions summary{padding:.85rem 0;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;list-style:none}.trace-questions summary::-webkit-details-marker{display:none}.trace-questions summary::after{content:"+";float:right}.trace-questions details[open] summary::after{content:"−"}.trace-questions p{padding:0 0 1rem 1.25rem;font-size:.88rem}.trace-questions summary span{display:inline-block;width:7px;height:7px;margin-right:.65rem;border-radius:50%}.care-dot{background:var(--sage)}.immune-dot{background:var(--indigo)}.blood-dot{background:var(--burgundy)}.diagram-note{margin-top:1rem;color:var(--muted);font-family:var(--font-mono);font-size:.65rem}
/* 10. Trace notation */
.number{display:block;margin-bottom:2.5rem;color:var(--muted);font-family:var(--font-mono);font-size:.75rem}.markers,.themes,.tags{display:flex;flex-wrap:wrap;gap:.45rem}.markers span,.themes span,.tags span{padding:.25rem .5rem;border:1px solid currentColor;font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase}
/* 11. Concept band */
.concept-band{padding-block:var(--space-5);background:var(--charcoal);color:var(--gray)}.concept-band .eyebrow{color:var(--amber)}.concept-lead{max-width:850px;color:var(--white);font-family:var(--font-editorial);font-size:clamp(1.7rem,3vw,3rem);line-height:1.2}.concept-points{display:grid;grid-template-columns:repeat(4,1fr);margin-top:3rem;border-top:1px solid rgba(255,255,255,.2)}.concept-points p{padding:1.5rem 1.5rem 0 0}.concept-points span{display:block;margin-bottom:.6rem;color:var(--amber);font-family:var(--font-mono);font-size:.7rem}
/* 12. Study areas */
.study-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:var(--border);border-bottom:var(--border)}.study-item{position:relative;padding:2rem 1.5rem 2rem 0}.study-item+.study-item{padding-left:1.5rem;border-left:var(--border)}.study-item::before{content:"";position:absolute;top:-2px;left:0;width:45%;height:3px;background:var(--accent)}.study-item h3{min-height:3.7rem}.study-item p{margin:1rem 0;color:var(--muted);font-size:.94rem}.study-item ul{list-style:none}.study-item li{padding:.4rem 0;border-top:var(--border);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase}.care{--accent:var(--sage)}.immune{--accent:var(--indigo)}.blood{--accent:var(--burgundy)}.interpret{--accent:var(--amber)}
/* 13. Trace routes */
.routes{background:var(--white)}.route{display:grid;grid-template-columns:100px 1.2fr .9fr;gap:2rem;padding:2.5rem 0;border-top:2px solid var(--accent)}.route:last-child{border-bottom:var(--border)}.route-id{color:var(--accent)}.route h3{text-transform:uppercase}.route h3 span{color:var(--copper)}.start{margin-top:1.2rem}.start b{display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.route-question{grid-column:2/4;padding:1.25rem 1.5rem;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,white);font-family:var(--font-editorial);font-size:1.25rem;font-style:italic}
/* 14. Clinical reasoning */
.method{background:var(--gray)}.method-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(3rem,7vw,7rem)}.method-steps{list-style:none}.method-steps li{display:grid;grid-template-columns:65px 1fr;gap:1rem;max-width:650px;padding:1.5rem 0;border-top:var(--border)}.method-steps li:nth-child(even){margin-left:clamp(0rem,6vw,5rem)}.method-steps span{color:var(--copper);font-family:var(--font-mono)}.method-steps p{margin-top:.45rem;color:var(--muted)}
/* 15. Checklist */
.checklist{align-self:start;padding:2.3rem;background:var(--charcoal);color:var(--gray);box-shadow:var(--shadow)}.checklist h2{color:var(--white);font-size:clamp(1.8rem,3vw,2.8rem)}.checklist ul{margin-top:2rem;list-style:none}.checklist li{position:relative;padding:.7rem 0 .7rem 1.7rem;border-top:1px solid rgba(255,255,255,.15);font-size:.9rem}.checklist li::before{content:"";position:absolute;left:0;top:1.15rem;width:7px;height:7px;border:1px solid var(--amber)}
/* 16. Academic references */
.references{background:var(--ivory)}.contact-note{margin:-2rem 0 3rem;padding:1.25rem;border-left:3px solid var(--amber);background:var(--white);font-size:.9rem}.contact-note b{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.profiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.profile{display:flex;flex-direction:column;padding:1.6rem;background:var(--white);border:var(--border);border-top:4px solid var(--accent)}.profile-top{display:flex;align-items:center;justify-content:space-between}.avatar{display:grid;width:54px;height:54px;place-items:center;background:var(--accent);color:var(--white);font-family:var(--font-mono);font-weight:700}.category{color:var(--accent)}.profile-trace{width:55%;height:24px;margin:1rem 0;border-bottom:1px solid var(--accent);transform:skewX(-34deg)}.profile h3{font-size:1.65rem}.profile p{margin-top:.8rem;font-size:.86rem}.profile .role{color:var(--accent);font-weight:700}.profile .institution{min-height:5.5rem;color:var(--muted)}.themes{margin:1rem 0}.themes span{color:var(--accent)}.profile .orcid{margin-top:auto;font-family:var(--font-mono);font-size:.72rem}.email-block{position:relative;margin-top:1rem;padding-top:1rem;border-top:var(--border)}.email-block small,.email-block a{display:block}.email-block small,.reference-label{color:var(--accent);font-family:var(--font-mono);font-size:.65rem!important;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.email-block a{margin:.25rem 0 .7rem;overflow-wrap:anywhere;font-size:.78rem}.copy-email{padding:.35rem .6rem;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;font-family:var(--font-mono);font-size:.68rem}.copy-status{margin-left:.5rem;font-size:.7rem}
/* 17. Independence */
.independence{padding-block:var(--space-5);background:var(--rose)}.independence-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem}.independence h2{font-size:clamp(2rem,3.5vw,3.5rem)}.independence-grid>div:last-child{columns:2;column-gap:2rem}.independence-grid>div:last-child p{margin-bottom:1rem;break-inside:avoid}
/* 18. Research notes */
.notes-section{background:var(--white)}.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.note{border:var(--border);background:var(--ivory)}.note[hidden]{display:none}.note summary{position:relative;min-height:255px;padding:1.7rem;cursor:pointer;list-style:none}.note summary::-webkit-details-marker{display:none}.note summary h3{margin:1.2rem 0 .8rem;font-size:1.65rem}.note summary p{padding-right:3rem;color:var(--muted)}.note-category{color:var(--burgundy)}.open-label{position:absolute;bottom:1.4rem;left:1.7rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase}.open-label b{font-size:1.1rem}.note details[open] .open-label b{display:inline-block;transform:rotate(45deg)}.note-body{padding:0 1.7rem 1.7rem;border-top:var(--border)}.note-body p{padding:1.4rem 0}.tags span{color:var(--indigo)}
/* 19. Search */
.search-panel{margin-bottom:2rem;padding:1.4rem;background:var(--charcoal);color:var(--white)}.search-panel label{display:block;margin-bottom:.6rem;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}.search-row{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:center}.search-row input{width:100%;min-height:48px;padding:.7rem 1rem;border:1px solid transparent;background:var(--white);color:var(--charcoal)}.search-row button{min-height:48px;padding:.5rem 1rem;border:1px solid var(--amber);background:transparent;color:var(--white);cursor:pointer}.search-row output{min-width:65px;text-align:right;font-family:var(--font-mono);font-size:.75rem}.no-results{padding:3rem;border:var(--border);text-align:center;font-family:var(--font-editorial);font-size:1.4rem}
/* 20. About */
.about{background:var(--sage-wash)}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:2rem 6rem}.about-copy p{margin-bottom:1rem}.principles{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);margin-top:3rem;border-top:var(--border)}.principles article{padding:1.5rem 1.5rem 0 0}.principles article+article{padding-left:1.5rem;border-left:var(--border)}.principles span{color:var(--copper);font-family:var(--font-mono);font-size:.7rem}.principles h3{margin:.8rem 0}.principles p{color:var(--muted);font-size:.9rem}
/* 21. Final CTA */
.final-cta{padding-block:var(--space-6);background:var(--powder)}.final-grid{display:grid;grid-template-columns:1fr 280px;gap:6rem;align-items:center}.final-grid>div:first-child{max-width:780px}.final-grid h2{margin-bottom:1.5rem}.vertical-trace{position:relative;display:flex;flex-direction:column;gap:1.8rem;padding-left:4rem}.vertical-trace::before{content:"";position:absolute;top:8px;bottom:8px;left:15px;width:1px;background:var(--copper)}.vertical-trace span,.vertical-trace b{position:relative;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.vertical-trace span::before,.vertical-trace b::before{content:"";position:absolute;left:-3.45rem;top:.2rem;width:11px;height:11px;border-radius:50%;background:var(--ivory);border:2px solid var(--copper)}.vertical-trace b{color:var(--burgundy)}.vertical-trace b::before{border-radius:0;background:var(--burgundy);border-color:var(--burgundy)}
/* 22. Footer */
.site-footer{padding:4rem 0 2rem;background:var(--charcoal);color:var(--gray)}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr auto;gap:3rem}.footer-brand{display:flex;gap:1rem}.footer-brand img{width:70px;filter:brightness(0) invert(1)}.footer-brand b,.footer-brand span,.footer-brand small{display:block}.footer-brand b{color:var(--white);font-family:var(--font-editorial);font-size:1.7rem}.footer-brand span{font-size:.8rem}.footer-brand small{color:var(--amber)}.site-footer nav{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.site-footer nav a,.back-top{font-size:.82rem;text-decoration:none}.site-footer a:hover{color:var(--amber)}.copyright{grid-column:1/-1;padding-top:2rem;border-top:1px solid rgba(255,255,255,.16);color:var(--muted);font-family:var(--font-mono);font-size:.68rem}
/* 23. Reveal */
.js-enabled .reveal{opacity:0;transform:translateY(24px);transition:opacity 650ms ease,transform 650ms ease}.js-enabled .reveal.is-visible{opacity:1;transform:none}
/* 24. Responsive */
@media(max-width:1050px){.menu-toggle{display:block}.primary-nav{position:absolute;top:76px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:1.5rem;background:var(--ivory);border-bottom:var(--border);box-shadow:var(--shadow)}.primary-nav.is-open{display:flex}.primary-nav a{padding:.45rem}.hero{background:var(--ivory)}.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:780px}.study-grid{grid-template-columns:repeat(2,1fr)}.study-item:nth-child(3){border-left:0}.study-item:nth-child(n+3){border-top:var(--border)}.profiles{grid-template-columns:repeat(2,1fr)}.principles{grid-template-columns:repeat(2,1fr)}.principles article:nth-child(3){border-left:0;border-top:var(--border)}}
@media(max-width:760px){.container{width:min(calc(100% - 2rem),var(--container))}.brand{width:210px}.hero{padding-top:3.5rem}.hero-copy{padding-right:0}.hero-trace{padding:1.2rem}.trace-stage{margin-bottom:2rem}.trace-stage svg{width:150px;height:340px;margin:auto}.trace-stage svg path{transform:rotate(90deg) translate(0,-700px);transform-origin:center}.trace-stage svg g{display:none}.node-labels{position:absolute;inset:10px 0 0 45%;display:flex;flex-direction:column;justify-content:space-between;height:320px}.concept-points,.study-grid,.method-grid,.profiles,.notes-grid,.about-grid,.principles,.final-grid,.footer-grid{grid-template-columns:1fr}.concept-points p{border-bottom:1px solid rgba(255,255,255,.12)}.study-item,.study-item+.study-item{padding:2rem 0;border-left:0;border-top:var(--border)}.route{grid-template-columns:1fr;gap:1rem}.route-question{grid-column:auto}.method-steps li:nth-child(even){margin-left:0}.checklist{padding:1.5rem}.profiles{gap:1rem}.profile .institution{min-height:0}.independence-grid{grid-template-columns:1fr;gap:2rem}.independence-grid>div:last-child{columns:1}.search-row{grid-template-columns:1fr auto}.search-row output{grid-column:1/-1;text-align:left}.principles{margin-top:1rem}.principles article,.principles article+article{padding:1.5rem 0;border-left:0;border-top:var(--border)}.final-grid{gap:3rem}.vertical-trace{margin-left:1rem}.site-footer nav{grid-template-columns:1fr 1fr}.back-top{justify-self:start}.copyright{grid-column:auto}.footer-grid{gap:2rem}}
@media(max-width:420px){h1{font-size:2.65rem}.brand{width:180px}.actions{align-items:stretch;flex-direction:column}.button{width:100%}.site-footer nav{grid-template-columns:1fr}.search-row{grid-template-columns:1fr}.search-row button,.search-row output{grid-column:auto}.route h3{font-size:1.2rem}}
/* 25. Reduced motion */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js-enabled .reveal{opacity:1;transform:none}}
