.tours-body { min-height:100vh; background:var(--paper); }
.tours-main { padding-top:124px; }
.tour-intro { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); align-items:end; gap:44px; padding:56px clamp(20px,5vw,72px) 48px; }
.tour-intro .eyebrow { grid-column:1/-1; margin:0; color:var(--gold); }
.tour-intro h1 { margin:0; max-width:900px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(58px,8vw,118px); font-weight:500; line-height:.88; letter-spacing:-.035em; }
.tour-intro > p:last-child { margin:0; color:var(--muted); font-size:18px; line-height:1.75; }
.tour-experience { min-height:50svh; padding:18px clamp(20px,5vw,72px) 110px; }
.tour-empty[hidden],.tour-grid[hidden] { display:none !important; }
.tour-empty { position:relative; min-height:54svh; display:grid; align-items:end; overflow:hidden; padding:clamp(24px,5vw,72px); background:#090909; color:var(--white); }
.tour-empty::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.08) 70%); }
.tour-empty img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.72; }
.tour-empty > div { position:relative; z-index:1; max-width:850px; }
.tour-empty h2 { margin:10px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,6vw,82px); font-weight:500; line-height:.92; }
.tour-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.tour-project { grid-column:span 4; position:relative; min-height:430px; overflow:hidden; border:1px solid rgba(255,255,255,.24); background:#111; color:var(--white); cursor:pointer; box-shadow:var(--shadow); text-align:left; }
.tour-project:nth-child(5n + 2) { grid-column:span 8; }
.tour-project img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .75s ease,filter .75s ease; }
.tour-project::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.82),transparent 62%); }
.tour-project:hover img { transform:scale(1.06); filter:saturate(1.08); }
.tour-project-meta { position:absolute; z-index:2; inset:auto 0 0; padding:24px; }
.tour-project-meta small { color:rgba(255,250,241,.68); letter-spacing:.16em; text-transform:uppercase; }
.tour-project-meta h2 { max-width:680px; margin:10px 0 12px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(32px,4vw,58px); font-weight:500; line-height:.95; }
.tour-project-meta p { max-width:560px; margin:0; color:rgba(255,250,241,.74); line-height:1.55; }
.tour-count { position:absolute; z-index:3; top:18px; right:18px; min-width:54px; min-height:54px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.45); background:rgba(0,0,0,.5); font-size:11px; letter-spacing:.12em; }
.tour-modal { position:fixed; inset:0; z-index:100; display:none; background:#050505; color:var(--white); }
.tour-modal.open { display:block; }
.tour-viewer-shell { position:relative; width:100%; height:100svh; }
.panorama-viewer { width:100%; height:100%; background:#090909; }
.tour-modal-close { position:absolute; z-index:15; top:12px; right:12px; min-height:24px; border:1px solid rgba(255,255,255,.28); background:rgba(8,8,8,.56); color:var(--white); padding:0 8px; cursor:pointer; font-size:9px; line-height:1; letter-spacing:.12em; text-transform:uppercase; backdrop-filter:blur(8px); }
.tour-caption { display:none; pointer-events:none; position:absolute; z-index:10; inset:auto auto 24px clamp(20px,5vw,72px); width:min(620px,calc(100% - 160px)); padding:18px 22px; border-left:2px solid var(--gold); background:rgba(7,7,7,.72); backdrop-filter:blur(12px); }
.tour-caption .eyebrow { margin:0; color:var(--gold); }
.tour-caption h2 { margin:8px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(34px,5vw,66px); font-weight:500; line-height:.92; }
.tour-caption > p:last-child { margin:10px 0 0; color:rgba(255,250,241,.74); line-height:1.55; }
.scene-selector { position:absolute; z-index:12; right:12px; bottom:12px; width:min(170px,calc(100% - 24px)); max-height:calc(100svh - 58px); display:grid; gap:5px; overflow-y:auto; scrollbar-width:thin; }
.scene-choice { display:grid; grid-template-columns:42px 1fr; align-items:center; gap:6px; min-height:36px; border:1px solid rgba(255,255,255,.2); background:rgba(8,8,8,.52); color:var(--white); padding:3px; cursor:pointer; text-align:left; backdrop-filter:blur(8px); }
.scene-choice.active { border-color:rgba(190,129,66,.85); background:rgba(37,28,18,.62); }
.scene-choice img { width:42px; height:30px; object-fit:cover; }
.scene-choice strong { font-family:Georgia,serif; font-size:11px; font-weight:500; line-height:1.05; }
.pnlm-container { font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.pnlm-title-box,.pnlm-author-box { display:none !important; }
.pnlm-load-button,.pnlm-load-box { border-radius:0; background:rgba(10,10,10,.82); box-shadow:none; }
.pnlm-controls-container .pnlm-controls { border:1px solid rgba(0,0,0,.18); border-radius:0; background-color:rgba(255,255,255,.68); box-shadow:none; backdrop-filter:blur(8px); }
.pnlm-controls-container .pnlm-control:hover { background-color:rgba(255,255,255,.92); }
@media (max-width:980px) {
  .tours-main { padding-top:94px; }
  .tour-intro { grid-template-columns:1fr; padding-top:46px; }
  .tour-intro .eyebrow { grid-column:1; }
  .tour-project,.tour-project:nth-child(5n + 2) { grid-column:span 6; }
  .tour-caption { width:min(560px,calc(100% - 370px)); }
}
@media (max-width:640px) {
  .tour-intro { padding:40px 18px 34px; gap:22px; }
  .tour-intro h1 { font-size:clamp(54px,17vw,78px); }
  .tour-experience { padding:10px 18px 84px; }
  .tour-grid { grid-template-columns:1fr; }
  .tour-project,.tour-project:nth-child(5n + 2) { grid-column:1; min-height:360px; }
  .tour-project-meta { padding:20px; }
  .tour-modal-close { top:calc(env(safe-area-inset-top,0px) + 8px); right:8px; min-height:22px; padding:0 7px; font-size:8px; letter-spacing:.11em; background:rgba(8,8,8,.5); }
  .tour-caption { inset:auto 10px calc(env(safe-area-inset-bottom,0px) + 62px); width:auto; max-width:58%; padding:8px 10px; border-left:1px solid var(--gold); background:rgba(7,7,7,.54); backdrop-filter:blur(8px); }
  .tour-caption .eyebrow { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; letter-spacing:.18em; }
  .tour-caption h2 { margin-top:5px; font-size:22px; line-height:.96; }
  .tour-caption > p:last-child { display:none; }
  .scene-selector { left:auto; right:8px; bottom:calc(env(safe-area-inset-bottom,0px) + 8px); width:min(48vw,160px); display:flex; gap:5px; overflow-x:auto; overflow-y:hidden; max-height:40px; }
  .scene-choice { flex:0 0 112px; grid-template-columns:36px 1fr; gap:5px; min-height:32px; padding:3px; background:rgba(8,8,8,.5); backdrop-filter:blur(8px); }
  .scene-choice img { width:36px; height:26px; }
  .scene-choice strong { font-size:10px; line-height:1.05; }
  .pnlm-title-box,.pnlm-author-box { display:none !important; }
  .pnlm-controls-container { transform:scale(.78); transform-origin:top left; }
}
@media (max-width:640px) and (orientation:landscape) {
  .tour-caption { max-width:48%; bottom:calc(env(safe-area-inset-bottom,0px) + 10px); left:58px; right:auto; }
  .tour-caption h2 { font-size:20px; }
  .scene-selector { left:auto; width:min(38vw,150px); }
}
@media (max-width:420px) {
  .tour-caption { max-width:70%; }
}
@media (max-height:560px) and (max-width:980px) {
  .tour-modal-close { top:calc(env(safe-area-inset-top,0px) + 8px); right:8px; min-height:22px; padding:0 7px; font-size:8px; letter-spacing:.11em; background:rgba(8,8,8,.5); }
  .tour-caption { inset:auto auto calc(env(safe-area-inset-bottom,0px) + 10px) 58px; width:auto; max-width:44%; padding:8px 10px; border-left:1px solid var(--gold); background:rgba(7,7,7,.54); backdrop-filter:blur(8px); }
  .tour-caption .eyebrow { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; letter-spacing:.18em; }
  .tour-caption h2 { margin-top:5px; font-size:20px; line-height:.96; }
  .tour-caption > p:last-child { display:none; }
  .scene-selector { left:auto; right:8px; bottom:calc(env(safe-area-inset-bottom,0px) + 8px); width:min(32vw,150px); max-height:40px; display:flex; gap:5px; overflow-x:auto; overflow-y:hidden; }
  .scene-choice { flex:0 0 112px; grid-template-columns:36px 1fr; gap:5px; min-height:32px; padding:3px; background:rgba(8,8,8,.5); backdrop-filter:blur(8px); }
  .scene-choice img { width:36px; height:26px; }
  .scene-choice strong { font-size:10px; line-height:1.05; }
  .pnlm-title-box,.pnlm-author-box { display:none !important; }
  .pnlm-controls-container { transform:scale(.78); transform-origin:top left; }
}
