/* Rootstone arrival: a single 1.45-second composition, never a loading screen. */
.rootstone-intro[hidden]{
 display:grid!important;position:fixed;inset:0;z-index:90;place-items:center;
 width:auto;height:auto;overflow:hidden;isolation:isolate;contain:layout paint;
 pointer-events:none!important;user-select:none;opacity:0;
 animation:rootstone-intro-out 1.45s ease both;
}
.rootstone-intro *{box-sizing:border-box;pointer-events:none!important;user-select:none}
.rootstone-intro__veil,.rootstone-intro__grid,.rootstone-intro__beam{position:absolute;display:block;inset:0}
.rootstone-intro__veil{background:#040e12e0;animation:rootstone-intro-veil .68s ease-out both}
.rootstone-intro__grid{
 background-image:linear-gradient(#a1e5ca12 1px,transparent 1px),linear-gradient(90deg,#a1e5ca12 1px,transparent 1px);
 background-size:64px 64px;mask-image:radial-gradient(ellipse at center,#000,transparent 67%);
 -webkit-mask-image:radial-gradient(ellipse at center,#000,transparent 67%);
 animation:rootstone-intro-grid 1.15s ease both;
}
.rootstone-intro__beam{
 inset:50% 0 auto;height:1px;transform-origin:center;
 background:linear-gradient(90deg,transparent 5%,#75c8bf22 25%,#b6e6a6cc 47%,#ccffe3e0 50%,#7adbd9aa 55%,#75c8bf22 75%,transparent 95%);
 box-shadow:0 0 16px #88e3c447;animation:rootstone-intro-beam 1.15s cubic-bezier(.2,.7,.2,1) both;
}
.rootstone-intro__beam:after{
 content:'';position:absolute;inset:-17px 12%;
 background:radial-gradient(ellipse,#98e2bd1f,transparent 70%);
}
.rootstone-intro__core{
 position:relative;display:grid;place-items:center;width:min(78vw,360px);aspect-ratio:1;
 animation:rootstone-intro-core 1.45s cubic-bezier(.2,.7,.2,1) both;
}
.rootstone-intro__halo,.rootstone-intro__orbit{
 position:absolute;display:block;inset:0;border-radius:50%;
 border:1px solid #a7d9b933;box-shadow:inset 0 0 32px #84ddba0a,0 0 40px #71d6bf0a;
 animation:rootstone-intro-orbit 1.3s cubic-bezier(.2,.6,.2,1) both;
}
.rootstone-intro__halo:before,.rootstone-intro__halo:after{
 content:'';position:absolute;inset:9%;border:1px solid #8ad6c721;border-radius:50%;
}
.rootstone-intro__halo:after{inset:-6%;border-color:#8ad6c70f}
.rootstone-intro__orbit{
 inset:15%;border-color:#ade7bb75 transparent #6ed2d757 transparent;
 box-shadow:none;animation-name:rootstone-intro-arc;
}
.rootstone-intro__reticle{position:absolute;inset:29% 5%;display:block}
.rootstone-intro__corner{position:absolute;width:12px;height:12px;border:0 solid #a6dfbb88}
.rootstone-intro__corner:nth-child(1){left:0;top:0;border-left-width:1px;border-top-width:1px}
.rootstone-intro__corner:nth-child(2){right:0;top:0;border-right-width:1px;border-top-width:1px}
.rootstone-intro__corner:nth-child(3){left:0;bottom:0;border-left-width:1px;border-bottom-width:1px}
.rootstone-intro__corner:nth-child(4){right:0;bottom:0;border-right-width:1px;border-bottom-width:1px}
.rootstone-intro .rootstone-intro__logo{
 position:relative;display:block;width:clamp(168px,54vw,258px);height:auto;max-width:82%;
 object-fit:contain;filter:drop-shadow(0 0 14px #a9e6c129);
 animation:rootstone-intro-logo 1.45s ease both;
}
.rootstone-intro__scan{
 position:absolute;display:block;left:11%;right:11%;top:27%;height:1px;
 background:linear-gradient(90deg,transparent,#b1f3da9c,transparent);
 box-shadow:0 0 10px #92e6cf38;animation:rootstone-intro-scan .88s .08s ease-in-out both;
}
@keyframes rootstone-intro-out{0%,64%{opacity:1}100%{opacity:0}}
@keyframes rootstone-intro-veil{0%{opacity:.94}40%{opacity:.45}72%{opacity:.12}100%{opacity:0}}
@keyframes rootstone-intro-grid{0%{opacity:0}25%{opacity:.62}100%{opacity:0}}
@keyframes rootstone-intro-core{0%{opacity:0;transform:scale(.94)}20%,54%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.035)}}
@keyframes rootstone-intro-orbit{0%{opacity:0;transform:scale(.82)}25%{opacity:.9}100%{opacity:0;transform:scale(1.13)}}
@keyframes rootstone-intro-arc{0%{opacity:0;transform:rotate(-38deg) scale(.9)}25%{opacity:.85}100%{opacity:0;transform:rotate(28deg) scale(1.04)}}
@keyframes rootstone-intro-logo{0%{opacity:0;transform:translateY(5px)}19%,58%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-3px)}}
@keyframes rootstone-intro-beam{0%{opacity:0;transform:scaleX(.12)}28%{opacity:.74;transform:scaleX(.7)}65%{opacity:.3}100%{opacity:0;transform:scaleX(1)}}
@keyframes rootstone-intro-scan{0%{opacity:0;transform:translateY(0)}20%{opacity:.65}80%{opacity:.24}100%{opacity:0;transform:translateY(145px)}}
@media(max-width:480px){
 .rootstone-intro__core{width:min(80vw,300px)}
 .rootstone-intro__grid{background-size:44px 44px}
 .rootstone-intro__halo{box-shadow:none}
 .rootstone-intro__scan{animation-name:rootstone-intro-scan-mobile}
 @keyframes rootstone-intro-scan-mobile{0%{opacity:0;transform:translateY(0)}20%{opacity:.5}80%{opacity:.2}100%{opacity:0;transform:translateY(115px)}}
}
@media(prefers-reduced-motion:reduce){.rootstone-intro[hidden]{display:none!important}.rootstone-intro *{animation:none!important}}
