:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.partner-logo{width:170px;height:60px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.8;transition:opacity .3s,transform .3s}
.partner-logo img{width:100%;height:100%;object-fit:contain}
.partner-logo:hover{opacity:1;transform:translateY(-3px)}
.partner-virgin{width:155px}.partner-peppermill{width:170px}
@media(max-width:1100px){.partners-strip .wrap{flex-wrap:wrap;justify-content:center}.partner-logo{width:150px;height:54px}}
@media(max-width:600px){.partner-logo{width:125px;height:50px}.partners-strip .wrap{gap:28px}}
.site-header{position:fixed;transition:background .45s,backdrop-filter .45s,box-shadow .45s}
.site-header.scrolled{background:#080808e8;backdrop-filter:blur(20px);box-shadow:0 8px 35px #0003}
.reading-progress{position:absolute;bottom:-1px;left:0;height:2px;background:linear-gradient(90deg,#206fca,#b1d6ff);width:100%;transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero{--px:0px;--py:0px;--scroll:0px}
.motion-on .hero-image{animation:casino-breathe 18s ease-in-out infinite;will-change:transform;translate:var(--px) calc(var(--py) + var(--scroll));scale:1.035}
.hero-aura{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 72% 35%,#efb96a1c,transparent 50%);mix-blend-mode:screen}
.motion-on .hero-aura{animation:light-breathe 8s ease-in-out infinite}
.hero-content.reveal{animation:none}
.hero h1 .hero-line{display:block;overflow:hidden;padding-bottom:.05em;margin-bottom:-.05em;color:var(--paper);-webkit-text-stroke:0}
.hero h1 .hero-word{display:block;color:inherit;-webkit-text-stroke:0}
.hero h1 .hero-line.outlined .hero-word{color:transparent;-webkit-text-stroke:1px #eee}
.motion-on .hero-word{animation:headline-arrive 1.35s var(--motion-ease) both;animation-delay:calc(var(--line) * .13s + .1s)}
.motion-on .hero .eyebrow{animation:soft-arrive 1.1s .1s both}
.motion-on .hero-intro{animation:soft-arrive 1.1s .6s both}
.motion-on .hero-actions{animation:soft-arrive 1.1s .8s both}
.motion-on .live-dot{animation:live-breathe 2.6s ease-in-out infinite}
.ticker-track{flex:1;min-width:0;overflow:hidden;padding:0;display:block}
.ticker-belt{display:flex;align-items:center;width:max-content;height:100%;min-height:70px;gap:44px;padding-left:30px}
.ticker-belt>.ticker-item:last-child{margin-right:0}
.motion-on .ticker-belt{animation:tour-marquee 34s linear infinite}
.ticker:hover .ticker-belt,.ticker:focus-within .ticker-belt{animation-play-state:paused}
.world-card{transform-style:preserve-3d;transition:transform .5s var(--motion-ease),box-shadow .5s;border-color:#ffffff20}
.world-card:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(450px circle at var(--light-x,50%) var(--light-y,50%),#ffffff18,transparent 65%);opacity:0;transition:opacity .5s}
.motion-on .world-card:hover{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-6px);box-shadow:0 25px 70px #0008}
.motion-on .world-card:hover:before{opacity:1}
.motion-on .world-card .card-bottom{transition:translate .6s var(--motion-ease)}
.motion-on .world-card:hover .card-bottom{translate:0 -8px}
.button{position:relative;overflow:hidden;isolation:isolate;translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:background .25s,color .25s,transform .25s,translate .25s var(--motion-ease)}
.button:before{content:'';position:absolute;inset:-80% -40%;background:linear-gradient(110deg,transparent 40%,#ffffff50 50%,transparent 60%);translate:-80% 0;rotate:5deg;z-index:-1;pointer-events:none}
.motion-on .button:hover:before{animation:button-sheen .9s ease-out}
.motion-on .button:hover .arrow,.motion-on .text-link:hover .arrow{translate:3px -3px}
.arrow{transition:translate .3s var(--motion-ease)}
.tour-row{position:relative;isolation:isolate}
.tour-row:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#206fca18,transparent);z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .55s var(--motion-ease)}
.motion-on .tour-row:hover:before{transform:scaleX(1)}
.motion-on .tour-row:hover .date b{color:#8dc0ff}
.tour-row .date b{transition:color .3s}
.story-photo,.cruise-feature{overflow:hidden}
.story-photo img{scale:1.07;translate:0 var(--image-drift,0px)}
.motion-on .cruise-feature>img{scale:1.12;translate:0 var(--image-drift,0px)}
.motion-on .cruise-feature .stamp{animation:stamp-float 9s ease-in-out infinite}
.attitude-band{border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;padding:26px 0;overflow:hidden;background:#0e0e0e;position:relative}
.attitude-belt{display:flex;gap:40px;align-items:center;width:max-content;font-family:var(--display);font-weight:700;font-size:clamp(70px,10vw,150px);line-height:1;text-transform:uppercase;letter-spacing:-.025em}
.attitude-belt span{white-space:nowrap}
.attitude-belt i{font-style:normal;color:#206fca;font-size:.6em}
.attitude-belt .hollow{color:transparent;-webkit-text-stroke:1px #f9fbfd80}
.motion-on .attitude-belt{animation:attitude-marquee 32s linear infinite}
.motion-on .gallery button img{transition:transform .8s var(--motion-ease),opacity .3s}
.motion-on .gallery button:hover img{transform:scale(1.09) rotate(-1deg)}
.motion-on .join .mono{animation:logo-float 10s ease-in-out infinite}
.motion-control{position:fixed;right:24px;bottom:21px;z-index:20;display:flex;align-items:center;gap:10px;border:1px solid #ffffff38;border-radius:40px;background:#0c0c0ce8;backdrop-filter:blur(20px);padding:11px 16px;color:#eee;font-size:9px;text-transform:uppercase;letter-spacing:.1em;box-shadow:0 4px 20px #0005;transition:background .3s,border .3s}
.motion-control:hover{background:#17283b;border-color:#7cb7ff}
.motion-control .motion-bars{display:flex;align-items:center;gap:2px;height:15px}
.motion-bars i{display:block;width:2px;height:5px;background:#8dc0ff}
.motion-on .motion-bars i{animation:equalize 1s ease-in-out infinite alternate}
.motion-bars i:nth-child(2){animation-delay:-.3s}.motion-bars i:nth-child(3){animation-delay:-.6s}.motion-bars i:nth-child(4){animation-delay:-.9s}
.motion-control small{font-size:7px;color:#8d9eb2;letter-spacing:.06em}
.ambient-dust{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ambient-dust i{position:absolute;left:var(--x);bottom:-20px;width:2px;height:2px;border-radius:50%;background:#ffe3b3;opacity:0;box-shadow:0 0 9px #ffdba6}
.motion-on .ambient-dust i{animation:dust-drift var(--duration) var(--delay) linear infinite}
.hero-content,.hero-location,.hero-bottom{z-index:1}
.motion-on .scroll span{display:inline-block;animation:scroll-nudge 2.2s ease-in-out infinite}
.motion-off .ambient-dust,.motion-off .hero-aura{display:none}
.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important}
.motion-off .hero-image,.motion-off .story-photo img,.motion-off .cruise-feature>img{translate:0 0!important;scale:1}
.motion-off .hero-word,.motion-off .hero-intro,.motion-off .hero-actions,.motion-off .hero .eyebrow{opacity:1;transform:none}
@keyframes casino-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes light-breathe{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes headline-arrive{from{transform:translateY(115%) rotate(3deg);opacity:.1}to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes soft-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes live-breathe{50%{box-shadow:0 0 0 7px #206fca00;background:#aed5ff}}
@keyframes tour-marquee{to{transform:translateX(-50%)}}
@keyframes attitude-marquee{to{transform:translateX(-50%)}}
@keyframes button-sheen{to{translate:85% 0}}
@keyframes stamp-float{0%,100%{transform:translateY(0) rotate(8deg)}50%{transform:translateY(-12px) rotate(18deg)}}
@keyframes logo-float{50%{transform:translateY(-15px) rotate(-8deg)}}
@keyframes equalize{to{height:15px}}
@keyframes dust-drift{0%{opacity:0;transform:translate(0,0)}15%{opacity:.4}85%{opacity:.2}100%{opacity:0;transform:translate(45px,-850px)}}
@keyframes scroll-nudge{50%{transform:translateY(6px)}}
@media(max-width:760px){.ticker-belt{min-height:63px;gap:25px;padding-left:22px}.motion-control{right:13px;bottom:13px;padding:9px 12px;font-size:8px}.attitude-band{padding:22px 0}.ambient-dust i:nth-child(n+10){display:none}}
@media(max-width:600px) and (max-height:550px){.hero{height:760px}.hero-content{padding-top:260px}.hero h1{font-size:70px}.hero:before{background:linear-gradient(0deg,#080808 22%,#08080880 65%,#0002),linear-gradient(90deg,#0009,#0000)}}
@media(prefers-reduced-motion:reduce){.hero-image,.story-photo img,.cruise-feature>img{translate:0 0!important;scale:1!important}.ambient-dust,.hero-aura{display:none}.attitude-belt,.ticker-belt{animation:none!important}.motion-control{display:none}}
