/* Intro drawn from the two original vector contours of the Mrkoci tooth. */
.intro-overlay{position:fixed;inset:0;z-index:1000;display:block;background:#020405;overflow:hidden;isolation:isolate;pointer-events:none}
.intro-overlay::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#182024 0%,#05090b 53%,#010203 100%);opacity:1;transition:opacity 1.4s ease;z-index:0}
.intro-overlay .intro-panel{position:absolute;top:0;bottom:0;width:50.25%;height:auto;background:linear-gradient(90deg,#010203,#080d0f);opacity:1;visibility:visible;box-shadow:none;z-index:1;will-change:transform,opacity}
.intro-overlay .intro-panel.left{left:0;background:linear-gradient(90deg,#010203 10%,#090e10 100%)}
.intro-overlay .intro-panel.right{right:0;background:linear-gradient(90deg,#090e10 0%,#010203 90%)}
.intro-overlay .intro-panel::before{display:none}
.intro-mark{position:absolute;z-index:2;top:50%;left:50%;width:min(40vw,380px);height:auto;max-height:72vh;overflow:visible;transform:translate(-50%,-50%) scale(.91);opacity:0;filter:drop-shadow(0 24px 27px rgba(0,0,0,.85));animation:introArrive .55s cubic-bezier(.18,.7,.2,1) .04s forwards}
.intro-tooth-left,.intro-tooth-right{transform-box:fill-box;transform-origin:center;will-change:transform,opacity}
.intro-extrusion{opacity:0;transition:opacity .6s ease .2s}
.intro-tooth-left .intro-extrusion-far{fill:#080f12}
.intro-tooth-left .intro-extrusion-mid{fill:#253035}
.intro-tooth-left .intro-extrusion-near{fill:#566266;stroke:#819093;stroke-width:1}
.intro-tooth-right .intro-extrusion-far{fill:#414c50}
.intro-tooth-right .intro-extrusion-mid{fill:#7f898d}
.intro-tooth-right .intro-extrusion-near{fill:#b9c0c2;stroke:#e6eded;stroke-width:1}
.intro-overlay.is-splitting .intro-extrusion{opacity:1}
.intro-overlay.is-splitting .intro-tooth-left{animation:introToothLeft 1.2s linear forwards}
.intro-overlay.is-splitting .intro-tooth-right{animation:introToothRight 1.2s linear forwards}
.intro-tooth-body{stroke:rgba(238,246,247,.25);stroke-width:1.6;paint-order:stroke fill}
.intro-rim,.intro-spark{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.intro-rim{stroke:#dcf4f8;stroke-width:2.1;opacity:0;filter:url(#intro-glow);animation:introRim 1.25s ease .25s forwards}
.intro-spark{stroke:#fff;stroke-width:4.5;stroke-dasharray:0 100;opacity:0;filter:url(#intro-glow);animation:introSpark 1.25s linear .25s forwards}
.intro-light-sweep{display:none}
.intro-overlay.is-curtain{background:transparent}
.intro-overlay.is-curtain::before{opacity:0;transition:none}
.intro-overlay.is-curtain .intro-panel.left{animation:introPanelLeft 1.2s linear forwards}
.intro-overlay.is-curtain .intro-panel.right{animation:introPanelRight 1.2s linear forwards}
.intro-overlay.is-curtain .intro-panel.left{-webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 95px),transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 95px),transparent 100%)}
.intro-overlay.is-curtain .intro-panel.right{-webkit-mask-image:linear-gradient(to left,#000 0%,#000 calc(100% - 95px),transparent 100%);mask-image:linear-gradient(to left,#000 0%,#000 calc(100% - 95px),transparent 100%)}
@keyframes introArrive{0%{opacity:0;transform:translate(-50%,-50%) scale(.84)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes introSweep{to{transform:translateX(700px)}}
@keyframes introRim{0%{opacity:0}48%{opacity:.75}100%{opacity:.34}}
@keyframes introSpark{0%{opacity:0;stroke-dasharray:0 100}12%{opacity:1}88%{opacity:1;stroke-dasharray:100 0}100%{opacity:0;stroke-dasharray:100 0}}
@keyframes introPanelLeft{from{transform:translateX(0)}to{transform:translateX(-150%)}}
@keyframes introPanelRight{from{transform:translateX(0)}to{transform:translateX(150%)}}
@keyframes introToothLeft{0%{transform:translateX(0) rotate(0)}100%{transform:translateX(-75vw) rotate(-2deg)}}
@keyframes introToothRight{0%{transform:translateX(0) rotate(0)}100%{transform:translateX(75vw) rotate(2deg)}}
@media(max-width:700px){.intro-mark{width:min(68vw,330px);max-height:68vh}}
@media(prefers-reduced-motion:reduce){.intro-overlay{display:none!important}}
