/* Golvary homepage loader + Codegrid-inspired four-band page transition. */
.gv-transition{
  position:fixed;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100vh;height:100dvh;
  z-index:2147483000;visibility:hidden;pointer-events:none;overflow:hidden;
  color:var(--gv-cream,#f4efe3);
}
.gv-transition__grid{
  position:absolute;top:0;right:0;bottom:0;left:0;inset:0;display:flex;flex-direction:column;overflow:hidden;
}
.gv-transition__block{
  flex:1 1 25%;width:100%;min-height:0;display:block;background:#034638;
  box-shadow:0 1px 0 1px #034638;
  transform:scaleX(0);transform-origin:left center;
  transition:transform 1s cubic-bezier(.9,0,.1,1);
  transition-delay:calc(var(--gv-row) * 75ms);will-change:transform;
}
.gv-transition__brand{
  position:absolute;top:0;right:0;bottom:0;left:0;inset:0;display:flex;align-items:center;justify-content:center;
  padding:env(safe-area-inset-top) 24px env(safe-area-inset-bottom);pointer-events:none;
}
.gv-transition__logo-mask{display:block;overflow:hidden;padding:3px 0}
.gv-transition__logo-mask img{
  display:block;width:220px;width:clamp(190px,17vw,244px);height:auto;max-width:68vw;
  opacity:1;transform:translateY(110%);will-change:transform,opacity;
  transition:transform 1s cubic-bezier(.165,.84,.44,1),opacity 0s linear;
}
.gv-transition__sr{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

html.gv-transition-home .gv-transition,
html.gv-transition-entering .gv-transition,
html.gv-transition-leaving .gv-transition{
  visibility:visible;pointer-events:all;
}
html.gv-transition-lock,html.gv-transition-lock body{overflow:hidden!important}

/* Reference leave: rows sweep left-to-right, then the masked brand rises. */
html.gv-transition-home.gv-transition-covering .gv-transition__block,
html.gv-transition-leaving.gv-transition-covering .gv-transition__block{
  transform:scaleX(1);transform-origin:left center;
}
html.gv-transition-home.gv-transition-covering .gv-transition__logo-mask img,
html.gv-transition-leaving.gv-transition-covering .gv-transition__logo-mask img{
  transform:translateY(0);transition-delay:.625s;
}

/* A new document (enter) starts fully covered; its timeline retracts to the right.
   The home loader ALSO starts fully covered so the page is never shown before the
   loader - the bands used to start at scaleX(0) and sweep in only after first
   paint, flashing the page underneath first. The logo still rises during covering. */
html.gv-transition-entering .gv-transition__block,
html.gv-transition-home .gv-transition__block{
  transform:scaleX(1);transition:none;
}
html.gv-transition-entering .gv-transition__logo-mask img{
  transform:translateY(0);transition:none;
}

/* Reference enter: brand moves down at t=0; rows start retracting at t=.2s. */
html.gv-transition-revealing .gv-transition__logo-mask img{
  opacity:0;transform:translateY(110%);
  transition:transform 1s cubic-bezier(.165,.84,.44,1),opacity .12s linear;
  transition-delay:0s, .2s;
}
html.gv-transition-revealing .gv-transition__block{
  transform:scaleX(0);transform-origin:right center;
  transition:transform 1s cubic-bezier(.9,0,.1,1);
  transition-delay:calc(.2s + var(--gv-row) * 75ms);
}
.gv-transition__block:nth-child(1){transition-delay:0s}
.gv-transition__block:nth-child(2){transition-delay:75ms}
.gv-transition__block:nth-child(3){transition-delay:150ms}
.gv-transition__block:nth-child(4){transition-delay:225ms}
html.gv-transition-revealing .gv-transition__block:nth-child(1){transition-delay:.2s}
html.gv-transition-revealing .gv-transition__block:nth-child(2){transition-delay:.275s}
html.gv-transition-revealing .gv-transition__block:nth-child(3){transition-delay:.35s}
html.gv-transition-revealing .gv-transition__block:nth-child(4){transition-delay:.425s}

@media (max-width:767px){
  .gv-transition__logo-mask img{width:170px;width:clamp(158px,45vw,178px)}
}
/* Glozin globally collapses every transition when Android's "Remove
   animations" setting is active. Keep this branded page transition intact. */
@media (prefers-reduced-motion:reduce){
  .gv-transition__block{
    transition-property:transform!important;transition-duration:1s!important;
    transition-timing-function:cubic-bezier(.9,0,.1,1)!important;
  }
  .gv-transition__block:nth-child(1){transition-delay:0s!important}
  .gv-transition__block:nth-child(2){transition-delay:75ms!important}
  .gv-transition__block:nth-child(3){transition-delay:150ms!important}
  .gv-transition__block:nth-child(4){transition-delay:225ms!important}
  .gv-transition__logo-mask img{
    transition-property:transform,opacity!important;
    transition-duration:1s,0s!important;
    transition-timing-function:cubic-bezier(.165,.84,.44,1),linear!important;
  }
  html.gv-transition-home.gv-transition-covering .gv-transition__logo-mask img,
  html.gv-transition-leaving.gv-transition-covering .gv-transition__logo-mask img{
    transition-delay:.625s,0s!important;
  }
  html.gv-transition-revealing .gv-transition__logo-mask img{
    transition-duration:1s,.12s!important;transition-delay:0s,.2s!important;
  }
  html.gv-transition-revealing .gv-transition__block:nth-child(1){transition-delay:.2s!important}
  html.gv-transition-revealing .gv-transition__block:nth-child(2){transition-delay:.275s!important}
  html.gv-transition-revealing .gv-transition__block:nth-child(3){transition-delay:.35s!important}
  html.gv-transition-revealing .gv-transition__block:nth-child(4){transition-delay:.425s!important}
}
