/* AVRYN · Execution System splash
   Progressive by design: without the boot class it never enters the layout. */
.av-splash { display: none; }

html.av-splash-enabled,
html.av-splash-enabled body { overflow: hidden; }

html.av-splash-enabled .av-splash {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  min-height: 100vh;
  min-height: 100svh;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
  color: #F2F0E9;
  background: transparent;
  font-family: Inter, Arial, sans-serif;
  opacity: 1;
}

.av-splash__curtain {
  position: absolute;
  right: 0;
  left: 0;
  z-index: -2;
  height: 51%;
  background: #050505;
  transform: translateZ(0);
  transition: transform .82s cubic-bezier(.76, 0, .18, 1);
}

.av-splash__curtain--top { top: 0; transform-origin: top; }
.av-splash__curtain--bottom { bottom: 0; transform-origin: bottom; }

.av-splash__field {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(rgba(165, 167, 158, .043) 1px, transparent 1px),
    linear-gradient(90deg, rgba(165, 167, 158, .043) 1px, transparent 1px),
    radial-gradient(circle at 50% 48%, rgba(183, 216, 90, .095), transparent 27%),
    linear-gradient(110deg, #050505 0%, rgba(98, 104, 93, .08) 48%, #050505 100%);
  background-size: 42px 42px, 42px 42px, auto, auto;
  opacity: 0;
  animation: avSplashFieldIn .55s ease-out .06s forwards;
  transition: opacity .22s ease;
}

.av-splash__field::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(76vw, 780px);
  aspect-ratio: 1;
  content: "";
  border-radius: 50%;
  background: conic-gradient(from 210deg, transparent 0 73%, rgba(183, 216, 90, .065) 83%, rgba(183, 216, 90, .28) 91%, transparent 100%);
  transform: translate(-50%, -50%);
  -webkit-mask: radial-gradient(circle, transparent 0 42%, #050505 43% 56%, transparent 67%);
  mask: radial-gradient(circle, transparent 0 42%, #050505 43% 56%, transparent 67%);
  animation: avSplashRadar 6.8s linear infinite;
}

.av-splash__field::after {
  position: absolute;
  right: 0;
  left: 0;
  top: -12%;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent 8%, rgba(183, 216, 90, .22) 34%, #B7D85A 50%, rgba(183, 216, 90, .22) 66%, transparent 92%);
  box-shadow: 0 0 26px rgba(183, 216, 90, .34);
  animation: avSplashSweep 1.65s cubic-bezier(.3, .7, .3, 1) .08s both;
}

.av-splash__chrome {
  position: absolute;
  top: max(24px, env(safe-area-inset-top));
  right: clamp(24px, 4vw, 72px);
  left: clamp(24px, 4vw, 72px);
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 18px;
  color: #62685D;
  font-size: 8px;
  font-weight: 680;
  letter-spacing: .2em;
  opacity: 0;
  animation: avSplashChromeIn .55s ease-out .16s forwards;
  transition: opacity .2s ease;
}

.av-splash__chrome i {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(165, 167, 158, .08), rgba(165, 167, 158, .3), rgba(165, 167, 158, .08));
}

.av-splash__chrome strong {
  color: #A5A79E;
  font-size: inherit;
  font-weight: inherit;
  transition: color .25s ease, text-shadow .25s ease;
}

.av-splash.is-ready .av-splash__chrome strong {
  color: #B7D85A;
  text-shadow: 0 0 14px rgba(183, 216, 90, .45);
}

.av-splash__chrome--bottom {
  top: auto;
  bottom: max(28px, env(safe-area-inset-bottom));
}

.av-splash__stage {
  position: relative;
  z-index: 2;
  width: min(67vmin, 650px);
  min-width: 420px;
  aspect-ratio: 1;
  opacity: 0;
  transform: scale(.94);
  animation: avSplashStageIn .72s cubic-bezier(.18, .8, .2, 1) .08s forwards;
  transition: opacity .22s ease, transform .5s cubic-bezier(.7, 0, .3, 1), filter .22s ease;
}

.av-splash__map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.av-splash__boundary,
.av-splash__ring,
.av-splash__ticks,
.av-splash__route,
.av-splash__flow,
.av-splash__shield,
.av-splash__scan {
  fill: none;
  vector-effect: non-scaling-stroke;
}

.av-splash__boundary {
  stroke: rgba(165, 167, 158, .17);
  stroke-width: 1;
  stroke-dasharray: 2 10;
  stroke-dashoffset: 120;
  animation: avSplashTrace .9s ease-out .16s forwards;
}

.av-splash__ring,
.av-splash__ticks {
  transform-box: fill-box;
  transform-origin: center;
}

.av-splash__ring--outer {
  stroke: rgba(165, 167, 158, .2);
  stroke-width: 1;
  stroke-dasharray: 4 12;
  animation: avSplashRing 28s linear infinite;
}

.av-splash__ring--middle {
  stroke: rgba(183, 216, 90, .31);
  stroke-width: 1;
  stroke-dasharray: 31 11;
  filter: drop-shadow(0 0 3px rgba(183, 216, 90, .28));
  animation: avSplashRingReverse 21s linear infinite;
}

.av-splash__ring--inner {
  stroke: rgba(165, 167, 158, .29);
  stroke-width: 1;
  stroke-dasharray: 3 6;
  animation: avSplashRing 16s linear infinite;
}

.av-splash__ticks {
  stroke: rgba(183, 216, 90, .34);
  stroke-width: 4;
  stroke-dasharray: .5 15;
  animation: avSplashRingReverse 38s linear infinite;
}

.av-splash__route { stroke: rgba(165, 167, 158, .28); stroke-width: 1; }

.av-splash__flow {
  stroke: #B7D85A;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-dasharray: 3 15;
  filter: drop-shadow(0 0 4px rgba(183, 216, 90, .78));
  animation: avSplashFlow .82s linear infinite;
}

.av-splash__flow--2 { animation-delay: -.27s; }
.av-splash__flow--3 { animation-delay: -.54s; }

.av-splash__gate {
  fill: rgba(5, 5, 5, .94);
  stroke: rgba(183, 216, 90, .62);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 4px rgba(183, 216, 90, .35));
  transform-box: fill-box;
  transform-origin: center;
  animation: avSplashGate .95s ease-in-out infinite;
}

