.panorama-launch { display:block; margin:20px auto 8px; padding:12px 22px; border:1px solid var(--red); border-radius:30px; color:var(--red); background:var(--paper); font:inherit; cursor:pointer; }
.panorama-launch:hover { background:#faf1f2; }
.panorama-disclaimer { text-align:center; font-size:12px; margin:0; }
.panorama-dialog { width:min(1200px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 40px); padding:0; border:1px solid var(--line); background:var(--paper); color:var(--ink); overflow:auto; }
.panorama-dialog::backdrop { background:#151915c9; }
.panorama-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px 12px; }
.panorama-heading p { font-size:11px; letter-spacing:.12em; color:var(--red); margin:0 0 8px; }
.panorama-heading h2 { font:400 clamp(22px,3vw,34px)/1.15 var(--serif); margin:0; }
.panorama-heading button { width:44px; height:44px; border:1px solid var(--red); border-radius:50%; background:transparent; color:var(--red); cursor:pointer; flex-shrink:0; }
.panorama-note { margin:0; padding:0 24px 16px; font-size:13px; }
.panorama-stage { position:relative; height:clamp(220px,52dvh,600px); background:#242820; }
#panorama-view { width:100%; height:100%; }
#panorama-status { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:#fff; color:#242820; padding:16px; max-width:85%; text-align:center; margin:0; }
#panorama-status[hidden] { display:none; }
.panorama-controls { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; padding:12px; }
.panorama-controls button { min-width:44px; min-height:44px; padding:8px 14px; border:1px solid var(--line); background:var(--paper); color:var(--red); font:inherit; cursor:pointer; }
.panorama-controls button:disabled { opacity:.4; cursor:wait; }
.panorama-footer { padding:0 24px 16px; font-size:12px; }
.panorama-footer p { margin:6px 0; }
.panorama-footer a { color:var(--red); text-underline-offset:3px; }
.panorama-dialog :focus-visible,.panorama-launch:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
@media(max-width:600px) { .panorama-dialog { width:100vw; height:100dvh; max-height:100dvh; border:0; } .panorama-heading { padding:16px; } .panorama-note { padding:0 16px 12px; } .panorama-footer { padding:0 16px 12px; } }

.object-description .panorama-launch { margin:24px 0 8px; }
.object-description .panorama-disclaimer { text-align:left; max-width:34ch; }
.panorama-entrance { position:fixed; inset:0; z-index:10000; pointer-events:none; overflow:hidden; }
.panorama-dialog { width:100vw; height:100dvh; max-height:100dvh; max-width:100vw; margin:0; border:0; overflow:hidden; background:#242820; }
.panorama-dialog .panorama-stage { position:absolute; inset:0; height:100%; }
.panorama-heading,.panorama-note,.panorama-controls,.panorama-footer { position:absolute; z-index:2; }
.panorama-heading { top:0; left:0; right:0; color:white; padding:20px 24px 48px; background:linear-gradient(#101810bd,transparent); pointer-events:none; }
.panorama-heading p { color:#fff; }
.panorama-heading button { pointer-events:auto; color:var(--red); background:var(--paper); }
.panorama-note { top:105px; left:24px; max-width:400px; padding:8px 12px; background:#fffE; border-radius:4px; font-size:12px; pointer-events:none; }
.panorama-controls { bottom:100px; left:50%; transform:translateX(-50%); flex-wrap:nowrap; width:max-content; max-width:100%; padding:8px; background:#fffE; border-radius:30px; }
.panorama-controls button { border:0; border-radius:24px; background:transparent; }
.panorama-footer { bottom:0; left:0; right:0; color:white; padding:32px 24px 16px; background:linear-gradient(transparent,#101810de); pointer-events:none; }
.panorama-footer a { color:white; pointer-events:auto; }
@media(max-width:600px) { .panorama-heading { padding:16px 16px 36px; } .panorama-heading h2 { font-size:23px; } .panorama-note { top:100px; left:16px; right:16px; } .panorama-footer { padding:24px 16px 12px; font-size:11px; } .panorama-controls { bottom:120px; gap:0; } }

.object-description { display:flex; flex-direction:column; align-items:flex-start; min-height:var(--arch-height,auto); padding-bottom:0; }
.panorama-entry { margin-top:auto; padding-top:28px; }
.object-description .panorama-entry .panorama-launch { margin-top:0; }
.panorama-entrance .arch-window .paint-layer { transition:none; }
@media(max-width:760px) { .object-description { min-height:0; } .panorama-entry { padding-top:20px; } }

html { scrollbar-gutter: stable; }

@media(min-width:761px) { .panorama-entry { margin-bottom:48px; } }

/* The page keeps its gutter during the arch transition; the modal uses the full viewport. */
html:has(#panorama-dialog[open]) { scrollbar-gutter:auto; }
.panorama-dialog .panorama-heading { padding:32px 36px 60px; align-items:center; }
.panorama-heading p { font-size:10px; letter-spacing:.18em; opacity:.8; margin-bottom:10px; }
.panorama-heading h2 { font-size:clamp(24px,2.4vw,36px); letter-spacing:-.02em; }
.panorama-heading #panorama-close { display:grid; place-items:center; padding:0; width:48px; height:48px; border:1px solid #ffffff70; color:white; background:#18221f50; }
.panorama-heading #panorama-close:hover { background:#18221fa0; }
.panorama-note { top:114px; left:36px; padding:0; background:none; color:#fff; opacity:.85; font-size:12px; }
.panorama-dialog .panorama-controls { bottom:32px; padding:0; gap:8px; background:none; border-radius:0; }
.panorama-controls button { display:grid; place-items:center; width:44px; height:44px; min-width:44px; padding:0; border:1px solid #ffffff70; border-radius:50%; color:white; background:#18221f80; font-size:20px; }
.panorama-controls button:hover { background:#18221fcc; }
.panorama-dialog .panorama-footer { inset:auto 32px 32px auto; padding:0; background:none; color:white; font-size:12px; pointer-events:auto; }
.panorama-footer summary { display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffff70; border-radius:50%; background:#18221f80; cursor:pointer; font:italic 22px Georgia,serif; list-style:none; }
.panorama-footer summary::-webkit-details-marker { display:none; }
.panorama-info { position:absolute; right:0; bottom:56px; width:min(360px,calc(100vw - 40px)); padding:16px; border:1px solid #ffffff40; border-radius:8px; background:#18221ff2; line-height:1.5; }
@media(max-width:600px) {
 .panorama-dialog .panorama-heading { padding:24px 20px 48px; gap:12px; }
 .panorama-heading h2 { font-size:24px; max-width:230px; }
 .panorama-note { top:115px; left:20px; right:20px; font-size:11px; }
 .panorama-dialog .panorama-controls { left:20px; transform:none; bottom:24px; gap:6px; }
 .panorama-dialog .panorama-footer { right:20px; bottom:24px; }
 .panorama-controls button { width:40px; min-width:40px; }
}

.panorama-controls button svg,.panorama-footer summary svg { display:block; flex-shrink:0; }
.panorama-controls button,.panorama-footer summary { display:flex; align-items:center; justify-content:center; line-height:1; padding:0; }
.panorama-info { padding:22px; width:min(340px,calc(100vw - 40px)); background:#fefefef7; color:#242820; border:1px solid #fff; border-radius:12px; box-shadow:0 12px 40px #0003; }
.panorama-info .panorama-info__eyebrow { font:500 10px/1.3 var(--font-body,Arial,sans-serif); letter-spacing:.14em; color:#8d2027; margin:0 0 10px; }
.panorama-info h3 { font:400 23px/1.2 var(--serif); margin:0 0 18px; }
.panorama-info dl { margin:0; display:grid; gap:12px; }
.panorama-info dt { font-size:13px; font-weight:500; }
.panorama-info dd { margin:3px 0 0; font-size:12px; line-height:1.4; color:#555b52; }
.panorama-info__credits { border-top:1px solid #dfd3c8; margin-top:18px; padding-top:12px; }
.panorama-info__credits p { font-size:11px; line-height:1.5; }
.panorama-footer .panorama-info a { color:#8d2027; }

.panorama-entrance-backdrop { position:absolute; inset:0; background:var(--paper,#fefefe); }
.panorama-entry[hidden], .panorama-disclaimer[hidden], .panorama-note[hidden] { display:none; }
