/* GRPL Circular v1.2.5 — homepage-only cinematic, subtle-white loading sequence. */
html.grpl-preloader-on{overflow:hidden}
html.grpl-preloader-on body{overflow:hidden}
.grpl-preloader{
 position:fixed;inset:0;width:100%;height:100vh;height:100svh;height:100dvh;
 z-index:2147483000;display:flex;align-items:center;justify-content:center;
 overflow:hidden;isolation:isolate;overscroll-behavior:contain;touch-action:none;
 background:linear-gradient(119deg,#ffffff 0%,#f9fbfd 29%,#fdfefe 54%,#f5f9fc 77%,#ffffff 100%);
 opacity:1;visibility:visible;pointer-events:auto;
 /* Even if the normal JS fails, never obstruct the site indefinitely. */
 animation:grpl-preloader-safety 120ms linear 3900ms forwards;
}
.grpl-preloader[hidden]{display:none!important}
/* Inspired by the supplied moving-gradient film, but deliberately much paler.
   Large low-alpha colour fields drift across a primarily white base. No video dependency. */
.grpl-preloader__atmosphere{
 position:absolute;inset:-24%;z-index:-1;pointer-events:none;overflow:hidden;
 background:
   radial-gradient(ellipse 36% 43% at 18% 27%,rgba(163,198,224,.23) 0%,rgba(200,222,238,.12) 48%,transparent 85%),
   radial-gradient(ellipse 43% 36% at 82% 24%,rgba(183,207,226,.19) 0%,transparent 80%),
   radial-gradient(ellipse 36% 40% at 56% 83%,rgba(151,195,221,.17) 0%,transparent 82%),
   radial-gradient(ellipse 40% 38% at 28% 75%,rgba(255,255,255,.87) 0%,transparent 88%);
 background-position:0% 0%;background-size:106% 105%;
 transform:translate3d(0,0,0) scale(1.025);
 animation:grpl-atmosphere-flow 7.6s ease-in-out infinite alternate;
 will-change:transform;
}
.grpl-preloader__atmosphere::before,.grpl-preloader__atmosphere::after{
 content:'';position:absolute;inset:-14%;border-radius:44%;pointer-events:none;
 filter:blur(34px);opacity:.46;will-change:transform;
}
.grpl-preloader__atmosphere::before{
 background:radial-gradient(ellipse 50% 40% at 25% 60%,rgba(178,205,227,.25),transparent 76%);
 animation:grpl-mist-flow-a 6.8s ease-in-out infinite alternate;
}
.grpl-preloader__atmosphere::after{
 background:radial-gradient(ellipse 46% 50% at 72% 28%,rgba(210,228,239,.33),transparent 74%);
 animation:grpl-mist-flow-b 8.4s ease-in-out infinite alternate;
}
.grpl-preloader__logo{
 width:min(29vw,320px);max-width:78vw;height:auto;display:block;object-fit:contain;
 opacity:0;transform:translate3d(0,10px,0) scale(.96);transform-origin:center center;
 filter:drop-shadow(0 12px 22px rgba(1,29,61,.07));
 animation:grpl-preloader-logo-in .67s cubic-bezier(.18,.72,.2,1) .22s both;
 user-select:none;-webkit-user-drag:none;pointer-events:none;
}
/* The rest of the page is kept in place; the hero video never changes size. */
html.grpl-preloader-on .hero-video .hero-reveal{animation-play-state:paused}
html.grpl-page-revealing .hero-video .hero-reveal{animation-play-state:running}
html.grpl-page-revealing .site-header{animation:grpl-preloader-header-reveal .66s cubic-bezier(.2,.72,.2,1) both}
html.grpl-page-revealing .page-intro{animation:grpl-preloader-content-reveal .8s cubic-bezier(.22,.7,.2,1) both}
.grpl-preloader.is-exiting{animation:grpl-preloader-lift .84s cubic-bezier(.27,.74,.24,1) forwards}
.grpl-preloader.is-exiting .grpl-preloader__logo{animation:grpl-preloader-logo-out .46s ease-in forwards}
.grpl-preloader.is-exiting .grpl-preloader__atmosphere{animation:grpl-preloader-atmosphere-out .84s ease-in-out forwards}
@keyframes grpl-preloader-logo-in{
 from{opacity:0;transform:translate3d(0,10px,0) scale(.96)}
 to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes grpl-atmosphere-flow{
 from{transform:translate3d(-2%,1.2%,0) scale(1.025)}
 to{transform:translate3d(2.4%,-1.8%,0) scale(1.065)}
}
@keyframes grpl-mist-flow-a{
 from{transform:translate3d(-1.6%,-1.4%,0) rotate(-2deg) scale(1)}
 to{transform:translate3d(3%,2%,0) rotate(2deg) scale(1.065)}
}
@keyframes grpl-mist-flow-b{
 from{transform:translate3d(2.5%,1.5%,0) scale(1.06)}
 to{transform:translate3d(-2.5%,-1.8%,0) scale(.98)}
}
@keyframes grpl-preloader-logo-out{
 from{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
 to{opacity:0;transform:translate3d(0,-7px,0) scale(1.018);filter:blur(3px)}
}
@keyframes grpl-preloader-atmosphere-out{
 from{opacity:1;transform:translate3d(0,0,0) scale(1.04)}
 to{opacity:.5;transform:translate3d(0,-2%,0) scale(1.09)}
}
@keyframes grpl-preloader-lift{
 0%{opacity:1;transform:translate3d(0,0,0);filter:blur(0);visibility:visible}
 55%{opacity:.82;transform:translate3d(0,-1.1%,0);filter:blur(2px)}
 100%{opacity:0;transform:translate3d(0,-4%,0);filter:blur(12px);visibility:hidden;pointer-events:none}
}
@keyframes grpl-preloader-header-reveal{
 from{opacity:.3;transform:translate3d(0,11px,0)}
 to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes grpl-preloader-content-reveal{
 from{opacity:.65;transform:translate3d(0,12px,0)}
 to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes grpl-preloader-safety{to{opacity:0;visibility:hidden;pointer-events:none}}
@media(max-width:900px){
 .grpl-preloader__logo{width:min(42vw,300px)}
}
@media(max-width:600px){
 .grpl-preloader__logo{width:min(67vw,262px)}
 .grpl-preloader__atmosphere{inset:-25%;background:
   radial-gradient(ellipse 40% 42% at 17% 26%,rgba(161,195,220,.20),transparent 84%),
   radial-gradient(ellipse 42% 46% at 84% 30%,rgba(175,204,227,.18),transparent 82%),
   radial-gradient(ellipse 42% 40% at 53% 78%,rgba(193,218,233,.20),transparent 86%)}
 .grpl-preloader__atmosphere::before,.grpl-preloader__atmosphere::after{filter:blur(18px);opacity:.32}
 /* Avoid expensive fullscreen blur during mobile reveal. */
 @keyframes grpl-preloader-lift{
   0%{opacity:1;transform:translate3d(0,0,0);visibility:visible}
   100%{opacity:0;transform:translate3d(0,-3%,0);visibility:hidden;pointer-events:none}
 }
}
@media(max-width:360px){.grpl-preloader__logo{width:min(70vw,232px)}}
@media(orientation:landscape) and (max-height:500px){.grpl-preloader__logo{width:min(28vw,225px);max-height:50svh}}
@media(prefers-reduced-motion:reduce){
 .grpl-preloader__atmosphere,.grpl-preloader__atmosphere::before,.grpl-preloader__atmosphere::after,.grpl-preloader__logo{animation:none!important;transform:none!important}
 .grpl-preloader__logo{opacity:1!important}
 html.grpl-preloader-on .hero-video .hero-reveal{animation-play-state:running}
 .grpl-preloader.is-exiting{animation:none!important;opacity:0;visibility:hidden;pointer-events:none}
 html.grpl-page-revealing .site-header,html.grpl-page-revealing .page-intro{animation:none!important}
}
@media print{.grpl-preloader{display:none!important}}
