/* The supplied outline logo is traced before it becomes a solid, dimensional mark. */
.intro-overlay .intro-mark{z-index:4;width:min(41vw,390px);opacity:0;animation:introMarkReveal .35s ease .12s forwards}
.intro-overlay .intro-tooth-body,.intro-overlay .intro-extrusion{display:none}
.intro-overlay .intro-contour{fill:none;stroke:#d9e3e3;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:0 1000;opacity:.9;animation:introContourDraw 1.18s cubic-bezier(.4,0,.2,1) .28s forwards}
.intro-overlay .intro-tooth-right .intro-contour{stroke:#e3e5e5;animation-delay:.34s}
.intro-overlay .intro-rim,.intro-overlay .intro-spark{animation:none;opacity:0}
.intro-overlay.is-lit .intro-rim{animation:introRim .82s ease forwards}
.intro-overlay.is-lit .intro-spark{animation:introSpark .82s linear forwards}
.intro-overlay.is-lit .intro-contour{stroke:#f4ffff;filter:drop-shadow(0 0 4px rgba(202,244,255,.7))}
.intro-overlay .intro-schematic{position:absolute;z-index:2;inset:0;width:100%;height:100%;opacity:0;animation:introTechnicalIn .8s ease .45s forwards}
.intro-schematic-lines{fill:none;stroke:rgba(173,213,222,.24);stroke-width:1;stroke-dasharray:5 8}
.intro-schematic-lines circle{stroke-dasharray:3 10}
.intro-schematic-points{fill:#9bc4cb;opacity:.65}
.intro-schematic-scan{fill:none;stroke:#c7e8ec;stroke-width:1.2;stroke-dasharray:110 570;stroke-dashoffset:680;opacity:.5;animation:introScanLine 2s linear .55s forwards}
.intro-overlay .intro-annotations{position:absolute;z-index:3;inset:0;opacity:0;animation:introTechnicalIn .7s ease .7s forwards;pointer-events:none}
.intro-label{position:absolute;color:rgba(215,232,234,.72);font:600 clamp(10px,.74vw,13px)/1.4 var(--body,sans-serif);letter-spacing:.16em;white-space:nowrap}
.intro-label small{display:block;margin-top:.25rem;color:rgba(177,203,207,.48);font-size:.78em;font-weight:500;letter-spacing:.14em}
.intro-label-tl{top:22%;left:8%}.intro-label-tr{top:22%;right:8%;text-align:right}.intro-label-bl{bottom:22%;left:8%}.intro-label-br{bottom:22%;right:8%;text-align:right}
.intro-overlay.is-splitting .intro-schematic,.intro-overlay.is-splitting .intro-annotations{animation:introTechnicalOut .35s ease forwards}
@keyframes introMarkReveal{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes introContourDraw{to{stroke-dasharray:1000 0}}
@keyframes introTechnicalIn{to{opacity:1}}
@keyframes introTechnicalOut{to{opacity:0}}
@keyframes introScanLine{to{stroke-dashoffset:0}}
@media(max-width:700px){.intro-overlay .intro-mark{width:min(70vw,350px)}.intro-label{font-size:9px}.intro-label-tl,.intro-label-bl{left:4%}.intro-label-tr,.intro-label-br{right:4%}.intro-label-tl,.intro-label-tr{top:17%}.intro-label-bl,.intro-label-br{bottom:17%}}
@media(max-width:480px){.intro-label small{display:none}.intro-label-tl,.intro-label-tr{top:14%}.intro-label-bl,.intro-label-br{bottom:14%}}
@media(prefers-reduced-motion:reduce){.intro-overlay .intro-contour,.intro-overlay .intro-schematic,.intro-overlay .intro-annotations{animation:none}.intro-overlay .intro-contour{stroke-dasharray:1000 0}}

/* Moving blue-green light gives the preload stage depth without competing with the logo. */
.intro-overlay{background:linear-gradient(125deg,#020709 0%,#10232b 48%,#030a0e 100%);background-size:180% 180%;animation:introBackdropFlow 4.8s ease-in-out infinite alternate}
.intro-overlay::before{background:radial-gradient(ellipse at 48% 46%,rgba(63,113,126,.16),rgba(6,20,26,.08) 42%,rgba(1,6,9,.08) 100%);opacity:.8;animation:introAmbientFlow 3.4s ease-in-out infinite alternate}
.intro-overlay .intro-panel.left{background:linear-gradient(105deg,#020709 0%,#081922 34%,#163743 58%,#07151c 78%,#020709 100%);background-size:240% 240%;animation:introPanelGlow 2.8s ease-in-out infinite alternate}
.intro-overlay .intro-panel.right{background:linear-gradient(255deg,#020709 0%,#081922 34%,#163743 58%,#07151c 78%,#020709 100%);background-size:240% 240%;animation:introPanelGlow 2.8s ease-in-out infinite alternate-reverse}
.intro-overlay .intro-panel::after{content:"";position:absolute;inset:-25%;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,rgba(67,132,148,.15),transparent 59%);opacity:.48;animation:introLightDrift 3.2s ease-in-out infinite alternate}
.intro-overlay .intro-panel.left::after{transform-origin:right center}
.intro-overlay .intro-panel.right::after{transform-origin:left center;animation-direction:alternate-reverse}
@keyframes introBackdropFlow{from{background-position:0% 42%}to{background-position:100% 58%}}
@keyframes introPanelGlow{from{background-position:0% 35%}to{background-position:100% 65%}}
@keyframes introAmbientFlow{from{transform:translate(-3%,1%) scale(.98)}to{transform:translate(3%,-1%) scale(1.06)}}
@keyframes introLightDrift{from{transform:translateX(-8%) scale(.94);opacity:.3}to{transform:translateX(8%) scale(1.08);opacity:.68}}
@media(prefers-reduced-motion:reduce){.intro-overlay,.intro-overlay::before,.intro-overlay .intro-panel,.intro-overlay .intro-panel::after{animation:none}}
