/* Cafe Nineteen motion layer: transform/opacity only; visible without JS. */
:root { --motion-out: cubic-bezier(.23,1,.32,1); }
.brand-ribbon { overflow: hidden; background: #f3a363; color: #006d66; padding-block: 19px; }
.brand-ribbon-track { display: flex; width: max-content; animation: ribbon-travel 32s linear infinite; }
.brand-ribbon-group { display: flex; align-items: center; justify-content: space-around; min-width: 100vw; gap: 40px; padding-right: 40px; flex: none; font-family: Georgia, serif; font-size: clamp(24px,3vw,42px); line-height: 1.1; }
.brand-ribbon-group i { display: inline-block; font-style: normal; animation: cafe-turn 14s linear infinite; }
.coffee-steam { display: inline-flex; align-items: center; gap: 7px; height: 30px; margin-left: 18px; vertical-align: middle; }
.coffee-steam i { width: 9px; height: 23px; display: block; border-left: 2px solid currentColor; border-radius: 50%; animation: steam-rise 3.2s cubic-bezier(.45,0,.55,1) infinite; }
.coffee-steam i:nth-child(2) { animation-delay: -.9s; }
.coffee-steam i:nth-child(3) { animation-delay: -1.8s; }
.motion-enabled .hero-image { animation: storefront-breathe 20s cubic-bezier(.45,0,.55,1) infinite alternate; }
.motion-enabled .review .stars { display: inline-block; animation: warm-glow 4.8s ease-in-out infinite alternate; }
.motion-enabled .review:nth-child(2) .stars { animation-delay: -1.6s; }
.motion-enabled .review:nth-child(3) .stars { animation-delay: -3.2s; }
.button, .social-link, .menu-toggle, .gallery-item, .lightbox button { transition: transform 160ms var(--motion-out), background-color 180ms ease, color 180ms ease; }
.button:active, .social-link:active, .menu-toggle:active, .lightbox button:active { transform: scale(.97); }
.menu-image img, .about-media img { transition: transform 550ms var(--motion-out); }
.review { transition: transform 240ms var(--motion-out), border-color 200ms ease; }
.desktop-nav a, .text-link { text-underline-offset: 6px; }
@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-3px); }
  .button:active { transform: translateY(0) scale(.97); }
  .social-link:hover { transform: rotate(-8deg); }
  .menu-column:hover .menu-image img, .about-media:hover img { transform: scale(1.045); }
  .review:hover { transform: translateY(-5px); border-color: #f3a363; }
  .brand-ribbon:hover .brand-ribbon-track { animation-play-state: paused; }
}
@media (hover: none) {
  .gallery-item:hover::after, .gallery-item:hover img { transform: none; }
}
@keyframes storefront-breathe { from { transform: scale(1); } to { transform: scale(1.035) translateY(-.5%); } }
@keyframes ribbon-travel { to { transform: translateX(-50%); } }
@keyframes cafe-turn { to { transform: rotate(360deg); } }
@keyframes steam-rise { 0% { transform: translateY(7px) rotate(-12deg); opacity: 0; } 50% { opacity: .95; } 100% { transform: translateY(-7px) rotate(12deg); opacity: 0; } }
@keyframes warm-glow { from { opacity: .6; } to { opacity: 1; } }
.motion-paused *, .motion-offscreen *, .motion-offscreen.hero .hero-image { animation-play-state: paused !important; }
.motion-paused .brand-ribbon-track { animation-play-state: paused !important; }
.keyboard-input { scroll-behavior: auto; }
.keyboard-input *, .motion-paused * { transition-duration: 0s !important; }
@media (max-width: 767px) {
  .brand-ribbon-group { gap: 24px; padding-right: 24px; }
  .brand-ribbon { padding-block: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .brand-ribbon-track { width: 100%; }
  .brand-ribbon-group { width: 100%; flex-wrap: wrap; justify-content: center; padding: 0 16px; font-size: 22px; }
  .brand-ribbon-group:nth-child(2) { display: none; }
  .brand-ribbon-group i { display: none; }
}
