/* v6 — technical typography, publication filmstrip and coordinated motion.
   Uses locally available system fonts. No font files or external font services. */
:root{
 --tech:Bahnschrift,'DIN Alternate',Roboto,'Segoe UI',Arial,sans-serif;
 --sans:Roboto,'Segoe UI',Arial,sans-serif;
 --mono:Consolas,'SFMono-Regular','Roboto Mono','Liberation Mono',monospace;
 --serif:var(--tech);
 --paper:#f3f6fa;--ink:#172c3b;--muted:#536777;--accent:#245f77;
 --ease:cubic-bezier(.2,.75,.2,1);
}
body{font-family:var(--sans);font-size:16px}
h1,h2,h3,.brand{font-family:var(--tech);font-weight:500;font-stretch:normal}
h2{letter-spacing:-.035em}.brand{font-size:25px;font-weight:600;letter-spacing:-.045em}
.brand-point{color:#387c9d}
.eyebrow,.hero-eyebrow,.theme-number,.paper-year,.toc-card-meta,.toc-dialog-paging{font-family:var(--mono);font-weight:400;letter-spacing:.085em}
.eyebrow{line-height:1.7}.hero-eyebrow{font-size:10px;letter-spacing:.09em}
#primary-nav,.button,.text-link,.filter-button{font-family:var(--tech);font-weight:500}
#primary-nav a::after{height:2px;border-radius:2px}
.hero-inner{min-height:518px;padding-block:50px 56px}
.hero-copy{width:57%;max-width:640px}
.hero h1{font:500 clamp(62px,6.4vw,89px)/1.04 var(--tech);letter-spacing:-.06em}
.hero-role{font-size:14px;line-height:1.7;margin-top:24px}
.hero-description{font-size:15.5px;line-height:1.85;max-width:466px}
.hero-links{gap:14px 24px;flex-wrap:wrap;margin-top:24px}
.hero-links .text-link{font-size:12px;gap:10px}.hero .button{font-size:12px;padding-inline:22px}
.hero-art{left:38%;right:-8%;opacity:1}
.hero-art::before{content:'';position:absolute;inset:8% 6% 7% 8%;background:radial-gradient(ellipse at 43% 54%,#acd2e355,transparent 65%),radial-gradient(ellipse at 78% 30%,#bfbbea45,transparent 58%);filter:blur(18px);animation:field-breathe 12s ease-in-out infinite alternate;pointer-events:none}
@keyframes field-breathe{from{transform:translate3d(-14px,5px,0) scale(.96);opacity:.7}to{transform:translate3d(18px,-12px,0) scale(1.05);opacity:1}}
#field{filter:saturate(1.08)}.art-note{font-family:var(--mono);font-size:9px;letter-spacing:.02em}
#motion-toggle{font-family:var(--mono);font-size:10px}
.discipline-strip{font-family:var(--tech);font-weight:500;font-size:12px;border-bottom:0;padding-block:16px}
.discipline-strip a{position:relative;transition:color .2s}.discipline-strip a:hover{color:#15628a}
.section-heading h2{font-size:clamp(31px,3vw,40px);font-weight:500;letter-spacing:-.035em}
.tile-copy h3,.robot-tile .tile-copy h3,.interview-tile h3,.podcast-copy h3,.themes h3,.venture h3,.contact-opportunities h3{font-family:var(--tech);font-weight:500;letter-spacing:-.025em}
.tile-copy h3{font-size:23px}.robot-tile .tile-copy h3{font-size:29px}.interview-tile h3{font-size:27px}.themes h3{font-size:24px}.podcast-copy h3{font-size:23px}
.research-intro h2{font-size:40px;font-weight:500}.theme-number{font-size:11px;color:#526d80}
.paper-text h3{font:500 23px/1.43 var(--tech);letter-spacing:-.015em}.paper-year{font-size:26px;letter-spacing:-.05em}.paper-meta{font-size:11px}.paper-text>p{font-size:13px}
.paper{transition:background .25s,box-shadow .25s}.paper:hover{box-shadow:inset 3px 0 #5389a7;background:#eaf1f866}.paper-arrow{transition:transform .25s var(--ease),background .25s}.paper:hover .paper-arrow{transform:translate(2px,-2px);background:#e3edf6}
.venture h3{font-size:27px}.email-link{font-family:var(--tech);font-weight:500;font-size:28px;letter-spacing:-.015em}
.media-tile .visual>img{transition:transform .85s var(--ease)}.media-tile .visual:hover>img{transform:scale(1.045)}
.button .icon,.text-link .icon,.toc-card h3 .icon{transition:transform .3s var(--ease)}.button:hover .icon,.toc-card h3 a:hover .icon{transform:translate(2px,-2px)}
/* TOC banner: complete white-backed figures, never cropped. */
.toc-section{position:relative;padding:37px 0 32px;isolation:isolate;background:linear-gradient(180deg,#eaf1f770,#edf3fbd9 72%,#f3f6fa);border-top:1px solid #d6e2ec;border-bottom:1px solid #dbe5ee;scroll-margin-top:112px}
.toc-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}
.toc-heading .eyebrow{font-size:10px;margin-bottom:8px;color:#4a687d}
.toc-heading h2{font:500 33px/1.15 var(--tech);letter-spacing:-.035em}
.toc-controls{display:flex;align-items:center;gap:9px;flex-shrink:0}
.toc-controls button,.icon-button{height:44px;min-width:44px;border:1px solid #c8d9e6;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#f9fcff;color:#285770;transition:background .2s,border .2s,transform .2s;flex-shrink:0}
.toc-controls button:hover,.icon-button:hover{background:#deebf5;border-color:#9bbbd1}.toc-controls button:active,.icon-button:active{transform:scale(.96)}
.toc-controls .toc-pause{border-radius:24px;padding:0 16px;gap:8px;font:11px var(--mono);min-width:95px}
.toc-state-icon{font-family:var(--sans);width:12px;font-size:13px}
.toc-viewport{position:relative}
.toc-rail{overflow-x:auto;overflow-y:hidden;padding:2px 2px 14px;margin:-2px;scrollbar-width:thin;scrollbar-color:#b2c8d9 transparent;overscroll-behavior-x:contain;scroll-behavior:auto;touch-action:pan-x pan-y;outline-offset:5px;border-radius:13px}
.toc-rail::-webkit-scrollbar{height:4px}.toc-rail::-webkit-scrollbar-thumb{background:#b2c8d9;border-radius:10px}
.toc-track{display:flex;width:max-content;gap:20px;align-items:stretch;padding:0 2px 0 0}
.toc-card{width:var(--toc-card-width,360px);flex:0 0 var(--toc-card-width,360px);min-width:0;background:#fff;border:1px solid #d5e1ec;border-radius:14px;overflow:hidden;transition:border-color .25s,box-shadow .3s;box-shadow:0 4px 13px #375e7710}
.toc-card:hover{border-color:#7fa9c4;box-shadow:0 5px 18px #375e771b}
.toc-card-meta{padding:13px 17px;display:flex;justify-content:space-between;gap:15px;color:#4e6b80;font-size:10px;letter-spacing:.015em;line-height:1.5;background:#f6f9fd;border-bottom:1px solid #edf2f8}
.toc-graphic{display:flex;align-items:center;justify-content:center;height:186px;position:relative;padding:14px 18px;text-decoration:none;background:#fff;cursor:zoom-in}
.toc-graphic>img{object-fit:contain;width:100%;height:100%;display:block;transition:transform .6s var(--ease)}.toc-graphic:hover>img{transform:scale(1.03)}
.toc-expand{position:absolute;bottom:9px;right:9px;background:#f1f6fbef;border:1px solid #d2e1ec;width:29px;height:29px;display:grid;place-items:center;border-radius:7px;color:#3b6178;opacity:0;transition:opacity .2s}
.toc-graphic:hover .toc-expand,.toc-graphic:focus-visible .toc-expand{opacity:1}.toc-expand .icon{width:15px;height:15px}
.toc-card-bottom{padding:14px 18px 19px;border-top:1px solid #edf2f8;min-height:102px}
.toc-card-bottom .eyebrow{font-size:9px;color:#567385;letter-spacing:.06em;margin-bottom:8px}
.toc-card h3{font:500 19px/1.35 var(--tech);letter-spacing:-.015em}.toc-card h3 a,.toc-card h3 [data-toc-link]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;text-decoration:none;cursor:pointer;min-height:32px}.toc-card h3 a:hover{text-decoration:underline;text-underline-offset:4px}.toc-card h3 .icon{width:16px;height:16px;flex-shrink:0;margin-top:4px}
.toc-footer{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 25px;padding-top:8px}.toc-footer>p{font-size:10.5px;color:#567085}.toc-footer .minor-link{font-size:11px;min-height:34px}
.toc-progress{height:2px;width:100%;background:#d9e5f0;overflow:hidden;border-radius:2px;margin-top:4px}.toc-progress>span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#3d829f,#8292bd)}
.toc-section[data-state='paused'] .toc-progress>span{background:#8da7b8}
.toc-status:empty{display:none}.laboratory{padding-top:66px}
/**** Large-figure viewer. ****/
.toc-dialog{width:min(1050px,calc(100% - 36px));max-height:calc(100dvh - 40px);border-radius:18px;background:#f7faff}
.toc-dialog .dialog-header{position:sticky;top:0;z-index:2;padding:22px 26px;background:#f1f6fc;border-bottom:1px solid #dce6f0}
.toc-dialog .dialog-header h2{font:500 23px/1.36 var(--tech);max-width:860px;letter-spacing:-.015em}
.toc-dialog .dialog-header .eyebrow{font-size:10px;margin-bottom:8px}.toc-dialog .dialog-close{width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:#fff}
.toc-dialog-stage{display:flex;align-items:center;justify-content:center;background:#fff;padding:25px 28px;min-height:190px}
.toc-dialog-stage img{max-width:100%;max-height:49dvh;width:auto;height:auto;object-fit:contain}
.toc-dialog-info{border-top:1px solid #e0e8f0;padding:19px 26px 23px;color:var(--muted)}
#toc-dialog-caption{font-size:12px;line-height:1.8}.toc-credit{font-size:10px;color:#62788b;margin-top:7px}
.toc-dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:19px}
.toc-dialog-paging{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:.02em}
#toc-paper-link{font-size:12px;color:white}
.motion-dock{position:fixed;right:23px;bottom:23px;z-index:25;border:1px solid #cadbe7;box-shadow:0 5px 24px #1b334525;border-radius:30px;background:#f9fcfff5;color:#315e77;backdrop-filter:blur(12px);min-height:44px;display:flex;gap:9px;align-items:center;padding:10px 15px;font:10px var(--mono)}
.motion-dock:hover{background:#e9f2f9}.motion-dock-icon{font-family:var(--sans);font-size:13px;width:12px}
html[data-motion-paused='true'] .hero-art::before{animation-play-state:paused}
html[data-motion-paused='true'] .toc-graphic>img,html[data-motion-paused='true'] .media-tile,html[data-motion-paused='true'] .media-tile .visual>img{transition:none;transform:none!important}
@media(min-width:1700px){.hero-inner{min-height:545px}.hero h1{font-size:93px}.toc-graphic{height:202px}}
@media(max-width:1150px){.hero h1{font-size:73px}.hero-inner{min-height:510px}.hero-description{max-width:400px}.hero-copy{width:62%}.hero-art{left:39%;right:-23%}.hero-links{gap:10px 18px}.hero-links .text-link{font-size:11px}}
@media(max-width:850px){.hero h1{font-size:62px}.hero-inner{min-height:509px}.hero-copy{width:67%}.hero-description{max-width:363px;font-size:14px}.hero-role{font-size:13px}.hero-art{left:31%;right:-35%}.hero-eyebrow{font-size:9px}.hero-links .button{font-size:11px;padding-inline:18px}.hero-links .text-link{font-size:11px}.toc-heading{align-items:center}.toc-heading h2{font-size:30px}.toc-heading .eyebrow{font-size:9px}.toc-graphic{height:177px}.toc-card-bottom{min-height:101px}.toc-card h3{font-size:19px}.research-intro h2{font-size:35px}.paper-text h3{font-size:22px}.motion-dock{bottom:17px;right:17px}}
@media(max-width:600px){.hero-copy{width:100%;max-width:none}.hero h1{font-size:clamp(51px,14.9vw,72px);line-height:1.05;letter-spacing:-.058em}.hero-inner{min-height:659px;padding-block:37px 215px}.hero-role{font-size:13px;margin-top:23px}.hero-description{font-size:14px;max-width:358px}.hero-links{gap:5px 21px;margin-top:21px}.hero-links .button{padding-inline:19px}.hero-links .text-link{font-size:11px;gap:8px;min-height:42px}.hero-art{inset:390px -33% -25px -12%}.art-note{bottom:16px}.hero-eyebrow{font-size:8.5px}.discipline-strip{font-size:11px;padding-block:12px}.toc-section{padding-top:29px;padding-bottom:24px}.toc-heading{align-items:flex-end;gap:15px;margin-bottom:19px;flex-wrap:wrap}.toc-heading h2{font-size:29px}.toc-heading .eyebrow{font-size:8.5px;letter-spacing:.065em;margin-bottom:7px}.toc-controls{gap:7px}.toc-controls .toc-pause{font-size:10px;min-width:88px;padding-inline:13px}.toc-rail{border-radius:12px}.toc-track{gap:14px}.toc-card{width:calc(100vw - 65px);flex-basis:var(--toc-card-width,calc(100vw - 65px));border-radius:12px}.toc-card-meta{padding:12px 15px;font-size:9px}.toc-graphic{height:183px;padding:15px}.toc-card-bottom{padding:13px 16px 16px;min-height:101px}.toc-card h3{font-size:19px}.toc-card-bottom .eyebrow{font-size:8.5px}.toc-expand{opacity:1}.toc-footer{padding-top:9px;gap:0}.toc-footer>p{font-size:10px;max-width:290px;line-height:1.7}.toc-footer .minor-link{font-size:10px}.toc-progress{margin-top:3px}.laboratory{padding-top:42px}.section-heading h2{font-size:32px}.research-intro h2{font-size:36px}.themes h3{font-size:24px}.paper-text h3{font-size:22px}.paper-year{font-size:25px}.contact-layout h2{font-size:35px}.email-link{font-size:25px}.toc-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:14px}.toc-dialog .dialog-header{padding:16px;gap:12px}.toc-dialog .dialog-header h2{font-size:19px}.toc-dialog .dialog-header .eyebrow{font-size:8.5px}.toc-dialog-stage{padding:20px 12px;min-height:135px}.toc-dialog-stage img{max-height:42dvh}.toc-dialog-info{padding:16px}.toc-dialog-actions{gap:13px;margin-top:15px}.toc-dialog-paging{gap:10px}#toc-dialog-caption{font-size:11px}.toc-credit{font-size:9px}.motion-dock{right:12px;bottom:12px;padding:10px 13px;font-size:9px;box-shadow:0 3px 14px #1b33451a}.footer-shell{padding-bottom:48px}}
@media(max-width:380px){.hero h1{font-size:49px}.hero-inner{min-height:674px}.hero-role{font-size:12px}.hero-description{max-width:285px}.hero-art{top:414px}.hero-links{gap:5px 16px}.hero-links .text-link{font-size:10px}.hero-links .button{font-size:10px;padding-inline:15px}.hero-eyebrow{font-size:8px}.toc-heading h2{font-size:28px}.toc-controls{margin-top:1px}.toc-graphic{height:173px}.toc-card-bottom{min-height:107px}.toc-card h3{font-size:18px}.contact-layout h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.hero-art::before{animation:none}.toc-rail{scroll-behavior:auto}.media-tile .visual:hover>img,.toc-graphic:hover>img{transform:none}.paper:hover .paper-arrow{transform:none}}
@media print{.toc-controls,.toc-progress,.motion-dock,.toc-expand{display:none!important}.toc-section{background:white;padding:20px 0}.toc-rail{overflow:visible}.toc-track{display:grid;grid-template-columns:1fr 1fr;width:100%}.toc-card{width:100%;break-inside:avoid}.toc-card[data-clone]{display:none!important}.toc-graphic{height:155px}.hero h1{font-size:46px}.hero-inner{min-height:0;padding:20px 0}.hero-copy{width:100%}.toc-dialog{display:none!important}}
/* Clip the decorative canvas without creating a horizontally focus-scrollable
   container. This prevents return-to-top focus from moving the entire hero. */
@supports (overflow:clip){.hero{overflow:clip}}
