:root{
  --ivx-loader-bg:radial-gradient(circle at 50% 26%,rgba(244,121,31,.22),transparent 42%),linear-gradient(180deg,#1a120a 0%,#0f0b07 62%,#0a0908 100%);
  --ivx-loader-ink:#f8f1e4;
  --ivx-loader-muted:rgba(248,241,228,.66);
  --ivx-loader-accent:#f4791f;
  --ivx-loader-ocean:#0e5360;
}

body{
  transition:opacity .55s ease,transform .55s ease,background-color .45s ease;
}

body.ivx-loading{
  overflow:hidden;
}

html.ivx-route-leaving body{
  opacity:0;
  transform:translateY(12px);
}

.ivx-site-loader{
  position:fixed;
  inset:0;
  z-index:14000;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--ivx-loader-bg);
  color:var(--ivx-loader-ink);
  transition:opacity .85s ease,visibility .85s ease;
}

.ivx-site-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.ivx-loader-dunes{
  position:absolute;left:-5%;right:-5%;bottom:0;height:46%;
  background:
    radial-gradient(120% 150% at 22% 130%,#caa05f 0%,#a9783f 42%,transparent 72%),
    radial-gradient(120% 150% at 82% 130%,#bb8b4d 0%,#946431 44%,transparent 74%);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 64%);
  mask-image:linear-gradient(180deg,transparent,#000 64%);
  opacity:.55;
}

.ivx-loader-grain{
  position:absolute;inset:0;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.ivx-loader-shell{
  position:relative;
  display:grid;
  justify-items:center;
  gap:15px;
  width:min(440px,100%);
  text-align:center;
}

.ivx-loader-logo{
  position:relative;
  width:108px;height:108px;
  display:grid;place-items:center;
  animation:ivxLogoFloat 3s ease-in-out infinite;
}
.ivx-loader-logo img{
  width:86px;height:86px;object-fit:contain;position:relative;z-index:1;
  filter:drop-shadow(0 14px 32px rgba(244,121,31,.42));
}
.ivx-loader-halo{
  position:absolute;inset:-12%;border-radius:50%;
  background:radial-gradient(circle,rgba(244,121,31,.42),rgba(244,121,31,.08) 52%,transparent 70%);
  filter:blur(10px);
  animation:ivxLoaderPulse 2s ease-in-out infinite;
}

.ivx-loader-title{
  font-family:"Bricolage Grotesque",Georgia,serif;
  font-size:clamp(34px,5vw,54px);
  font-weight:800;
  line-height:.9;
  letter-spacing:0;
}

.ivx-loader-kicker{
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:#ffce9a;
}

.ivx-loader-track{
  position:relative;
  width:min(260px,64vw);height:3px;
  margin-top:6px;border-radius:999px;overflow:hidden;
  background:rgba(255,255,255,.14);
}
.ivx-loader-fill{
  position:absolute;inset:0 auto 0 -45%;width:45%;border-radius:999px;
  background:linear-gradient(90deg,transparent,#f4791f,#ffdca0,transparent);
  animation:ivxLoaderSweep 1.4s linear infinite;
}

.ivx-loader-status{
  font-family:"Space Mono",ui-monospace,monospace;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(248,241,228,.72);
}

@keyframes ivxLogoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

[data-cinematic-reveal]{
  opacity:0;
  transform:translateY(28px) scale(.985);
  transition:opacity .85s cubic-bezier(.2,.72,.18,1),transform .85s cubic-bezier(.2,.72,.18,1),filter .85s ease;
  filter:blur(8px);
}

[data-cinematic-reveal].is-visible{
  opacity:1;
  transform:none;
  filter:none;
}

.ivx-flow-band{
  position:relative;
  isolation:isolate;
}

.ivx-flow-band::before,
.ivx-flow-band::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:120px;
  pointer-events:none;
  z-index:0;
}

.ivx-flow-band::before{
  top:0;
  transform:translateY(-100%);
}

.ivx-flow-band::after{
  bottom:0;
}

.ivx-flow-sand::before{background:linear-gradient(180deg,rgba(249,243,234,0) 0%,rgba(249,243,234,.76) 58%,#f9f3ea 100%)}
.ivx-flow-sand::after{background:linear-gradient(180deg,rgba(249,243,234,0) 0%,rgba(244,233,217,.84) 100%)}
.ivx-flow-ocean::before{background:linear-gradient(180deg,rgba(14,27,31,0) 0%,rgba(14,27,31,.76) 58%,#0e1b1f 100%)}
.ivx-flow-ocean::after{background:linear-gradient(180deg,rgba(14,27,31,0) 0%,rgba(14,27,31,.84) 100%)}
.ivx-flow-paper::before{background:linear-gradient(180deg,rgba(251,247,239,0) 0%,rgba(251,247,239,.8) 58%,#fbf7ef 100%)}
.ivx-flow-paper::after{background:linear-gradient(180deg,rgba(251,247,239,0) 0%,rgba(247,240,229,.9) 100%)}

.ivx-page-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.ivx-page-hero-media{
  position:absolute;
  inset:0;
  z-index:0;
}

.ivx-page-hero-media video{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.06);
  opacity:.64;
  filter:saturate(1.04) contrast(1.04);
}

.ivx-page-hero-wash{
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(100deg,rgba(4,6,7,.86) 0%,rgba(4,6,7,.54) 34%,rgba(4,6,7,.2) 64%),
    linear-gradient(180deg,rgba(4,6,7,.28) 0%,rgba(4,6,7,.1) 30%,rgba(4,6,7,.84) 100%);
}

.ivx-page-hero-grid{
  position:relative;
  z-index:1;
}

.ivx-sheen{
  position:relative;
  overflow:hidden;
}

.ivx-sheen::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 12%,rgba(255,255,255,.08) 40%,transparent 68%);
  transform:translateX(-120%);
  transition:transform .7s ease;
  pointer-events:none;
}

.ivx-sheen:hover::before{
  transform:translateX(120%);
}

.ivx-hover-lift{
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}

.ivx-hover-lift:hover{
  transform:translateY(-6px);
}

@keyframes ivxLoaderSweep{
  0%{transform:translateX(0)}
  100%{transform:translateX(340%)}
}

@keyframes ivxLoaderPulse{
  0%,100%{transform:scale(.92);opacity:.72}
  50%{transform:scale(1.08);opacity:1}
}

@media (prefers-reduced-motion:reduce){
  body,
  [data-cinematic-reveal],
  .ivx-site-loader{
    transition:none !important;
    animation:none !important;
  }
}
