/* Luxury destinations 03 — scoped CSS; no framework, image download or layout-blocking animation. */
[data-destination="ubud"],[data-theme="ubud"]{--world:139,191,144;--world-dark:#10251c;--world-light:#a9d2a4}
[data-destination="seminyak"],[data-theme="seminyak"]{--world:234,166,124;--world-dark:#2a171b;--world-light:#f1c191}
[data-destination="nusapenida"],[data-theme="nusapenida"]{--world:120,203,211;--world-dark:#11282e;--world-light:#abdfdf}
[data-destination="phuket"],[data-theme="phuket"]{--world:221,186,132;--world-dark:#2c2319;--world-light:#eed0a1}
[data-destination="club"],[data-theme="club"]{--world:202,151,218;--world-dark:#29162c;--world-light:#e2b9e8}
.luxury-destinations{padding:58px 0 62px;background:radial-gradient(ellipse at 50% 0,#2c21153b,transparent 65%),#0b0b0d;border-block:1px solid #c6a4622e;position:relative;isolation:isolate;scroll-margin-top:90px}
.world-section-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:33px}.world-section-heading .eyebrow{font-size:9px;letter-spacing:3px;margin-bottom:12px}.world-section-heading h2{font-size:clamp(29px,2.8vw,42px);color:#f2e7d5}.world-section-heading h2 em{color:var(--gold);font-style:normal}.world-instruction{max-width:280px;color:#c0b5a3;font-size:12px;line-height:1.8;margin:0}.world-instruction .touch-instruction{display:none}.world-section-note{font-size:10px;line-height:1.6;color:#b4ab9a;margin-top:25px;letter-spacing:.4px}
.destination-worlds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;align-items:stretch;position:relative}.destination-card{--tilt-x:0deg;--tilt-y:0deg;position:relative;min-width:0;display:flex;flex-direction:column;text-decoration:none!important;color:#f7eedf;background:radial-gradient(ellipse at 50% 21%,rgba(var(--world),.12),transparent 68%),linear-gradient(165deg,#171516,#0e0d10);border:1px solid #ac8c505a;border-radius:3px;padding:17px 17px 19px;isolation:isolate;outline-offset:7px;touch-action:pan-y;transition:transform 420ms cubic-bezier(.2,.75,.2,1),border-color 380ms,box-shadow 450ms;min-height:362px;-webkit-tap-highlight-color:transparent}
.destination-card::before{content:'';position:absolute;inset:5px;border:1px solid rgba(var(--world),.1);border-radius:1px;pointer-events:none;transition:border-color 380ms}.destination-card::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(var(--world),.16),transparent 72%);opacity:0;transition:opacity 400ms;z-index:-1;pointer-events:none}
.world-card-top{display:flex;justify-content:space-between;align-items:center;color:#d6be94;font-size:8px;letter-spacing:2.2px;text-transform:uppercase;position:relative;z-index:2}.world-index{font:400 12px var(--display);letter-spacing:1px}.world-region{font-size:7px;letter-spacing:1.6px}.destination-scene{height:202px;position:relative;margin:4px -10px 0;color:var(--world-light);pointer-events:none;perspective:500px}.world-art{display:block;width:100%;height:100%;overflow:visible;transition:transform 500ms cubic-bezier(.2,.75,.2,1),filter 450ms;transform-origin:50% 85%;filter:drop-shadow(0 10px 10px #0003)}
.scene-halo{position:absolute;width:154px;height:154px;left:50%;top:22px;transform:translateX(-50%);border:1px solid rgba(var(--world),.19);border-radius:50%;background:radial-gradient(circle,rgba(var(--world),.045),transparent 70%);transition:transform 600ms,box-shadow 600ms}.scene-halo::after{content:'';position:absolute;inset:-9px;border:1px solid rgba(var(--world),.07);border-radius:50%}
.world-card-copy{position:relative;z-index:2;display:flex;flex:1;flex-direction:column;align-items:flex-start;padding-top:15px;border-top:1px solid rgba(var(--world),.19)}.world-eyebrow{font-size:7px;line-height:1.7;letter-spacing:1.6px;text-transform:uppercase;color:var(--world-light);margin-bottom:8px}.world-name{font:400 clamp(21px,1.95vw,27px)/1.14 var(--display);color:#f0e4cf;min-height:31px;transition:color 300ms}.destination-card[data-destination="phuket"] .world-name{font-size:23px}.destination-card[data-destination="club"] .world-name{font-size:21px;max-width:190px;line-height:1.2}.world-mood{font-size:9px;line-height:1.9;color:#c2b6a6;margin-top:10px;max-width:100%}.world-action{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:auto;padding-top:17px;font-size:8px;text-transform:uppercase;letter-spacing:1.9px;color:var(--gold);gap:6px}.world-arrow{display:grid;place-items:center;width:28px;height:28px;border:1px solid #b69c6566;border-radius:50%;font-size:17px;letter-spacing:0;transition:transform 350ms,background 350ms,color 350ms}
.world-pop{position:absolute;pointer-events:none;z-index:4;width:65px;height:65px;right:-17px;top:24px;color:var(--world-light);opacity:0;transform:translate(-7px,16px) scale(.6) rotate(-12deg);transform-origin:50% 80%;transition:transform 450ms cubic-bezier(.19,1,.22,1),opacity 280ms;filter:drop-shadow(0 0 12px rgba(var(--world),.23))}.world-pop svg{width:100%;height:100%;overflow:visible}.world-sheen{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.world-sheen::after{content:'';position:absolute;top:-20%;left:-90%;width:60%;height:140%;background:linear-gradient(100deg,transparent,#e8ce9911,transparent);transform:skewX(-20deg);transition:left 900ms}
.destination-card:is(.is-hovered,.is-focused,.is-pressed){border-color:rgba(var(--world),.73);box-shadow:0 22px 48px #0008,0 0 30px rgba(var(--world),.09);z-index:5}.destination-card:is(.is-hovered,.is-focused,.is-pressed)::before{border-color:rgba(var(--world),.3)}.destination-card:is(.is-hovered,.is-focused,.is-pressed)::after{opacity:1}.destination-card:is(.is-hovered,.is-focused,.is-pressed) .world-art{transform:translateY(-7px) scale(1.065);filter:drop-shadow(0 12px 16px #0005)}.destination-card:is(.is-hovered,.is-focused,.is-pressed) .scene-halo{transform:translateX(-50%) scale(1.07);box-shadow:0 0 35px rgba(var(--world),.13)}.destination-card:is(.is-hovered,.is-focused,.is-pressed) .world-pop{opacity:1;transform:translate(0,-7px) scale(1) rotate(4deg)}.destination-card:is(.is-hovered,.is-focused,.is-pressed) .world-name{color:var(--world-light)}.destination-card:is(.is-hovered,.is-focused,.is-pressed) .world-arrow{background:var(--world-light);border-color:var(--world-light);color:#161211;transform:rotate(45deg)}.destination-card:is(.is-hovered,.is-focused,.is-pressed) .world-sheen::after{left:150%}
@media(hover:hover) and (pointer:fine){.destination-card.is-hovered{transform:perspective(850px) translateY(-9px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y))}.destination-card.is-focused{transform:translateY(-5px)}}
/* Individual themes animate at a calm pace. Sacred imagery itself remains still. */
.destination-card:is(.is-hovered,.is-focused) .scene-foliage-left{animation:world-leaves-left 2600ms ease-in-out infinite;transform-origin:20% 90%}.destination-card:is(.is-hovered,.is-focused) .scene-foliage-right{animation:world-leaves-right 2900ms ease-in-out infinite;transform-origin:90% 90%}.destination-card:is(.is-hovered,.is-focused) .scene-monkey{animation:world-peek 700ms cubic-bezier(.2,.7,.2,1) both}.destination-card:is(.is-hovered,.is-focused) .scene-monument{filter:drop-shadow(0 0 4px #c3aa6944)}
.destination-card:is(.is-hovered,.is-focused) .scene-sun{animation:world-sunset 3300ms ease-in-out infinite;transform-origin:52% 46%}.destination-card:is(.is-hovered,.is-focused) .scene-fireworks{animation:world-fireworks 2100ms ease-in-out infinite;transform-origin:75% 23%}.destination-card:is(.is-hovered,.is-focused) .scene-palm{animation:world-palm 3600ms ease-in-out infinite;transform-origin:18% 87%}.destination-card:is(.is-hovered,.is-focused) .scene-play{animation:world-peek 650ms ease-out both}
.destination-card:is(.is-hovered,.is-focused) .scene-waves{animation:world-tides 3000ms ease-in-out infinite}.destination-card:is(.is-hovered,.is-focused) .scene-birds{animation:world-birds 3200ms ease-in-out infinite}.destination-card:is(.is-hovered,.is-focused) .scene-foam{animation:world-foam 2400ms ease-in-out infinite}.destination-card:is(.is-hovered,.is-focused) .scene-cliffs{filter:drop-shadow(0 5px 3px #05090977)}
.destination-card:is(.is-hovered,.is-focused) .scene-lanterns{animation:world-lantern 3000ms ease-in-out infinite}.destination-card:is(.is-hovered,.is-focused) .scene-buildings{animation:world-heritage 900ms ease-out both}.destination-card:is(.is-hovered,.is-focused) .scene-elephant{filter:drop-shadow(0 0 5px #d3ba8055)}
.destination-card:is(.is-hovered,.is-focused) .eq-bar{animation:world-equalizer var(--beat) ease-in-out var(--beat-delay) infinite alternate;transform-box:fill-box;transform-origin:bottom}.destination-card:is(.is-hovered,.is-focused) .scene-disco{animation:world-disco 3200ms ease-in-out infinite;transform-origin:50% 0}.destination-card:is(.is-hovered,.is-focused) .scene-beams{animation:world-beams 3400ms ease-in-out infinite;transform-origin:50% 0}.destination-card:is(.is-hovered,.is-focused) .scene-sound-rings{animation:world-sound 2300ms ease-in-out infinite;transform-origin:50% 80%}.destination-card:is(.is-hovered,.is-focused) .scene-sparkles{animation:world-lantern 2700ms ease-in-out infinite}
@keyframes world-leaves-left{0%,100%{transform:translate(-2px,-3px) rotate(-3deg)}50%{transform:translate(-8px,-9px) rotate(-7deg)}}@keyframes world-leaves-right{0%,100%{transform:translate(2px,-3px) rotate(2deg)}50%{transform:translate(8px,-7px) rotate(7deg)}}@keyframes world-peek{from{opacity:.2;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes world-sunset{0%,100%{transform:translateY(0);opacity:.85}50%{transform:translateY(-4px);opacity:1}}@keyframes world-fireworks{0%,100%{opacity:.35;transform:scale(.88)}50%{opacity:1;transform:scale(1.06)}}@keyframes world-palm{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(3deg)}}@keyframes world-tides{0%,100%{transform:translateX(-5px)}50%{transform:translate(5px,-2px)}}@keyframes world-birds{0%,100%{transform:translate(0,0)}50%{transform:translate(7px,-6px)}}@keyframes world-foam{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes world-lantern{0%,100%{opacity:.65;filter:drop-shadow(0 0 2px #f4cd8155)}50%{opacity:1;filter:drop-shadow(0 0 7px #f4cd8190)}}@keyframes world-heritage{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes world-equalizer{from{transform:scaleY(.3)}to{transform:scaleY(1.15)}}@keyframes world-disco{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes world-beams{0%,100%{opacity:.45;transform:skewX(-7deg)}50%{opacity:1;transform:skewX(7deg)}}@keyframes world-sound{0%,100%{transform:scale(.91);opacity:.25}50%{transform:scale(1.04);opacity:.8}}
/* A distinct short transition on click. Standard links remain intact without JS. */
.destination-portal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;isolation:isolate;background:#0b0a0def;pointer-events:none;color:#f0e5d2;overflow:hidden;clip-path:circle(0% at var(--origin-x,50%) var(--origin-y,50%))}.destination-portal.is-open{animation:world-portal-open 470ms cubic-bezier(.32,.8,.24,1) both}.portal-backdrop{position:absolute;inset:-12%;background:radial-gradient(ellipse at 50% 50%,rgba(var(--world),.17),transparent 70%);z-index:-2}.portal-inner{text-align:center;width:min(430px,80vw);position:relative}.portal-scene{width:250px;height:208px;margin:auto;color:var(--world-light);filter:drop-shadow(0 0 30px rgba(var(--world),.12))}.portal-kicker{display:block;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--world-light);margin:7px 0 13px}.portal-name{display:block;font:400 clamp(29px,4vw,49px)/1.2 var(--display)}.portal-rule{width:55px;height:1px;background:var(--world-light);display:block;margin:23px auto}.portal-effect{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.portal-effect i{position:absolute;display:block;border:1px solid rgba(var(--world),.18)}
.destination-portal[data-theme="ubud"] .portal-effect i{width:38vw;height:75vh;background:linear-gradient(140deg,rgba(var(--world),.12),transparent);border-radius:95% 0 90% 0;transform:rotate(-25deg);left:-15vw;top:20vh;animation:world-leaf-sweep 600ms ease-out both}.destination-portal[data-theme="ubud"] .portal-effect i:nth-child(2){left:auto;right:-15vw;animation-name:world-leaf-sweep-right}.destination-portal[data-theme="ubud"] .portal-effect i:nth-child(3){display:none}
.destination-portal[data-theme="seminyak"] .portal-effect i{width:40vh;height:40vh;border-radius:50%;left:calc(50% - 20vh);top:calc(50% - 20vh);background:rgba(var(--world),.07);animation:world-sun-bloom 600ms ease-out both}.destination-portal[data-theme="seminyak"] .portal-effect i:nth-child(2){animation-delay:80ms;background:transparent}.destination-portal[data-theme="seminyak"] .portal-effect i:nth-child(3){height:1px;width:100%;left:0;top:65%;box-shadow:0 0 30px rgba(var(--world),.3);animation:none}
.destination-portal[data-theme="nusapenida"] .portal-effect i{width:160vw;height:95vh;border-radius:45% 52% 0 0;left:-30vw;top:100%;background:rgba(var(--world),.09);animation:world-wave-wipe 630ms ease-out both}.destination-portal[data-theme="nusapenida"] .portal-effect i:nth-child(2){animation-delay:70ms;transform:rotate(5deg)}.destination-portal[data-theme="nusapenida"] .portal-effect i:nth-child(3){animation-delay:150ms;transform:rotate(-6deg)}
.destination-portal[data-theme="phuket"] .portal-effect i{width:45vw;height:110vh;bottom:-12vh;left:27.5vw;border-radius:50% 50% 0 0;border:2px solid rgba(var(--world),.24);background:rgba(var(--world),.025);animation:world-arch-open 600ms ease-out both}.destination-portal[data-theme="phuket"] .portal-effect i:nth-child(2){width:51vw;left:24.5vw;height:118vh;animation-delay:35ms}.destination-portal[data-theme="phuket"] .portal-effect i:nth-child(3){width:57vw;left:21.5vw;height:126vh;animation-delay:70ms}
.destination-portal[data-theme="club"] .portal-effect i{width:32vw;height:32vw;left:34vw;top:calc(50% - 16vw);border:1px solid rgba(var(--world),.4);border-radius:50%;box-shadow:0 0 35px rgba(var(--world),.08);animation:world-club-pulse 620ms ease-out both}.destination-portal[data-theme="club"] .portal-effect i:nth-child(2){animation-delay:80ms}.destination-portal[data-theme="club"] .portal-effect i:nth-child(3){animation-delay:160ms}
@keyframes world-portal-open{from{clip-path:circle(0% at var(--origin-x,50%) var(--origin-y,50%))}to{clip-path:circle(155% at var(--origin-x,50%) var(--origin-y,50%))}}@keyframes world-leaf-sweep{from{transform:translate(-50%,-20%) rotate(-70deg)}to{transform:translate(35%,-10%) rotate(-18deg)}}@keyframes world-leaf-sweep-right{from{transform:translate(50%,-20%) rotate(70deg)}to{transform:translate(-35%,-10%) rotate(18deg)}}@keyframes world-sun-bloom{from{transform:scale(.2);opacity:0}to{transform:scale(4);opacity:1}}@keyframes world-wave-wipe{from{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-65vh) rotate(2deg)}}@keyframes world-arch-open{from{transform:scaleX(.65);opacity:.3}to{transform:scaleX(1.5);opacity:1}}@keyframes world-club-pulse{from{transform:scale(.25);opacity:.7}to{transform:scale(5);opacity:0}}
html.destination-arrival .branch-hero .split>div{animation:world-arrive 650ms cubic-bezier(.2,.7,.2,1) both}html.destination-arrival .branch-hero .split>div+div{animation-delay:90ms}html.destination-arrival .branch-image{box-shadow:0 0 38px rgba(var(--world),.12)}@keyframes world-arrive{from{opacity:.1;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.luxury-destinations .wrap{max-width:1500px}.destination-scene{height:226px}.destination-card{min-height:407px;padding-inline:22px}.world-name{font-size:29px}.destination-card[data-destination="phuket"] .world-name{font-size:25px}.destination-card[data-destination="club"] .world-name{font-size:24px}}
@media(min-width:900px) and (max-width:1199px){.destination-worlds{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}.destination-card{grid-column:span 2;padding:19px 22px;min-height:352px}.destination-card:nth-child(4){grid-column:2/span 2}.destination-card:nth-child(5){grid-column:4/span 2}.destination-scene{height:203px}.world-name{font-size:28px}.destination-card[data-destination="phuket"] .world-name{font-size:25px}.destination-card[data-destination="club"] .world-name{font-size:24px;max-width:240px}.world-mood{font-size:10px}}
@media(min-width:600px) and (max-width:899px){.destination-worlds{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.destination-card{padding:21px;min-height:372px}.destination-scene{height:224px}.world-name{font-size:30px}.world-eyebrow{font-size:8px}.world-mood{font-size:11px}.destination-card:last-child{grid-column:1/-1;min-height:250px;display:grid;grid-template-columns:47% 1fr;grid-template-rows:22px auto;gap:5px 24px}.destination-card:last-child .world-card-top{grid-column:1/-1}.destination-card:last-child .destination-scene{grid-column:1;height:205px;margin-top:0}.destination-card:last-child .world-card-copy{grid-column:2;grid-row:2;border-top:0;border-left:1px solid rgba(var(--world),.2);padding:24px 0 15px 24px}.destination-card:last-child .world-name{font-size:30px;max-width:100%}.world-section-heading{align-items:start}}
@media(max-width:760px){.luxury-destinations{padding:40px 0 42px;scroll-margin-top:90px}.world-section-heading{display:block;margin-bottom:27px}.world-section-heading h2{font-size:34px}.world-instruction{max-width:none;font-size:11px;margin-top:17px}.world-pop{right:-6px}.world-section-note{font-size:10px;max-width:300px}.destination-portal .portal-scene{width:215px;height:179px}.destination-portal .portal-name{font-size:33px}}
@media(max-width:599px){.destination-worlds{grid-template-columns:1fr;gap:18px}.destination-card{display:grid;grid-template-columns:44% 1fr;grid-template-rows:18px 1fr;column-gap:13px;padding:12px 16px 14px;min-height:192px}.world-card-top{grid-column:1/-1}.destination-scene{height:147px;margin:4px -9px 0;grid-row:2;grid-column:1;align-self:center}.scene-halo{width:100px;height:100px;top:20px}.scene-halo::after{inset:-6px}.world-card-copy{grid-column:2;grid-row:2;border-top:0;border-left:1px solid rgba(var(--world),.19);padding:13px 0 5px 15px;justify-content:center}.world-name,.destination-card[data-destination="phuket"] .world-name{font-size:24px;min-height:0}.destination-card[data-destination="club"] .world-name{font-size:23px}.world-mood{font-size:9px;line-height:1.8;margin-top:8px}.world-eyebrow{font-size:6.7px;letter-spacing:1.2px;margin-bottom:8px}.world-action{padding-top:11px;font-size:7px;letter-spacing:1.1px}.world-arrow{width:25px;height:25px;font-size:15px}.world-pop{width:48px;height:48px;right:-5px;top:-12px}.world-region{font-size:7px}.world-index{font-size:10px}.destination-card.is-pressed{transform:scale(.985)}.world-section-heading h2{font-size:32px}}
@media(max-width:350px){.destination-card{padding-inline:11px;grid-template-columns:41% 1fr;column-gap:8px}.world-card-copy{padding-left:11px}.world-name,.destination-card[data-destination="phuket"] .world-name{font-size:22px}.destination-card[data-destination="club"] .world-name{font-size:21px}.world-eyebrow{letter-spacing:.8px;font-size:6.5px}.world-mood{font-size:8px}.world-action{font-size:6.8px;letter-spacing:.8px}.destination-scene{height:142px}}
@media(hover:none),(pointer:coarse){.world-instruction .desktop-instruction{display:none}.world-instruction .touch-instruction{display:inline}.world-pop{opacity:.36;transform:translate(0,0) scale(.8)}.world-art{filter:drop-shadow(0 6px 8px #0003)}}
html.motion-paused .destination-card,html.motion-paused .destination-card *{animation:none!important;transition:none!important}html.motion-paused .destination-card,html.motion-paused .destination-card .world-art{transform:none!important}html.motion-paused .destination-card .world-pop{opacity:0!important}html.motion-paused .destination-portal{display:none!important}
@media(prefers-reduced-motion:reduce){.destination-card,.destination-card *,.destination-card *::after,.destination-card *::before{animation:none!important;transition:none!important}.destination-card,.destination-card .world-art,.destination-card .scene-halo,.destination-card .world-arrow{transform:none!important}.destination-card .scene-halo{left:calc(50% - 77px)}.world-pop{display:none!important}.destination-portal{display:none!important}html.destination-arrival .branch-hero .split>div{animation:none!important;opacity:1!important;transform:none!important}}
@media(prefers-reduced-motion:reduce) and (max-width:599px){.destination-card .scene-halo{left:calc(50% - 50px)}}@media print{.luxury-destinations,.destination-portal{display:none!important}}
