/* Shared vector artwork keeps UI visuals independent of emoji fonts. */
.ui-icon{display:inline-block;width:1.2em;height:1.2em;flex-shrink:0;vertical-align:middle;overflow:visible}
.spark .ui-icon,.hero-stamp b .ui-icon,.graphic-spark .ui-icon,.brand-ribbon b .ui-icon{width:1em;height:1em}
.field-symbol .ui-icon{width:22px;height:22px}
.onboarding-art .ui-icon{width:76px;height:76px;color:inherit}
.sun-motion{animation:floaty-sun 48s linear infinite;transform-origin:center}
.location-motion{animation:floaty-location 4s ease-in-out infinite;transform-origin:center}
.boarding-scene{position:relative;isolation:isolate;background:linear-gradient(160deg,#d4e8df,#9bc6bb)}
.boarding-vessel{position:relative;z-index:1;animation:floaty-vessel 5s ease-in-out infinite}
.boarding-water{position:absolute;inset:65% -25% -50%;border-radius:45%;border-top:1px solid #173a3633;background:#173a3609;animation:floaty-water 7s ease-in-out infinite}
.boarding-water:after{content:"";position:absolute;inset:14px 0;border-radius:45%;border-top:1px solid #173a3626}
.scenic-vessel{transform-box:fill-box;transform-origin:center;animation:floaty-vessel 5s ease-in-out infinite}
.scenic-water{animation:floaty-wake 4s ease-in-out infinite}
.route-card:nth-child(2) .scenic-vessel{animation-delay:-1.6s}.route-card:nth-child(3) .scenic-vessel{animation-delay:-3.2s}
.route-card{transition:transform .25s ease,box-shadow .25s ease}.route-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #081b1c18}.route-card:active{transform:translateY(0)}
@keyframes floaty-sun{to{transform:rotate(360deg)}}
@keyframes floaty-location{0%,100%{opacity:.65;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}
@keyframes floaty-vessel{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
@keyframes floaty-water{0%,100%{transform:translateX(-3%) rotate(-2deg)}50%{transform:translateX(3%) rotate(2deg)}}
@keyframes floaty-wake{0%,100%{opacity:.35;stroke-dasharray:28 8;stroke-dashoffset:0}50%{opacity:.8;stroke-dashoffset:12}}
@media(prefers-reduced-motion:reduce){.sun-motion,.location-motion,.boarding-vessel,.boarding-water,.scenic-vessel,.scenic-water{animation:none}.route-card{transition:none}.route-card:hover{transform:none}}
