/* Preserve the original neutral glass borders while keeping the emerald active state. */
.place-bar,.menu-button,.details,.request-dialog{border-color:rgba(255,251,241,.34)}
.request-button{border-color:rgba(255,255,255,.58)}
#places button{border-color:rgba(255,255,255,.42)}

#tour-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,#434b37 0%,#282c24 45%,#181d18 100%);color:#fffaf1;font-family:Montserrat,sans-serif;padding:24px}
#tour-loader[hidden]{display:none}
.loader-card{text-align:center;width:min(100%,420px)}
.loader-icon{display:grid;place-items:center;position:relative;width:84px;height:84px;margin:0 auto 30px;color:#f5f0e5;font-size:17px;font-weight:500}
.loader-icon::before{content:"";position:absolute;inset:0;border:2px solid rgba(255,251,241,.18);border-top-color:#49aa87;border-right-color:#49aa87;border-radius:50%;animation:tour-spin 1.3s linear infinite}
.loader-card h1{font-size:clamp(22px,4vw,30px);font-weight:500;letter-spacing:.015em;margin:0 0 16px}
#loading-text{font-size:13px;line-height:1.7;color:rgba(255,251,241,.7);min-height:44px;margin:0 0 20px}
#loading-progress{display:block;appearance:none;width:220px;max-width:100%;height:3px;border:0;border-radius:8px;overflow:hidden;margin:0 auto;background:rgba(255,255,255,.15)}
#loading-progress::-webkit-progress-bar{background:rgba(255,255,255,.15)}
#loading-progress::-webkit-progress-value{background:#49aa87;transition:width .3s ease}
#loading-progress::-moz-progress-bar{background:#49aa87}
#loading-retry{margin:24px auto 0;padding:12px 24px;border:1px solid rgba(255,255,255,.4);border-radius:24px;background:#167454;color:white;font:500 14px Montserrat,sans-serif;cursor:pointer}
#loading-retry:focus-visible{outline:2px solid white;outline-offset:4px}
.has-error .loader-icon::before{animation:none;border-color:rgba(255,255,255,.35)}
@keyframes tour-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.loader-icon::before{animation:none}}

#viewer,#scene{height:100dvh}
.details{width:min(440px,calc(100vw - 96px));max-height:calc(100dvh - 154px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
@media(min-width:761px){#places{max-width:min(720px,calc(100vw - 560px))}}
#details-expand{display:none}
#cards-toggle{display:none}
.photo-gallery{position:relative}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:0;background:transparent;color:#fff;-webkit-tap-highlight-color:transparent}
.gallery-arrow svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.gallery-arrow:hover{background:transparent;color:#fff;opacity:.8}
#photo-prev{left:8px}#photo-next{right:8px}
.photo-gallery{margin:0 0 12px;border:1px solid rgba(255,255,255,.25);border-radius:12px;overflow:hidden;background:rgba(0,0,0,.18)}
#gallery-photo{display:block;width:100%;height:auto;max-height:min(420px,45dvh);object-fit:contain;object-position:center;touch-action:pan-y}
button:focus-visible{outline:2px solid #a8dfcc;outline-offset:3px}
.gallery-arrow:focus-visible{outline:none;color:#fff}
.gallery-arrow:focus-visible svg{filter:drop-shadow(0 0 4px #fff)}
.topbar .place-bar{grid-column:2;grid-row:1;justify-self:center}
.request-button,#places button[aria-current=true],#loading-retry{border:1px solid rgba(255,255,255,.58);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.request-dialog{max-height:85dvh;overflow:auto}
@media(max-width:760px){
  .topbar .menu-button{display:none}
  #cards-toggle{display:block;justify-self:end;min-height:44px;padding:10px 15px;border:1px solid rgba(255,255,255,.4);border-radius:24px;background:rgba(35,38,30,.65);color:#fff;font-size:12px;backdrop-filter:blur(20px)}
  .cards-hidden .details,.cards-hidden .place-bar{display:none!important}
  .topbar{inset:calc(14px + env(safe-area-inset-top)) 16px auto;gap:12px}
  .topbar .place-bar{grid-column:1;grid-row:1;justify-self:start}
  #cards-toggle{grid-column:2;grid-row:1}
  .brand-mark{width:30px;height:30px}.brand{gap:8px}.brand b{font-size:.86rem}.brand small{font-size:.38rem}
  .menu-button{min-height:44px;padding:9px 17px}.place-bar{padding:9px 16px;background:rgba(35,38,30,.48)}
  .details{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));width:auto;padding:16px 18px;border-radius:20px;max-height:calc(100dvh - 210px);background:linear-gradient(135deg,rgba(38,43,33,.86),rgba(72,67,52,.8))}
  .details .eyebrow{font-size:15px;margin-bottom:5px}.details h1{font-size:12px;margin:0;color:rgba(255,255,255,.78)}
  #details-expand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;border:0;border-top:1px solid rgba(255,255,255,.2);padding:12px 0 0;background:transparent;color:#fff;font-size:12px;min-height:38px;width:100%}
  #details-expand span{font-size:18px}.is-expanded #details-expand span{transform:rotate(180deg)}
  #details-content{display:none}.is-expanded #details-content{display:block;padding-top:14px}
  #places{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:none;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:8px;padding:4px 0;scrollbar-width:none;overscroll-behavior-x:contain}
  #places button{flex:none;min-height:44px;padding:10px 16px;font-size:12px;background:rgba(35,38,30,.78)}
  #places button[aria-current=true]{background:var(--accent)}
  #status{bottom:calc(68px + env(safe-area-inset-bottom));right:16px;max-width:80vw}
}
@media(max-height:500px) and (max-width:960px){
  .details{left:12px;right:auto;width:285px;max-height:calc(100dvh - 100px);bottom:65px}.place-bar{display:none}
}

/* Mobile card controls and edge-to-edge scene navigation. */
.details-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.details-heading .eyebrow{margin-bottom:7px}
#gallery-photo{aspect-ratio:auto}
@media(max-width:760px){
  .topbar{grid-template-columns:1fr}
  .topbar .place-bar{grid-column:1;grid-row:1;justify-self:center;display:flex}
  .details-heading .eyebrow{margin:0}
  #details-expand{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;margin:-8px -8px -8px 0;padding:10px;border:0;background:transparent;color:white}
  #details-expand svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .is-expanded #details-expand svg{transform:rotate(180deg)}
  .details h1{margin-top:5px}
  #places{left:0;right:0;width:100%;padding:4px 12px;scroll-padding-inline:12px;border-radius:0}
}

/* Neutral frosted glass with a muted jade accent. */
:root{--accent:#35685c;--accent-light:#447c6e;--accent-ink:#142e27}
.place-bar,.details,.request-dialog{
  background:linear-gradient(135deg,rgba(48,48,48,.54),rgba(95,95,95,.28));
  border-color:rgba(255,255,255,.34);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
}
.request-button,#places button,#loading-retry{
  color:#fff;
  background:linear-gradient(135deg,rgba(255,255,255,.15),rgba(28,28,28,.32));
  border:1px solid rgba(255,255,255,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 6px 20px rgba(0,0,0,.12);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  text-shadow:0 1px 3px rgba(0,0,0,.3);
  transition:background .2s ease,border-color .2s ease;
}
#places button[aria-current=true],.request-button{
  background:linear-gradient(135deg,rgba(53,104,92,.88),rgba(53,104,92,.66));
  border-color:rgba(255,255,255,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 6px 20px rgba(0,0,0,.12);
}
@media(hover:hover){
  .request-button:hover,#places button:hover,#loading-retry:hover{
    background:linear-gradient(135deg,rgba(255,255,255,.38),rgba(255,255,255,.2));
    border-color:rgba(255,255,255,.34);
  }
}
button:focus-visible{outline-color:#fff}
#tour-loader{background:radial-gradient(ellipse at 50% 30%,#444 0%,#292929 45%,#191919 100%)}
.loader-icon::before{border-top-color:#eee;border-right-color:#eee}
#loading-progress::-webkit-progress-value{background:#ddd}
#loading-progress::-moz-progress-bar{background:#ddd}

@media(hover:hover){
  #places button[aria-current=true]:hover,.request-button:hover{background:linear-gradient(135deg,rgba(68,124,110,.92),rgba(53,104,92,.76))}
}

/* The sheet uses measured free space; overflow remains reachable on short screens. */
@media(max-width:760px){
  .details{left:12px;right:12px;width:auto;bottom:var(--sheet-bottom,calc(80px + env(safe-area-inset-bottom)));max-height:var(--sheet-height,calc(100dvh - 180px));overflow-y:auto;-webkit-overflow-scrolling:touch}
  .details.is-expanded #details-content{display:block;padding-bottom:2px}
  .details.is-expanded #gallery-photo{height:var(--photo-height,auto);max-height:none;width:100%;object-fit:contain}
  .details #request{display:block;flex-shrink:0}
}
