/* Minimal, standalone CSS to replicate the Download → Run → Set → Play section */

:root {
  --container-max: 1170px;
  /* Match site theme colors */
  --rotator-blue: #ff7657; /* primary accent */
  --rotator-orange: #db5536; /* secondary accent */
}

* {
  box-sizing: border-box;
}
html,
body {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial,
    "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
}

/* Grid subset (no Bootstrap dependency) */
.container-revo {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
}
.row-revo {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}
.center-revo {
  text-align: center;
}

.col-md-2-revo {
  width: 16.6667%;
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.col-md-4-revo {
  width: 33.3333%;
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
}
.col-md-offset-1-revo {
  margin-left: 8.3333%;
}

@media (max-width: 991px) {
  .col-md-2-revo,
  .col-md-4-revo {
    width: 100%;
  }
  .col-md-offset-1-revo {
    margin-left: 0;
  }
}

.img-responsive-revo {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Home Concept visuals (copied and minimized to match original) */
.home-concept-revo {
  background: transparent url(../images/img-home-concept.png) no-repeat center 0;
  width: 100%;
  overflow: hidden;
  padding-bottom: 40px;
}

.home-concept-revo strong {
  display: block;
  font-family: "Shadows Into Light", cursive;
  font-size: 2.1em;
  font-weight: normal;
  position: relative;
  margin-top: 30px;
}

.home-concept-revo .row-revo {
  position: relative;
}

.home-concept-revo .process-image-revo {
  background: transparent url(../images/img-home-concept-item.png) no-repeat 0 0;
  width: 160px;
  height: 175px;
  margin: 135px auto 0 auto; /* ensure centering within column */
  padding-bottom: 50px;
  position: relative;
  z-index: 1;
}

.home-concept-revo .process-image-revo img {
  border-radius: 150px;
  margin: 7px 8px;
}

.home-concept-revo .our-work-revo {
  margin-top: 52px;
  font-size: 2.6em;
}

.home-concept-revo .project-image-revo {
  background: transparent url(../images/img-home-concept-item.png) no-repeat
    100% 0;
  width: 350px;
  height: 420px;
  margin: 15px 0 0 -30px;
  padding-bottom: 45px;
  position: relative;
  z-index: 1;
}

.home-concept-revo .sun-revo {
  background: transparent url(../images/img-GrenadeIcon.png) no-repeat 0 0;
  width: 60px;
  height: 56px;
  display: block;
  position: absolute;
  left: 10%;
  top: 35px;
  will-change: transform;
  animation: floatSun 3.5s ease-in-out infinite;
}

.home-concept-revo .cloud-revo {
  background: transparent url(../images/img-CrosshairIcon.png) no-repeat 100% 0;
  width: 116px;
  height: 56px;
  display: block;
  position: absolute;
  left: 57%;
  top: 35px;
  will-change: transform;
  animation: floatCloud 5s ease-in-out infinite;
}

@media (max-width: 991px) {
  .home-concept-revo {
    background: none;
  }
  .home-concept-revo .project-image-revo {
    margin: 60px auto 0 auto;
  }
  .home-concept-revo .process-image-revo {
    margin-top: 60px;
  }
}

@media (max-width: 479px) {
  .home-concept-revo .project-image-revo {
    background-position: 0 0;
    margin-left: auto;
    max-width: 160px;
    max-height: 220px;
  }
}

/* Circle slideshow container (independent of old CSS) */
.fc-slideshow-revo {
  position: relative;
  /* Keep original desktop size, shrink fluidly on small parents */
  width: 338px;
  max-width: 100%;
  aspect-ratio: 1 / 1; /* keep it perfectly circular */
  height: auto; /* driven by aspect-ratio */
  border-radius: 50%;
  margin: 0 auto;
  top: 6px;
  perspective: 1200px;
  transform-style: preserve-3d;
  transform-origin: center center;
}

/* Fade crossfade slideshow */
ul.fc-slides-revo {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  width: 100%;
  height: 100%;
}
ul.fc-slides-revo li {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 600ms ease;
  display: block;
  backface-visibility: hidden;
}
/* Fallback: show first slide even if JS not yet run */
ul.fc-slides-revo li.active-revo {
  opacity: 1;
}
.fc-slideshow-revo img {
  border-radius: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Ensure slideshow scales down nicely on narrow screens */
@media (max-width: 991px) {
  .home-concept-revo {
    background: none;
  }
  .home-concept-revo .project-image-revo {
    margin: 60px auto 0 auto;
  }
  .home-concept-revo .process-image-revo {
    margin-top: 60px;
  }
}

@media (max-width: 479px) {
  .home-concept-revo .project-image-revo .fc-slideshow-revo {
    width: 96%;
    /* Nudge less on very small screens to avoid sitting low */
    top: 3px;
  }
}

/* Disable fade during flip midpoint swap */
.fc-slideshow-revo.instant-revo ul.fc-slides-revo li {
  transition: none !important;
}

/* Diagonal flip (up-right like "/") */
@keyframes flipDiag {
  0% {
    transform: rotate3d(1, 1, 0, 0deg);
  }
  50% {
    transform: rotate3d(1, 1, 0, 90deg);
  }
  100% {
    transform: rotate3d(1, 1, 0, 0deg);
  }
}
.fc-slideshow-revo.flip-anim-revo {
  animation: flipDiag 600ms ease;
}

/* Appear animations */
.home-concept-revo [data-appear-animation] {
  opacity: 0;
}
.animated-revo {
  animation-duration: 1s;
  animation-fill-mode: both;
}
@keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }
  40% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }
  80% {
    transform: scale3d(0.97, 0.97, 0.97);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}
.anim-bounceIn-revo {
  animation-name: bounceIn;
}

/* Gentle up/down motion for sun and cloud */
@keyframes floatSun {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes floatCloud {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
  100% {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-concept-revo .sun-revo,
  .home-concept-revo .cloud-revo {
    animation: none !important;
  }
}

/* --- Word Rotator (standalone minimal) --- */
/* Heading spacing helpers */
h1.short {
  margin-bottom: 15px;
}
h2.short {
  margin-bottom: 15px;
}

/* Base rotator container */
.word-rotate {
  display: inline-block;
  overflow: hidden;
  text-align: center;
  position: relative;
  max-height: 22px;
  line-height: 22px;
}

.word-rotate .word-rotate-items {
  position: relative;
  top: 0;
  width: 0;
  display: inline-block;
  transition: top 300ms ease, width 300ms ease;
}

.word-rotate .word-rotate-items span {
  display: inline-block;
  white-space: nowrap;
}

/* Active state mirrors original theme */
.word-rotate.active .word-rotate-items {
  position: relative;
}
.word-rotate.active .word-rotate-items span {
  display: inline-block;
}

/* Title sizing like theme */
h1.word-rotator-title .inverted {
  min-height: 56px;
}
h1.word-rotator-title .word-rotate {
  max-height: 46px;
  line-height: 46px;
  margin-bottom: -9px;
}

h2.word-rotator-title .inverted {
  min-height: 46px;
}
h2.word-rotator-title .word-rotate {
  max-height: 42px;
  line-height: 42px;
  margin-bottom: -9px;
}

/* Colored highlight for rotating text */
.word-rotator-title .inverted {
  background-color: var(--rotator-blue);
  color: #fff;
  border-radius: 0;
  display: inline-block;
  padding-left: 10px;
  padding-right: 8px; /* balance right edge visually */
}

/* Ensure text colors match site in install section */
.install-steps .word-rotator-title {
  color: #fff;
}
/* Make Download / Run / Set labels orange */
.install-steps .home-concept-revo .process-image-revo strong {
  color: #ff7657;
}
/* Make Play! label orange */
.install-steps .our-work-revo {
  color: #ff7657;
}
