/* V3: visible scroll entrances inspired by the supplied reference, Roman motion language. */
.cinema-shade {
  background:
    linear-gradient(90deg, #111811ed 0%, #111811af 41%, #11181115 76%),
    linear-gradient(0deg, #111811ed, transparent 50%, #12161122);
}
.cinema-image img {
  filter: saturate(0.65) sepia(0.15);
  animation: none;
}
.cinema-light {
  background: radial-gradient(
    ellipse at var(--light-x) var(--light-y),
    #eec16b42,
    transparent 42%
  );
}
.hero-architecture {
  opacity: 0.6;
  right: -4%;
  width: 50%;
  top: 9%;
  height: 88%;
}
.hero-medallion {
  right: 7%;
  top: 20%;
  width: 285px;
  color: #ffe0a0;
  filter: drop-shadow(0 9px 24px #060c09);
  z-index: 1;
}
.hero-medallion:before {
  content: "";
  position: absolute;
  inset: 5%;
  bottom: 22%;
  background: radial-gradient(circle, #b5903b20, transparent 70%);
  border-radius: 50%;
  z-index: -1;
}
.hero-medallion .justice-balance {
  stroke-width: 1.7;
}
.hero-medallion > span {
  font-size: 10px;
  letter-spacing: 0.28em;
}
.hero-beams {
  position: absolute;
  inset: -25%;
  pointer-events: none;
  z-index: -2;
  overflow: hidden;
}
.hero-beams:before,
.hero-beams:after {
  content: "";
  position: absolute;
  top: -30%;
  width: 14%;
  height: 160%;
  background: linear-gradient(90deg, transparent, #f2d88a17, transparent);
  transform: rotate(28deg);
  left: 55%;
}
.hero-beams:after {
  left: 78%;
  width: 6%;
  opacity: 0.6;
}
.motion-controls {
  position: absolute;
  z-index: 5;
  right: 24px;
  bottom: 76px;
  display: flex;
  gap: 8px;
}
.motion-controls .motion-toggle {
  position: static;
  white-space: nowrap;
  background: #131b16d9;
  color: #f4deaa;
  border-color: #d3b67180;
  font-size: 11px;
  padding: 9px 12px;
}
.motion-controls button:hover {
  background: #e6ca88;
  color: #1c241d;
}
.classical-ribbon {
  overflow: hidden;
  border-bottom: 1px solid #ba9d5638;
  background: #19251f;
  color: #e0c68e;
  padding: 21px 0;
}
.ribbon-track {
  display: flex;
  width: max-content;
  gap: 0;
}
.ribbon-track > span {
  display: block;
  white-space: nowrap;
  padding-right: 65px;
  font-family: Georgia, serif;
  font-size: 27px;
  letter-spacing: 0.07em;
}
.ribbon-track b {
  font-size: 14px;
  font-weight: 400;
  margin: 0 28px;
  color: #ac8846;
}
.principles-band {
  position: relative;
  z-index: 2;
}
.specialty-tile {
  border-radius: 85px 85px 6px 6px !important;
  min-height: 270px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(140deg, #fffdf8, #f3eddf);
}
.specialty-tile:after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid #c3a25b40;
  border-radius: 76px 76px 2px 2px;
  pointer-events: none;
}
.specialty-tile .tile-arch {
  background: #e4d5b74d;
  border-color: #bfa36765;
}
.specialty-tile:hover {
  background: #eee1c5;
  box-shadow: 0 22px 42px #5a48271c;
}
.editorial-passage {
  background:
    radial-gradient(ellipse at 90% 15%, #6a62422e, transparent 60%), #16221b;
}
.passage-columns {
  opacity: 0.33 !important;
  transform: perspective(900px) rotateY(-15deg);
}
.section-title h2 em,
.professional-cta h2 em {
  color: #997326;
}
.professional-cta h2 em {
  color: #e7c57f;
}
/* All content is visible without JS. Initial states are enabled only after bootstrap. */
.fx3-ready .fx3-item {
  transition:
    opacity 0.95s ease var(--fx3-delay, 0ms),
    transform 0.95s cubic-bezier(0.16, 1, 0.3, 1) var(--fx3-delay, 0ms),
    filter 0.95s ease var(--fx3-delay, 0ms) !important;
}
.fx3-ready[data-effects="full"] .fx3-item:not(.fx3-in) {
  opacity: 0;
  transform: translate3d(0, 85px, 0) scale(0.93);
  filter: blur(4px);
}
.fx3-ready[data-effects="full"] .fx3-item[data-fx-side="1"]:not(.fx3-in) {
  transform: translate3d(-64px, 50px, 0) rotate(-2deg) scale(0.95);
}
.fx3-ready[data-effects="full"] .fx3-item[data-fx-side="2"]:not(.fx3-in) {
  transform: translate3d(64px, 50px, 0) rotate(2deg) scale(0.95);
}
.fx3-ready .fx3-item.fx3-in {
  opacity: 1;
  filter: none;
}
.fx3-ready .specialty-tile.fx3-in .tile-arch .icon {
  animation: legal-icon-rise 0.85s cubic-bezier(0.16, 1, 0.3, 1)
    var(--fx3-delay, 0ms) both;
}
.fx3-ready .title-mask > span,
.fx3-ready .cinema-description,
.fx3-ready .cinema-search,
.fx3-ready .hero-medallion,
.fx3-ready .hero-kicker,
.fx3-ready .cinema-hero .ai-link {
  animation: none;
  transition:
    opacity 1.15s ease,
    transform 1.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.fx3-ready[data-effects="full"]:not(.hero-entered) .title-mask > span {
  opacity: 0;
  transform: translateY(115%) rotate(3deg);
}
.fx3-ready[data-effects="full"]:not(.hero-entered)
  :is(
    .cinema-description,
    .cinema-search,
    .hero-kicker,
    .cinema-hero .ai-link
  ) {
  opacity: 0;
  transform: translateY(48px);
}
.fx3-ready[data-effects="full"]:not(.hero-entered) .hero-medallion {
  opacity: 0;
  transform: scale(0.58) rotate(-18deg);
}
.fx3-ready.hero-entered .title-mask > span,
.fx3-ready.hero-entered
  :is(
    .cinema-description,
    .cinema-search,
    .hero-medallion,
    .hero-kicker,
    .cinema-hero .ai-link
  ) {
  opacity: 1;
  transform: none;
}
.fx3-ready .title-mask:nth-child(2) > span {
  transition-delay: 0.18s !important;
}
.fx3-ready .title-mask:nth-child(3) > span {
  transition-delay: 0.36s !important;
}
.fx3-ready .cinema-description {
  transition-delay: 0.55s !important;
}
.fx3-ready .cinema-search {
  transition-delay: 0.75s !important;
}
.fx3-ready .hero-medallion {
  transition-delay: 0.35s !important;
}
.fx3-ready .cinema-hero .ai-link {
  transition-delay: 0.95s !important;
}
.fx3-ready[data-effects="full"] .cinema-image img {
  transform: translateY(var(--hero-shift)) scale(1.035) !important;
  transition: scale 2.6s ease !important;
  scale: 1;
}
.fx3-ready[data-effects="full"]:not(.hero-entered) .cinema-image img {
  scale: 1.13;
}
.fx3-ready[data-effects="full"] .hero-beams:before {
  animation: roman-light 15s ease-in-out infinite !important;
}
.fx3-ready[data-effects="full"] .hero-beams:after {
  animation: roman-light 21s -7s ease-in-out infinite reverse !important;
}
.fx3-ready[data-effects="full"] .balance-beam {
  animation: legal-balance 4.8s ease-in-out infinite !important;
}
.fx3-ready[data-effects="full"] .balance-orbit {
  animation: orbit 34s linear infinite !important;
}
.fx3-ready[data-effects="full"] .gold-dust {
  display: block;
}
.fx3-ready[data-effects="full"] .gold-dust i {
  animation-name: dust-rise !important;
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
  animation-duration: 14s !important;
  opacity: 0.65;
  box-shadow: 0 0 8px #eaca78;
}
.fx3-ready[data-effects="full"].hero-entered .arch-lines path[pathLength] {
  animation: arch-draw 2.7s 0.2s ease both !important;
  stroke-width: 1.6;
}
.fx3-ready[data-effects="full"]:not(.hero-entered)
  .arch-lines
  path[pathLength] {
  animation: none !important;
  stroke-dashoffset: 1;
}
.fx3-ready[data-effects="full"] .ribbon-track {
  animation: classical-procession 38s linear infinite !important;
}
.fx3-ready[data-effects="soft"] .fx3-item:not(.fx3-in) {
  opacity: 0.12;
  transform: none;
  filter: none;
}
.fx3-ready[data-effects="soft"] .fx3-item {
  transition: opacity 0.7s ease !important;
}
.fx3-ready[data-effects="soft"]
  :is(
    .balance-beam,
    .balance-orbit,
    .gold-dust i,
    .hero-beams:before,
    .hero-beams:after,
    .ribbon-track
  ),
.fx3-ready[data-effects="off"] * {
  animation: none !important;
}
.fx3-ready[data-effects="off"] .fx3-item {
  opacity: 1;
  transform: none !important;
  filter: none;
  transition: none !important;
}
.fx3-ready[data-effects="off"]
  :is(
    .title-mask > span,
    .cinema-description,
    .cinema-search,
    .hero-medallion,
    .hero-kicker,
    .cinema-hero .ai-link
  ) {
  transition: none !important;
  opacity: 1;
  transform: none;
}
.fx3-ready[data-effects="off"] .arch-lines path,
.fx3-ready[data-effects="soft"] .arch-lines path {
  stroke-dashoffset: 0;
}
.fx3-ready:not([data-effects="full"]) .scroll-quote {
  color: #f4ead2;
  background: none;
}
.effects-hidden *,
.effects-hidden *:before,
.effects-hidden *:after {
  animation-play-state: paused !important;
}
@keyframes roman-light {
  0%,
  100% {
    transform: translateX(-50%) rotate(28deg);
    opacity: 0.4;
  }
  50% {
    transform: translateX(85%) rotate(28deg);
    opacity: 1;
  }
}
@keyframes classical-procession {
  to {
    transform: translateX(-50%);
  }
}
@keyframes legal-balance {
  0%,
  100% {
    transform: rotate(-7deg);
  }
  50% {
    transform: rotate(7deg);
  }
}
@keyframes legal-icon-rise {
  0% {
    transform: translateY(24px) scale(0.5) rotate(-15deg);
    opacity: 0;
  }
  70% {
    transform: translateY(-5px) scale(1.12) rotate(4deg);
    opacity: 1;
  }
  100% {
    transform: none;
    opacity: 1;
  }
}
@media (max-width: 1100px) {
  .hero-medallion {
    width: 215px;
    right: 4%;
    top: 25%;
  }
}
@media (max-width: 760px) {
  .hero-medallion {
    display: none;
  }
  .hero-architecture {
    width: 100%;
    right: -27%;
    top: 5%;
    opacity: 0.4;
  }
  .motion-controls {
    right: 22px;
    bottom: 76px;
  }
  .motion-controls .motion-toggle {
    font-size: 10px;
    padding: 8px;
  }
  .ribbon-track > span {
    font-size: 21px;
  }
  .classical-ribbon {
    padding: 17px 0;
  }
  .specialty-tile {
    min-height: 240px;
    border-radius: 65px 65px 5px 5px !important;
  }
  .specialty-tile:after {
    border-radius: 56px 56px 2px 2px;
  }
  .fx3-ready[data-effects="full"] .fx3-item:not(.fx3-in) {
    transform: translate3d(0, 65px, 0) scale(0.94) !important;
  }
}

.fx3-ready.hero-resetting .title-mask > span,
.fx3-ready.hero-resetting
  :is(
    .cinema-description,
    .cinema-search,
    .hero-medallion,
    .hero-kicker,
    .cinema-hero .ai-link,
    .cinema-image img
  ) {
  transition: none !important;
}
