.section-divider {
  position: relative;
  border-top: 1px solid rgba(17,17,17,0.08);
  width: 100%;
}
.section-divider::before {
  content: '';
  position: absolute;
  left: 2.5rem;
  top: -2px;
  width: 3px;
  height: 3px;
  background: var(--c-accent);
}
.corner-marks {
  position: relative;
}
.corner-marks::before, .corner-marks::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}
.corner-marks::before {
  top: 0;
  left: 0;
  border-top: 1px solid rgba(17,17,17,0.2);
  border-left: 1px solid rgba(17,17,17,0.2);
  clip-path: polygon(0 0, 10px 0, 10px 1px, 1px 1px, 1px 10px, 0 10px);
}
.corner-marks::after {
  bottom: 0;
  right: 0;
  border-bottom: 1px solid rgba(17,17,17,0.2);
  border-right: 1px solid rgba(17,17,17,0.2);
  clip-path: polygon(100% 100%, calc(100% - 10px) 100%, calc(100% - 10px) calc(100% - 1px), calc(100% - 1px) calc(100% - 1px), calc(100% - 1px) calc(100% - 10px), 100% calc(100% - 10px));
}
.cta-primary {
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
}
.cta-primary-inner {
  position: absolute;
  inset: 0;
  border: 1.5px solid var(--c-accent);
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  transition: stroke-dashoffset 0.6s cubic-bezier(0.65, 0, 0.35, 1);
  pointer-events: none;
}
.cta-container:hover .cta-primary-inner {
  stroke-dashoffset: 0;
}
.filmstrip {
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.filmstrip::-webkit-scrollbar {
  display: none;
}
.pegboard-overlay {
  background: rgba(17,17,17,0.85);
  clip-path: inset(100% 0 0 0);
  transition: clip-path 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}
.pegboard-tile:hover .pegboard-overlay {
  clip-path: inset(0);
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 35s linear infinite;
}
.marquee-container:hover .marquee-track {
  animation-play-state: paused;
}
.conic-border::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: 0;
  pointer-events: none;
  opacity: 0;
  background: conic-gradient(from var(--angle), transparent 0deg, var(--c-accent) 90deg, transparent 180deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  transition: opacity 0.3s;
}
.conic-border:hover::before {
  opacity: 1;
  animation: rotate-conic 2s linear infinite;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -0.375rem;
  left: 50%;
  transform: translateX(-50%) scale(0);
  width: 4px;
  height: 4px;
  background-color: var(--c-accent);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.nav-link:hover::after, .nav-link.active::after {
  transform: translateX(-50%) scale(1);
}
#loader {
  transition: opacity 0.6s ease-out;
}
.loader-line {
  width: 0%;
  transition: width 1.2s cubic-bezier(0.65, 0, 0.35, 1);
}
#hero-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.6;
  mix-blend-mode: multiply;
  pointer-events: none;
}
.hero-overlay-img {
  transition: transform 0.1s ease-out;
}
.ceremonial-mode {
  filter: invert(1) hue-rotate(180deg);
  transition: filter 0.8s ease-in-out;
}
.ceremonial-mode img, .ceremonial-mode canvas {
  filter: invert(1) hue-rotate(180deg);
}
/* Logos styles */
.ticker-logo {
  fill: currentColor;
  height: clamp(1.2rem, 2vw, 1.5rem);
  opacity: 0.7;
  transition: opacity 0.3s;
}
.marquee-track:hover .ticker-logo {
  opacity: 0.3;
}
.marquee-track .ticker-logo:hover {
  opacity: 1;
  color: var(--c-accent);
}
