/* Shared readability and clearance rules sit after the decorative theme layers. */
:root{--player-clearance:120px}
.vault-loop[hidden]{display:none}
#site-content{padding-bottom:var(--player-clearance);scroll-padding-bottom:var(--player-clearance)}
html{scroll-padding-bottom:var(--player-clearance)}
html{scroll-padding-top:calc(var(--nav-h) + 16px)}
html[data-crt="on"] :is(p,button,label,legend,input,textarea,select,output,small,summary,li,time,.eyebrow,.lnk-sub,.lnk-cta,.lnk-name,.lnk-cta-btn,.tile-meta,.music-toggle strong,.music-toggle small,.sp-bk-price){text-shadow:none;-webkit-text-stroke:0}
html[data-crt="on"] :is(p,button,label,li) a{ text-shadow:none }
html[data-crt="on"] :is(.btn,.sp-bk-cta,.text-link,.lnk-row,.nav-quick a,.home-vault-invite a,.home-shortcuts a){text-shadow:none;-webkit-text-stroke:0}
.sp-booking-card p,.sp-booking-card label,.sp-booking-card small{color:#eef3f8}
.sp-bk-label,.sp-bk-room-rate,.sp-bk-meta,.sp-bk-diff,.sp-bk-minnote,.book-alt{color:#dce5ef}
.sp-booking-sub,.sp-bio-text,.sp-bio-loc{color:#dce5ef}
html[data-crt="on"] :is(.sp-bk-label,.sp-bk-room-rate,.sp-bk-meta,.sp-bk-diff,.sp-bk-minnote,.sp-bk-total,.book-alt){text-shadow:none}
.home-controls{margin-top:24px}
.home-vault-invite{position:relative;z-index:4;margin:22px auto 8px;max-width:640px;padding:14px 18px;border-block:1px solid rgba(var(--accent-rgb),.28);background:rgba(5,9,16,.6);text-align:center;font: .85rem/1.65 var(--font-ui)}
.home-vault-invite p{margin:0 0 10px;color:#d6dfeb}
.home-vault-invite nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px}
.home-vault-invite a{color:var(--accent);display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.mobile-smoke{display:none;position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:paint}
.wall.is-spiral .mobile-smoke{display:block}
.mobile-smoke i{position:absolute;inset:-6% -18%;background:var(--accent);-webkit-mask:var(--smoke-mask,radial-gradient(ellipse, #0008,transparent 65%)) center / 100% 100% no-repeat;mask:var(--smoke-mask,radial-gradient(ellipse, #0008,transparent 65%)) center / 100% 100% no-repeat;mask-mode:alpha;opacity:.72;animation:mobile-smoke-drift 24s ease-in-out infinite alternate;will-change:transform}
.mobile-smoke i+i{inset:6% -30% -12%;opacity:.42;animation-direction:alternate-reverse;animation-duration:31s}
.participation-balance .day-unit[hidden]{display:none}
.participation-balance:not([data-balance-state="ready"]) [data-day-balance]{font-size:.7rem;white-space:nowrap}
@keyframes mobile-smoke-drift{from{transform:translate3d(-4%,4%,0) scale(1)}to{transform:translate3d(5%,-4%,0) scale(1.08)}}
body.motion-paused .mobile-smoke i,.wall:not(.is-helix-running) .mobile-smoke i{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.mobile-smoke i{animation:none;will-change:auto}}
@media(max-width:700px){
  #site-content main{padding-bottom:32px}
  .music-dock{bottom:calc(8px + env(safe-area-inset-bottom,0px));right:12px;width:calc(100% - 24px);padding:3px}
  .music-dock:not(.is-open) .music-toggle{min-height:48px;padding:9px 14px;border-bottom:0;gap:10px}
  .music-dock:not(.is-open) .music-toggle strong{font-size:.82rem;line-height:1.3}
  .music-dock:not(.is-open) .music-toggle small{font-size:.65rem;line-height:1.35}
  .music-dock[data-playback="idle"]:not(.is-open) .music-toggle small,.music-dock[data-playback="idle"]:not(.is-open) .music-eq{display:none}
  .music-dock.is-open .music-panel{max-height:min(48dvh,440px)}
  body.menu-open .music-dock{visibility:hidden;pointer-events:none}
  .drawer{max-height:100dvh;overflow-y:auto;justify-content:flex-start;padding-top:calc(var(--nav-h) + 24px);padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
  .drawer nav{flex-shrink:0;width:100%}
  .drawer .drawer-foot{position:static;flex-shrink:0;margin-top:20px;padding:12px 0}
  .drawer .effects-controls{position:static;grid-column:1/-1;margin:16px 0 0;width:100%;font-size:.85rem;visibility:visible!important}
  .drawer .effects-toggle{min-height:44px;padding:12px 16px;width:100%;justify-content:center}
  .drawer .effects-panel{position:static;max-width:none;width:100%;max-height:none;margin-top:12px;padding:12px 0;box-sizing:border-box}
  .drawer .effects-scroll{max-height:none;overflow:visible;padding-inline:18px}
  .drawer nav{padding-bottom:20px}
  .participation-balance{gap:5px}
  .participation-balance .day-unit{font-size:.55rem}
  .home-vault-invite{font-size:.76rem;margin:16px 4px 8px;padding:12px}
  .home-vault-invite nav{gap:4px 16px}
  .vault-grid:not(.exclusive-grid) .vault-card>div{padding:18px}
  .vault-card h2{font-size:2rem;margin:10px 0}
  .vault-card .community-actions{gap:10px}
  .vault-card .community-actions .btn{min-height:44px}
}

/* Intrinsic-height reveals keep the original DOM/audio mounted and reverse mid-flight. */
.panel-reveal{display:grid;grid-template-rows:0fr;transition:grid-template-rows 320ms cubic-bezier(.22,.7,.3,1);overflow:hidden}
.panel-reveal.is-expanded{grid-template-rows:1fr}
.panel-reveal>.panel-reveal-inner{min-height:0;overflow:hidden}
.panel-reveal .panel-content{opacity:0;transition:opacity 120ms ease}
.panel-reveal.is-expanded .panel-content{opacity:1;transition:opacity 180ms ease 100ms}
.music-dock .music-panel,.music-dock.is-open .music-panel{height:auto;max-height:none;overflow:hidden}
.music-panel-scroll{max-height:calc(100dvh - 190px);overflow-y:auto;overscroll-behavior:contain}
.music-chevron{transition:transform 320ms ease}
.effects-controls{display:flex;flex-direction:column;width:112px;box-sizing:border-box;padding:2px;background:#10141d;transition:width 320ms cubic-bezier(.22,.7,.3,1)}
.effects-controls.is-open{width:min(342px,calc(100vw - 28px))}
.effects-controls.pixel-panel{clip-path:var(--pixel-button)}
.effects-controls .effects-toggle{order:2;flex-shrink:0;align-self:flex-start;width:108px;min-height:40px;justify-content:center;gap:6px;padding:6px 8px;font:400 .72rem/1.2 var(--font-ui);white-space:nowrap;border:0;background:transparent;box-shadow:none;touch-action:manipulation}
.effects-toggle>span{display:inline-block;flex:0 0 16px;width:16px;height:16px;line-height:16px;font-size:14px;text-align:center;transform-origin:50% 50%}
.effects-controls .effects-panel{position:static;order:1;width:100%;max-width:none;max-height:none;padding:0;margin:0;border:0;box-shadow:none;background:transparent}
.effects-controls .effects-scroll{max-height:calc(100dvh - 165px);overflow:auto;padding:18px 16px 8px;box-sizing:border-box}
@media(max-width:700px){
 .music-panel-scroll{max-height:min(48dvh,440px)}
 .drawer nav{padding-bottom:84px}
 .drawer .effects-controls{position:fixed;left:14px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:112px;max-width:calc(100vw - 28px);margin:0;z-index:2}
 .drawer .effects-controls.is-open{width:min(342px,calc(100vw - 28px))}
 .drawer .effects-toggle{width:108px;min-height:44px;padding:6px 8px}
 .drawer .effects-panel{position:static;width:100%;padding:0;margin:0}
 .drawer .effects-scroll{max-height:calc(100dvh - 200px);overflow:auto;padding:18px 16px 8px}
}
@media(prefers-reduced-motion:reduce){.panel-reveal,.panel-reveal .panel-content,.effects-controls,.music-chevron{transition:none!important}}
body.motion-paused .panel-reveal,body.motion-paused .panel-content,body.motion-paused .effects-controls{transition:none!important}

/* Route-specific constellations hug only the active navigation label. */
.drawer nav>a{position:relative}.nav-label{position:relative;display:inline-block}
.nav-stars{position:absolute;inset:0;pointer-events:none;user-select:none;filter:drop-shadow(0 0 2px color-mix(in srgb,var(--accent-2) 55%,transparent))}
.nav-stars i{position:absolute;display:block;left:var(--star-x);top:var(--star-y);width:var(--star-size,7px);height:var(--star-size,7px);background:var(--accent-2);clip-path:polygon(40% 0,60% 0,60% 30%,70% 30%,70% 40%,100% 40%,100% 60%,70% 60%,70% 70%,60% 70%,60% 100%,40% 100%,40% 70%,30% 70%,30% 60%,0 60%,0 40%,30% 40%,30% 30%,40% 30%);animation:nav-star-twinkle 3.8s ease-in-out infinite,nav-star-drift var(--star-period,14s) linear infinite;animation-delay:var(--star-delay);transform-origin:center;opacity:.8}
.nav-stars i:nth-child(even){background:var(--accent)}
@keyframes nav-star-drift{0%{transform:rotate(0deg) scale(1)}60%{transform:rotate(216deg) scale(1)}68%{transform:rotate(244.8deg) scale(1.3)}76%{transform:rotate(273.6deg) scale(1)}100%{transform:rotate(360deg) scale(1)}}
@keyframes nav-star-twinkle{0%,100%{opacity:.35}45%,65%{opacity:1}}
body:not(.menu-open) .nav-stars i,body.motion-paused .nav-stars i{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.nav-stars i{animation:none;opacity:.8}}

.music-toggle{transition:min-height 320ms ease,padding 320ms ease}.music-toggle strong,.music-toggle small{transition:font-size 320ms ease}
@media(prefers-reduced-motion:reduce){.music-toggle,.music-toggle strong,.music-toggle small{transition:none}}

/* A steady, contained indicator for the desktop-only blossom secret. */
.effects-controls.is-blossom-burst .effects-toggle{color:var(--accent);text-shadow:0 0 4px var(--accent),0 0 10px rgba(var(--accent-rgb),.65);background:radial-gradient(ellipse at center,rgba(var(--accent-rgb),.18),transparent 75%);box-shadow:inset 0 0 10px rgba(var(--accent-rgb),.16)}

.effects-controls .effects-panel .motion-toggle{font:400 .72rem/1.4 var(--font-ui);min-height:44px;padding:8px 12px;text-align:center;display:flex;align-items:center;justify-content:center;white-space:normal}
.effects-controls .effects-panel label{font-size:.72rem;line-height:1.5;gap:12px}.effects-controls .effects-panel label>span{min-width:0;overflow-wrap:anywhere}
