/* Scientific artwork stays local; animations use compositor-friendly transforms. */
.hero h1{font-size:clamp(30px,3.15vw,44px);line-height:1.65;letter-spacing:-1px}.hero{gap:52px}.science-carousel{padding:0;min-width:0;isolation:isolate}.science-stage{height:465px;position:relative;isolation:isolate;overflow:hidden;border-radius:18px 90px 18px 18px;background:#0b2347;color:#fff;box-shadow:0 24px 60px #0f423221}.science-grid{position:absolute;inset:0;opacity:.13;background-image:linear-gradient(#8ebc9d30 1px,transparent 1px),linear-gradient(90deg,#8ebc9d30 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse at 50% 45%,#000,transparent 80%)}.science-halo{position:absolute;width:85%;aspect-ratio:1;border:1px solid #8ebc9d24;border-radius:50%;top:1%;left:7%;box-shadow:0 0 0 35px #80c39e04,0 0 0 70px #80c39e03;background:radial-gradient(ellipse,#3a9c7840,transparent 68%)}.science-top{position:absolute;top:26px;inset-inline:26px;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#c0d4ed;z-index:3}.science-top>span:last-child{font-size:8px;letter-spacing:2px;color:#80a9cf}.science-top i{display:inline-block;width:6px;height:6px;background:#c5ef97;border-radius:50%;margin-inline-end:7px;box-shadow:0 0 9px #c5ef9770}.science-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(12px) scale(.97);transition:opacity .85s ease,transform 1.2s ease,visibility .85s;pointer-events:none}.science-slide.active{opacity:1;visibility:visible;transform:none;pointer-events:auto}.specimen-field{position:absolute;inset:42px 0 110px;perspective:900px}.specimen{position:absolute;object-fit:contain;filter:drop-shadow(0 12px 20px #0003);user-select:none;pointer-events:none}.main-specimen{width:87%;height:100%;left:7%;top:0}.microbe-field .main-specimen{animation:microbe-swim 5.5s ease-in-out infinite;transform-origin:60% 50%}.satellite{width:35%;height:40%;opacity:.42;filter:blur(.8px);animation:satellite-drift 9s ease-in-out infinite}.satellite.one{top:4%;left:-3%;transform:rotate(35deg)}.satellite.two{bottom:-6%;right:-6%;animation-delay:-4s;transform:rotate(-30deg);opacity:.3}.molecule-field .main-specimen{width:68%;left:16%;animation:molecule-turn 9s ease-in-out infinite}.molecule-orbit{position:absolute;width:70%;height:75%;left:15%;top:15%;border:1px solid #d4da8a32;border-radius:50%;transform:rotate(-25deg) rotateX(60deg);animation:orbital-turn 14s linear infinite}.molecule-orbit:after{content:'';position:absolute;top:0;left:50%;width:7px;height:7px;background:#f6dc8c;box-shadow:0 0 18px #f6dc8c;border-radius:50%}.molecule-orbit.o2{animation-delay:-7s;animation-direction:reverse;opacity:.6}.blood-field .main-specimen{width:65%;left:20%;animation:cell-drift 7s ease-in-out infinite}.blood-field .satellite.one{width:40%;height:50%;top:6%;left:-1%;opacity:.7;animation-duration:11s}.blood-field .satellite.two{width:35%;height:40%;right:0;bottom:-2%;opacity:.55}.science-particle{position:absolute;width:4px;height:4px;background:#b5e5c1;border-radius:50%;box-shadow:0 0 13px #b5e5c155;animation:particle-rise 7s ease-in-out infinite}.science-particle.p1{top:25%;right:19%}.science-particle.p2{bottom:20%;left:20%;width:3px;height:3px;animation-delay:-3s}.science-particle.p3{top:40%;left:8%;width:5px;height:5px;animation-delay:-5s}.science-caption{position:absolute;bottom:35px;inset-inline:30px;text-align:right}.scene-en{font-size:9px;letter-spacing:3px;color:#a8ceff;display:block;text-align:right}.science-caption h2{font-size:22px;letter-spacing:-.4px;line-height:1.8;margin:8px 0 5px;color:#f1f6ed}.science-caption p{font-size:11px;color:#afcec1;margin:0}.science-caption p span{padding-inline:7px}.science-scale{position:absolute;left:22px;bottom:14px;color:#a9c6b5;font-size:7px;letter-spacing:.1px}.science-controls{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:12px}.scene-tabs{display:flex;gap:6px;min-width:0}.scene-tabs button,.scene-pause{font-family:var(--font);font-size:10px;cursor:pointer;border:1px solid #d4e1f3;background:transparent;color:#46628a;border-radius:7px;min-height:40px;padding:8px 12px;transition:background .25s,color .25s}.scene-tabs button[aria-pressed=true]{background:#e3edfc;color:#174f8d;border-color:#b5cdeb}.scene-tabs button:hover,.scene-pause:hover{background:#e3edfc}.scene-pause{width:40px;flex-shrink:0;font-size:17px;padding:4px}.scene-tabs button:focus-visible,.scene-pause:focus-visible{outline:3px solid #9e6916;outline-offset:3px}.science-carousel.is-paused *, .science-slide:not(.active) *{animation-play-state:paused!important}
@keyframes microbe-swim{0%,100%{transform:translate(-3px,5px) rotate(-4deg) scale(1)}35%{transform:translate(10px,-9px) rotate(3deg) scale(1.035, .975)}70%{transform:translate(-7px,-3px) rotate(-1deg) scale(.985,1.025)}}
@keyframes satellite-drift{0%,100%{translate:0 0;rotate:-9deg}50%{translate:12px -18px;rotate:10deg}}
@keyframes molecule-turn{0%,100%{transform:rotate(-9deg) rotateY(-18deg) translateY(5px)}50%{transform:rotate(12deg) rotateY(20deg) translateY(-8px)}}
@keyframes orbital-turn{to{transform:rotate(335deg) rotateX(60deg)}}
@keyframes cell-drift{0%,100%{transform:translate(5px,9px) rotate(-15deg) rotateY(-12deg)}50%{transform:translate(-9px,-12px) rotate(10deg) rotateY(17deg)}}
@keyframes particle-rise{0%,100%{transform:translate(0,8px);opacity:.3}50%{transform:translate(9px,-15px);opacity:.9}}
@media(max-width:1000px){.hero h1{font-size:34px}.hero{gap:32px}.science-stage{height:425px}.science-top{inset-inline:18px}.science-top>span:last-child{display:none}.science-caption{inset-inline:22px}.science-caption h2{font-size:18px}.scene-tabs{gap:4px}.scene-tabs button{font-size:9px;padding:7px 8px}.science-controls{gap:6px}}
@media(max-width:700px){.hero h1{font-size:31px;line-height:1.65;max-width:400px}.science-carousel{max-width:490px}.science-stage{height:410px;border-top-right-radius:65px}.science-caption h2{font-size:20px}.science-caption{bottom:35px}.science-top{top:22px}.science-top>span:last-child{display:block;font-size:7px;letter-spacing:1px}.scene-tabs button{font-size:9px;padding:8px 10px}.science-controls{margin-top:12px}.specimen-field{inset:45px 0 115px}}
@media(prefers-reduced-motion:reduce){.science-carousel *{animation:none!important;transition:none!important}.science-slide{transform:none}.science-slide:not(.active){visibility:hidden}}

/* All programme scenes share layout, with subject-specific motion and layers. */
.companion-specimen{width:30%;height:42%;right:1%;top:4%;opacity:.8;animation:satellite-drift 10s ease-in-out infinite}
.protozoa-field .main-specimen{width:70%;left:15%;animation:microbe-swim 6s ease-in-out infinite}
.spores-field .main-specimen{width:80%;left:10%;transform-origin:50% 90%;animation:hypha-sway 8s ease-in-out infinite}
.spores-field .science-particle{width:7px;height:7px;background:#e5e5ac;animation:spore-release 5s ease-in-out infinite}
.clot-field .main-specimen{animation:fibrin-breathe 7s ease-in-out infinite}
.binding-field .main-specimen,.immune-field .main-specimen{width:67%;left:16%;animation:molecule-turn 10s ease-in-out infinite}
.binding-dot{position:absolute;width:14px;height:14px;background:radial-gradient(circle at 30% 30%,#fff6c7,#b99b42);border-radius:50%;box-shadow:0 0 20px #e2cf6930;animation:antigen-bind 5s ease-in-out infinite}
.binding-dot.b1{top:8%;right:24%}.binding-dot.b2{top:14%;left:20%;animation-delay:-2.5s}
.protein-field .main-specimen{width:58%;left:32%;animation:molecule-turn 9s ease-in-out infinite}
.sample-vial{position:absolute;width:67px;height:160px;left:17%;top:22%;border:2px solid #bde5d19c;border-radius:8px 8px 25px 25px;transform:rotate(-12deg);background:linear-gradient(90deg,#b5ecd428,transparent 40%,#b5ecd414);box-shadow:inset 4px 0 9px #b5ecd424}
.sample-vial:before{content:'';position:absolute;top:-11px;left:-5px;right:-5px;height:22px;border-radius:6px;background:repeating-linear-gradient(90deg,#8cbf9b 0 4px,#70a881 4px 6px)}
.sample-vial i{position:absolute;bottom:5px;left:4px;right:4px;height:45%;background:linear-gradient(0deg,#e4c66a88,#e2d28544);border-radius:0 0 20px 20px;animation:sample-glimmer 4s ease-in-out infinite}
.glycation-field .main-specimen,.compatibility-field .main-specimen{width:63%;left:10%;animation:cell-drift 8s ease-in-out infinite}
.glycation-field .companion-specimen{right:1%;top:12%;width:35%;animation:molecule-turn 9s ease-in-out infinite}
.compatibility-field .companion-specimen{width:40%;height:65%;top:3%;right:0;animation:antibody-drift 8s ease-in-out infinite}
.cardiac-field .main-specimen{width:60%;height:83%;left:22%;top:-5%;animation:cardiac-beat 3s ease-in-out infinite}
.cardiac-trace{position:absolute;width:80%;height:70px;bottom:0;left:10%;overflow:visible}.cardiac-trace path{stroke:#cbe899;stroke-width:2;stroke-dasharray:600;animation:trace-draw 4s linear infinite;filter:drop-shadow(0 0 4px #d6eb9d80)}
.dna-field .main-specimen{width:55%;left:18%;animation:dna-turn 10s ease-in-out infinite}
.dna-field .companion-specimen{width:38%;right:-1%;top:8%}
.viral-field .main-specimen{width:65%;left:8%;animation:virus-turn 12s ease-in-out infinite}
.viral-field .companion-specimen{height:78%;width:26%;top:3%;right:0;animation:dna-turn 10s ease-in-out infinite}
.molecular-scan{position:absolute;height:1px;background:linear-gradient(90deg,transparent,#bee8bf,transparent);left:15%;width:70%;box-shadow:0 0 15px #bee8bf55;animation:scan-specimen 6s ease-in-out infinite}
.prenatal-field .main-specimen{width:75%;left:12%;animation:prenatal-float 8s ease-in-out infinite}
.cells-field .main-specimen{width:84%;left:8%;animation:cell-cluster 9s ease-in-out infinite}
.stain-field .main-specimen{animation:microbe-swim 7s ease-in-out infinite;filter:hue-rotate(100deg) saturate(.75)}
.stain-field .satellite.one{filter:hue-rotate(100deg) blur(.6px)}.stain-field .satellite.two{filter:hue-rotate(220deg) saturate(.7)}
.science-controls{align-items:flex-end;gap:12px}.scene-select-label{font-size:9px;color:#557191;min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.scene-select-label select{font-family:var(--font);font-size:11px;min-height:42px;width:100%;min-width:0;color:#174f8d;border:1px solid #c8d8ee;border-radius:7px;background:#e7effc;padding:6px 9px;cursor:pointer;text-overflow:ellipsis}.scene-select-label select:focus-visible{outline:3px solid #9e6916;outline-offset:3px}.scene-navigation{display:flex;align-items:center;gap:5px}.scene-navigation button{font:16px var(--font);cursor:pointer;width:34px;min-height:42px;padding:4px;border:1px solid #d4e1f3;background:transparent;color:#46628a;border-radius:7px}.scene-navigation button:hover{background:#e3edfc}.scene-navigation button:focus-visible{outline:3px solid #9e6916;outline-offset:3px}.scene-count{font-size:10px;white-space:nowrap;color:#557191;min-width:35px;text-align:center}
@keyframes hypha-sway{0%,100%{transform:rotate(-3deg) translateY(3px)}50%{transform:rotate(3deg) translateY(-5px)}}
@keyframes spore-release{0%{transform:translate(0,5px) scale(.7);opacity:0}40%{opacity:.8}100%{transform:translate(20px,-50px) scale(1.1);opacity:0}}
@keyframes fibrin-breathe{0%,100%{transform:scale(.97) rotate(-3deg)}50%{transform:scale(1.03) rotate(3deg)}}
@keyframes antigen-bind{0%,100%{transform:translateY(-12px) scale(.8);opacity:.4}50%{transform:translateY(10px) scale(1);opacity:1}}
@keyframes sample-glimmer{50%{opacity:.55;transform:scaleY(.96)}}
@keyframes antibody-drift{0%,100%{transform:translate(0,4px) rotate(7deg)}50%{transform:translate(-10px,-6px) rotate(-5deg)}}
@keyframes cardiac-beat{0%,35%,100%{transform:scale(.98) rotate(-6deg)}42%{transform:scale(1.045) rotate(-5deg)}52%{transform:scale(1) rotate(-6deg)}60%{transform:scale(1.025) rotate(-5deg)}}
@keyframes trace-draw{0%{stroke-dashoffset:600;opacity:.5}65%,100%{stroke-dashoffset:0;opacity:1}}
@keyframes dna-turn{0%,100%{transform:rotate(-10deg) rotateY(-25deg)}50%{transform:rotate(7deg) rotateY(25deg)}}
@keyframes virus-turn{0%,100%{transform:rotate(-10deg) translateY(4px)}50%{transform:rotate(14deg) translateY(-8px)}}
@keyframes scan-specimen{0%,100%{top:15%;opacity:0}20%,80%{opacity:.5}50%{top:85%;opacity:.7}}
@keyframes prenatal-float{0%,100%{transform:translateY(5px) rotate(-3deg)}50%{transform:translateY(-7px) rotate(3deg)}}
@keyframes cell-cluster{0%,100%{transform:rotate(-5deg) scale(.98)}50%{transform:rotate(5deg) scale(1.025)}}
@media(max-width:1000px){.science-controls{gap:7px}.scene-select-label select{font-size:10px}.scene-navigation{gap:3px}.scene-navigation button{width:30px}.scene-count{font-size:9px;min-width:30px}}
@media(max-width:700px){.scene-select-label select{font-size:10px}.sample-vial{left:14%;width:50px;height:140px}.science-caption p{font-size:10px}}

/* Use wide desktop screens without stretching paragraph line lengths. */
@media(min-width:1001px){
  .wrap{width:min(1560px,calc(100% - 72px))}
  .hero{gap:clamp(48px,4vw,76px)}
  .hero h1{max-width:650px}
  .hero .lead{max-width:580px}
}
@media(min-width:1600px){
  .hero{min-height:700px;padding-block:50px 65px}
  .science-stage{height:520px}
}
