:root{font-family:Arial,sans-serif;color:#263b31;background:#ebeae4}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button{cursor:pointer;border:1px solid #cbd2c9;background:#f9faf5;color:#263b31;padding:12px 16px;border-radius:7px;min-height:44px}button:focus-visible,a:focus-visible{outline:3px solid #548c75;outline-offset:3px}[hidden]{display:none!important}#gallery-app{position:relative;width:100%;height:100dvh;min-height:350px;overflow:hidden;background:#ebeae4}.viewer-stage{position:absolute;inset:0}.viewer-stage canvas{width:100%;height:100%;display:block;touch-action:none}.viewer-header{position:absolute;top:0;left:0;right:0;padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:16px;pointer-events:none;background:linear-gradient(#f9faf2dd,transparent)}.viewer-header>*{pointer-events:auto}.viewer-header h1{font-size:21px;margin:5px 0}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:700;color:#657468}.actions{display:flex;gap:8px}.actions button{font-size:12px;background:#fafaf4ed}.intro{position:absolute;inset:0;display:grid;place-items:center;background:#eeeae470;padding:24px}.intro-card{max-width:470px;padding:36px;background:#fafbf5;border:1px solid #d6dcd0;border-radius:12px;box-shadow:0 20px 80px #30413118}.intro h2{font:normal 38px Georgia,serif;margin:16px 0}.intro p{font-size:15px;line-height:1.7;color:#5f6b61}.controls-copy{white-space:pre-line;font-size:12px!important}.primary{display:inline-block;background:#315e4d;color:white;border:0;padding:14px 20px;border-radius:6px;text-decoration:none}.viewer-dialog{width:min(620px,calc(100% - 24px));max-height:90dvh;border:1px solid #d4d9cf;border-radius:12px;padding:28px;color:#263b31;background:#fcfcf8}.viewer-dialog::backdrop{background:#1d2a2480}.viewer-dialog .close{display:block;margin:0 0 20px auto}.viewer-dialog>img{width:100%;max-height:48vh;object-fit:contain;background:#edece7;margin-bottom:24px}.viewer-dialog h2{font:normal 32px Georgia,serif}.description{white-space:pre-wrap;line-height:1.7}.dimensions{font-size:13px;color:#667264}.catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.catalog-item img{display:block;width:100%;height:150px;object-fit:contain;margin-bottom:12px}.move-pad{position:absolute;bottom:22px;left:22px;display:grid;grid-template-columns:repeat(3,48px);gap:5px}.move-pad button{background:#fcfcf3e6;font-size:20px;touch-action:none;user-select:none}.move-pad button:first-child{grid-column:2}.move-pad button:nth-child(2){grid-column:1}.mini-map{position:absolute;right:22px;bottom:22px;width:180px;height:140px;background:#fcfcf3dd;border:1px solid #cdd5c9;border-radius:10px}.viewer-error{position:absolute;bottom:180px;left:24px;right:24px;background:#fff3d4;padding:12px;border-radius:6px;font-size:13px}.loading{padding:32px}@media(max-width:600px){.viewer-header{padding:14px;align-items:start}.viewer-header h1{font-size:16px;max-width:160px}.actions{flex-wrap:wrap;justify-content:end;max-width:160px}.actions button{font-size:11px;padding:8px}.actions button:nth-child(3){display:inline-flex}.intro-card{padding:24px}.intro h2{font-size:30px}.mini-map{width:120px;height:94px;bottom:20px;right:14px}.move-pad{left:14px;bottom:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.viewer-select{border:1px solid #d8ddd5;background:#fafbf7;color:#283c30;border-radius:5px;padding:8px;font:inherit;font-size:12px;max-width:90px}
@media(max-width:600px){.actions{flex-wrap:wrap;max-width:210px;justify-content:flex-end}.viewer-select{padding:6px;font-size:11px}.viewer-header h1{max-width:140px}}

.joystick{display:none;position:absolute;left:max(20px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));width:128px;height:128px;border-radius:50%;border:2px solid #ffffff99;background:#23382a40;touch-action:none;user-select:none;place-items:center;box-shadow:inset 0 0 0 13px #ffffff14}.joystick-knob{width:50px;height:50px;border-radius:50%;background:#f8fff0db;border:1px solid #fff;box-shadow:0 3px 10px #0003;pointer-events:none}.look-hint{display:none;position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(32px,env(safe-area-inset-bottom));font-size:11px;color:#fff;background:#23382a88;padding:10px 13px;border-radius:6px;pointer-events:none}.fullscreen-help{position:absolute;z-index:30;inset:25% 8% auto;background:#fff;padding:24px;border-radius:10px;box-shadow:0 10px 50px #0004}.fullscreen-help p{line-height:1.6}.fullscreen-help button{margin:12px}.viewer-brand{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:11px;color:#274335;background:#ffffffb8;padding:4px 9px;border-radius:4px;text-decoration:none}.publication-update{position:absolute;top:115px;left:50%;transform:translateX(-50%);z-index:4;background:#365e49;color:white;max-width:80%}#gallery-app:fullscreen{height:100dvh;min-height:0}.viewer-stage{overscroll-behavior:none}
@media(pointer:coarse){.joystick{display:grid}.move-pad{display:none}.look-hint{display:block}.mini-map{bottom:85px;right:18px;width:90px;height:70px;pointer-events:none}.viewer-header{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}}
@media(max-height:500px) and (orientation:landscape){#gallery-app{min-height:0}.viewer-header{padding:8px 14px;align-items:start}.viewer-header .eyebrow{display:none}.viewer-header h1{font-size:15px;max-width:170px}.actions{gap:5px;flex-wrap:wrap;max-width:75%;justify-content:flex-end}.actions button{font-size:11px;padding:7px;min-height:34px}.viewer-select{padding:5px;max-width:76px}.intro{padding:10px}.intro-card{padding:18px;max-width:520px;max-height:95dvh;overflow:auto}.intro h2{font-size:24px;margin:5px 0}.intro p{font-size:12px;margin:8px 0;line-height:1.4}.joystick{width:112px;height:112px;bottom:max(12px,env(safe-area-inset-bottom))}.mini-map{display:none}.look-hint{bottom:18px}.viewer-dialog{max-height:92dvh}.publication-update{top:60px}}

.audio-guide{margin:14px 0}.audio-guide audio{width:100%;display:block}.audio-guide summary{cursor:pointer;padding:10px 0}.commerce-details{display:flex;flex-direction:column;gap:9px;margin:12px 0}.commerce-details small{color:#667264}.availability{margin:0;font-weight:700}.inquiry-link{color:#315e4d;display:inline-block;padding:12px 0}.catalog-search,.catalog-filter{width:100%;font:inherit;padding:12px;border:1px solid #cbd2c9;border-radius:6px;margin-bottom:10px;background:#fff;color:#263b31}.catalog-item small{display:block;margin-top:8px;color:#667264}.catalog-count{font-size:13px}.tour-dock{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(650px,calc(100% - 24px));max-height:48dvh;overflow:auto;background:#fcfcf8f5;border:1px solid #bfcabd;border-radius:10px;padding:16px;box-shadow:0 8px 25px #20382920;z-index:5}.tour-dock>span{font-size:11px;letter-spacing:.12em}.tour-dock h2{font:24px Georgia,serif;margin:8px 0}.tour-dock>p:empty{display:none}.tour-controls{display:flex;flex-wrap:wrap;gap:6px}.tour-controls button{padding:9px;font-size:12px}.tour-active .joystick,.tour-active .move-pad,.tour-active .look-hint,.tour-active .mini-map{display:none!important}.intro-card>button+button{margin-top:12px}.actions{flex-wrap:wrap;justify-content:flex-end;max-width:70%}@media(max-width:600px){.viewer-header{gap:8px}.viewer-header h1{font-size:14px;max-width:105px;overflow-wrap:anywhere}.actions{max-width:235px;gap:4px}.actions button{padding:6px 8px;min-height:36px}.tour-dock{padding:12px;max-height:48dvh}.tour-dock h2{font-size:20px}.catalog-search,.catalog-filter{font-size:16px}}@media(max-height:500px){.tour-dock{left:auto;right:12px;transform:none;width:330px;max-height:calc(100dvh - 105px);bottom:12px}.intro{overflow:auto;display:block}.intro-card{margin:0 auto;padding:18px}.intro h2{font-size:25px}.intro .controls-copy{display:none}}
.viewer-brand{z-index:8;white-space:nowrap;background:#fffffff2;padding:7px 12px;min-height:30px;display:flex;align-items:center;bottom:max(5px,env(safe-area-inset-bottom))}.has-branding .tour-dock{bottom:max(44px,calc(env(safe-area-inset-bottom) + 39px))}.viewer-brand:focus-visible{outline:3px solid #345f49;outline-offset:2px}

/* Visitor collection tools and print catalogue share the exhibition's quiet palette. */
.artwork-actions,.catalog-tools{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.artwork-actions button{font-size:13px}.artwork-actions [aria-pressed=true]{background:#315e4d;color:#fff}.artwork-actions .share-status,.artwork-actions input{flex-basis:100%;margin:0}.share-status:empty{display:none}.catalog-note,.share-status{font-size:13px;line-height:1.6}.catalogue-link{display:inline-flex;align-items:center;color:#315e4d;padding:12px;min-height:44px}.viewer-dialog{overflow-wrap:anywhere}.viewer-dialog input:focus-visible,.viewer-dialog select:focus-visible{outline:3px solid #548c75;outline-offset:2px}
#gallery-app.catalogue-page{height:auto;min-height:100dvh;overflow:visible;background:#fcfcf8;padding:0 max(24px,calc((100vw - 1080px)/2)) 40px}.catalogue-page a{color:#315e4d;overflow-wrap:anywhere}.catalogue-toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid #cbd2c9}.catalogue-toolbar a{margin-right:auto}.catalogue-load-state{flex-basis:100%;font-size:12px;line-height:1.5;margin:0;color:#667264}.catalogue-cover{padding:48px 0 28px;max-width:800px}.catalogue-cover h1{font:normal clamp(32px,5vw,58px)/1.1 Georgia,serif;margin:16px 0;overflow-wrap:anywhere}.catalogue-meta{font-size:13px;line-height:1.6;color:#667264}.catalogue-entry{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:36px;padding:32px 0;border-top:1px solid #cbd2c9}.catalogue-entry figure{margin:0}.catalogue-entry img{width:100%;height:320px;object-fit:contain;display:block;background:#ebeae4}.catalogue-entry h2{font:normal 28px Georgia,serif;margin:10px 0;overflow-wrap:anywhere}.catalogue-entry section>p{overflow-wrap:anywhere}.catalogue-entry section>a{display:block;margin:14px 0}.catalogue-entry figcaption{font-size:12px;line-height:1.6;margin-top:10px;overflow-wrap:anywhere}.catalogue-placeholder{display:block;font:normal 28px Georgia,serif;padding:40px 20px;background:#ebeae4}.catalogue-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #cbd2c9;padding-top:24px}.catalogue-entry figure>p{font-size:13px;line-height:1.6}
@media(max-width:600px){.catalogue-entry{grid-template-columns:1fr;gap:20px}.catalogue-entry img{height:260px}.catalogue-cover{padding-top:32px}.catalogue-toolbar button{width:100%}.artwork-actions button{flex:1 1 45%}}
@media print{@page{size:A4;margin:16mm}html,body{background:white!important}#gallery-app.catalogue-page{padding:0;min-height:0;background:white;color:#17291e}.catalogue-toolbar{display:none}.catalogue-cover{padding:0 0 8mm}.catalogue-cover h1{font-size:30pt}.catalogue-entry{grid-template-columns:35% minmax(0,1fr);gap:8mm;padding:8mm 0;break-inside:avoid}.catalogue-entry img{height:65mm;background:transparent}.catalogue-entry h2{font-size:19pt}.catalogue-entry p{font-size:10pt;line-height:1.5}.catalogue-entry figcaption,.catalogue-entry a,.catalogue-footer{font-size:9pt}.catalogue-page a{color:inherit}.catalogue-footer{padding-top:6mm}.catalogue-meta{font-size:9pt}}
.viewer-header{z-index:2}@media(max-height:500px){.intro-card{margin-top:80px}}

.visitor-inquiry{margin:20px 0;border-top:1px solid #cbd2c9;padding-top:16px}.visitor-inquiry:empty{display:none}.visitor-inquiry summary{cursor:pointer;padding:12px 0;font-weight:700}.visitor-inquiry form{display:grid;gap:14px}.visitor-inquiry label{display:grid;gap:7px;font-size:14px}.visitor-inquiry input:not([type=checkbox]),.visitor-inquiry textarea{font:inherit;color:#263b31;background:#fff;border:1px solid #cbd2c9;border-radius:5px;width:100%;padding:12px}.visitor-inquiry input:focus-visible,.visitor-inquiry textarea:focus-visible,.visitor-inquiry summary:focus-visible{outline:3px solid #548c75;outline-offset:2px}.visitor-inquiry .inquiry-consent{display:flex;align-items:start;line-height:1.5}.inquiry-consent input{width:20px;height:20px;flex:none;margin:0}.visitor-inquiry p{line-height:1.6;font-size:13px}.visitor-inquiry a{color:#315e4d}.visitor-inquiry ul{padding-left:20px;line-height:1.5}.visitor-inquiry .inquiry-honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.inquiry-status:empty{display:none}.visitor-inquiry button[type=submit]{background:#315e4d;color:#fff}.visitor-inquiry button:disabled{opacity:.6}
.viewer-dialog .close{position:sticky;top:0;z-index:3}.visitor-inquiry summary{min-height:44px}@media(max-width:600px){.visitor-inquiry input:not([type=checkbox]),.visitor-inquiry textarea{font-size:16px}}
/* Exhibition identity: image-led invitation, with the authored image kept separate from readable text. */
.intro{padding-top:130px;padding-bottom:48px;overflow:auto}.intro-layout{width:min(100%,470px);max-height:100%;overflow:auto;background:#fafbf5;border:1px solid #d6dcd0;border-radius:12px;box-shadow:0 20px 80px #30413118}.intro-layout.with-cover{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(960px,100%)}.intro-layout .intro-card{max-width:none;border:0;border-radius:0;box-shadow:none;overflow-wrap:anywhere}.intro-layout .exhibition-cover{margin:0;display:flex;flex-direction:column;min-width:0;background:#ebeae4}.exhibition-cover img{width:100%;height:100%;min-height:240px;object-fit:cover;display:block}.intro-layout .exhibition-cover img{flex:1;max-height:640px}.exhibition-cover figcaption,.exhibition-logo figcaption{font:12px/1.5 Arial,sans-serif;padding:8px 12px;overflow-wrap:anywhere}.exhibition-cover>span{padding:24px}.exhibitor-identity:empty{display:none}.exhibitor-identity{margin-bottom:20px;overflow-wrap:anywhere}.exhibitor-identity .exhibitor-name{font:bold 14px/1.5 Arial,sans-serif;margin:8px 0;color:#263b31}.exhibitor-identity>a{font:13px/1.5 Arial,sans-serif;display:inline-block;color:#315e4d;padding:6px 0}.exhibition-logo{margin:0 0 10px}.exhibition-logo img{max-width:160px;width:auto;height:48px;object-fit:contain;object-position:left center;display:block}.exhibition-logo figcaption{padding:4px 0}.viewer-header>div:first-child{min-width:0}.viewer-header .eyebrow{overflow-wrap:anywhere}.intro .primary,.viewer-dialog .primary,.tour-dock .primary{background:var(--exhibition-accent,#315e4d);color:var(--exhibition-accent-ink,#fff)}.catalogue-cover{max-width:none}.catalogue-cover>.exhibition-cover{margin:24px 0 0;max-width:100%;break-inside:avoid}.catalogue-cover>.exhibition-cover img{height:280px;min-height:0}.catalogue-cover .exhibitor-name{border-left:4px solid var(--exhibition-accent,#315e4d);padding-left:12px}
@media(max-width:600px){.intro{padding:145px 14px 48px;place-items:start center}.intro-layout.with-cover{grid-template-columns:1fr}.intro-layout .exhibition-cover img{height:180px;min-height:180px;max-height:180px;flex:auto}.intro-layout .intro-card{padding:24px}.intro-layout .intro-card h2{font-size:30px}.exhibition-logo img{height:40px}.catalogue-cover>.exhibition-cover img{height:180px}}
@media(max-height:500px){.intro{padding:88px 14px 42px;display:block}.intro-layout{margin:0 auto;max-height:none}.intro-layout .intro-card{margin:0;max-height:none}.intro-layout.with-cover{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.intro-layout .exhibition-cover img{max-height:400px;height:100%;min-height:180px}.intro-layout .intro-card h2{font-size:24px}}
@media print{.catalogue-cover>.exhibition-cover img{height:48mm}.exhibition-logo img{height:12mm;max-width:45mm}.catalogue-cover>.exhibition-cover{margin:5mm 0 0}.exhibitor-identity{margin-bottom:4mm}.exhibition-cover figcaption,.exhibition-logo figcaption{font-size:8pt}}
#gallery-app:has(.intro:not([hidden])) .joystick,#gallery-app:has(.intro:not([hidden])) .move-pad,#gallery-app:has(.intro:not([hidden])) .mini-map,#gallery-app:has(.intro:not([hidden])) .look-hint{visibility:hidden}.intro{z-index:1}.viewer-error{z-index:3}
.installation-details{margin:18px 0;border-top:1px solid #cbd2c9;padding-top:12px}.installation-details summary{cursor:pointer;padding:10px 0;font-weight:700}.catalogue-entry h3{font:600 14px Arial,sans-serif;margin:20px 0 8px}@media print{.catalogue-entry h3{font-size:10pt}}

/* Keep navigation legible and the invitation clear of translated toolbars. */
.viewer-header { gap: 16px; }
.viewer-header > div:first-child { min-width: 0; }
.viewer-header h1 { overflow-wrap: anywhere; }
.viewer-header .actions { flex-wrap: wrap; justify-content: end; flex-shrink: 0; max-width: 70%; }
.viewer-header :is(button,select) { min-height: 44px; }
.viewer-select:focus-visible, summary:focus-visible { outline: 3px solid #548c75; outline-offset: 3px; }
.intro { padding-top: calc(var(--viewer-header-height,100px) + 20px); }
.intro .intro-card > button { margin-right: 8px; }
.intro .intro-card > button + button { margin-top: 12px; }
.intro .controls-copy { display: block; font-size: 14px!important; line-height: 1.65; }
.intro .controls-touch { display: none; }
.viewer-dialog { overscroll-behavior: contain; scroll-padding-block: 80px 24px; }
.viewer-dialog .close { background: #fcfcf8; border-color: #a9b7a6; }
@media (pointer:coarse) {
  .intro .controls-desktop { display: none; }
  .intro .controls-touch { display: block; }
}
@media(max-width:600px) {
  .viewer-header { padding: 12px 14px; display: block; background: linear-gradient(#f9faf2fa,#f9faf2e6,transparent); }
  .viewer-header h1 { max-width: none; font-size: 17px; margin: 4px 0 10px; }
  .viewer-header .eyebrow { font-size: 10px; }
  .viewer-header .actions { max-width: none; justify-content: start; gap: 6px; }
  .viewer-header .actions button { font-size: 12px; padding: 8px 10px; }
  .viewer-select { font-size: 13px; }
  .intro { padding-top: calc(var(--viewer-header-height,166px) + 12px); }
  .intro .intro-card > button { width: 100%; margin-right: 0; }
  .intro .intro-card > button + button { margin-top: 10px; }
  .viewer-dialog { padding: 20px; }
}

/* Shared graphics controls: keep in sync with the portable viewer stylesheet. */
.graphics-dialog {
  box-sizing: border-box; width: min(480px, calc(100% - 24px)); max-height: calc(100dvh - 24px);
  padding: 24px; border: 1px solid #cbd5c9; border-radius: 12px;
  background: #fffefa; color: #293e32; font: 14px/1.55 'Segoe UI', Arial, sans-serif;
  overflow: auto; overscroll-behavior: contain;
}
.graphics-dialog::backdrop { background: #1d2a2480; }
.graphics-dialog > header {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  position: sticky; top: -24px; z-index: 2; padding-block: 12px; background: #fffefa;
}
.graphics-dialog h2 { margin: 0; font: 600 22px/1.3 'Segoe UI', Arial, sans-serif; }
.graphics-dialog .graphics-close {
  flex: 0 0 44px; min-width: 44px; min-height: 44px; padding: 8px;
  border: 1px solid #cbd5c9; border-radius: 6px; background: #faf9f5; color: #293e32; font-size: 24px;
}
.graphics-dialog .graphics-intro { margin: 10px 0 22px; color: #5f7065; }
.graphics-dialog .graphics-field { display: grid; gap: 8px; margin-block: 18px; color: #293e32; }
.graphics-dialog .graphics-field > span { font-weight: 600; font-size: 14px; }
.graphics-dialog select {
  box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px 12px;
  border: 1px solid #b7c6b5; border-radius: 6px; background: #faf9f5; color: #293e32; font: inherit;
}
.graphics-dialog small { color: #5f7065; font-size: 12px; line-height: 1.6; }
.graphics-dialog .graphics-fps-toggle {
  display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 16px 0; font-size: 14px;
}
.graphics-dialog .graphics-fps-toggle input { width: 18px; height: 18px; accent-color: #386650; }
.graphics-dialog .graphics-status {
  background: #edf2e8; border-radius: 6px; padding: 12px;
  font-size: 12px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere;
}
.graphics-dialog .graphics-note { font-size: 12px; color: #5f7065; }
.graphics-dialog .graphics-note:empty { display: none; }
.graphics-dialog .graphics-reset {
  width: 100%; min-height: 44px; padding: 10px 12px; background: #faf9f5;
  border: 1px solid #b7c6b5; border-radius: 6px; font: inherit; color: #293e32;
}
.graphics-dialog :is(button, select, input):focus-visible { outline: 3px solid #548c75; outline-offset: 3px; }
.scene-graphics-actions { position: absolute; top: 14px; right: 14px; z-index: 5; }
.scene-graphics-actions .graphics-button {
  min-height: 44px; padding: 10px 14px; background: #fffefaed; border: 1px solid #cbd5c9; color: #293e32;
}
.graphics-fps {
  position: absolute; right: 22px; bottom: 176px; z-index: 5; padding: 8px 10px;
  border: 1px solid #cbd5c9; border-radius: 6px; background: #fffefaed; color: #293e32;
  font: 12px/1.5 'Segoe UI', Arial, sans-serif; font-variant-numeric: tabular-nums; pointer-events: none;
}
.scene-wrap > .graphics-fps { top: 64px; bottom: auto; right: 14px; max-width: calc(100% - 90px); }
@media (max-width: 600px) {
  .graphics-dialog { padding: 20px; }
  .graphics-dialog > header { top: -20px; }
  .graphics-dialog select { font-size: 16px; }
  .graphics-fps { right: 14px; bottom: 124px; max-width: calc(100% - 156px); font-size: 11px; }
}
@media (max-height: 500px) {
  .graphics-fps { bottom: 12px; }
  .scene-wrap > .graphics-fps { top: 64px; bottom: auto; }
}

.door-actions{position:absolute;left:50%;bottom:max(35px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:4;display:grid;justify-items:center;gap:5px;max-width:calc(100% - 32px)}
.door-button{background:#315e4d;color:#fff;border:1px solid #fff8;min-height:48px;padding:12px 20px;box-shadow:0 3px 15px #0002}
.door-hint{max-width:230px;text-align:center;font-size:12px;line-height:1.4;background:#fcfcf8ec;color:#263b31;padding:5px 8px;border-radius:5px}
.tour-active .door-actions,#gallery-app:has(.intro:not([hidden])) .door-actions{display:none!important}
@media(pointer:coarse){.door-actions{bottom:max(150px,calc(env(safe-area-inset-bottom) + 140px))}}
@media(pointer:coarse) and (max-height:500px){.door-actions{bottom:max(25px,env(safe-area-inset-bottom))}}
.viewer-zoom { display: flex; align-items: center; gap: 0; }
.viewer-zoom button { padding: 8px; min-width: 44px; border-radius: 0; }
.viewer-zoom button:first-child { border-radius: 7px 0 0 7px; }
.viewer-zoom button:last-child { border-radius: 0 7px 7px 0; }
.viewer-zoom button + button { border-left: 0; }
.viewer-zoom button:disabled { opacity: .45; cursor: default; }
.tour-active .viewer-zoom { display: none; }
.viewer-aim { display:none; position:absolute; left:50%; top:50%; width:5px; height:5px; margin:-2.5px; border-radius:50%; background:#fff; box-shadow:0 0 0 1px #24372d,0 0 3px #0008; pointer-events:none; z-index:2; }
.resume-mouse { display:none; position:absolute; bottom:100px; left:50%; transform:translateX(-50%); z-index:3; max-width:calc(100% - 32px); font-size:13px; white-space:normal; }
@media (pointer:fine) {
 .viewer-stage:has(canvas[data-playing="true"][data-pointer-locked="true"]) .viewer-aim { display:block; }
 .viewer-stage:has(canvas[data-playing="true"]:not([data-pointer-locked="true"])) .resume-mouse { display:block; }
}
@media (pointer:coarse) { .viewer-stage:has(canvas[data-playing="true"]) .viewer-aim { display:block; } }
.store-product {
  padding: 16px 0;
  border-bottom: 1px solid #d7d5cc;
}
.store-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
}
.store-fields label {
  display: grid;
  gap: 6px;
  flex: 1 1 140px;
}
.store-fields input,
.store-fields select {
  font: inherit;
  min-height: 44px;
  width: 100%;
  box-sizing: border-box;
  padding: 8px;
  border: 1px solid #bbb;
  border-radius: 6px;
  background: #fff;
  color: #283e33;
}
.store-fields input[type='number'] {
  max-width: 100px;
}
.store-fields button,
.store-checkout {
  min-height: 44px;
}
.store-price {
  font-size: 20px;
  font-weight: 600;
}
.store-checkout {
  display: inline-flex;
  align-items: center;
  margin: 4px 8px 4px 0;
  text-decoration: underline;
}
