/* Ophsides guest pages: shared design tokens (invite 002 + ticket/pending/waitlist). One place for fonts, colours, links and the arrow cue. */
@font-face { font-family: 'Oph Zed'; src: url(/fonts/ophsides/ZedDisplayNonRoundedVariable-xsTRIAL.ttf) format('truetype'); font-weight: 1 900; font-display: swap; }
:root { --red: #f24747; --oph-purple: #a78bfa; --oph-dj: 'SF Compact Display', 'SF Compact', -apple-system, BlinkMacSystemFont, system-ui, 'Helvetica Neue', Arial, sans-serif; }
/* Links: no underline, purple while tapped. */
.fly a, .fly a:link, .fly a:visited, .flyer a, .flyer a:link, .flyer a:visited { color: inherit; text-decoration: none; -webkit-tap-highlight-color: rgba(124,58,237,.18); }
.fly a:hover, .fly a:active, .flyer a:hover, .flyer a:active { color: var(--oph-purple) !important; }
/* Centred bouncing arrow cue at the bottom of the flyer (RSVP ↓ / SAVE TICKET ↓). */
.cue-row { display: flex; justify-content: center; width: 100%; margin: 16px 0 0; }
.cue { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; color: #fff !important; text-decoration: none; font: 450 11px/1 var(--text); letter-spacing: .18em; text-transform: uppercase; transition: opacity .5s ease; }
.cue b { font-weight: 400; font-size: 15px; letter-spacing: 0; color: var(--red); }
@keyframes cueb { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
