/* The controls stay still. Only the imagined world travels. */
body.tour-open{overflow:hidden}
.ballet-tour{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#102c47;color:#ecf6ff;overflow:hidden;overscroll-behavior:contain}
.ballet-tour::backdrop{background:#102c47}
.tour-shell{height:100%;box-sizing:border-box;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(ellipse at 45% 25%,#234b6d,transparent 65%),linear-gradient(140deg,#142c44,#173e5e 60%,#122d48);isolation:isolate}
.tour-header{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:3;padding:23px 34px;border-bottom:1px solid #c5e5ff24;background:#102d4766}
.tour-brand{display:flex;align-items:center;gap:17px;min-width:0}
.tour-brand-star{font:45px/1 var(--serif);color:#add2f3}
.tour-kicker{font-size:8px;letter-spacing:2.1px;margin:0 0 7px;color:#c1d9ed}
.tour-header h2{font:30px/1.05 var(--serif);letter-spacing:-.7px;margin:0}
.tour-header h2 em{color:#b9ddfa}
.tour-top-actions{display:flex;align-items:center;gap:12px}
.ballet-tour button{font-family:var(--sans);-webkit-tap-highlight-color:transparent}
.ballet-tour button:focus-visible{outline:3px solid #b9e4ff;outline-offset:5px}
.tour-motion,.tour-close,.tour-arrow,.tour-overview{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#e9f5ff;border:1px solid #bce1ff45;background:#c9e5ff0c;transition:background .2s,border-color .2s}
.tour-motion:hover,.tour-close:hover,.tour-arrow:hover,.tour-overview:hover{background:#c9e5ff23;border-color:#bce1ff88}
.tour-motion{font-size:10px;padding:11px 14px;border-radius:30px;min-height:42px;white-space:nowrap}
.tour-motion-icon{font-size:13px;width:11px}
.tour-close{width:43px;height:43px;border-radius:50%;flex-shrink:0;font-size:29px;font-weight:200}
.tour-close span{line-height:1;margin-top:-3px}
.tour-stage{position:relative;min-height:0;overflow:hidden;touch-action:pan-y pinch-zoom;isolation:isolate}
.tour-stage::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px #07233b42;z-index:1}
.tour-sky{position:absolute;inset:-10%;pointer-events:none;opacity:.5;background-image:radial-gradient(circle at 17% 22%,#d9edff 0 1px,transparent 1.5px),radial-gradient(circle at 73% 67%,#d9edff 0 1px,transparent 1.5px),radial-gradient(circle at 51% 38%,#a0c7e7 0 1px,transparent 1.8px),radial-gradient(circle at 81% 13%,#d9edff 0 1px,transparent 1.4px);background-size:217px 173px,327px 259px,409px 297px,503px 317px;animation:tour-starlight 7s ease-in-out infinite alternate}
.tour-night-lights,.tour-shooting-stars{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.tour-night-lights span{position:absolute;left:9%;top:27%;width:5px;height:5px;border-radius:50%;background:#c2e7ff;box-shadow:0 0 11px 3px #a6dfff88,0 0 28px 8px #7abaf533;opacity:.5;animation:tour-lantern 8s ease-in-out infinite alternate}
.tour-night-lights span:nth-child(2){left:24%;top:76%;width:3px;height:3px;animation-delay:-3s;animation-duration:10s}
.tour-night-lights span:nth-child(3){left:83%;top:31%;animation-delay:-5s;animation-duration:12s}
.tour-night-lights span:nth-child(4){left:74%;top:83%;width:3px;height:3px;animation-delay:-1s;animation-duration:9s}
.tour-night-lights span:nth-child(5){left:37%;top:12%;width:3px;height:3px;animation-delay:-6s;animation-duration:11s}
.tour-night-lights span:nth-child(6){left:94%;top:62%;width:4px;height:4px;animation-delay:-4s;animation-duration:13s}
.tour-shooting-stars span{position:absolute;left:8%;top:14%;width:115px;height:1px;background:linear-gradient(90deg,transparent,#bce6ff);border-radius:50%;opacity:0;rotate:30deg;animation:tour-shooting-star 16s ease-out infinite;animation-delay:1s}
.tour-shooting-stars span::after{content:'';position:absolute;right:0;top:-1px;width:3px;height:3px;border-radius:50%;background:#e4f7ff;box-shadow:0 0 8px #bce6ff}
.tour-shooting-stars span:nth-child(2){left:62%;top:9%;width:90px;animation-duration:21s;animation-delay:7s}
.tour-shooting-stars span:nth-child(3){left:66%;top:54%;width:65px;animation-duration:24s;animation-delay:12s}
.tour-camera{position:absolute;left:0;top:0;width:2450px;height:1410px;transform-origin:0 0;transition:transform 1s cubic-bezier(.42,0,.18,1);will-change:transform}
.tour-path{position:absolute;inset:0;max-width:none;overflow:visible;pointer-events:none}
.tour-world-label{position:absolute;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:15px;white-space:nowrap;color:#b7d8f4;font-size:12px;letter-spacing:3.4px}
.tour-world-label>span{font:31px/1 var(--serif);letter-spacing:0}
.tour-scene{position:absolute;display:grid;grid-template-rows:minmax(0,1fr) 73px;width:420px;height:700px;border:1px solid #e4f3ffbd;border-radius:14px;padding:12px 12px 0;background:#f0f8ff;color:#243f55;text-align:left;box-shadow:0 22px 80px #020f2459,0 0 120px #a5d8ff1c;overflow:visible;cursor:default;animation:tour-card-float 7s ease-in-out infinite alternate}
.tour-scene-1{animation-delay:-3s;animation-duration:8s}.tour-scene-2{animation-delay:-5s;animation-duration:9s}
.tour-photo{display:block;overflow:hidden;min-height:0;border-radius:6px;background:#d8eaf7}
.tour-photo img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.tour-card-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px 2px}
.tour-card-kicker{display:block;font-size:8px;letter-spacing:1.5px;color:#526f88;margin-bottom:8px}
.tour-card-title{display:block;font:25px/1 var(--serif);letter-spacing:-.5px}
.tour-card-star{font:32px/1 var(--serif);color:#6b99bc;flex-shrink:0}
.tour-overview{position:absolute;bottom:19px;left:23px;z-index:2;padding:12px 17px;min-height:44px;border-radius:30px;font-size:11px;background:#183b57cf;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 3px 15px #09213620}
.tour-overview>span:first-child{font:23px/.7 var(--sans)}
.tour-stage-actions{position:absolute;bottom:19px;left:23px;right:23px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}
.tour-stage-actions .tour-overview{position:static;transform:none;pointer-events:auto}
.tour-journey{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:153px;min-height:44px;flex-shrink:0;padding:12px 14px;border:1px solid #bce1ff70;border-radius:30px;background:#d5ecff;color:#21445f;font-size:11px;white-space:nowrap;pointer-events:auto;box-shadow:0 3px 15px #09213620;transition:background .2s,border-color .2s}
.tour-journey:hover{background:#f0f9ff;border-color:#fff}
.tour-journey[aria-pressed="true"]{background:#34668b;color:#f4faff;border-color:#bce1ff99}
.tour-journey:disabled{background:#163952;color:#a9c4d9;border-color:#bce1ff30;cursor:default}
.tour-journey-icon{font-size:10px;width:11px;text-align:center}
.tour-overview-hint{position:absolute;top:20px;left:20px;right:20px;z-index:2;text-align:center;color:#d6ebfc;font-size:11px;letter-spacing:.3px;pointer-events:none}
.tour-overview-hint>span{padding-left:6px;font-size:18px}
.is-overview .tour-scene{cursor:pointer;transition:box-shadow .25s,border-color .25s}
.is-overview .tour-scene:hover{border-color:#fff;box-shadow:0 20px 100px #03172d88,0 0 110px #bce6ff70}
.tour-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:13px 28px;padding:20px 34px 15px;border-top:1px solid #c5e5ff24;background:#102d4785;position:relative;z-index:3}
.tour-caption{display:flex;align-items:center;gap:17px;min-width:0}
.tour-position{font-size:9px;letter-spacing:1.7px;color:#a6c9e7;flex-shrink:0;min-width:50px}
.tour-current-title{font:25px/1.18 var(--serif);letter-spacing:-.45px;margin:0 0 7px;color:#f1f8ff}
.tour-current-description{font-size:10px;line-height:1.6;margin:0;color:#b6d0e6}
.tour-navigation{display:flex;align-items:center;justify-content:center;gap:14px}
.tour-arrow{width:42px;height:42px;border-radius:50%;flex-shrink:0;font-size:23px}
.tour-stops{display:flex;align-items:center;gap:5px}
.tour-stops button{border:1px solid transparent;border-radius:30px;color:#bdd7ee;background:transparent;padding:10px 12px;min-height:42px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;transition:background .2s,color .2s,border-color .2s}
.tour-stop-number{font-size:9px;color:#96bad8}
.tour-stops button[aria-current]{background:#e3f2ff;color:#22435e;border-color:#e3f2ff}
.tour-stops button[aria-current] .tour-stop-number{color:#446b89}
.tour-stops button:hover:not([aria-current]){background:#d2eaff16;border-color:#bce1ff45;color:#fff}
.tour-instructions{grid-column:1/-1;text-align:center;font-size:8px;line-height:1.5;letter-spacing:.45px;color:#99bddb;margin:0}
@keyframes tour-starlight{from{opacity:.32;transform:translate3d(0,0,0)}to{opacity:.7;transform:translate3d(8px,-6px,0)}}
@keyframes tour-lantern{from{translate:0 0;opacity:.22}to{translate:14px -32px;opacity:.68}}
@keyframes tour-shooting-star{0%{translate:-70px -40px;opacity:0}4%{opacity:.7}17%{translate:240px 139px;opacity:0}100%{translate:240px 139px;opacity:0}}
@keyframes tour-card-float{from{translate:0 0}to{translate:0 -9px}}
body.motion-paused .tour-camera{transition-duration:0ms!important}
body.motion-paused :is(.tour-sky,.tour-scene,.tour-night-lights span,.tour-shooting-stars span){animation-play-state:paused}
.ballet-tour:not([open]) :is(.tour-sky,.tour-scene,.tour-night-lights span,.tour-shooting-stars span){animation-play-state:paused}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .tour-camera{transition-duration:0ms!important}body:not(.motion-enabled) :is(.tour-sky,.tour-scene,.tour-night-lights span,.tour-shooting-stars span){animation:none}}
@media(max-width:1000px){.tour-header{padding:19px 24px}.tour-footer{padding:17px 24px 13px;gap:12px 18px}.tour-stop-name{display:none}.tour-stops button{width:35px;padding:9px 5px}.tour-stop-number{font-size:10px}.tour-navigation{gap:9px}.tour-current-title{font-size:23px}.tour-current-description{max-width:380px}.tour-position{min-width:44px}.tour-caption{gap:12px}}
@media(max-width:620px){.tour-header{padding:14px 17px;gap:9px}.tour-brand{gap:10px}.tour-brand-star{font-size:31px}.tour-kicker{font-size:6px;letter-spacing:1.4px;margin-bottom:6px}.tour-header h2{font-size:23px}.tour-top-actions{gap:8px}.tour-motion{width:38px;min-height:38px;padding:0}.tour-motion-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tour-close{width:38px;height:38px;font-size:26px}.tour-overview{bottom:13px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;min-height:39px;padding:10px 14px}.tour-footer{grid-template-columns:1fr;gap:13px;padding:15px 18px max(13px,env(safe-area-inset-bottom))}.tour-caption{justify-content:center;text-align:center;gap:0}.tour-position{display:none}.tour-current-title{font-size:24px;margin-bottom:5px}.tour-current-description{font-size:9px;max-width:350px}.tour-navigation{gap:12px}.tour-stop-name{display:inline}.tour-stops{gap:4px}.tour-stops button{width:auto;padding:10px 11px;min-height:38px;font-size:9px;gap:6px}.tour-stop-number{font-size:8px}.tour-arrow{width:37px;height:37px;font-size:21px}.tour-instructions{font-size:7px;letter-spacing:.15px;grid-column:1}.tour-overview-hint{font-size:10px;top:17px}.tour-stage::after{box-shadow:inset 0 0 45px #07233b42}}
@media(max-width:370px){.tour-brand-star{display:none}.tour-header h2{font-size:22px}.tour-navigation{gap:8px}.tour-stops button{padding:9px 8px}.tour-stop-number{display:none}.tour-current-title{font-size:22px}.tour-current-description{font-size:8px}}
@media(max-height:560px) and (min-width:621px){.tour-header{padding:10px 22px}.tour-brand-star{font-size:29px}.tour-kicker{font-size:6px;margin-bottom:4px}.tour-header h2{font-size:23px}.tour-footer{padding:11px 22px;gap:5px 20px}.tour-current-title{font-size:21px;margin-bottom:4px}.tour-current-description{font-size:9px}.tour-instructions{font-size:7px}.tour-overview{bottom:12px;left:16px;padding:9px 13px;min-height:38px;font-size:10px}}
@media(max-width:620px){.tour-stage-actions{left:14px;right:14px;bottom:13px;gap:8px}.tour-stage-actions .tour-overview{flex:1;padding:10px 9px;font-size:9px;gap:6px;min-width:0;min-height:39px}.tour-journey{width:130px;min-height:39px;padding:10px 9px;font-size:9px;gap:7px}}
@media(max-height:560px) and (min-width:621px){.tour-stage-actions{bottom:12px;left:16px;right:16px}.tour-journey{min-height:38px;padding:9px 13px;font-size:10px}}

/* Finger-sized controls stay usable with a phone or tablet in either orientation. */
.ballet-tour :is(.tour-close,.tour-motion,.tour-arrow,.tour-overview,.tour-journey),.ballet-tour .tour-stops button{min-width:44px;min-height:44px}
.ballet-tour :is(.tour-close,.tour-arrow){width:44px;height:44px}
.tour-top-actions,.tour-navigation{flex-shrink:0}
@media(max-width:620px){
  .tour-motion{width:44px;height:44px}
  .tour-footer{padding-bottom:13px}
  .tour-stage-actions .tour-overview{min-width:44px;min-height:44px}
  .tour-stops button{padding-inline:9px}
  .tour-navigation{gap:8px}
}
@media(max-width:370px){.tour-stops button{padding-inline:7px}.tour-navigation{gap:5px}}

/* In compact landscape, keep the artwork tall and place its caption/navigation beside it. */
@media(max-height:500px) and (min-width:621px){
  .tour-shell{grid-template-columns:minmax(0,1fr) 248px;grid-template-rows:auto minmax(0,1fr)}
  .tour-header{grid-column:1/-1;padding:7px 16px}
  .tour-stage{grid-column:1;grid-row:2}
  .tour-footer{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:center;gap:17px;padding:14px 10px;border-top:0;border-left:1px solid #c5e5ff24}
  .tour-caption{display:block;text-align:center}
  .tour-position{display:none}
  .tour-current-title{font-size:23px;line-height:1.16;margin-bottom:9px}
  .tour-current-description{font-size:10px;line-height:1.6}
  .tour-navigation{gap:2px;width:100%}
  .tour-stops{gap:2px}
  .tour-stops button{width:44px;padding:9px 3px}
  .tour-stop-name{display:none}
  .tour-stop-number{font-size:10px}
  .tour-instructions{max-width:210px;font-size:9px;line-height:1.6}
  .tour-stage-actions{left:12px;right:12px;bottom:12px;gap:8px}
  .tour-stage-actions .tour-overview{padding:10px 11px;font-size:10px}
  .tour-journey{width:145px;padding:10px 11px;font-size:10px}
  .tour-overview-hint{top:10px;font-size:10px}
}