.av-splash__gate--2 { animation-delay: -.32s; }
.av-splash__gate--3 { animation-delay: -.64s; }

.av-splash__shield {
  stroke: rgba(183, 216, 90, .42);
  stroke-width: 1;
  stroke-dasharray: 31 8;
  filter: drop-shadow(0 0 6px rgba(183, 216, 90, .22));
  animation: avSplashShield 2.2s ease-in-out infinite;
}

.av-splash__scan {
  stroke: #B7D85A;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 52 250;
  filter: drop-shadow(0 0 6px rgba(183, 216, 90, .85));
  animation: avSplashScan 1.4s linear infinite;
}

.av-splash__node {
  fill: #B7D85A;
  stroke: rgba(242, 240, 233, .82);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 6px rgba(183, 216, 90, .92));
  transform-box: fill-box;
  transform-origin: center;
  animation: avSplashNode .9s ease-in-out infinite;
}

.av-splash__node--2 { animation-delay: -.3s; }
.av-splash__node--3 { animation-delay: -.6s; }

.av-splash__domain {
  position: absolute;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 142px;
  color: #62685D;
  font-size: 6.5px;
  font-weight: 720;
  letter-spacing: .15em;
  opacity: 0;
  transform: translateY(8px);
  animation: avSplashDomainIn .46s ease-out forwards;
}

.av-splash__domain strong {
  color: #F2F0E9;
  font-size: 9.5px;
  font-weight: 650;
  letter-spacing: .07em;
}

.av-splash__domain--1 { top: 22%; left: -1%; animation-delay: .25s; }
.av-splash__domain--2 { top: 22%; right: -1%; align-items: flex-end; text-align: right; animation-delay: .4s; }
.av-splash__domain--3 { bottom: 9%; left: 50%; align-items: center; text-align: center; transform: translate(-50%, 8px); animation-name: avSplashDomainCenterIn; animation-delay: .55s; }

