@font-face{font-family:Riffic;src:url('/assets/riffic-bold.woff') format('woff');font-display:swap;font-weight:700}@font-face{font-family:Nunito;src:url('/assets/nunito-400.ttf') format('truetype');font-display:swap;font-weight:400}@font-face{font-family:Nunito;src:url('/assets/nunito-600.ttf') format('truetype');font-display:swap;font-weight:600}@font-face{font-family:Nunito;src:url('/assets/nunito-700.ttf') format('truetype');font-display:swap;font-weight:700}@font-face{font-family:Nunito;src:url('/assets/nunito-800.ttf') format('truetype');font-display:swap;font-weight:800}
:root{--cream:#fffdee;--pink:#f91095;--cyan:#01e0ff;--purple:#773ea9;--yellow:#f9db05;--ink:#29193d;--body:'Grift',Nunito,'Trebuchet MS',sans-serif;--display:Riffic,'Arial Rounded MT Bold',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.04;letter-spacing:-.02em}h2{font-size:clamp(40px,4.4vw,64px)}h2 span{color:var(--pink)}p{font-weight:500}.wrap{max-width:1320px;width:calc(100% - 100px);margin-inline:auto}.section-space{padding-block:105px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.13em;line-height:1.5}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:99px;padding:8px 50px;background:var(--cream);border-bottom:1px solid #773ea91a}.brand img{width:100px;height:78px;object-fit:contain;mix-blend-mode:multiply}.desktop-nav{display:flex;align-items:center;gap:36px;font-size:14px;font-weight:800}.desktop-nav a{position:relative;padding:8px 0}.desktop-nav a:after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--pink);transition:width .2s}.desktop-nav a:hover:after{width:100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;border-radius:99px;padding:16px 27px;font-weight:800;font-size:14px;transition:transform .2s,box-shadow .2s,background .2s;line-height:1.3}.button span{font-size:23px;line-height:1}.button:hover{transform:translateY(-3px);box-shadow:0 6px 0 #29193d20}.button-purple{background:var(--purple);color:var(--cream)}.button-purple:hover{background:#60318d}.button-cream{background:var(--cream);color:var(--purple)}.menu-button{display:none}.skip{position:fixed;z-index:100;top:-80px;background:var(--ink);color:white;padding:12px}.skip:focus{top:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:5px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding-block:55px 65px;min-height:630px}.hero-copy{position:relative;z-index:2}.hero .eyebrow{color:var(--purple);display:flex;align-items:center;gap:10px}h1{font-size:clamp(62px,6.6vw,99px);line-height:.98;letter-spacing:-.035em;color:var(--purple);margin:22px 0}h1 span{color:var(--pink)}.hero-intro{max-width:400px;line-height:1.65;font-size:17px;margin:0 0 28px}.hero-intro strong{font-weight:850}.big-button{padding:18px 28px}.hero-destinations{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:23px;font-size:12px;font-weight:800;color:var(--purple)}.dot{height:4px;width:4px;background:var(--pink);border-radius:50%}.hero-visual{position:relative;padding-top:16px;padding-bottom:25px;min-width:0}.hero-image{height:485px;border-radius:48% 48% 38px 38px;background:#00cae4;overflow:hidden;transform:rotate(2deg)}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.09);transition:transform 1s}.hero-visual:hover .hero-image img{transform:scale(1.14) rotate(-2deg)}.round-sticker{position:absolute;left:-28px;top:30px;background:var(--yellow);color:var(--ink);width:145px;height:145px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;transform:rotate(-14deg);box-shadow:4px 5px 0 #29193d}.round-sticker span{font-size:10px;font-weight:900;letter-spacing:.06em}.round-sticker strong{font-family:var(--display);font-size:25px}.picture-tag{position:absolute;bottom:2px;left:12%;right:-8px;background:var(--pink);color:var(--cream);transform:rotate(-3deg);padding:15px 20px;border-radius:8px;font-weight:800;text-align:center;font-size:14px;box-shadow:0 6px 0 #29193d}.sprinkle{position:absolute;width:23px;height:7px;background:var(--pink);border-radius:5px;transform:rotate(30deg)}.sprinkle-one{top:10%;right:0}.sprinkle-two{background:var(--purple);bottom:50px;left:-26px;transform:rotate(-30deg)}.section-heading{text-align:center;max-width:760px;margin:0 auto 42px}.section-heading .eyebrow{color:var(--purple);margin-bottom:20px}.section-heading p:last-child{max-width:590px;margin:22px auto 0;font-size:16px}.world-picture{margin:0;position:relative;border-radius:26px;overflow:hidden;background:var(--purple)}.world-picture>img{width:100%;height:510px;object-fit:cover}.world-picture:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#29193d9e);pointer-events:none}.image-label{position:absolute;bottom:43px;left:40px;color:var(--cream);font-family:var(--display);font-size:39px;line-height:1.1;z-index:1}.image-label span{color:var(--yellow)}.world-picture figcaption{position:absolute;right:16px;bottom:15px;z-index:2;color:white;background:#29193dba;border-radius:4px;padding:3px 8px;font-size:10px}.experience-points{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px}.experience-points article{padding:0 30px;border-right:1px solid #773ea933}.experience-points article:first-child{padding-left:0}.experience-points article:last-child{border:0;padding-right:0}.experience-points h3{font-size:25px;color:var(--purple);margin:13px 0}.experience-points p{font-size:15px;max-width:330px}.locations{background:var(--purple);color:var(--cream);position:relative}.locations:before,.final-cta:before{content:'';position:absolute;left:0;right:0;top:-16px;height:17px;background:radial-gradient(ellipse at bottom,var(--purple) 70%,transparent 73%) 0 0/60px 24px repeat-x}.locations-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:45px}.locations h2 span{color:var(--yellow)}.locations-heading .eyebrow{margin-bottom:20px;color:var(--cream)}.locations-heading>p{font-size:16px;line-height:1.6;max-width:300px;margin-bottom:8px}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.destination{background:var(--cream);color:var(--ink);border-radius:23px;overflow:hidden;box-shadow:0 9px 0 #29193d40;transition:transform .3s}.destination:hover{transform:translateY(-6px)}.destination-art{height:270px;overflow:hidden;position:relative}.destination-art img{width:100%;height:100%;object-fit:cover;object-position:18% 50%;transform:scale(1.5);transition:transform .6s}.destination-purple .destination-art img{object-position:85% 50%;transform-origin:80% 50%}.destination-pink .destination-art img{transform-origin:15% 50%}.destination:hover .destination-art img{transform:scale(1.58)}.location-badge{position:absolute;left:20px;top:20px;background:var(--cream);color:var(--ink);border-radius:50px;padding:8px 13px;font-weight:900;letter-spacing:.08em;font-size:10px}.art-caption{position:absolute;bottom:10px;right:12px;background:#29193dc7;color:white;padding:3px 7px;border-radius:4px;font-size:10px}.destination-body{padding:30px;display:flex;justify-content:space-between;align-items:center;gap:15px}.destination-body .eyebrow{font-size:10px;margin-bottom:10px}.destination-body h3{font-size:42px;color:var(--pink);line-height:1.02}.destination-purple h3{color:var(--purple)}.circle-link{flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--pink);color:var(--pink);height:57px;width:57px;border-radius:50%;font-size:28px;transition:background .2s,color .2s}.circle-link:hover{background:var(--pink);color:white}.destination-purple .circle-link{color:var(--purple);border-color:var(--purple)}.destination-purple .circle-link:hover{background:var(--purple);color:white}.ticket-bottom{position:relative;border-top:1.5px dashed #773ea940;margin:0 30px;padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;font-weight:900}.ticket-bottom>span{font-size:9px;letter-spacing:.04em}.ticket-bottom i{margin:0 7px;font-style:normal}.ticket-bottom a{white-space:nowrap;border-bottom:1px solid}.ticket-bottom:before,.ticket-bottom:after{content:'';position:absolute;top:-11px;width:20px;height:20px;border-radius:50%;background:var(--purple)}.ticket-bottom:before{left:-40px}.ticket-bottom:after{right:-40px}.passport-section{display:grid;grid-template-columns:.9fr 1fr;gap:100px;align-items:center;padding-block:70px}.passport-picture{position:relative;height:470px;overflow:hidden}.passport-picture>img{height:100%;width:100%;object-fit:contain;transform:rotate(-4deg)}.passport-stamp{position:absolute;top:55%;right:1%;width:128px;height:128px;border:3px double var(--purple);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(14deg);font-size:10px;color:var(--purple);font-weight:900;line-height:1.4;background:var(--cream)}.passport-stamp strong{font-family:var(--display);font-size:21px}.passport-copy .eyebrow{color:var(--purple);margin-bottom:22px}.passport-copy>p:not(.eyebrow){max-width:410px;margin:24px 0 28px}.faq-section{background:#f4eedf;padding-block:85px}.faq-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:70px}.faq-layout .eyebrow{color:var(--purple);margin-bottom:20px}.faq-layout h2{font-size:49px}.faq-layout>div>p:last-child{margin-top:23px}.faq-list details{border-bottom:1px solid #773ea94d}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;font-size:16px;font-weight:850}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:24px;color:var(--purple);transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{font-size:15px;padding:0 30px 22px 0;line-height:1.65}.final-cta{text-align:center;background:var(--pink);color:var(--cream);padding:85px 25px;position:relative;overflow:hidden}.final-cta:before{background:radial-gradient(ellipse at bottom,var(--pink) 70%,transparent 73%) 0 0/60px 24px repeat-x}.final-cta .eyebrow{margin-bottom:18px}.final-cta h2{font-size:76px;margin-bottom:28px}.final-cta h2 span{color:var(--yellow)}.footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:40px}.footer-logo{font-family:var(--display);font-size:30px;line-height:.9;text-align:center;letter-spacing:-.02em;transform:rotate(-3deg);color:var(--purple)}.footer-logo span{display:block}.footer-logo span:last-child{color:var(--pink)}.footer>p{font-size:13px}.footer>div{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:800}.footer a:hover{text-decoration:underline}.footer small{font-size:11px;color:#645570}.mobile-nav[hidden]{display:none}
/* Location pages share the same brand and navigation. */
.location-page .location-hero{padding-block:60px 70px}.breadcrumb{display:inline-flex;gap:9px;color:var(--purple);font-size:13px;font-weight:800;margin-bottom:35px}.location-title{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:35px}.location-title h1{font-size:clamp(56px,7vw,90px);margin-bottom:0}.location-title>p{max-width:330px;font-size:17px}.location-cover{height:450px;border-radius:28px;overflow:hidden;position:relative}.location-cover img{height:100%;width:100%;object-fit:cover}.location-cover span{position:absolute;right:16px;bottom:16px;background:#29193dce;color:white;padding:5px 10px;border-radius:5px;font-size:11px}.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-top:50px}.visit-grid h2{font-size:40px;margin-bottom:22px}.visit-grid p{max-width:500px}.visit-info{background:#f4eedf;border-radius:20px;padding:28px}.visit-info dl{margin:0}.visit-info dl div{padding:17px 0;border-bottom:1px solid #773ea933;display:grid;grid-template-columns:100px 1fr;gap:20px}.visit-info dl div:first-child{padding-top:0}.visit-info dl div:last-child{border-bottom:0;padding-bottom:0}.visit-info dt{font-weight:850;color:var(--purple);font-size:13px}.visit-info dd{margin:0;font-size:14px}.status-pill{display:inline-block;background:var(--yellow);color:var(--ink);padding:7px 13px;border-radius:30px;font-size:11px;font-weight:900;margin-bottom:20px}.other-location{margin-top:30px;display:inline-block;color:var(--purple);font-weight:800;border-bottom:1px solid;font-size:14px}
@media(min-width:1600px){.hero{padding-block:70px 90px;min-height:710px}.hero-image{height:550px}}
@media(max-width:1100px){.wrap{width:calc(100% - 60px)}.header{padding-inline:30px}.desktop-nav{gap:22px}.hero{gap:30px}.hero-image{height:430px}h1{font-size:73px}.round-sticker{width:120px;height:120px}.round-sticker strong{font-size:22px}.passport-section{gap:40px}.ticket-bottom{flex-direction:column;align-items:flex-start;gap:8px}.faq-layout{gap:40px}}
@media(max-width:800px){.header{height:85px;padding-inline:24px}.brand img{width:80px;height:65px}.desktop-nav{display:none}.header-cta{margin-left:auto;margin-right:22px;font-size:12px;padding:13px 20px;gap:18px}.menu-button{display:flex;flex-direction:column;justify-content:center;gap:6px;border:0;background:none;width:30px;height:40px;padding:0;cursor:pointer}.menu-button span{height:2px;width:24px;background:var(--purple);transition:transform .2s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav{position:absolute;top:85px;left:0;right:0;background:var(--cream);padding:20px 26px 30px;box-shadow:0 10px 16px #29193d12;display:flex;flex-direction:column;gap:20px;font-weight:850}.hero{grid-template-columns:1fr;gap:30px;text-align:center;padding-top:40px}.hero-copy .eyebrow{justify-content:center}.hero-copy h1{font-size:82px}.hero-intro{margin-inline:auto;max-width:430px}.hero-destinations{justify-content:center}.hero-visual{width:100%;max-width:560px;margin:0 auto;padding-inline:20px}.hero-image{height:420px;border-radius:40% 40% 30px 30px}.round-sticker{left:5px;top:40px}.picture-tag{right:10px;left:15%}.section-space{padding-block:70px}.world-picture>img{height:390px}.image-label{font-size:32px;left:25px}.experience-points{gap:20px}.experience-points article{padding:0 20px 0 0}.experience-points h3{font-size:23px}.experience-points p{font-size:14px}.locations-heading{display:block}.locations-heading>p{margin-top:25px;max-width:none}.destination-art{height:220px}.destination-body{padding:24px}.destination-body h3{font-size:35px}.circle-link{width:45px;height:45px}.ticket-bottom{margin-inline:24px}.ticket-bottom:before{left:-34px}.ticket-bottom:after{right:-34px}.passport-section{gap:25px}.passport-picture{height:370px}.passport-stamp{width:100px;height:100px;font-size:8px}.passport-stamp strong{font-size:17px}.passport-copy h2{font-size:42px}.passport-copy>p:not(.eyebrow){font-size:15px}.faq-layout{grid-template-columns:1fr;gap:30px}.faq-layout h2{font-size:47px}.final-cta h2{font-size:62px}.footer{flex-wrap:wrap}.footer-logo,.footer>p{flex-basis:40%}.footer small{flex-basis:40%}.location-title{display:block}.location-title>p{margin-top:25px;max-width:450px}.visit-grid{gap:30px}}
@media(max-width:520px){.wrap{width:calc(100% - 40px)}.header{padding-inline:20px;height:78px}.header-cta{padding:11px 14px;gap:12px;font-size:11px;margin-right:14px}.header-cta span{font-size:20px}.brand img{width:75px;height:60px}.mobile-nav{top:78px}.hero{padding-top:34px;padding-bottom:40px;gap:28px}.eyebrow{font-size:9px;letter-spacing:.1em}.hero-copy h1{font-size:69px;margin-block:19px 20px}.hero-intro{font-size:15px;line-height:1.65;max-width:320px;margin-bottom:23px}.hero .eyebrow{gap:7px}.big-button{font-size:13px;padding:16px 23px;gap:25px}.hero-destinations{font-size:10px;gap:9px;margin-top:17px}.hero-visual{padding-inline:8px;padding-top:5px}.hero-image{height:330px;border-radius:44% 44% 25px 25px}.round-sticker{width:99px;height:99px;left:-2px;top:18px;gap:4px;box-shadow:3px 4px 0 #29193d}.round-sticker span{font-size:7px}.round-sticker strong{font-size:19px}.picture-tag{font-size:10px;padding:11px 8px;left:12%;right:-1px;bottom:8px}.sprinkle-two{left:0;bottom:48px}.sprinkle-one{right:-2px}.section-space{padding-block:55px}h2{font-size:38px}.section-heading .eyebrow{margin-bottom:16px}.section-heading p:last-child{font-size:14px;margin-top:19px}.section-heading{margin-bottom:27px}.world-picture{border-radius:18px}.world-picture>img{height:330px;object-position:55% center}.image-label{font-size:27px;left:20px;bottom:50px}.world-picture figcaption{font-size:8px;left:13px;right:auto;bottom:13px}.experience-points{grid-template-columns:1fr;gap:0;margin-top:20px}.experience-points article,.experience-points article:first-child,.experience-points article:last-child{padding:23px 0 23px 54px;border:0;border-bottom:1px solid #773ea933;position:relative}.experience-points article:last-child{border-bottom:0;padding-bottom:0}.experience-points h3{font-size:25px;margin:0 0 9px}.experience-points p{font-size:14px;max-width:none}.locations-heading{margin-bottom:30px}.locations-heading>p{font-size:14px;margin-top:20px}.locations-heading .eyebrow{font-size:9px;letter-spacing:.07em}.location-grid{grid-template-columns:1fr;gap:28px}.destination-art{height:220px}.destination-body{padding:24px}.destination-body h3{font-size:38px}.destination-body .eyebrow{font-size:9px}.circle-link{width:52px;height:52px}.ticket-bottom{flex-direction:row;align-items:center;font-size:10px}.ticket-bottom>span{font-size:7px}.ticket-bottom i{margin-inline:3px}.passport-section{display:flex;flex-direction:column-reverse;gap:25px;padding-bottom:35px}.passport-copy{text-align:center}.passport-copy h2{font-size:40px}.passport-copy>p:not(.eyebrow){margin:20px auto 25px;max-width:320px;font-size:14px}.passport-picture{height:340px;width:290px;max-width:100%}.passport-stamp{right:-1px}.faq-layout{gap:22px}.faq-layout h2{font-size:39px}.faq-list summary{font-size:14px;line-height:1.5;padding-block:19px}.faq-list details p{font-size:13px;padding-right:14px}.faq-layout>div>p:last-child{font-size:14px;margin-top:15px}.final-cta{padding:65px 20px}.final-cta h2{font-size:51px}.final-cta .eyebrow{font-size:8px}.final-cta .button{font-size:13px;padding:16px 22px}.footer{padding-block:32px;gap:25px}.footer-logo{font-size:29px;flex-basis:40%}.footer>p{font-size:11px;flex-basis:48%}.footer>div{font-size:11px;flex-basis:42%;gap:7px}.footer small{font-size:9px;flex-basis:46%;text-align:right}.location-page .location-hero{padding-block:32px 45px}.location-title h1{font-size:56px}.location-title>p{font-size:15px}.location-cover{height:300px;border-radius:18px}.visit-grid{grid-template-columns:1fr;padding-top:30px;gap:25px}.visit-grid h2{font-size:35px}.visit-grid p{font-size:15px}.visit-info{padding:23px}.visit-info dl div{grid-template-columns:80px 1fr}.visit-info dd{font-size:13px}.location-title{margin-bottom:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.destination:hover,.button:hover{transform:none}}

/* Small, scroll-linked movement; content is visible by default. */
.motion-pending{opacity:0;transform:translate3d(0,24px,0)}
.world-picture>img.scroll-image,.location-cover>img.scroll-image{transform:translate3d(0,var(--scroll-drift,0px),0) scale(1.1);transform-origin:center;will-change:transform}
@media(prefers-reduced-motion:reduce){.motion-pending{opacity:1;transform:none}.world-picture>img.scroll-image,.location-cover>img.scroll-image{transform:none;will-change:auto}}

/* Soft color wash between the opening and the experience. */
.experience{position:relative;isolation:isolate}
.experience::before{content:"";position:absolute;inset:-70px 0 auto;height:180px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 32% 45% at 33% 50%,#f9109510,transparent 100%),radial-gradient(ellipse 32% 45% at 67% 50%,#01e0ff10,transparent 100%)}
@media(max-width:520px){.experience::before{top:-40px;height:120px}}

/* Consistent horizontal arrows with an outlined circle. */
.arrow-circle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;border:1.5px solid currentColor;border-radius:50%;transition:background .2s,color .2s,border-color .2s}
.arrow-circle svg,.circle-link svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.circle-link svg{width:23px;height:23px}
.button:hover,.button:focus-visible{background:var(--ink);color:var(--cream)}
.button:is(:hover,:focus-visible) .arrow-circle{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.circle-link:is(:hover,:focus-visible),.destination-purple .circle-link:is(:hover,:focus-visible){background:var(--ink);border-color:var(--ink);color:var(--cream)}
.ticket-bottom a{display:inline-flex;align-items:center;gap:9px;border-bottom:0}
.ticket-bottom a .arrow-circle{width:25px;height:25px}
.ticket-bottom a .arrow-circle svg{width:15px;height:15px}
.breadcrumb{align-items:center;gap:10px}
.other-location{display:inline-flex;align-items:center;gap:10px;border-bottom:0}
:is(.ticket-bottom a,.breadcrumb,.other-location):is(:hover,:focus-visible) .arrow-circle{background:var(--ink);border-color:var(--ink);color:var(--cream)}
@media(max-width:520px){.header-cta .arrow-circle{width:26px;height:26px}.header-cta .arrow-circle svg{width:16px;height:16px}.experience-points article,.experience-points article:first-child,.experience-points article:last-child{padding-left:0}.ticket-bottom a{gap:6px}.ticket-bottom a .arrow-circle{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce){.arrow-circle{transition:none}}

/* Image-led galleries: native touch scrolling, restrained motion and clear controls. */
.location-cover-open{height:auto;aspect-ratio:16/9}
.attraction-gallery{padding:0 0 95px;min-width:0}
.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:35px}
.gallery-heading .eyebrow{color:var(--purple);margin-bottom:18px}
.gallery-heading h2{font-size:clamp(36px,4vw,57px)}
.gallery-intro{max-width:610px;margin-top:20px;font-size:16px;line-height:1.65}
.gallery-controls{display:none;gap:12px;flex-shrink:0;padding-bottom:5px}
.gallery-ready .gallery-controls{display:flex}
.gallery-controls[hidden]{display:none}
.gallery-arrow{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:52px;height:52px;border:1.5px solid var(--purple);border-radius:50%;color:var(--purple);background:transparent;padding:0;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.gallery-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gallery-arrow:is(:hover,:focus-visible){background:var(--ink);border-color:var(--ink);color:var(--cream)}
.gallery-arrow:disabled{opacity:.28;cursor:default;background:transparent;color:var(--purple);border-color:var(--purple)}
.gallery-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;padding:5px 3px 18px;margin-inline:-3px}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-track:focus-visible{outline:2px solid var(--purple);outline-offset:6px;border-radius:20px}
.gallery-card{flex:0 0 calc((100% - 48px)/3);min-width:0;margin:0;scroll-snap-align:start}
.gallery-image{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:24px;background:#ece4da;isolation:isolate}
.gallery-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.075);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.gallery-image::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#29193da3);pointer-events:none;opacity:0;transition:opacity .4s}
.gallery-open{position:absolute;z-index:1;inset:auto 20px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--cream);font-size:13px;font-weight:800;opacity:0;transform:translateY(7px);transition:opacity .35s,transform .35s}
.gallery-image:is(:hover,:focus-visible) img{transform:scale(1.13)}
.gallery-image:is(:hover,:focus-visible)::after,.gallery-image:is(:hover,:focus-visible) .gallery-open{opacity:1;transform:none}
.gallery-open .arrow-circle{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.gallery-card figcaption{padding:21px 3px 5px}
.gallery-card h3{font-size:29px;color:var(--purple)}
.gallery-card p{font-size:14px;margin-top:8px}
.gallery-rail{height:3px;background:#773ea920;margin-top:16px;overflow:hidden;border-radius:5px}
.gallery-rail>span{display:block;height:100%;width:0;background:var(--pink);border-radius:5px;transition:width .25s}
.location-hero .attraction-gallery{padding-top:75px;padding-bottom:20px}
.gallery-wide .gallery-card{flex-basis:calc((100% - 24px)/2)}
.gallery-wide .gallery-image{aspect-ratio:4/3}
.gallery-wide .gallery-image img{transform:scale(1.015)}
.gallery-wide .gallery-image:is(:hover,:focus-visible) img{transform:scale(1.065)}
.destination-purple .destination-art img{object-position:center;transform:scale(1.02);transform-origin:center}
.destination-purple:hover .destination-art img{transform:scale(1.07)}
.image-viewer{position:fixed;inset:0;width:min(1350px,96vw);max-width:96vw;height:min(920px,94dvh);max-height:94dvh;margin:auto;padding:20px 24px;border:0;border-radius:22px;background:var(--ink);color:var(--cream);overflow:hidden}
.image-viewer::backdrop{background:#1a1025e8;backdrop-filter:blur(7px)}
.image-viewer[open]{display:flex;flex-direction:column;gap:14px}
.viewer-top{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0}
.viewer-title{font-family:var(--display);font-size:24px}
.viewer-close{color:var(--cream);border:1px solid #fffdee80;background:transparent;padding:8px 20px;border-radius:30px;cursor:pointer;font-weight:800;font-size:13px}
.viewer-close:is(:hover,:focus-visible){background:var(--cream);color:var(--ink);outline-color:var(--cream)}
.viewer-stage{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:1;min-height:0}
.viewer-image{display:block;min-width:0;width:calc(100% - 136px);height:100%;object-fit:contain;border-radius:10px}
.viewer-stage .gallery-arrow{color:var(--cream);border-color:#fffdee80}
.viewer-stage .gallery-arrow:is(:hover,:focus-visible){background:var(--cream);color:var(--ink);border-color:var(--cream);outline-color:var(--cream)}
.viewer-caption{font-size:12px;text-align:center;line-height:1.4;opacity:.85;flex-shrink:0}
body.viewer-open{overflow:hidden}
@media(max-width:800px){.gallery-card{flex-basis:calc((100% - 24px)/2)}.gallery-wide .gallery-card{flex-basis:84%}.gallery-heading{gap:20px}.gallery-controls{gap:8px}.gallery-arrow{width:44px;height:44px}.gallery-image::after,.gallery-open{opacity:1;transform:none}.gallery-open{font-size:11px;inset:auto 15px 15px}.gallery-image::after{inset:70% 0 0}.gallery-intro{font-size:15px}.viewer-image{width:calc(100% - 120px)}}
@media(max-width:520px){.attraction-gallery{padding-bottom:60px}.location-hero .attraction-gallery{padding-top:45px;padding-bottom:5px}.gallery-heading{display:block;margin-bottom:22px}.gallery-heading h2{font-size:37px}.gallery-heading .eyebrow{font-size:9px;margin-bottom:14px}.gallery-intro{font-size:14px;margin-top:16px}.gallery-controls{justify-content:flex-end;margin-top:20px;padding:0}.gallery-arrow{width:44px;height:44px}.gallery-track{gap:16px}.gallery-card{flex-basis:85%}.gallery-wide .gallery-card{flex-basis:92%}.gallery-image{border-radius:19px}.gallery-card h3{font-size:27px}.gallery-card p{font-size:13px}.gallery-card figcaption{padding-top:17px}.image-viewer{width:96vw;max-width:96vw;height:85dvh;padding:15px 12px;border-radius:16px;gap:12px}.viewer-top{gap:10px}.viewer-title{font-size:21px}.viewer-close{padding:8px 14px}.viewer-stage{position:relative;align-items:stretch;gap:0;padding-bottom:62px}.viewer-image{width:100%}.viewer-stage .gallery-arrow{position:absolute;bottom:0}.viewer-prev{left:calc(50% - 54px)}.viewer-next{right:calc(50% - 54px)}.viewer-caption{font-size:11px}}
@media(prefers-reduced-motion:reduce){.gallery-track{scroll-behavior:auto}.gallery-image img,.gallery-image:is(:hover,:focus-visible) img{transform:scale(1.075)}.gallery-wide .gallery-image img,.gallery-wide .gallery-image:is(:hover,:focus-visible) img{transform:scale(1.015)}.gallery-open,.gallery-rail>span,.gallery-arrow{transition:none}}

/* Scroll motion and tap states work inside the standalone HTML as well. */
@keyframes ice-enter{from{opacity:0;transform:translate3d(0,36px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.motion-entering{animation:ice-enter .95s cubic-bezier(.16,1,.3,1) var(--entry-delay,0ms) backwards}
.hero-image>img.scroll-image,.world-picture>img.scroll-image,.location-cover>img.scroll-image,.gallery-image>img.scroll-image{transform:translate3d(0,var(--scroll-drift,0px),0) scale(var(--scroll-scale,1.12));transition:filter .2s;will-change:transform}
:is(.button,.circle-link,.gallery-arrow,.viewer-close,.menu-button,.ticket-bottom a,.breadcrumb,.other-location,.gallery-image,.faq-list summary,.mobile-nav a){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.button{transition:background .18s,color .18s,transform .18s,box-shadow .18s}
.circle-link,.gallery-arrow,.viewer-close{transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s}
.arrow-circle svg,.circle-link svg,.gallery-arrow svg{transition:transform .22s cubic-bezier(.16,1,.3,1)}
.button:is(:active,.is-pressed){background:var(--ink);color:var(--cream);transform:scale(.96);box-shadow:0 2px 0 #29193d28}
.button:is(:active,.is-pressed) .arrow-circle{background:var(--cream);color:var(--ink);border-color:var(--cream)}
:is(.button,.ticket-bottom a,.other-location):is(:active,.is-pressed) .arrow-circle svg{transform:translateX(3px)}
.breadcrumb:is(:active,.is-pressed) .arrow-circle svg{transform:translateX(-3px)}
.circle-link:is(:active,.is-pressed),.destination-purple .circle-link:is(:active,.is-pressed),.gallery-arrow:not(:disabled):is(:active,.is-pressed){background:var(--ink);border-color:var(--ink);color:var(--cream);transform:scale(.9);box-shadow:0 0 0 5px #773ea91a}
.circle-link:is(:active,.is-pressed) svg{transform:translateX(3px)}
:is(.ticket-bottom a,.breadcrumb,.other-location):is(:active,.is-pressed) .arrow-circle{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.viewer-close:is(:active,.is-pressed),.viewer-stage .gallery-arrow:is(:active,.is-pressed){background:var(--cream);color:var(--ink);border-color:var(--cream);transform:scale(.94)}
.menu-button{transition:background .18s,transform .18s}
.menu-button:is(:active,.is-pressed){transform:scale(.9)}
.menu-button:is(:active,.is-pressed) span{background:var(--pink)}
.gallery-image:is(:active,.is-pressed) img{filter:brightness(.85)}
.gallery-image:is(:active,.is-pressed) .arrow-circle{background:var(--ink);color:var(--cream);border-color:var(--cream)}
.faq-list summary:is(:active,.is-pressed),.mobile-nav a:is(:active,.is-pressed){color:var(--pink)}
@media(hover:hover){.gallery-image:is(:hover,:focus-visible)>img.scroll-image{transform:translate3d(0,var(--scroll-drift,0px),0) scale(calc(var(--scroll-scale,1.12) + .035))}.button:is(:hover,:focus-visible) .arrow-circle svg,.circle-link:is(:hover,:focus-visible) svg{transform:translateX(3px)}}
@media(hover:none){.button-purple:hover:not(:active):not(.is-pressed){background:var(--purple);color:var(--cream);transform:none;box-shadow:none}.button-cream:hover:not(:active):not(.is-pressed){background:var(--cream);color:var(--purple);transform:none;box-shadow:none}.button:hover:not(:active):not(.is-pressed) .arrow-circle{background:transparent;color:inherit;border-color:currentColor}.gallery-arrow:not(:disabled):hover:not(:active):not(.is-pressed){background:transparent;color:var(--purple);border-color:var(--purple)}.destination:hover{transform:none}}
@media(max-width:800px){.motion-pending{transform:translate3d(0,42px,0)}}
@media(prefers-reduced-motion:reduce){.hero-image>img.scroll-image,.world-picture>img.scroll-image,.location-cover>img.scroll-image,.gallery-image>img.scroll-image{transform:none;will-change:auto}.motion-pending{transform:none}.motion-entering{animation:none}:is(.button,.circle-link,.gallery-arrow,.viewer-close,.menu-button):is(:active,.is-pressed){transform:none}.arrow-circle svg,.circle-link svg,.gallery-arrow svg{transition:none;transform:none!important}}

/* Opening announcement, using the existing brand palette. */
.hero .eyebrow { font-size: clamp(14px, 1.25vw, 18px); letter-spacing: .07em; text-transform: uppercase; }
