html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
.grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 40;
  opacity: 0.05;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.photo-tint {
  background: linear-gradient(180deg, rgba(18,54,64,0.08), rgba(216,80,44,0.16));
  mix-blend-mode: multiply;
}
#mobile-panel {
  transform-origin: top right;
  transform: scale(0.97) translateY(-8px);
  opacity: 0;
  visibility: hidden;
  transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s ease, visibility 0.25s;
}
#mobile-panel.open {
  transform: scale(1) translateY(0);
  opacity: 1;
  visibility: visible;
}
@media (prefers-reduced-motion: reduce) {
  #mobile-panel { transition: opacity 0.15s ease; }
}
@keyframes cta-spin {
  to { transform: rotate(1turn); }
}
.cta-glow {
  position: relative;
  z-index: 0;
  isolation: isolate;
}
.cta-glow::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: -60%;
  top: -60%;
  width: 220%;
  height: 220%;
  background: conic-gradient(from 0deg, #D8502C, #D9A441, #2C8C82, #D8502C);
  filter: blur(9px);
  animation: cta-spin 5.5s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .cta-glow::before { animation: none; }
}