.av-splash__core {
  position: absolute;
  top: 48.125%;
  left: 50%;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29%;
  aspect-ratio: 1;
  border: 1px solid rgba(183, 216, 90, .58);
  border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, rgba(183, 216, 90, .12), transparent 48%), rgba(5, 5, 5, .96);
  box-shadow: 0 0 0 14px rgba(5, 5, 5, .72), 0 0 0 15px rgba(165, 167, 158, .18), 0 0 76px rgba(183, 216, 90, .13), inset 0 0 40px rgba(183, 216, 90, .045);
  transform: translate(-50%, -50%) scale(.82);
  animation: avSplashCoreIn .62s cubic-bezier(.18, .9, .2, 1) .24s forwards, avSplashCorePulse 1.8s ease-in-out .86s infinite;
}

.av-splash__core::before,
.av-splash__core::after {
  position: absolute;
  content: "";
  pointer-events: none;
  border-radius: 50%;
}

.av-splash__core::before { inset: 10%; border: 1px dashed rgba(165, 167, 158, .22); animation: avSplashRing 13s linear infinite; }
.av-splash__core::after { inset: 22%; border: 1px solid rgba(183, 216, 90, .16); }

.av-splash__mark {
  position: relative;
  z-index: 2;
  display: grid;
  width: 47%;
  aspect-ratio: 1;
  place-items: center;
}

.av-splash__mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 0 18px rgba(183, 216, 90, .12));
}

.av-splash__core-state,
.av-splash__core small {
  position: absolute;
  left: 50%;
  white-space: nowrap;
  transform: translateX(-50%);
}

.av-splash__core-state {
  top: 13%;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #62685D;
  font-size: 5px;
  font-weight: 720;
  letter-spacing: .15em;
}

.av-splash__core-state i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #B7D85A;
  box-shadow: 0 0 8px rgba(183, 216, 90, .85);
}

.av-splash__core small {
  bottom: 13%;
  color: #62685D;
  font-size: 4.8px;
  font-weight: 700;
  letter-spacing: .2em;
}

.av-splash__signature {
  position: absolute;
  bottom: clamp(66px, 8vh, 90px);
  left: 50%;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  opacity: 0;
  transform: translate(-50%, 8px);
  animation: avSplashSignatureIn .55s ease-out .55s forwards;
  transition: opacity .2s ease;
}

