/* Closed by default: keep the complete, unlabelled photograph. */
.desk-accessibility{width:min(100%,860px);margin:0 auto;padding:0 12px;flex:none;position:relative;z-index:5;color:#f7eedb;font:16px/1.45 Inter,Arial,sans-serif}
.desk-accessibility>summary{min-height:44px;padding:10px 12px;width:fit-content;max-width:100%;margin:0 auto;cursor:pointer;color:#e1cba1;font-size:14px;text-align:center;border-radius:5px}
.desk-accessibility>summary:focus-visible{outline:3px solid #ffdf8f;outline-offset:-3px}
.desk-access-panel{padding:10px 12px 14px;margin:0 0 10px;background:#211d15;border:1px solid #a99169;border-radius:8px}
.desk-access-panel button{min-width:48px;min-height:48px;padding:10px 14px;border:1px solid #bda476;border-radius:5px;background:#32291b;color:#fff4dc;font:inherit;line-height:1.35;touch-action:manipulation}
.desk-access-panel button:focus-visible{outline:3px solid #ffdf8f;outline-offset:3px}
.desk-access-panel button:disabled,.desk-access-panel button[aria-disabled=true]{opacity:.5;cursor:default}
.desk-size-tools,.desk-pan-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}
.desk-size-tools [data-desk-zoom]:not([data-desk-zoom=reset]),.desk-pan-tools button{font-size:26px;line-height:1}
.desk-zoom-value{min-width:92px;text-align:center;font-size:16px;color:#fff4dc}
.desk-access-panel .desk-view-help{margin:10px auto;text-align:center;font:14px/1.5 Inter,Arial,sans-serif;max-width:56ch;color:#eee1c7}
.desk-pan-tools{margin-bottom:12px}
.desk-access-panel .desk-label-toggle{display:block;width:100%;margin-top:10px;background:#f4e8cf;color:#21190e;font-weight:500}
.desk-object-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.desk-object-actions button{text-align:left;overflow-wrap:anywhere;background:#f4e8cf;color:#21190e;border-color:#f4e8cf}
.desk-accessibility [hidden],.desk-object-labels[hidden]{display:none!important}
/* A stationary optical edge, not a displacement filter: art, text and hit targets
   keep the same coordinates. The layer excludes scrollbars and never takes input. */
.desk-lens-treatment{position:absolute;z-index:9;pointer-events:none;user-select:none;border-radius:28px;box-shadow:inset 0 0 0 1px #f8ebc65c,inset 0 0 0 4px #241b1040,inset 0 0 26px 8px #1b130c55;background:radial-gradient(ellipse at center,transparent 62%,#231b1026 92%,#120e0b59 100%),linear-gradient(165deg,#fff5cf1f,transparent 16%,transparent 88%,#fff3d012)}
.desk-lens-treatment[hidden]{display:none}
.desk-lens-tools{text-align:center;margin:8px 0 12px}
.desk-lens-tools p{margin:6px auto 0;max-width:48ch;font:14px/1.5 Inter,Arial,sans-serif;color:#eee1c7}
.desk-lens-toggle[aria-pressed=true]{background:#f4e8cf;color:#21190e}
main>.viewport.desk-panel-open:not(.desk-view-zoomed){flex:none!important;height:var(--desk-whole-height);min-height:0}
main>.viewport.desk-view-zoomed{display:block!important;flex:none!important;height:var(--desk-zoom-height);min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-color:#c6aa75 #211d15;-webkit-overflow-scrolling:touch}
.viewport.desk-view-zoomed #scene{width:var(--desk-zoom-width)!important;max-width:none!important;margin:0 auto!important;flex:none}
.viewport.desk-view-zoomed:focus-visible{outline:3px solid #ffdf8f;outline-offset:-3px}
/* Text is real, untransformed DOM, so browser text zoom remains available. */
.desk-object-labels{position:absolute;inset:0;pointer-events:none;z-index:8}
.desk-object-labels span{position:absolute;transform:translate(-50%,-50%);padding:4px 6px;border:1px solid #fff4dc;border-radius:4px;background:#15120df5;color:#fff4dc;font:500 14px/1.2 Inter,Arial,sans-serif;white-space:nowrap;box-shadow:0 2px 6px #0008}
#scene.desk-labels-visible :is(.hotspot,.photographic-book):focus-visible{filter:brightness(1.3);outline:3px solid #fff4dc;outline-offset:0}
/* The closer view is for navigation. Drawing stays in its existing paper studio,
   so a picked-up quill cannot trap a swipe or a browser pinch on the desk. */
.desk-view-zoomed #drawing{pointer-events:none;touch-action:pan-x pan-y pinch-zoom}
.desk-view-zoomed #scene .paper-open{display:block;touch-action:pan-x pan-y pinch-zoom}
@media(max-width:360px){.desk-access-panel{padding:10px 8px}.desk-size-tools{gap:6px}.desk-size-tools [data-desk-zoom=reset]{flex-basis:100%}.desk-object-actions{grid-template-columns:1fr}.desk-object-labels span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.desk-accessibility *,.desk-view-zoomed{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(prefers-reduced-motion:reduce),(forced-colors:active){.desk-lens-treatment{display:none!important}}
@media(forced-colors:active){.desk-access-panel,.desk-object-labels span{border:1px solid CanvasText;background:Canvas;color:CanvasText}.desk-access-panel button{border:2px solid ButtonText;background:ButtonFace;color:ButtonText}}
