/* Full-viewport molecular world; the archive lives in an on-demand display. */
body.immersive-site{height:100dvh;overflow:hidden;background:#050817;--molecular-reading:100%;--molecular-header:72px;--molecular-scene-height:0px}
.explore-compact-label{display:none}
.immersive-site [hidden]{display:none!important}
.immersive-site .site-header{position:fixed;inset:0 0 auto;z-index:20;border:0;background:linear-gradient(#060919c9,transparent);backdrop-filter:none}
.immersive-site .header-inner{width:100%;max-width:none;height:72px;padding:14px 32px;justify-content:space-between;gap:16px}
.immersive-site .nav-links{display:none}
.immersive-site .menu-toggle{display:block}
.immersive-site .brand{font-size:17px}.immersive-site .brand small{font-size:12px;letter-spacing:.12em}
.immersive-site .mobile-nav{position:absolute;right:24px;left:auto;top:72px;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 160px);overflow:auto;background:#091225ed;border:1px solid #91dcc244;border-radius:12px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px;backdrop-filter:blur(22px)}
.immersive-site .mobile-nav a{font-size:16px;padding:12px;border-bottom:1px solid #9cd6ee25}
.immersive-site #molecular-world{position:fixed;inset:0;width:100vw;height:100dvh;margin:0;z-index:1;background:radial-gradient(ellipse at 58% 36%,#2422449c,transparent 62%),radial-gradient(ellipse at 30% 65%,#12334475,transparent 58%),linear-gradient(130deg,#070c20,#0c0925 65%,#081a24)}
.immersive-site #molecular-world::before{background:radial-gradient(ellipse at 70% 35%,#6b41c029,transparent 50%),radial-gradient(ellipse at 40% 62%,#47adbc19,transparent 40%)}
.immersive-site #molecular-world::after{background:radial-gradient(ellipse,transparent 40%,#02051180 100%);z-index:4}
.immersive-site #protein-canvas{width:100%;height:100%;pointer-events:auto;touch-action:none;outline:none}
.immersive-site #protein-canvas:focus-visible{outline:2px solid #8bffe066;outline-offset:-4px}
.immersive-site #protein-fallback{inset:5% 0;width:100%;height:90%;object-fit:contain}
.explorer-intro{position:absolute;z-index:9;top:112px;left:40px;max-width:360px;pointer-events:none;text-shadow:0 2px 30px #020611}
.explorer-intro>p:first-child{color:#83eadc;font:16px/1.6 var(--mono);letter-spacing:.08em;margin-bottom:14px}
.explorer-intro h1{font-size:clamp(28px,3.05vw,44px);font-weight:500;letter-spacing:-.025em;line-height:1.32;color:#f0f6ff;margin:0;text-wrap:balance}
.explorer-tagline{font-size:17px;color:#b4c4d9;margin:16px 0 0;line-height:1.7}
.immersive-site .protein-zone-meta{top:106px;left:auto;right:38px;max-width:280px;text-align:right}
.immersive-site .protein-eyebrow{font-size:16px;opacity:.7}
.immersive-site #protein-zone-title{font-size:21px;line-height:1.4;margin:10px 0;color:#d9e7fb}
.immersive-site #protein-zone-description{display:none}
.immersive-site .protein-hotspot{background:#081828a8;border-color:#a0e8e65c;border-radius:24px;padding:10px 18px;box-shadow:0 0 26px #70dbdf15,inset 0 0 16px #7ed2d908;backdrop-filter:blur(14px);font-size:16px;max-width:220px;min-height:46px}
.immersive-site .protein-hotspot:is(:hover,:focus-visible){background:#113a44e0;border-color:#9bffe6;box-shadow:0 0 28px #83ecd53d;transform:translate(-50%,-50%) scale(1.04)}
.immersive-site .protein-hotspot::before{width:7px;height:7px;box-shadow:0 0 15px #98fff0}
.immersive-site .protein-legend{position:absolute;left:32px;right:auto;top:auto;bottom:188px;z-index:9;display:flex;gap:20px;font-size:16px;padding:0}
.immersive-site #protein-source{position:absolute;left:32px;right:auto;top:auto;bottom:120px;z-index:9;font-size:16px;max-width:520px;margin:0;color:#9eb8cb;pointer-events:auto}
.immersive-site #protein-source a{font-size:16px}
.explorer-camera-tools{position:absolute;z-index:10;right:32px;top:46%;display:grid;gap:10px}.explorer-camera-tools button{width:46px;height:46px;font-size:26px;color:#d8ffff;background:#122738ae;border:1px solid #9bdee657;border-radius:50%;cursor:pointer;backdrop-filter:blur(12px)}
.immersive-site #protein-source span{display:block;font-size:16px;margin-top:3px}
.immersive-site #protein-status{position:absolute;right:32px;left:auto;top:auto;bottom:137px;z-index:9;font-size:16px;background:#071520a0;border:1px solid #8ac9d833;padding:8px 14px;border-radius:20px;pointer-events:none}
.explorer-dock{position:absolute;z-index:12;bottom:48px;left:50%;transform:translateX(-50%);display:flex;gap:9px;padding:10px;border:1px solid #a1dbeb36;border-radius:18px;background:#071123c4;backdrop-filter:blur(22px);box-shadow:0 14px 70px #0007;white-space:nowrap}
.explorer-dock button{font:inherit;font-size:16px;min-height:46px;padding:10px 20px;color:#e5f7ff;border:1px solid #bddcfa35;border-radius:10px;background:#17304977;cursor:pointer}
.explorer-dock .dock-primary{color:#09242c;background:linear-gradient(115deg,#86efe0,#a7dcff);border-color:transparent;font-weight:600}
.explorer-dock button:hover{border-color:#a9ffea;background:#234759b0}.explorer-dock .dock-primary:hover{background:#b1ffeb}
#explorer-instructions{position:absolute;left:16px;right:16px;bottom:12px;z-index:9;text-align:center;font-size:16px;line-height:1.4;color:#aec6d4;margin:0;pointer-events:none}
.explorer-guide{position:fixed;z-index:30;right:28px;top:96px;width:min(690px,calc(100vw - 48px));max-height:calc(100dvh - 210px);overflow:auto;padding:26px;border:1px solid #abddf15a;border-radius:18px;background:linear-gradient(135deg,#10263cec,#12162eea);backdrop-filter:blur(26px);box-shadow:0 25px 100px #0009}
.guide-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.guide-header h2{font-size:26px;line-height:1.4;margin:0}
.guide-header button{width:44px;min-height:44px;border:1px solid #b5dcee55;border-radius:50%;background:transparent;color:#e3efff;font-size:25px}
.immersive-site .molecular-directory{width:100%;max-width:none;padding:0;margin:0;position:static;background:transparent}
.immersive-site .molecular-directory>div{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;padding:0;margin:0;overflow:visible}
.immersive-site .molecular-directory button{min-width:0;width:100%;border:1px solid #95cde332;background:#192b438c;border-radius:10px;padding:16px;display:grid;grid-template-columns:28px 1fr;gap:7px;text-align:left}
.immersive-site .directory-label{font-size:18px;white-space:normal}.immersive-site .directory-count{grid-column:2;font-size:16px}.immersive-site .directory-number{font-size:16px;color:#8eebdd}
.guide-extra{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.guide-extra button{font-size:16px;min-height:44px;padding:9px 14px;color:#d8f3ff;background:#19384b8a;border:1px solid #96d3eb44;border-radius:8px}
.immersive-site #exploration-screen:not([open]){display:none!important}
.immersive-site #exploration-screen[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr);position:fixed;inset:0;width:min(1320px,92vw);height:88dvh;max-width:92vw;max-height:88dvh;margin:auto;padding:0;border:1px solid #aadfec83;border-radius:20px;overflow:hidden;color:#e6efff;background:linear-gradient(135deg,#101c30fa,#0a1023f7);box-shadow:0 0 0 7px #a9f5ed09,0 30px 100px #000a,0 0 100px #4480b323;animation:screen-reveal .3s ease-out}
.immersive-site #exploration-screen::backdrop{background:#030715a8;backdrop-filter:blur(8px)}
.screen-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 30px 18px;border-bottom:1px solid #99c7e438;background:linear-gradient(120deg,#12303c80,#17213a60)}
.screen-eyebrow{color:#8ceada;font:16px/1.6 var(--mono);letter-spacing:.07em}.screen-header h2{margin:3px 0 0;font-size:28px;line-height:1.4;font-weight:500}
.screen-header-actions{display:flex;gap:10px}.screen-header-actions button{min-height:44px;padding:10px 15px;font-size:16px;background:#153246;color:#d5faff;border:1px solid #95deeb75;border-radius:9px;cursor:pointer}
.screen-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px 25px;border-bottom:1px solid #accbe326;scrollbar-width:thin;flex-wrap:nowrap}
.screen-tabs button{font-size:16px;padding:9px 13px;min-height:42px;border:1px solid transparent;border-radius:8px;white-space:nowrap;color:#bfd0e3;background:transparent;cursor:pointer}
.screen-tabs button[aria-current=page]{color:#a2fff0;border-color:#88e1d85a;background:#1c454a60}
.screen-body{overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#729dac #0b1525}
.immersive-site #exploration-screen main{width:100%;max-width:none;margin:0;pointer-events:auto;z-index:auto;background:transparent}
.immersive-site #exploration-screen main>section.shell{width:100%;max-width:none;margin:0;padding:38px;scroll-margin-top:20px;min-height:0;background:transparent;border:0;box-shadow:none}
.immersive-site #exploration-screen .hero.shell{display:block;padding:45px}
.immersive-site #exploration-screen .hero-copy{width:100%;max-width:850px;margin:0;padding:0;background:transparent}.immersive-site #hero-scene-anchor{display:none}
.immersive-site #exploration-screen .hero-title{font-size:clamp(38px,4vw,62px)}
.immersive-site #exploration-screen .section-head{grid-template-columns:1fr;margin-bottom:30px}.immersive-site #exploration-screen .section-title{font-size:36px}
.immersive-site #exploration-screen .section-intro{max-width:85ch;font-size:18px}.immersive-site #exploration-screen .chapter-number{display:none}
.immersive-site #exploration-screen .journey-layout{grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr)}
.immersive-site #exploration-screen .viewpoint-layout,.immersive-site #exploration-screen .fusion-layout{grid-template-columns:1fr 1fr}
.immersive-site #exploration-screen .case-layout{grid-template-columns:minmax(270px,.7fr) minmax(0,1.3fr)}
.immersive-site #exploration-screen .case-list{display:block}.immersive-site #exploration-screen .case-main{min-width:0}
.immersive-site #exploration-screen #module-list{grid-template-columns:repeat(3,minmax(0,1fr))}.immersive-site #exploration-screen #module-stage{scroll-margin-top:20px}
.immersive-site #exploration-screen .cnn-matrices{grid-template-columns:repeat(3,minmax(0,1fr))}
.immersive-site .site-footer{display:none}.immersive-site .toast{z-index:100}
.immersive-site #case-dialog,.immersive-site #photo-dialog{max-height:90dvh;max-width:94vw;border:1px solid #9fdeee68;background:#0d192c;border-radius:16px}
@keyframes screen-reveal{from{opacity:0;transform:scale(.96) translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:900px){
  .explorer-intro{left:24px;top:95px;max-width:280px}.explorer-intro h1{font-size:30px}.immersive-site .protein-zone-meta{right:24px;max-width:200px;top:96px}
  .immersive-site #exploration-screen .journey-layout,.immersive-site #exploration-screen .viewpoint-layout,.immersive-site #exploration-screen .fusion-layout,.immersive-site #exploration-screen .case-layout{grid-template-columns:1fr}
  .immersive-site #exploration-screen #module-list{grid-template-columns:1fr 1fr}.immersive-site #exploration-screen .cnn-matrices{grid-template-columns:1fr 1fr}
}
@media(max-width:800px){
  .explore-full-label{display:none}.explore-compact-label{display:inline}
  .immersive-site .header-actions{gap:6px}.immersive-site .lang-toggle,.immersive-site .menu-toggle{white-space:nowrap;flex-shrink:0}
  body.immersive-site{font-size:17px;--molecular-header:64px}.immersive-site .header-inner{height:64px;padding:10px 16px}.immersive-site .brand{font-size:15px}.immersive-site .brand small{font-size:10px}
  .immersive-site #molecular-world{position:fixed;inset:0;height:100dvh;width:100vw;z-index:1;margin:0;border:0}
  .explorer-intro{top:92px;left:20px;max-width:290px}.explorer-intro>p:first-child{font-size:16px;margin-bottom:8px}.explorer-intro h1{font-size:29px}.explorer-tagline{font-size:16px;margin-top:9px}
  .immersive-site .protein-zone-meta{display:none}.immersive-site .protein-legend{display:none}
  .immersive-site #protein-source{left:16px;bottom:170px;max-width:230px;font-size:16px}.immersive-site #protein-source span{display:none}.explorer-camera-tools{right:14px;top:207px;display:flex;gap:7px}.explorer-camera-tools button{width:42px;height:42px}.immersive-site #protein-overview{display:block}
  html[lang=en] .explorer-camera-tools{top:250px}
  .immersive-site #protein-status{right:16px;bottom:167px;font-size:16px;padding:4px 8px;background:transparent;border:0}
  .explorer-dock{bottom:59px;width:calc(100vw - 28px);max-width:440px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:9px;border-radius:14px;white-space:normal}
  .explorer-dock button{font-size:16px;padding:8px 1px;min-height:42px;line-height:1.3}.explorer-dock .dock-primary{grid-column:span 2}
  #explorer-instructions{font-size:16px;bottom:14px;line-height:1.35;left:20px;right:20px}
  .immersive-site .protein-hotspot{font-size:16px;padding:8px 12px;min-height:44px;max-width:46%;border-radius:22px}
  .explorer-guide{top:80px;right:14px;width:calc(100vw - 28px);max-height:calc(100dvh - 170px);padding:18px}.guide-header h2{font-size:23px}
  .immersive-site .molecular-directory>div{grid-template-columns:1fr}.immersive-site .molecular-directory button{padding:12px}
  .immersive-site #exploration-screen[open]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0}
  .screen-header{padding:15px 18px;gap:12px;flex-wrap:wrap}.screen-header h2{font-size:24px}.screen-eyebrow{font-size:15px}.screen-header-actions{margin-left:auto}.screen-header-actions button{padding:8px 10px}
  .screen-tabs{padding:8px 12px}.screen-tabs button{font-size:16px;padding:8px 10px}
  .immersive-site #exploration-screen main>section.shell{padding:28px 18px;scroll-margin-top:12px}.immersive-site #exploration-screen .section-title{font-size:30px}.immersive-site #exploration-screen .section-intro{font-size:17px}
  .immersive-site #exploration-screen .hero.shell{padding:30px 20px}.immersive-site #exploration-screen .hero-title{font-size:38px}
  .immersive-site #exploration-screen #module-list,.immersive-site #exploration-screen .cnn-matrices{grid-template-columns:1fr}
  .immersive-site #exploration-screen #resource-list,.immersive-site #exploration-screen #project-links,.immersive-site #exploration-screen .viewpoint-grid,.immersive-site #exploration-screen .research-gallery{grid-template-columns:1fr}
  .immersive-site #exploration-screen .stage-track{grid-template-columns:1fr 1fr}.immersive-site #exploration-screen .stage-detail{display:block}
}
@media(max-width:360px){.immersive-site .header-inner{gap:6px}.immersive-site .brand{font-size:14px;gap:7px}.immersive-site .brand-mark{width:26px;height:32px}}
@media(max-width:800px) and (max-height:680px){.explorer-intro{top:82px}.explorer-intro>p:first-child,.explorer-tagline{display:none}.explorer-intro h1{font-size:22px}.immersive-site .protein-hotspot{min-height:40px;padding-block:6px}}
@media(max-height:620px) and (min-width:801px){.explorer-intro{top:88px}.explorer-intro h1{font-size:28px}.explorer-tagline{display:none}.immersive-site .protein-zone-meta{top:88px}.immersive-site .protein-legend{display:none}.immersive-site #protein-source{bottom:105px}.immersive-site #protein-status{bottom:110px}}
@media(prefers-reduced-motion:reduce){.immersive-site #exploration-screen[open]{animation:none}.immersive-site .protein-hotspot{transition:none}}
@media print{
  body.immersive-site{height:auto;overflow:visible;background:white}.immersive-site #molecular-world,.immersive-site .site-header,.immersive-site #explorer-guide{display:none!important}
  body.immersive-site.printing-cv #exploration-screen[open]{display:block!important;position:static;width:auto;height:auto;max-width:none;max-height:none;margin:0;border:0;border-radius:0;overflow:visible;background:white;box-shadow:none}
  .immersive-site.printing-cv .screen-header,.immersive-site.printing-cv .screen-tabs{display:none!important}.immersive-site.printing-cv .screen-body{overflow:visible;height:auto}
  .immersive-site.printing-cv #exploration-screen main{display:block!important}.immersive-site.printing-cv #exploration-screen #cv{display:block!important;padding:0;color:black;background:white}
}
