.site-loader{position:fixed;inset:0;z-index:1000;background:#081b2c;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s ease}
.loading-active .site-loader{opacity:1;visibility:visible}
.loader-brand{position:relative;display:flex;align-items:center;flex-direction:column;width:250px;padding:50px 0}
.loader-brand>img{width:200px;height:auto;position:relative;z-index:1}
.loader-caption{font-family:'Space Grotesk',sans-serif;font-size:9px;letter-spacing:.24em;color:#99bebf;margin-top:20px}
.loader-orbit{position:absolute;top:-20px;width:240px;height:240px;border:1px solid #58ded01a;border-radius:50%;animation:loader-spin 4s linear infinite}
.loader-orbit::before{content:'';position:absolute;inset:20px;border:1px dashed #58ded036;border-radius:50%}
.loader-orbit span{position:absolute;left:50%;top:-3px;width:6px;height:6px;border-radius:50%;background:#58ded0;box-shadow:0 0 15px #58ded0}
.loader-orbit span:last-child{top:auto;bottom:-3px;background:#c7f5ef;width:4px;height:4px}
.loader-track{height:2px;width:100%;background:#234351;margin-top:40px;overflow:hidden}
.loader-track>span{display:block;background:#58ded0;width:40%;height:100%;animation:loader-track 1.1s ease-in-out infinite}
.reading-progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:110;background:#58ded0;transform:scaleX(0);transform-origin:left;pointer-events:none}
.site-ready .hero-content>.eyebrow,.site-ready .hero-content>h1,.site-ready .hero-content>p,.site-ready .hero-actions,.site-ready .hero-signature{animation:hero-arrive .95s cubic-bezier(.16,1,.3,1) both}
.site-ready .hero-content>h1{animation-delay:.09s}
.site-ready .hero-content>p{animation-delay:.18s}
.site-ready .hero-actions{animation-delay:.27s}
.site-ready .hero-signature{animation-delay:.36s}
.site-ready .hero-photo{animation:photo-arrive 1.8s cubic-bezier(.16,1,.3,1) both}
.enhanced-motion .motion-item{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.enhanced-motion .motion-item.motion-visible{opacity:1;transform:translateY(0)}
.service-card{overflow:hidden;isolation:isolate}
.service-card::before{content:'';position:absolute;inset:0;background:radial-gradient(240px circle at var(--glow-x,50%) var(--glow-y,50%),#58ded025,transparent 75%);opacity:0;transition:opacity .35s;z-index:-1;pointer-events:none}
.service-card:hover::before{opacity:1}
.btn,.nav-cta,.quote-next,.quote-send{transition:background .25s,box-shadow .25s,transform .25s}
.btn-primary:hover,.quote-next:hover,.quote-send:hover{box-shadow:0 8px 25px #14a0ac30}
.floating-contact:hover{box-shadow:0 8px 30px #087d8250}
dialog[open]{animation:dialog-arrive .35s cubic-bezier(.16,1,.3,1)}
.faq details[open] p{animation:faq-arrive .3s ease both}
@keyframes loader-spin{to{transform:rotate(360deg)}}
@keyframes loader-track{0%{transform:translateX(-110%)}100%{transform:translateX(350%)}}
@keyframes hero-arrive{from{opacity:0;transform:translateY(28px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes photo-arrive{from{transform:scale(1.07)}to{transform:scale(1)}}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes faq-arrive{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.site-loader{display:none}.hero-content>*,.hero-photo,dialog[open],.faq details[open] p,.loader-orbit,.loader-track>span{animation:none!important}.enhanced-motion .motion-item{opacity:1;transform:none;transition:none}.service-card::before{display:none}.btn,.nav-cta,.quote-next,.quote-send{transition:none}}
