/* Reference-matched homepage composition */
/* The landing hero is a fixed cinematic dark composition — its cell imagery
   uses mix-blend-mode:screen, which only reads correctly over a dark field.
   Lock the palette to dark so headings, nav, and controls stay readable even
   when the visitor has selected light mode for the rest of the site. */
body.home-page {
  --bg:#030711;
  --panel:rgba(8,18,35,.72); --panel-strong:rgba(6,13,27,.91);
  --text:#eef6ff; --muted:#aab7ca; --faint:#6f7f98;
  --line:rgba(130,190,255,.22);
  color-scheme: dark;
}
.home-page { background:#020710; font-size:16px; }
.home-page::before { background-size:46px 46px; opacity:.28; }
.home-page .site-header { position:relative; width:min(calc(100% - 48px), 1260px); height:98px; padding:15px 8px; gap:22px; }
.home-page .site-header::before { inset:7px -4px; background:linear-gradient(90deg,rgba(2,7,16,.9),rgba(3,9,20,.66)); border-color:rgba(116,185,255,.08); box-shadow:none; }
.home-page .brand { min-width:286px; gap:14px; }
.home-page .brand-mark { font-size:47px; }
.home-page .brand strong { font-family:Georgia,serif; font-size:14px; font-weight:500; }
.home-page .brand small { font-size:11px; }
.home-page .brand small i { color:#ff79cc; font-style:normal; }
.home-page .site-nav { gap:6px; flex-wrap:nowrap; }
.home-page .nav-link { padding:11px 10px; font-size:13px; white-space:nowrap; }
.home-page .header-actions { margin-left:auto; }


.home-page main { width:100%; }
.home-hero { position:relative; width:min(calc(100% - 48px),1038px); height:515px; margin:0 auto; overflow:hidden; border-bottom:1px solid rgba(84,171,255,.13); }
.home-hero::before { content:""; position:absolute; inset:0 -24px; background:radial-gradient(circle at 71% 38%,rgba(24,83,183,.31),transparent 39%),radial-gradient(circle at 5% 85%,rgba(255,46,175,.12),transparent 24%); pointer-events:none; }
.home-page .hero-copy { position:relative; z-index:7; width:42%; padding:57px 0 0 17px; }
.home-page .home-hero h1 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:38px; line-height:1.14; letter-spacing:-.025em; font-weight:400; text-shadow:0 3px 30px #000; }
.home-page .gradient-text { line-height:1.25; }
.home-page .hero-lede { max-width:330px; margin:17px 0 0; font-size:13.7px; line-height:1.58; color:#aeb7c5; }
.home-page .cta-row { margin-top:17px; gap:13px; }
.home-page .button { min-height:46px; padding:12px 19px; border-radius:7px; font-size:12px; justify-content:center; }
.home-page .button.primary { min-width:144px; box-shadow:0 9px 30px rgba(127,75,255,.24); }
.home-page .button.ghost { min-width:142px; background:rgba(2,7,16,.66); border-color:rgba(184,209,255,.3); }

.home-page .hero-stage { position:absolute; z-index:4; inset:0 0 0 38%; min-height:0; overflow:visible; }
.hero-cell-wrap { position:absolute; z-index:4; width:540px; height:540px; left:85px; top:28px; border-radius:50%; pointer-events:none; }
.hero-cell-wrap::after { content:""; position:absolute; inset:-9%; border-radius:50%; background:radial-gradient(circle,transparent 54%,rgba(24,107,255,.18) 63%,transparent 71%); animation:haloPulse 4s ease-in-out infinite; }
.home-page .hero-cell { width:100%; height:100%; border-radius:50%; object-fit:cover; filter:hue-rotate(28deg) saturate(.98) brightness(.98) contrast(1.06); mix-blend-mode:screen; mask-image:radial-gradient(circle,#000 55%,transparent 72%); animation:cellDrift 12s ease-in-out infinite alternate; cursor:zoom-in; }
.home-page .cell-zoom-btn:hover + .cell-caption,
.home-page .cell-zoom-btn:focus-visible + .cell-caption { opacity:1; }
.home-page .cell-halo { position:absolute; inset:-12%; border-radius:50%; background:conic-gradient(from 10deg,transparent,rgba(71,158,255,.3),transparent,rgba(255,63,197,.24),transparent); filter:blur(15px); animation:spin 18s linear infinite; }
.radar-ring { position:absolute; border:1px solid rgba(62,150,255,.25); border-radius:50%; box-shadow:inset 0 0 34px rgba(42,106,255,.08); }
.radar-one { width:495px; height:495px; left:102px; top:50px; animation:spin 22s linear infinite; }
.radar-two { width:576px; height:576px; left:62px; top:8px; border-style:dashed; animation:spin 28s linear infinite reverse; }
.cell-orbit { position:absolute; border-radius:50%; border:1px dashed rgba(75,155,255,.22); }
.orbit-a { width:620px; height:320px; left:34px; top:121px; transform:rotate(-13deg); }
.orbit-b { width:480px; height:270px; left:122px; top:147px; transform:rotate(27deg); border-color:rgba(255,75,202,.15); }
.home-page .float-cell { position:absolute; z-index:3; border-radius:50%; object-fit:cover; box-shadow:0 0 35px rgba(40,114,255,.25); animation:floatParticle 8s ease-in-out infinite alternate; pointer-events:none; }
.home-page .float-blue { width:112px; height:112px; right:-8px; top:34px; opacity:.64; object-position:18% 42%; filter:hue-rotate(12deg); }
.home-page .float-red { width:135px; height:86px; right:-20px; top:245px; opacity:.76; transform:rotate(-18deg); }
.home-page .float-gold { width:91px; height:91px; left:24px; bottom:41px; opacity:.72; animation-delay:-2s; }
.home-page .hotspot { position:absolute; z-index:12; display:block; min-width:220px; max-width:280px; padding:0; border:1px solid rgba(90,197,255,.56); border-radius:12px; background:linear-gradient(110deg,rgba(3,18,26,.97),rgba(22,9,48,.97)); color:#eff8ff; box-shadow:0 0 0 1px rgba(255,255,255,.03),0 10px 24px rgba(0,0,0,.36); overflow:hidden; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.home-page .hotspot-head { display:flex; align-items:center; gap:12px; width:100%; padding:8px 9px 10px 13px; background:none; border:0; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.home-page .hotspot-head span { line-height: 1.3; flex: 1; padding-right: 6px; }
.home-page .hotspot strong,.home-page .hotspot small { display:block; }
.home-page .hotspot strong { font-size:12px; }
.home-page .hotspot small { margin-top:2px; color:#9caac0; font-size:9px; line-height:1.5; padding-bottom:2px; }
.home-page .hotspot i { position:relative; margin-left:auto; width:25px; height:25px; flex-shrink:0; border:1px solid rgba(172,205,255,.34); border-radius:50%; display:grid; place-items:center; font-style:normal; transition:background .25s ease,color .25s ease,border-color .25s ease; }
.home-page .hotspot:hover,.home-page .hotspot.active { transform:translateY(-3px); border-color:#ff68d1; box-shadow:0 0 22px rgba(255,58,197,.2); }
/* "+" affordance: gentle idle hint to invite a click, ping ring + fill when active */
.home-page .hotspot:not(.active) i { animation:plusHint 2.6s ease-in-out infinite; }
.home-page .hotspot.active i { background:#ff68d1; color:#180a1f; border-color:#ff68d1; transform:rotate(45deg); }
.home-page .hotspot.active i::after { content:""; position:absolute; inset:-3px; border-radius:50%; border:1px solid rgba(255,104,209,.8); animation:hotspotPing 1.7s ease-out infinite; pointer-events:none; }
.home-page .hotspot-body-wrapper { display: block; }
.home-page .hotspot-body { max-height:0; margin:0; padding:0 13px; overflow:hidden; color:#c8d6ec; font-size:11px; line-height:1.5; opacity:0; transition:max-height .35s ease,opacity .3s ease,padding .3s ease; }
.home-page .hotspot.active .hotspot-body { opacity:1; padding-top:2px; padding-bottom:12px; }
@keyframes plusHint { 0%,100% { box-shadow:0 0 0 0 rgba(120,208,255,0); } 50% { box-shadow:0 0 0 4px rgba(120,208,255,.16); } }
@keyframes hotspotPing { 0% { transform:scale(.75); opacity:.85; } 100% { transform:scale(2); opacity:0; } }
.home-page .hotspot.one { left:70px; top:45px; }
.home-page .hotspot.two { right:4px; top:164px; }
.home-page .hotspot.three { left:98px; top:330px; bottom:auto; }
.signal-floor { position:absolute; z-index:2; left:31%; right:-2%; bottom:-88px; height:250px; opacity:.8; transform:rotate(-1deg); mask-image:linear-gradient(transparent,#000 26%,#000 60%,transparent 90%); mix-blend-mode:screen; pointer-events:none; }
.signal-floor video { width:100%; height:100%; object-fit:cover; filter:saturate(1.25) hue-rotate(3deg); }

.home-page .proof-ribbon { position:relative; z-index:11; width:min(calc(100% - 70px),980px); min-height:92px; margin:-1px auto 0; padding:11px 13px; display:grid; grid-template-columns:.85fr .72fr 1.38fr .75fr .72fr 1.24fr; border:1px solid rgba(126,183,255,.27); border-radius:12px; background:linear-gradient(110deg,rgba(4,15,29,.96),rgba(3,8,17,.96)); box-shadow:0 13px 45px rgba(0,0,0,.36); }
.home-page .proof-item { min-width:0; min-height:0; padding:0 15px; display:flex; align-items:center; gap:12px; border-right:1px solid rgba(150,199,255,.13); }
.home-page .proof-item:last-child { border-right:0; }
.home-page .proof-icon { color:#6caaff; font-size:27px; text-shadow:0 0 18px rgba(58,134,255,.55); }
.home-page .proof-item strong { display:block; font-family:Georgia,serif; font-size:24px; font-weight:400; line-height:1; color:#edf3ff; }
.home-page .proof-item span span,.home-page .proof-item div>span { display:block; margin-top:4px; font-size:10.5px; line-height:1.25; color:#aab5c7; }
.home-page .proof-item.institutional strong { font-size:18px; letter-spacing:.03em; }
.home-page .proof-item.institutional div>span { color:#e5ebf7; }
.home-page .proof-item.institutional b { display:block; max-width:145px; font-size:7px; line-height:1.15; }
.shield { width:31px; height:38px; clip-path:polygon(50% 0,100% 13%,89% 74%,50% 100%,11% 74%,0 13%); display:grid; place-items:center; background:linear-gradient(#b5c5dd,#52647e); color:#06101f; font-family:Georgia,serif; }
.home-page .proof-item.journal strong { font-size:13px; line-height:1.15; }

.home-section { width:min(calc(100% - 70px),980px); margin:0 auto; }
.section-rule { height:51px; display:flex; align-items:end; gap:13px; padding:0 10px 9px; }
.section-rule h2 { margin:0; color:#75b6ff; text-transform:uppercase; letter-spacing:.29em; font:700 10px/1.2 Inter,system-ui,sans-serif; white-space:nowrap; }
.section-rule span { flex:1; height:1px; margin-bottom:4px; background:linear-gradient(90deg,rgba(95,179,255,.5),rgba(95,179,255,.08)); position:relative; }
.section-rule span::before,.section-rule span::after { content:""; position:absolute; top:-2px; width:4px; height:4px; border-radius:50%; background:#8ddfff; box-shadow:0 0 8px #6abaff; }
.section-rule span::before { left:12%; }.section-rule span::after { right:18%; }
.research-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.research-tile { height:151px; display:grid; grid-template-columns:132px 1fr 30px; gap:15px; align-items:center; padding:8px; border:1px solid rgba(126,187,255,.28); border-radius:11px; background:linear-gradient(120deg,rgba(5,18,31,.93),rgba(4,10,20,.84)); overflow:hidden; }
.research-tile img { width:132px; height:133px; object-fit:cover; border-radius:8px; }
.research-tile strong { display:block; font:400 15px/1.2 Georgia,serif; }
.research-tile small { display:block; margin-top:9px; color:#a8b4c7; font-size:10.5px; line-height:1.45; }
.research-tile>b { align-self:end; width:30px; height:30px; margin-bottom:2px; display:grid; place-items:center; border:1px solid rgba(90,181,255,.5); border-radius:50%; color:#cceaff; }

.training .section-rule { height:50px; }
.home-page .timeline-strip { position:relative; height:119px; padding:5px 23px 0; display:grid; grid-template-columns:repeat(5,1fr); border:0; border-radius:0; background:none; overflow:visible; }
.home-page .timeline-line { position:absolute; z-index:0; top:39px; left:8%; right:4%; height:2px; background:linear-gradient(90deg,#2674ff,#63dbff 43%,#bd59ff 70%,#ff4ebc); box-shadow:0 0 11px #39a9ff; }
.home-page .timeline-line::after { content:""; position:absolute; right:-5px; top:-4px; border-left:9px solid #ff59c5; border-top:5px solid transparent; border-bottom:5px solid transparent; }
.home-page .timeline-node { position:relative; z-index:2; padding:0; border:0; background:none; color:#e7edf8; text-align:center; font:inherit; cursor:pointer; }
.home-page .timeline-icon { width:55px; height:55px; margin:0 auto 5px; display:grid; place-items:center; border:1px solid rgba(102,186,255,.62); border-radius:50%; background:radial-gradient(circle,rgba(22,82,124,.95),rgba(6,19,38,.98)); color:#9fd8ff; font-size:27px; box-shadow:0 0 21px rgba(50,170,255,.25); transition:transform .25s ease,box-shadow .25s ease; }
.home-page .timeline-node:nth-of-type(n+4) .timeline-icon { color:#ef9bea; border-color:rgba(255,101,215,.58); background:radial-gradient(circle,rgba(85,21,83,.9),rgba(21,8,37,.98)); }
.home-page .timeline-node:hover .timeline-icon,.home-page .timeline-node.active .timeline-icon { transform:translateY(-4px) scale(1.06); box-shadow:0 0 25px rgba(78,208,255,.55); }
.home-page .timeline-node strong { display:block; font:400 13px/1.1 Georgia,serif; }
.home-page .timeline-node small { display:block; margin-top:3px; color:#a4afbf; font-size:10px; line-height:1.35; }
.timeline-detail { height:0; margin:0; overflow:hidden; color:#92aac8; text-align:center; font-size:10px; opacity:0; transition:height .25s,opacity .25s; }
.training:focus-within .timeline-detail,.home-page .timeline-detail.show { height:auto; min-height:19px; opacity:1; }

.home-features { display:grid; grid-template-columns:1fr 1.05fr 1fr; grid-auto-rows:321px; gap:15px; margin-top:8px; padding-bottom:17px; }
.home-page .feature-panel { height:321px; min-height:321px; padding:20px 21px; border:1px solid rgba(123,185,255,.32); border-radius:12px; background:linear-gradient(135deg,rgba(5,19,33,.94),rgba(3,9,18,.9)); overflow:hidden; }
.home-page .feature-panel h2 { margin:17px 0 0; font:400 23px/1.22 Georgia,serif; }
.home-page .eyebrow { color:#7bbaff; font-size:9px; letter-spacing:.28em; }
.home-page .check-list { margin:18px 0 17px; gap:10px; }
.home-page .check-list li { font-size:11px; }
.home-page .media-panel { position:relative; padding:0; height:321px; min-height:321px; border-color:rgba(97,205,255,.42); }
.home-page .media-panel video { min-height:0; height:100%; object-fit:cover; filter:saturate(1.18) hue-rotate(14deg); transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.home-page .media-panel:hover video { transform:scale(1.07); }
.media-caption { position:absolute; z-index:3; left:16px; bottom:14px; color:#fff; font:16px/1.1 Georgia,serif; opacity:0; transform:translateY(7px); transition:.3s ease; }
.media-caption span { color:#9bdcff; font:8px/1.2 Inter,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.16em; }
.media-panel:hover .media-caption { opacity:1; transform:none; }
.home-page .publication-panel { border-color:rgba(255,105,196,.35); }
.home-page .publication-mini { grid-template-columns:86px 1fr; gap:15px; padding:13px 0; border-color:rgba(160,210,255,.12); }
.home-page .publication-mini img { width:86px; height:86px; border-radius:6px; }
.home-page .publication-mini h3 { margin:4px 0 5px; font:400 15px/1.2 Georgia,serif; }
.home-page .publication-mini p { font-size:9.5px; line-height:1.35; }
.publication-link { display:flex; justify-content:space-between; padding-top:12px; font-size:11px; }
.publication-link span { color:#79b7ff; }
.scroll-cue { width:30px; height:22px; margin:-17px auto 0; display:grid; place-items:center; color:#d7e8ff; font-size:23px; }
.home-footer { display:none; }

@keyframes cellDrift { to { transform:translate3d(6px,-8px,0) scale(1.025) rotate(1deg); } }
@keyframes floatParticle { to { transform:translate3d(7px,-13px,0) rotate(5deg); } }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes haloPulse { 50% { transform:scale(1.045); opacity:.65; } }

@media (max-width:980px) {
  .home-page .site-header { height:82px; width:min(calc(100% - 28px),1038px); }
  .home-page .brand { min-width:0; }
  .home-page .site-nav { top:76px; z-index:20; flex-direction:column; flex-wrap:wrap; }
  .home-page .site-nav.open { display:flex; }
  .home-hero { width:min(calc(100% - 28px),1038px); height:auto; min-height:960px; overflow:hidden; }
  .home-page .hero-copy { width:82%; padding:64px 12px 0; }
  .home-page .home-hero h1 { font-size:clamp(37px,7vw,56px); }
  .home-page .hero-stage { inset:450px 0 0 0; transform:scale(.88); transform-origin:center top; }
  .signal-floor { left:0; }
  .home-page .proof-ribbon { grid-template-columns:repeat(3,1fr); margin-top:-1px; }
  .home-page .proof-item:nth-child(3) { border-right:0; }
  .home-page .proof-item:nth-child(-n+3) { padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid rgba(150,199,255,.13); }
  .research-grid,.home-features { grid-template-columns:1fr; }
  .research-tile { grid-template-columns:132px 1fr 36px; }
  .home-page .timeline-strip { height:auto; padding:10px; grid-template-columns:1fr; gap:15px; }
  .home-page .timeline-line { left:50%; top:15px; bottom:15px; width:2px; height:auto; }
  .home-page .timeline-node { display:grid; grid-template-columns:65px 1fr; text-align:left; align-items:center; background:rgba(4,13,25,.82); border-radius:12px; padding:7px; }
  .home-page .timeline-icon { grid-row:span 2; margin:0; }
  .home-page .timeline-node strong,.home-page .timeline-node small { position:relative; z-index:2; }
}

@media (max-width:620px) {
  .home-page .brand-mark { font-size:38px; }
  .home-page .brand strong { font-size:11px; }.home-page .brand small { font-size:9px; }
  .home-hero { min-height:1060px; }
  .home-page .hero-copy { width:100%; padding-top:44px; }
  .home-page .home-hero h1 { font-size:clamp(35px,11vw,49px); }
  .home-page .hero-lede { max-width:96%; }
  .home-page .hero-stage { inset:600px -120px 0 -125px; transform:scale(.7); }
  .home-page .hotspot { transform:scale(.92); }
  .home-page .proof-ribbon { width:calc(100% - 28px); grid-template-columns:1fr 1fr; }
  .home-page .proof-item { min-height:65px; border-bottom:1px solid rgba(150,199,255,.13); }
  .home-page .proof-item:nth-child(odd) { border-right:1px solid rgba(150,199,255,.13); }
  .home-page .proof-item:nth-child(even) { border-right:0; }
  .home-section { width:calc(100% - 28px); }
  .research-tile { grid-template-columns:104px 1fr 30px; height:126px; }
  .research-tile img { width:104px; height:108px; }
}

@media (prefers-reduced-motion:reduce) {
  .home-page .hero-cell,.home-page .cell-halo,.home-page .radar-ring,.home-page .float-cell { animation:none !important; }
  .signal-floor video,.home-page .media-panel video { display:block !important; }
}

/* --- 200 Optimizations --- */
.home-page .hotspot { transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, border-color .25s ease; }
@keyframes aurora { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.home-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(135deg, rgba(75,139,255,.08), rgba(255,85,210,.06), rgba(119,255,210,.05), rgba(155,119,255,.07));
  background-size: 400% 400%; animation: aurora 20s ease infinite; pointer-events: none;
}
@keyframes blobMorph { 0%,100% { border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%; } 25% { border-radius: 58% 42% 30% 70% / 55% 30% 70% 45%; } 50% { border-radius: 30% 70% 42% 58% / 70% 58% 42% 30%; } 75% { border-radius: 70% 30% 58% 42% / 30% 70% 45% 55%; } }
.home-hero .hero-blob { position: absolute; width: 500px; height: 500px; background: radial-gradient(circle, rgba(101,220,255,.06), rgba(155,119,255,.04)); filter: blur(60px); animation: blobMorph 18s ease-in-out infinite; z-index: 0; top: 10%; left: 20%; pointer-events: none; }
