:root {
  --experience-red: #ef2334;
  --experience-line: rgba(255, 255, 255, .16);
  --experience-panel: rgba(5, 6, 8, .9);
}

.experience-media,
.experience-panel {
  position: relative;
  isolation: isolate;
}

.experience-media {
  overflow: hidden;
}

.experience-media > img,
.experience-media > picture img {
  transition: filter .85s cubic-bezier(.2, .7, .2, 1), opacity .55s ease, transform 1.05s cubic-bezier(.2, .7, .2, 1);
}

.experience-media.is-loaded:not(.experience-media--preserve-filter) > img,
.experience-media.is-loaded:not(.experience-media--preserve-filter) > picture img {
  filter: none;
}

.experience-media:not(.is-loaded) > img,
.experience-media:not(.is-loaded) > picture img {
  filter: grayscale(1) contrast(1.35) brightness(.54);
  opacity: .74;
  transform: scale(1.018);
  animation: experienceGlitch 180ms steps(2, end) 3;
}

.experience-media::before {
  content: "";
  position: absolute;
  z-index: 8;
  inset: -25% 0 auto;
  height: 28%;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(180deg, transparent, rgba(239, 35, 52, .08) 40%, rgba(239, 35, 52, .72) 51%, transparent 57%);
  mix-blend-mode: screen;
}

.experience-media.is-loading::before {
  opacity: 1;
  animation: experienceScan 1s cubic-bezier(.3, .65, .25, 1) both;
}

.experience-loader,
.experience-panel-status {
  position: absolute;
  z-index: 12;
  display: grid;
  grid-template-columns: auto minmax(115px, 1fr);
  align-items: center;
  gap: 8px 11px;
  min-width: min(250px, calc(100% - 30px));
  padding: 11px 13px;
  border: 1px solid var(--experience-line);
  border-left: 3px solid var(--experience-red);
  background: var(--experience-panel);
  box-shadow: 0 14px 42px rgba(0, 0, 0, .45);
  color: #fff;
  font-family: inherit;
  font-size: .61rem;
  font-weight: 900;
  letter-spacing: .13em;
  line-height: 1.25;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.experience-loader {
  left: 18px;
  bottom: 18px;
}

.experience-loader::before,
.experience-panel-status::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--experience-red);
  box-shadow: 0 0 13px rgba(239, 35, 52, .9);
  animation: experiencePulse .7s steps(2, end) infinite;
}

.experience-status-complete {
  display: none;
}

.experience-loader-track {
  grid-column: 1 / -1;
  height: 2px;
  overflow: hidden;
  background: rgba(255, 255, 255, .12);
}

.experience-loader-track i {
  display: block;
  width: 25%;
  height: 100%;
  background: linear-gradient(90deg, transparent, var(--experience-red), #fff);
  box-shadow: 0 0 12px rgba(239, 35, 52, .8);
  animation: experienceLoad 1s ease-in-out both;
}

.experience-media.is-loaded .experience-status-start,
.experience-panel.is-loaded .experience-status-start {
  display: none;
}

.experience-media.is-loaded .experience-status-complete,
.experience-panel.is-loaded .experience-status-complete {
  display: inline;
}

.experience-media.is-loaded .experience-loader::before,
.experience-panel.is-loaded .experience-panel-status::before {
  animation: none;
  background: #fff;
  box-shadow: 0 0 10px rgba(255, 255, 255, .45);
}

.experience-media.is-loaded .experience-loader-track i {
  width: 100%;
  animation: none;
}

.experience-media.is-settled .experience-loader,
.experience-panel.is-settled .experience-panel-status {
  opacity: 0;
  transform: translateY(7px);
  transition: opacity .35s ease, transform .35s ease;
  pointer-events: none;
}

.experience-panel-status {
  top: 18px;
  right: 18px;
  transition: opacity .35s ease, transform .35s ease;
}

@keyframes experienceGlitch {
  0%, 100% { clip-path: inset(0); translate: 0; }
  35% { clip-path: inset(7% 0 58%); translate: -4px 0; }
  65% { clip-path: inset(52% 0 18%); translate: 4px 0; }
}

@keyframes experienceScan {
  from { transform: translateY(-15%); }
  to { transform: translateY(570%); }
}

@keyframes experiencePulse {
  50% { opacity: .3; }
}

@keyframes experienceLoad {
  from { transform: translateX(-110%); }
  to { transform: translateX(310%); }
}

@media (max-width: 650px) {
  .experience-loader {
    left: 12px;
    right: auto;
    bottom: 12px;
    top: auto;
    min-width: min(220px, calc(100% - 24px));
    padding: 9px 10px;
    font-size: .53rem;
  }
  .experience-panel-status {
    left: 12px;
    right: auto;
    top: 12px;
    bottom: auto;
    min-width: min(220px, calc(100% - 24px));
    padding: 9px 10px;
    font-size: .53rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .experience-media > img,
  .experience-media > picture img,
  .experience-media::before,
  .experience-loader,
  .experience-panel-status,
  .experience-loader-track i {
    animation: none !important;
    transition-duration: .01ms !important;
  }
  .experience-media:not(.is-loaded) > img,
  .experience-media:not(.is-loaded) > picture img {
    transform: none;
  }
}
