
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-fast:.28s;--motion-mid:.7s}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.page-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#07111f;transition:opacity .55s var(--motion-ease),visibility .55s var(--motion-ease)}
.page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-brand{display:grid;place-items:center;gap:18px}
.loader-brand img{width:min(230px,55vw);height:auto;animation:loaderPulse 1.15s ease-in-out infinite alternate;filter:drop-shadow(0 18px 35px rgba(29,103,255,.3))}
.loader-line{width:150px;height:3px;border-radius:10px;background:rgba(255,255,255,.12);overflow:hidden}
.loader-line:after{content:"";display:block;width:45%;height:100%;background:#1d67ff;border-radius:inherit;animation:loaderRun 1s ease-in-out infinite}
@keyframes loaderPulse{from{transform:translateY(3px);opacity:.76}to{transform:translateY(-3px);opacity:1}}
@keyframes loaderRun{from{transform:translateX(-110%)}to{transform:translateX(330%)}}

.reveal-motion{opacity:0;transform:translateY(32px);transition:opacity .75s var(--motion-ease),transform .75s var(--motion-ease)}
.reveal-motion.from-left{transform:translateX(-40px)}
.reveal-motion.from-right{transform:translateX(40px)}
.reveal-motion.scale-in{transform:scale(.94)}
.reveal-motion.is-visible{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(22px);transition:opacity .6s var(--motion-ease),transform .6s var(--motion-ease)}
.reveal-stagger.is-visible>*{opacity:1;transform:none}
.reveal-stagger.is-visible>*:nth-child(2){transition-delay:.08s}
.reveal-stagger.is-visible>*:nth-child(3){transition-delay:.16s}
.reveal-stagger.is-visible>*:nth-child(4){transition-delay:.24s}
.reveal-stagger.is-visible>*:nth-child(5){transition-delay:.32s}
.reveal-stagger.is-visible>*:nth-child(6){transition-delay:.4s}

.header{transition:height .3s var(--motion-ease),box-shadow .3s,background .3s}
.header.header-scrolled{box-shadow:0 12px 35px rgba(7,17,31,.10);background:rgba(255,255,255,.96)}
.header.header-scrolled .nav-wrap{height:70px}
.nav-wrap{transition:height .3s var(--motion-ease)}
.nav>a:not(.btn){position:relative}
.nav>a:not(.btn):after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:#1d67ff;transform:scaleX(0);transform-origin:right;transition:transform .3s var(--motion-ease)}
.nav>a:not(.btn):hover:after,.nav>a.active:after{transform:scaleX(1);transform-origin:left}
.btn,.system-button,.cp-primary,.primary-action{position:relative;overflow:hidden;isolation:isolate}
.btn:before,.system-button:before,.cp-primary:before,.primary-action:before{content:"";position:absolute;inset:-2px auto -2px -55%;width:38%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transition:left .55s var(--motion-ease);z-index:-1}
.btn:hover:before,.system-button:hover:before,.cp-primary:hover:before,.primary-action:hover:before{left:125%}
.btn:active,.system-button:active,.cp-primary:active,.primary-action:active{transform:translateY(1px) scale(.985)}

.hero:before{animation:gridDrift 18s linear infinite}
@keyframes gridDrift{to{background-position:55px 55px}}
.hero-card,.home-intro-visual,.systems-hero-panel{animation:softFloat 6s ease-in-out infinite}
@keyframes softFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

.service-card,.public-service-card,.system-card,.job-card,.leader-card,.home-principle-grid article,.home-values article{transition:transform .35s var(--motion-ease),box-shadow .35s,border-color .35s}
.service-card:hover,.public-service-card:hover,.job-card:hover,.leader-card:hover,.home-principle-grid article:hover,.home-values article:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(7,17,31,.12)}
.public-service-card img,.job-card img,.leader-card img{transition:transform .7s var(--motion-ease)}
.public-service-card:hover img,.job-card:hover img,.leader-card:hover img{transform:scale(1.045)}
.system-card{transform-style:preserve-3d;will-change:transform}
.system-card .system-brand-visual,.system-card h2,.system-card p,.system-card ul,.system-card .system-button{transform:translateZ(18px)}

.back-to-top{position:fixed;right:22px;bottom:22px;z-index:80;width:48px;height:48px;border:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1d67ff var(--scroll-progress,0%),#dce5f1 0);box-shadow:0 12px 30px rgba(7,17,31,.18);opacity:0;transform:translateY(15px);pointer-events:none;transition:.3s}
.back-to-top:before{content:"↑";display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#07111f;color:#fff;font-size:18px}
.back-to-top.is-visible{opacity:1;transform:none;pointer-events:auto;cursor:pointer}
.form-success,.portal-alert.success,.cp-alert.success{animation:successPop .55s var(--motion-ease)}
@keyframes successPop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}

.magnetic{transition:transform .18s ease-out}
.cursor-glow{position:fixed;z-index:0;width:320px;height:320px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(29,103,255,.07),transparent 68%);transform:translate(-50%,-50%);opacity:0;transition:opacity .25s}
body:hover .cursor-glow{opacity:1}

@media(max-width:760px){.cursor-glow{display:none}.hero-card,.home-intro-visual,.systems-hero-panel{animation:none}}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
 .page-loader{display:none!important}.reveal-motion,.reveal-stagger>*{opacity:1!important;transform:none!important}
}