.av-splash__signature img { width: clamp(122px, 12vw, 170px); height: auto; }
.av-splash__signature span { white-space: nowrap; color: #62685D; font-size: 6.5px; font-weight: 690; letter-spacing: .22em; }

.av-splash__progress {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 5;
  height: 2px;
  overflow: hidden;
  background: rgba(165, 167, 158, .11);
  transition: opacity .18s ease;
}

.av-splash__progress i {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(183, 216, 90, .18), #B7D85A 68%, #F2F0E9);
  box-shadow: 0 0 16px rgba(183, 216, 90, .52);
  transform: scaleX(0);
  transform-origin: left;
  animation: avSplashProgress 1.18s cubic-bezier(.2, .75, .2, 1) .06s forwards;
}

.av-splash.is-ready .av-splash__progress i { transform: scaleX(1); }

.av-splash.is-exiting .av-splash__field,
.av-splash.is-exiting .av-splash__chrome,
.av-splash.is-exiting .av-splash__signature,
.av-splash.is-exiting .av-splash__progress { opacity: 0; }

.av-splash.is-exiting .av-splash__stage {
  opacity: 0;
  filter: blur(8px);
  transform: scale(1.08);
}

.av-splash.is-exiting .av-splash__curtain--top { transform: translateY(-101%); }
.av-splash.is-exiting .av-splash__curtain--bottom { transform: translateY(101%); }

@keyframes avSplashFieldIn { to { opacity: 1; } }
@keyframes avSplashChromeIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes avSplashStageIn { to { opacity: 1; transform: scale(1); } }
@keyframes avSplashTrace { to { stroke-dashoffset: 0; } }
@keyframes avSplashRing { to { transform: rotate(360deg); } }
@keyframes avSplashRingReverse { to { transform: rotate(-360deg); } }
@keyframes avSplashFlow { to { stroke-dashoffset: -36; } }
@keyframes avSplashGate { 0%, 100% { opacity: .55; transform: rotate(45deg) scale(.8); } 50% { opacity: 1; transform: rotate(45deg) scale(1.08); } }
@keyframes avSplashShield { 0%, 100% { opacity: .46; stroke-dashoffset: 0; } 50% { opacity: 1; stroke-dashoffset: -39; } }
@keyframes avSplashScan { to { stroke-dashoffset: -302; } }
@keyframes avSplashNode { 0%, 100% { opacity: .64; transform: scale(.78); } 50% { opacity: 1; transform: scale(1.22); } }
@keyframes avSplashDomainIn { to { opacity: 1; transform: translateY(0); } }
@keyframes avSplashDomainCenterIn { to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes avSplashCoreIn { to { transform: translate(-50%, -50%) scale(1); } }
@keyframes avSplashCorePulse { 50% { box-shadow: 0 0 0 14px rgba(5, 5, 5, .72), 0 0 0 15px rgba(183, 216, 90, .25), 0 0 96px rgba(183, 216, 90, .2), inset 0 0 48px rgba(183, 216, 90, .075); } }
@keyframes avSplashSignatureIn { to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes avSplashProgress { to { transform: scaleX(1); } }
@keyframes avSplashRadar { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes avSplashSweep { 0% { top: -12%; opacity: 0; } 16% { opacity: 1; } 82% { opacity: .4; } 100% { top: 112%; opacity: 0; } }

@media (max-width: 680px) {
  .av-splash__chrome { top: max(18px, env(safe-area-inset-top)); right: 18px; left: 18px; gap: 10px; font-size: 6px; letter-spacing: .14em; }
  .av-splash__chrome--bottom { top: auto; bottom: max(22px, env(safe-area-inset-bottom)); }
  .av-splash__stage { width: min(calc(100vw - 20px), 440px); min-width: 0; }
  .av-splash__domain { min-width: 108px; gap: 3px; font-size: 5px; letter-spacing: .11em; }
  .av-splash__domain strong { font-size: 7.2px; letter-spacing: .04em; }
  .av-splash__domain--1 { left: 1%; }
  .av-splash__domain--2 { right: 1%; }
  .av-splash__core { width: 31%; }
  .av-splash__core-state { font-size: 4px; }
  .av-splash__core small { font-size: 3.8px; }
  .av-splash__signature { bottom: clamp(58px, 9vh, 76px); gap: 10px; }
  .av-splash__signature img { width: 120px; }
  .av-splash__signature span { font-size: 5.2px; letter-spacing: .15em; }
}

@media (max-width: 390px), (max-height: 700px) {
  .av-splash__stage { width: min(86vmin, 380px); }
  .av-splash__signature { bottom: 54px; }
  .av-splash__signature img { width: 104px; }
  .av-splash__signature span { font-size: 4.7px; }
  .av-splash__chrome--bottom { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .av-splash *,
  .av-splash *::before,
  .av-splash *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .18s !important; }
  .av-splash__field,
  .av-splash__chrome,
  .av-splash__stage,
  .av-splash__domain,
  .av-splash__signature { opacity: 1; transform: none; }
  .av-splash__domain--3 { transform: translate(-50%, 0); }
  .av-splash__core { transform: translate(-50%, -50%); }
  .av-splash__signature { transform: translateX(-50%); }
  .av-splash__flow,
  .av-splash__scan,
  .av-splash__gate { display: none; }
}

@media (forced-colors: active) {
  .av-splash__field,
  .av-splash__map,
  .av-splash__domain,
  .av-splash__chrome--bottom,
  .av-splash__progress { display: none; }
  .av-splash__core { border: 1px solid CanvasText; }
}
