/* Adapted from GodUI's MIT-licensed component source. See ../vendor/GODUI-LICENSE.txt. */
.ui-icon { width: 22px; height: 22px; flex: 0 0 auto; stroke-width: 1.5; }
[data-icon] { display: inline-flex; }
[data-border-beam] { position: relative; isolation: isolate; overflow: hidden; }
.border-beam { position: absolute; inset: 0; border: 1.5px solid transparent; border-radius: inherit; pointer-events: none; mask: linear-gradient(transparent, transparent), linear-gradient(#000, #000); mask-clip: padding-box, border-box; mask-composite: intersect; }
.border-beam > span { position: absolute; width: var(--beam-size, 30px); aspect-ratio: 1; offset-path: rect(0 auto auto 0 round 8px); background: linear-gradient(to left, #fff8ee, #d6aaa3, transparent); animation: border-travel var(--beam-duration, 9s) linear infinite paused; }
.beam-in-view .border-beam > span { animation-play-state: running; }
.ui-paused .border-beam > span { animation-play-state: paused; }
.button:hover .border-beam, .button:hover .border-beam > span { transform: none; }
@keyframes border-travel { to { offset-distance: 100%; } }

.effect-background { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.booking { position: relative; isolation: isolate; overflow: hidden; }
.booking .effect-background { background-color: #211e22; background-image: repeating-linear-gradient(118deg, transparent 0 110px, #ecc8c207 111px, transparent 113px), linear-gradient(118deg, #352b33 0%, #211e22 36%, #45343c 65%, #242c2b 100%); }
.booking .button-beam { background: #51343f; color: #fff8f5; border-color: #a5848a; min-height: 56px; }
.booking .button-beam:hover { background: #684350; }

[data-spotlight] { position: relative; isolation: isolate; overflow: hidden; }
[data-spotlight]::before, [data-spotlight]::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity 300ms; }
[data-spotlight]::before { z-index: -1; background: radial-gradient(280px circle at var(--x, 50%) var(--y, 50%), #b6808720, transparent 65%); }
[data-spotlight]::after { padding: 1px; background: radial-gradient(280px circle at var(--x, 50%) var(--y, 50%), #a46676aa, transparent 65%); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude; }
@media (hover: hover) and (pointer: fine) {
  [data-spotlight]:hover::before, [data-spotlight]:hover::after { opacity: 1; }
}
[data-spotlight]:focus-visible::after { opacity: 1; }

.quick-links { display: none; }
@media (max-width: 900px) {
  .hero-bottom .scroll-link { display: none; }
  .quick-links { display: block; position: fixed; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); width: 56px; height: 56px; z-index: 50; color: #fffdfa; --step: 58px; }
  .quick-links-fallback { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: #70404a; font-size: 12px; box-shadow: 0 4px 18px #20132026; }
  .quick-links-scrim { position: fixed; inset: 0; background: #19171b8c; opacity: 0; visibility: hidden; transition: opacity 220ms, visibility 220ms; }
  .is-open .quick-links-scrim { opacity: 1; visibility: visible; }
  .gooey-shapes { position: absolute; inset: 0; overflow: visible; pointer-events: none; fill: #70404a; }
  .gooey-satellite { transform: translateY(0) scale(.2); opacity: 0; transform-box: fill-box; transform-origin: center; transition: transform 460ms cubic-bezier(.2,.9,.2,1.18), opacity 180ms; }
  .gooey-trigger { position: relative; display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 1px solid #ffffff35; border-radius: 50%; background: transparent; color: inherit; box-shadow: 0 4px 18px #20132026; }
  .gooey-trigger .ui-icon { width: 25px; height: 25px; transition: transform 380ms cubic-bezier(.2,.9,.2,1.18); }
  .gooey-trigger:active { scale: .95; }
  .is-open .gooey-trigger .ui-icon { transform: rotate(135deg); }
  .quick-links-menu { position: absolute; inset: 0; pointer-events: none; }
  .quick-link { position: absolute; bottom: 6px; right: 6px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; opacity: 0; visibility: hidden; transform: translateY(0) scale(.4); transition: transform 460ms cubic-bezier(.2,.9,.2,1.18), opacity 180ms, visibility 180ms; }
  .quick-link-label { position: absolute; right: 60px; white-space: nowrap; padding: 6px 12px; border: 1px solid #ffffff24; border-radius: 4px; background: #fffdfa; color: #392930; font-size: 13px; box-shadow: 0 3px 12px #00000010; }
  .quick-link:hover .quick-link-label { background: #f0e2e4; }
  .is-open .gooey-satellite, .is-open .quick-link { opacity: 1; transform: translateY(calc(var(--step) * var(--slot) * -1)); transition-delay: calc((var(--slot) - 1) * 35ms); }
  .is-open .quick-link { visibility: visible; pointer-events: auto; }
  .quick-links-all { position: absolute; bottom: calc(var(--step) * var(--link-count) + 64px); right: 8px; display: flex; align-items: center; gap: 10px; white-space: nowrap; font-size: 13px; opacity: 0; visibility: hidden; }
  .quick-links-all .ui-icon { width: 16px; height: 16px; }
  .is-open .quick-links-all { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 200ms 200ms; }
  .quick-links-compact .gooey-satellite { display: none; }
  .quick-links-compact .quick-links-menu { inset: auto 0 76px auto; width: min(280px, calc(100vw - 64px)); max-height: calc(100svh - 128px); overflow-y: auto; background: #fffdfa; border-radius: 8px; padding: 10px; visibility: hidden; }
  .quick-links-compact.is-open .quick-links-menu { visibility: visible; pointer-events: auto; }
  .quick-links-compact .quick-link { position: relative; inset: auto; width: 100%; height: auto; min-height: 48px; padding: 12px; grid-template-columns: 1fr 24px; gap: 12px; border-radius: 4px; transform: none; color: #70404a; transition: none; }
  .quick-links-compact .quick-link-label { position: static; padding: 0; white-space: normal; background: none; box-shadow: none; border: 0; justify-self: start; }
  .quick-links-compact .quick-links-all { position: static; justify-content: space-between; color: #70404a; margin: 8px 12px; min-height: 44px; }
  body:not(.bio-page) .footer { padding-bottom: calc(94px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .border-beam > span { animation: none; offset-distance: 18%; }
  .gooey-satellite, .quick-link, .gooey-trigger .ui-icon, .quick-links-scrim { transition: none; }
  [data-spotlight]::before, [data-spotlight]::after { display: none; }
}
