/* Shared skeleton geometry for the HTML boot shell and mounted routes. */
.page-experience-anchor{display:none}
.page-skeleton{--skeleton-base:var(--dream-primary-chip,#e4e8e0);--skeleton-highlight:var(--dream-card,#f3f5ef);box-sizing:border-box;position:fixed;inset:0;z-index:145;overflow:hidden;background:var(--dream-page-surface,#f6f6f3);pointer-events:auto}
.page-skeleton:not(.boot-skeleton){z-index:110}
.skeleton-shell,.listing-skeleton-shell{box-sizing:border-box;width:min(calc(100% - 64px),1120px);margin:0 auto;padding:140px 0 110px}
.listing-skeleton-shell{width:min(calc(100% - 48px),1200px);padding-top:132px}
.page-skeleton *{box-sizing:border-box}
.skeleton-bar{position:relative;overflow:hidden;background:var(--skeleton-base);border-radius:8px}
.skeleton-title{width:60%;max-width:480px;height:38px;margin-bottom:14px}
.skeleton-subtitle{width:72%;height:14px;margin-bottom:24px}
.skeleton-line{width:90%;height:13px;margin:14px 0}.skeleton-line.short{width:55%}
.skeleton-filters{display:flex;gap:8px;margin-bottom:18px;overflow:hidden}
.skeleton-chip{flex:0 0 82px;height:40px;border-radius:12px}
.skeleton-filter{width:142px;height:44px;flex:0 0 142px;border-radius:14px}
.skeleton-content{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:28px}
.skeleton-panel{min-width:0;padding:22px;border-radius:20px;background:var(--dream-card,#fff);margin-bottom:20px}
.skeleton-back{width:100px;height:24px;margin-bottom:22px}
.skeleton-progress{width:100%;height:42px;margin-bottom:26px}
.skeleton-field{margin-bottom:22px}.skeleton-label{width:35%;height:12px;margin-bottom:10px}
.skeleton-input{width:100%;height:46px;border-radius:12px}
.skeleton-action{width:142px;height:66px;margin-left:auto;border-radius:16px}
.listing-skeleton-date{padding:16px 20px;margin-bottom:25px;border-radius:24px;background:var(--dream-card,#fff)}
.listing-skeleton-date-heading,.skeleton-list-heading,.skeleton-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}
.skeleton-month{width:170px;height:28px}.skeleton-picker{width:74px;height:44px;border-radius:24px}
.listing-skeleton-days{display:flex;gap:10px;overflow:hidden}.skeleton-day{flex:0 0 64px;height:64px;border-radius:14px}
.skeleton-list-heading{min-height:50px;margin-bottom:18px}.skeleton-list-heading .skeleton-title{width:40%;height:30px;margin:0}
.listing-skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.listing-skeleton-card{overflow:hidden;min-width:0;border-radius:24px;background:var(--dream-card,#fff)}
.skeleton-poster{width:100%;aspect-ratio:2/1;border-radius:0}.listing-skeleton-copy{padding:16px 20px}
.page-skeleton[data-kind=gallery] .skeleton-poster{aspect-ratio:3/2}
.skeleton-map{width:100%;height:500px;border-radius:16px}.skeleton-legend{width:70%;height:16px;margin:16px auto 0}
.skeleton-order-row{display:flex;gap:20px;align-items:center}.skeleton-order-photo{width:92px;height:120px;flex:0 0 92px}.skeleton-order-copy{min-width:0;flex:1}.skeleton-tabs{width:100%;height:42px;margin-bottom:20px}
.skeleton-detail-photo{width:100%;aspect-ratio:3/2;margin-bottom:24px;border-radius:14px}
.skeleton-article{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px}.skeleton-article .skeleton-subtitle{margin-top:28px}
.skeleton-status-shell{max-width:528px;padding-top:100px}
.skeleton-home-shell{width:100%}.skeleton-home-hero{position:relative;height:clamp(320px,calc(100svh - 260px),600px);background:#314738}
.page-skeleton[data-kind=home]{--skeleton-base:#4a5c4d;--skeleton-highlight:#627565}
.skeleton-home-ticket{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:66px minmax(0,1fr) 260px;gap:20px;align-items:center;width:min(calc(100% - 48px),1320px);min-height:182px;padding:24px;border-radius:18px;background:#e3e7e0}
.skeleton-home-ticket .skeleton-bar{background:#bdc8bc}.skeleton-calendar{height:92px}.skeleton-home-info .skeleton-title{height:30px}.skeleton-home-info .skeleton-line{margin-bottom:0}.skeleton-home-actions{display:grid;gap:10px}.skeleton-home-rail{display:flex;gap:16px;padding:20px;overflow:hidden}.skeleton-thumbnail{flex:0 0 230px;height:92px;border-radius:16px;background:#dce3d9}
.skeleton-boot-nav{display:none}
.boot-load-feedback{position:fixed;z-index:1;top:38%;left:50%;transform:translateX(-50%);width:min(calc(100% - 40px),420px);padding:24px;border-radius:16px;background:var(--dream-card,#fff);color:var(--dream-text,#192d23);box-shadow:0 10px 30px #192d2326;font:400 14px/1.6 -apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif}
.boot-load-feedback p{margin:0 0 16px}.boot-load-retry{min-height:44px;padding:10px 18px;border:0;border-radius:12px;background:var(--dream-primary,#192d23);color:var(--dream-on-primary,#fff);font:inherit;font-weight:600;cursor:pointer}.boot-load-retry:focus-visible{outline:2px solid #627c63;outline-offset:4px}
@media(max-width:767px){
 .skeleton-shell,.listing-skeleton-shell{width:calc(100% - 40px);padding-top:94px}
 .listing-skeleton-shell{padding-top:calc(84px + env(safe-area-inset-top))}
 .skeleton-title{height:32px;width:72%}.skeleton-subtitle{height:14px}
 .skeleton-content,.skeleton-article{grid-template-columns:minmax(0,1fr);gap:0}
 .skeleton-article>.skeleton-panel{display:none}.skeleton-panel{padding:20px}
 .page-skeleton[data-kind=form] .skeleton-shell,.page-skeleton[data-kind=detail] .skeleton-shell,.page-skeleton[data-kind=booth] .listing-skeleton-shell{padding-top:24px}
 .skeleton-status-shell{padding-top:80px}
 .listing-skeleton-date{padding:12px 14px;margin-bottom:25px;border-radius:20px}.listing-skeleton-date-heading{margin-bottom:8px}
 .skeleton-month{width:136px;height:24px}.listing-skeleton-days{gap:8px}.skeleton-day{flex-basis:50px;height:58px}
 .listing-skeleton-grid{grid-template-columns:1fr;gap:24px}.listing-skeleton-card{border-radius:20px}
 .skeleton-map{height:clamp(100px,calc(100svh - 530px),560px)}
 .page-skeleton:is([data-kind=home],[data-kind=list],[data-kind=map],[data-kind=gallery],[data-kind=orders],[data-kind=account]){bottom:calc(88px + env(safe-area-inset-bottom))}
 .skeleton-home-hero{height:min(140vw,530px,max(310px,calc(100svh - 350px - env(safe-area-inset-bottom))))}
 .skeleton-home-ticket{bottom:12px;width:calc(100% - 40px);padding:18px;grid-template-columns:54px minmax(0,1fr);gap:12px}
 .skeleton-calendar{height:78px}.skeleton-home-actions{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:12px;border-top:1px solid #c7d0c3}
 .boot-skeleton .skeleton-boot-nav{position:fixed;display:flex;align-items:center;justify-content:space-around;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));height:68px;padding:6px;border-radius:22px;background:var(--dream-card,#fff)}
 .skeleton-nav-item{width:36px;height:38px}
}
@media(max-width:359px){.skeleton-shell,.listing-skeleton-shell{width:calc(100% - 30px)}.skeleton-filter{width:120px;flex-basis:120px}.skeleton-home-ticket{width:calc(100% - 30px)}}
@media(prefers-reduced-motion:no-preference){.skeleton-bar::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(100deg,transparent 20%,var(--skeleton-highlight) 50%,transparent 80%);animation:skeleton-sheen 1.6s ease-in-out infinite}}
@keyframes skeleton-sheen{to{transform:translateX(100%)}}
.primary-page-content{box-sizing:border-box;min-height:100vh;min-height:100dvh}
/* Preserve local back controls above the loading surface. */
uni-page[aria-busy=true] :is(.suite-back,.detail-topbar,.booking-shell>.booking-text-link,.ticket-back,.ticket-loading-header){position:relative;z-index:111}
.ticket-loading-header{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:16px}
.page-back-top{box-sizing:border-box;position:fixed;z-index:120;right:24px;bottom:32px;display:flex;align-items:center;justify-content:center;width:50px;height:50px;margin:0;padding:3px;border:1px solid #c1cdbb;border-radius:50%;background:conic-gradient(#f7d7bc var(--scroll-progress,0deg),#526b55 0deg);box-shadow:0 6px 22px #192d2330;cursor:pointer}
.page-back-top::after{border:0}.back-top-inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:#192d23}.back-top-inner uni-image{width:20px;height:20px;filter:invert(1);transform:rotate(90deg)}.back-top-label{position:absolute;right:calc(100% + 10px);padding:8px 12px;border-radius:10px;background:#192d23;color:#fff;font:500 12px/1.4 -apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;white-space:nowrap;opacity:0;pointer-events:none}
.page-back-top:focus-visible{outline:3px solid #627c63;outline-offset:4px}.page-back-top:focus-visible .back-top-label{opacity:1}
@media(hover:hover){.page-back-top:hover .back-top-inner{background:#354d3a}.page-back-top:hover .back-top-label{opacity:1}}

@media(max-width:767px){.page-back-top{right:14px;bottom:calc(108px + env(safe-area-inset-bottom));width:46px;height:46px}}
@media(prefers-reduced-motion:no-preference){.page-back-top{animation:back-top-enter .22s ease-out}.back-top-inner{transition:background .18s}.back-top-label{transition:opacity .18s}}
@keyframes back-top-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
