@keyframes orbit-drift{from{transform:rotate(0deg) scale(1)}to{transform:rotate(360deg) scale(1.04)}}
@keyframes pulse-soft{0%,100%{box-shadow:0 0 0 0 rgba(32,199,125,.2)}50%{box-shadow:0 0 0 8px rgba(32,199,125,0)}}
.brand-mark{transition:transform .25s ease,box-shadow .25s ease}
.brand:hover .brand-mark{transform:rotate(-8deg) scale(1.1);box-shadow:0 6px 15px rgba(255,255,255,.25)}
.desktop-nav a{position:relative;transition:color .2s ease,opacity .2s ease}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:#fff;transform:scaleX(0);transform-origin:center;transition:transform .2s ease}
.desktop-nav a:hover::after{transform:scaleX(1)}
.hero-orbit{animation:orbit-drift 18s linear infinite}.orbit-two{animation-direction:reverse;animation-duration:24s}
.hero .button-light{animation:pulse-soft 3s ease-in-out 1.1s infinite}
.section-heading h2{transition:color .2s ease,transform .2s ease}.section-heading:hover h2{color:var(--blue);transform:translateX(3px)}
.form-wrap,.result-card,.contact-card,.info-page{transition:transform .28s ease,box-shadow .28s ease}.form-wrap:hover,.result-card:hover,.contact-card:hover,.info-page:hover{transform:translateY(-4px);box-shadow:0 20px 42px rgba(22,54,95,.14)}
.form-wrap input:hover,.form-wrap select:hover,.form-wrap textarea:hover{border-color:#a9bad1}.form-wrap input:focus,.form-wrap select:focus,.form-wrap textarea:focus{transform:translateY(-1px)}
.result-card .live-dot{animation:pulse-soft 2.2s ease-in-out infinite}
.info-page article{transition:transform .22s ease,padding-left .22s ease}.info-page article:hover{transform:translateX(4px);padding-left:5px}
.contact-details h3{transition:color .2s ease,transform .2s ease}.contact-details h3:hover{color:var(--violet);transform:translateX(3px)}
.footer-links a{position:relative}.footer-links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.footer-links a:hover::after{transform:scaleX(1)}
.ticket-number{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.ticket-number:hover{transform:translateY(-2px);box-shadow:0 7px 14px rgba(28,90,230,.12)}.ticket-number.selected{transform:translateY(-2px) scale(1.02)}
.confirm-btn{transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.confirm-btn:hover{transform:translateY(-2px);box-shadow:0 9px 18px rgba(35,147,98,.24);filter:brightness(1.05)}
.booking-modal .modal-card{animation:page-rise .25s ease both}.booking-modal.open .modal-card{box-shadow:0 22px 52px rgba(0,0,0,.28)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
