/* A single burgundy brand wipe. On arrival, the color leaves without replaying the logo. */
.primoc-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  background: linear-gradient(140deg, #58182f 0%, #471123 55%, #320b1b 100%);
  transform: translate3d(0, 0, 0);
  transition: transform .46s cubic-bezier(.76, 0, .24, 1), visibility 0s .46s;
  will-change: transform;
}
.primoc-loader-active .primoc-loader {
  visibility: visible;
  pointer-events: auto;
  animation: primoc-loader-failsafe 0s 3s forwards;
}
.primoc-loader__panel,
.primoc-loader__rule,
.primoc-loader__frame,
.primoc-loader__content,
.primoc-loader__skip { display: none !important; }
.primoc-loader__identity {
  --wordmark-width: min(45vw, 480px);
  --wordmark-half: min(22.5vw, 240px);
  --ray-width: clamp(90px, 11vw, 135px);
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.primoc-loader__rays {
  position: absolute;
  top: 50%;
  left: calc(50% - var(--wordmark-half) - var(--ray-width) - 18px);
  width: var(--ray-width);
  pointer-events: none;
  transform: translateY(-50%);
}
.primoc-loader__mark {
  display: block;
  width: 100%;
  height: auto;
  fill: none;
  stroke: #f3d4c6;
  stroke-width: 1.15;
  stroke-linecap: square;
  opacity: .8;
}
.primoc-loader__wordmark {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  display: block;
  width: var(--wordmark-width);
  height: auto;
  fill: #fff7f1;
  opacity: 0;
  transform: translate3d(-50%, calc(-50% + 9px), 0);
  will-change: transform, opacity;
}
.primoc-loader__wordmark .wordmark-pr { fill: #f5a06d; }
.primoc-loader__mark path {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.primoc-loader-active .primoc-loader__mark path,
.primoc-route-curtain.is-entering .primoc-loader__mark path {
  animation: primoc-trace .48s cubic-bezier(.3, .7, .3, 1) forwards;
  animation-delay: calc(65ms + var(--trace-index, 0) * 30ms);
}
.primoc-loader-active .primoc-loader__wordmark,
.primoc-route-curtain.is-entering .primoc-loader__wordmark {
  animation: primoc-wordmark-in .45s cubic-bezier(.2, .75, .25, 1) .14s both;
}
.primoc-loader.is-exiting {
  visibility: visible;
  pointer-events: none;
  transform: translate3d(0, -101%, 0);
  animation: none;
}
@keyframes primoc-trace { to { stroke-dashoffset: 0; } }
@keyframes primoc-wordmark-in {
  to { opacity: 1; transform: translate3d(-50%, -50%, 0); }
}
@keyframes primoc-loader-failsafe { to { visibility: hidden; pointer-events: none; } }
/* On mobile the complete PRIMOC logo draws in outline. */
@media (max-width: 600px) {
  .primoc-loader,
  .primoc-route-curtain { background: linear-gradient(145deg, #58182f, #360d20); }
  .primoc-loader__frame,
  .primoc-loader__rule,
  .primoc-loader__content,
  .primoc-route-curtain .primoc-loader__frame,
  .primoc-route-curtain .primoc-loader__rule,
  .primoc-route-curtain .primoc-loader__content { display: none !important; }
  .primoc-loader__mobile-trace {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 24px;
  }
  .primoc-loader__mobile-trace > svg:first-child {
    display: block;
    flex: 0 0 min(20vw, 78px);
    width: min(20vw, 78px);
    height: auto;
  }
  .primoc-loader__mobile-trace > svg:first-child path {
    fill: none;
    stroke: #fff4ee;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
  }
  .primoc-loader__mobile-wordmark {
    display: block;
    flex: 0 1 min(62vw, 250px);
    width: min(62vw, 250px);
    height: auto;
    overflow: visible;
  }
  .primoc-loader__mobile-wordmark path {
    fill: none;
    stroke: #fff4ee;
    stroke-width: 5;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
  }
  .primoc-loader__mobile-wordmark .wordmark-pr { stroke: #f5a06d; }
  .primoc-loader-active .primoc-loader__mobile-trace > svg:first-child path,
  .primoc-route-curtain.is-entering .primoc-loader__mobile-trace > svg:first-child path {
    animation: primoc-trace .44s cubic-bezier(.32, .7, .2, 1) forwards;
    animation-delay: calc(20ms + var(--trace-index, 0) * 11ms);
  }
  .primoc-loader-active .primoc-loader__mobile-wordmark path,
  .primoc-route-curtain.is-entering .primoc-loader__mobile-wordmark path {
    animation: primoc-trace .5s cubic-bezier(.32, .7, .2, 1) forwards;
    animation-delay: calc(170ms + var(--trace-index, 0) * 42ms);
  }
}
@media (prefers-reduced-motion: reduce) {
  .primoc-loader-active .primoc-loader { display: none !important; }
}
