/* Warm paper outside, illustrated oak and morning light inside. */
.vg-shell{max-width:1240px;margin:0 auto;padding:48px 40px 80px;color:#4b4e40}.vg-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}.vg-kicker{font:10px/1.6 var(--sans,system-ui);letter-spacing:.18em;color:#8b826c;margin:0 0 15px}.vg-kicker>span{padding-left:18px;margin-left:18px;border-left:1px solid #cfc7b7;font-size:9px;letter-spacing:.14em}.vg-heading h1{font:400 clamp(26px,3.2vw,39px)/1.5 var(--serif,serif);letter-spacing:-.045em;margin:0}.vg-heading h1>span{display:block;font:12px/1.6 var(--sans,system-ui);letter-spacing:0;color:#8b8c7c;margin-top:11px}.vg-text-link{font-size:11px;color:#777c69;white-space:nowrap;padding-bottom:4px;border-bottom:1px solid #c7c6b4}.vg-text-link span{padding-left:20px}.vg-gallery-frame{border:1px solid #cfc7b5;background:#f1ece0;box-shadow:0 14px 44px #5b492610}.vg-toolbar{display:flex;justify-content:space-between;align-items:center;padding:17px 25px;background:#f8f5ed}.vg-room-label{display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.03em}#vg-room-number{font:italic 19px Georgia,serif;color:#9d957f}.vg-tools{display:flex;align-items:center;gap:14px;color:#c9c4b5}.vg-shell button,.vg-dialog button{font:inherit;cursor:pointer}.vg-tools button{border:0;padding:5px 0;background:none;color:#7c7e6e;font-size:11px}.vg-tools button:hover{color:#384738}.vg-stage{position:relative;overflow:hidden;background:#c6b18c;border-block:1px solid #bca27e}.vg-stage canvas{display:block;width:100%;height:auto;touch-action:none;outline-offset:-5px}.vg-stage canvas:focus-visible{outline:2px solid #f8edc5}.vg-caption{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:12px;max-width:85%;padding:11px 20px;background:#f8f3e5e8;box-shadow:0 2px 12px #5d482618;border:1px solid #e8ddc3;pointer-events:none;white-space:nowrap}.vg-caption-line{width:18px;height:1px;background:#a49a7b}#vg-toast{font:11px/1.6 var(--sans,system-ui);color:#6b614b;overflow:hidden;text-overflow:ellipsis}.vg-controls{display:flex;align-items:center;gap:15px;padding:14px 24px;min-height:70px;background:#f8f5ed}.vg-keyboard{display:flex;align-items:center;gap:4px;font:10px/1.6 var(--sans,system-ui);color:#90917e}.vg-keyboard span{margin:0 12px 0 6px}.vg-keyboard kbd{border:1px solid #d7d3c4;border-bottom-width:2px;min-width:20px;height:23px;line-height:21px;text-align:center;font-family:inherit;color:#81816e;background:#faf8f1}.vg-controls>button{margin-left:auto;padding:11px 18px;background:#53614d;color:#f7f2e5;border:1px solid #53614d;font:11px/1.5 var(--sans,system-ui);min-height:42px;min-width:160px;transition:background .2s}.vg-controls>button:disabled{background:transparent;color:#9a9b88;border-color:#d8d5c6;cursor:default}.vg-controls>button:not(:disabled):hover{background:#3f513c}.vg-mobile-hint{display:none}#vg-stick{display:none}.vg-afterword{display:flex;justify-content:space-between;align-items:center;padding:24px 0 30px;border-bottom:1px solid #dedbcc;gap:20px}.vg-afterword p{font:italic 13px/1.8 var(--serif,serif);color:#8b8976;margin:0}.vg-afterword>span{font:9px/1.7 var(--sans,system-ui);letter-spacing:.08em;color:#a5a28f}.vg-list{margin-top:25px;font-size:12px}.vg-list summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none;color:#656e5a;padding:8px 0}.vg-list summary::-webkit-details-marker{display:none}.vg-list summary span{font-size:10px;color:#8e937f}.vg-list>div{display:grid;grid-template-columns:1fr 1fr;gap:0 35px;padding:15px 0}.vg-list a{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #e3dfd2;font-size:11px}.vg-list a>span:first-child{font:italic 15px Georgia,serif;color:#a5a18d}.vg-list a>span:last-child{margin-left:auto;color:#909980}.vg-dialog{height:auto;margin:auto;overflow:auto;max-width:94vw;color:#4b5043;background:#f8f5ec;border:1px solid #d5cfbb;padding:0;max-height:90dvh;box-shadow:0 24px 100px #252d2345;box-sizing:border-box}.vg-dialog::backdrop{background:#283127a8;backdrop-filter:blur(5px)}.vg-guide{width:min(800px,92vw)}.vg-guide[open]{display:grid;grid-template-columns:.78fr 1fr}.vg-guide-picture{background:linear-gradient(#f6f0dc16,#273b2b4d),url('/assets/gallery-room-v2.webp') 89% center/auto 100%;min-height:460px;position:relative;padding:32px;color:#fff9e8;display:flex;flex-direction:column;justify-content:flex-end}.vg-guide-picture>span{font:400 32px/1.55 var(--serif,serif);text-shadow:0 1px 10px #34271345}.vg-guide-picture small{font:8px/1.7 var(--sans,system-ui);letter-spacing:.12em;margin-top:18px;opacity:.85}.vg-guide-copy{padding:38px 32px 26px}.vg-guide h2{font:400 27px/1.65 var(--serif,serif);letter-spacing:-.04em;margin:15px 0 18px}.vg-guide-copy>p:not(.vg-kicker){font-size:12px;line-height:1.9;color:#858572}.vg-instructions{border-block:1px solid #ded9c9;margin:22px 0;padding:10px 0}.vg-instructions p{font:10px/1.9 var(--sans,system-ui);color:#818471}.vg-instructions p>span:first-child{font:italic 14px Georgia,serif;color:#a8a187;margin-right:12px}#vg-start{width:100%;padding:14px 16px;border:0;background:#53614d;color:#f8f4e9;text-align:left;font-size:12px}#vg-start>span{float:right}.vg-guide-copy>.vg-guide-footnote{font-size:10px!important;text-align:center;margin:13px 0 0}.vg-shell button:focus-visible,.vg-dialog button:focus-visible{outline:2px solid #7e8b6b;outline-offset:4px}
@media(pointer:coarse),(max-width:600px){#vg-stick{display:block;width:90px;height:90px;border:1px solid #bfc1ad;border-radius:50%;position:relative;flex-shrink:0;touch-action:none;background:radial-gradient(circle,#e4e4d5 0%,#eeeddf 70%);user-select:none}#vg-stick span{width:38px;height:38px;position:absolute;left:25px;top:25px;border-radius:50%;background:#8b9879;border:3px solid #b0b89c;box-shadow:0 3px 8px #5f6c4f22;pointer-events:none}#vg-stick b{position:absolute;bottom:4px;width:100%;text-align:center;font:7px system-ui;letter-spacing:.13em;color:#949b85;pointer-events:none}.vg-keyboard{display:none}.vg-mobile-hint{display:block;font:9px/1.8 var(--sans,system-ui);color:#93947f}}
@media(max-width:600px){.vg-shell{padding:26px 12px 45px}.vg-heading{display:block;padding:0 8px;margin-bottom:23px}.vg-kicker{font-size:9px}.vg-kicker>span{font-size:7px;margin-left:10px;padding-left:10px}.vg-heading h1{font-size:28px}.vg-heading h1>span{font-size:11px}.vg-text-link{display:inline-block;margin-top:18px;font-size:10px}.vg-toolbar{padding:12px 14px}.vg-tools{gap:10px}.vg-room-label{font-size:10px;gap:9px}.vg-tools button{font-size:10px}.vg-controls{padding:12px;gap:10px}.vg-controls>button{min-width:0;font-size:10px;padding:12px;max-width:145px}.vg-mobile-hint{display:none}.vg-caption{bottom:13px;padding:8px 13px;gap:7px;max-width:85%}#vg-toast{font-size:10px}.vg-afterword{display:block;padding:18px 8px}.vg-afterword p{font-size:11px}.vg-afterword>span{display:block;margin-top:8px;font-size:8px}.vg-list{padding:0 8px}.vg-list>div{grid-template-columns:1fr}.vg-guide[open]{grid-template-columns:1fr}.vg-guide-picture{min-height:0;height:100px;padding:18px 24px;background-size:100% auto;background-position:center 48%}.vg-guide-picture>span{font-size:19px;line-height:1.5}.vg-guide-picture small{display:none}.vg-guide-copy{padding:24px}.vg-guide h2{font-size:23px;margin:12px 0}.vg-instructions{margin:16px 0}}
@media(prefers-reduced-motion:reduce){.vg-controls>button{transition:none}.vg-dialog::backdrop{backdrop-filter:none}}

/* Keep native modal sizing content-driven, including mobile browser top layers. */
.vg-guide{height:fit-content;block-size:fit-content;min-height:0;align-content:start;grid-auto-rows:max-content;align-items:start;max-height:90dvh}.vg-guide-picture{align-self:stretch}.vg-guide-copy{min-height:0}.vg-guide h2{font-size:25px;line-height:1.5;margin:12px 0}.vg-guide-copy{padding:27px 28px 20px}.vg-guide-copy>p:not(.vg-kicker){font-size:11px}.vg-guide .vg-instructions{margin:14px 0;padding:6px 0}.vg-guide .vg-instructions p{margin:5px 0}
.vg-avatar-picker{border:0;padding:0;margin:19px 0 15px;min-width:0}.vg-avatar-picker legend{font:12px/1.6 var(--sans,system-ui);color:#626e55;padding:0;margin-bottom:10px}.vg-avatar-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vg-avatar-option{position:relative;cursor:pointer;display:block}.vg-avatar-option input{position:absolute;opacity:0;width:1px;height:1px}.vg-avatar-card{position:relative;display:flex;flex-direction:column;align-items:center;padding:7px 8px 12px;border:1px solid #dcd6c7;background:#f1eee3;transition:background .15s,border-color .15s}.vg-avatar-preview{display:block;width:82px;height:82px;background-repeat:no-repeat;background-position:0 0;image-rendering:pixelated}.vg-avatar-female{background-image:url('/assets/gallery-people-v2.webp');background-size:400% 200%}.vg-avatar-male{background-image:url('/assets/gallery-male-v3.webp');background-size:200% 200%}.vg-avatar-name{font:11px/1.6 var(--sans,system-ui);color:#737761}.vg-avatar-check{position:absolute;top:8px;right:9px;font:11px system-ui;color:#53664b;opacity:0}.vg-avatar-option input:checked+.vg-avatar-card{background:#e7eadc;border-color:#839375;box-shadow:inset 0 0 0 1px #839375}.vg-avatar-option input:checked+.vg-avatar-card .vg-avatar-check{opacity:1}.vg-avatar-option input:focus-visible+.vg-avatar-card{outline:2px solid #637850;outline-offset:3px}.vg-avatar-option:hover .vg-avatar-card{border-color:#8f9c7b}.vg-avatar-hint{font:9px/1.6 var(--sans,system-ui);color:#969681;margin:8px 0 0}
@media(max-width:600px){.vg-guide[open]{display:block;height:fit-content;min-height:0;max-height:90dvh}.vg-guide-picture{height:84px;min-height:0;padding:14px 22px;box-sizing:border-box}.vg-guide-picture>span{font-size:17px;line-height:1.5}.vg-guide-copy{padding:20px 22px}.vg-guide h2{font-size:22px;margin:8px 0 12px}.vg-guide .vg-kicker{margin-bottom:8px;font-size:8px}.vg-guide-copy>p:not(.vg-kicker){margin:8px 0}.vg-avatar-picker{margin:15px 0 12px}.vg-avatar-card{padding:3px 6px 9px}.vg-avatar-preview{width:74px;height:74px}.vg-avatar-hint{font-size:9px}.vg-tools{gap:8px}.vg-tools button{font-size:10px}.vg-room-label{gap:7px}#vg-start{padding:13px 16px}}
@media(prefers-reduced-motion:reduce){.vg-avatar-card{transition:none}}

/* A quiet invitation and a persistent way out of the guided walk. */
.vg-tour-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 24px;background:#e8ebdf;border-top:1px solid #d4d9c8;color:#56634b}.vg-tour-bar>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.vg-tour-bar .vg-kicker{font-size:8px;margin:0;color:#849175}.vg-tour-bar[hidden],.vg-tour-art-controls[hidden],.vg-tour-actions button[hidden]{display:none}#vg-tour-status{font:11px/1.7 var(--sans,system-ui);overflow-wrap:anywhere}.vg-tour-actions{display:flex;gap:8px;flex-shrink:0}.vg-tour-actions button{min-height:42px;padding:8px 12px;background:#f6f6ed;border:1px solid #bcc6af;color:#536148;font-size:11px}.vg-docent{width:min(460px,92vw);padding:30px 32px;text-align:center;height:fit-content}.vg-docent[open]{display:block}.vg-docent-portrait{width:90px;height:90px;background:url('/assets/gallery-people-v2.webp') 0 100%/400% 200% no-repeat;image-rendering:pixelated;margin:0 auto 10px}.vg-docent .vg-kicker{margin:0 0 12px}.vg-docent h2{font:400 25px/1.6 var(--serif,serif);margin:0 0 16px;letter-spacing:-.035em}#vg-docent-message{font:12px/2 var(--sans,system-ui);color:#7c806e;word-break:keep-all}.vg-docent-actions{display:grid;gap:8px;margin-top:23px}.vg-docent-actions button,.vg-tour-art-controls button{min-height:44px;font:12px/1.6 var(--sans,system-ui);padding:12px 16px;border:0;background:#53614d;color:#f8f4e9}.vg-docent-actions button:disabled{opacity:.5;cursor:default}#vg-tour-start span{float:right}#vg-docent-close,#vg-tour-art-stop{background:transparent;color:#78816a;font-size:11px}.vg-docent-footnote{font:10px/1.9 var(--sans,system-ui);color:#959681;margin:18px 0 0}.vg-tour-art-controls{display:flex;flex-direction:column;gap:8px;border-top:1px solid #d9decc;margin-top:24px;padding-top:20px}.vg-tour-art-controls p{font:10px/1.8 var(--sans,system-ui);color:#879476;margin:0 0 5px}
@media(max-width:600px){.vg-tour-bar{padding:11px 14px;align-items:flex-start;flex-direction:column;gap:8px}.vg-tour-actions{width:100%;justify-content:flex-end}.vg-tour-actions button{font-size:10px;padding:8px 12px}.vg-docent{padding:23px}.vg-docent h2{font-size:23px}.vg-docent-portrait{width:80px;height:80px}.vg-tour-art-controls{margin-top:20px;padding-top:16px}}

/* Close viewing: the same quiet gallery, seen at the scale of one painting. */
.vg-art {
  width:100vw; max-width:100vw; height:100vh; height:100dvh; max-height:100dvh;
  margin:0; inset:0; padding:0; border:0; overflow:hidden;
  color:#4e4c41; background:#e7e3d7; box-shadow:none;
}
.vg-art[open] { display:flex; flex-direction:column; }
.vg-art::backdrop { background:#d8d3c5; backdrop-filter:none; }
.vg-viewing-top {
  position:relative; z-index:1; flex-shrink:0; display:flex; align-items:center;
  justify-content:space-between; gap:16px; padding:16px max(30px,env(safe-area-inset-right)) 12px max(30px,env(safe-area-inset-left));
  background:linear-gradient(#e7e3d7,#e7e3d700);
}
.vg-viewing-top>div { display:flex; align-items:center; gap:18px; min-width:0; }
.vg-viewing-top>div>span:first-child { font:12px/1.6 var(--roman,Georgia); letter-spacing:.22em; color:#706b5b; white-space:nowrap; }
#vg-art-room { border-left:1px solid #bab6a744; padding-left:18px; font:10px/1.7 var(--sans,system-ui); color:#878170; }
.vg-art #vg-close {
  display:flex; align-items:center; gap:18px; flex-shrink:0; min-height:44px;
  padding:9px 0 9px 12px; border:0; background:none; color:#6b6b5b; font:11px/1.5 var(--sans,system-ui);
}
#vg-close>span { font:24px/1 Georgia,serif; font-weight:300; }
.vg-viewing-room {
  display:flex; flex-direction:column; flex:1; min-height:0; overflow:auto; overscroll-behavior:contain;
  background:radial-gradient(ellipse 70% 75% at 50% 10%,#fffdf3 0%,#f4f0e4a8 45%,transparent 90%),
    repeating-linear-gradient(0deg,#7e756205 0px,#7e756205 1px,transparent 1px,transparent 3px),#e7e3d7;
}
.vg-wall-scene { width:100%; flex:1 0 auto; padding:clamp(24px,5vh,55px) 40px 36px; }
.vg-mounted-art { display:flex; align-items:center; justify-content:center; margin:0; }
.vg-picture-frame {
  flex:0 1 auto; min-width:0; padding:8px; border:9px solid #a18b68; background:#f7f2e8;
  border-image:linear-gradient(135deg,#c1ad88,#8b7453 45%,#ad936b 75%,#c5b08b) 1;
  box-shadow:inset 0 0 0 1px #ded5c4,0 2px 3px #47382245,5px 10px 12px #4a3e2d20,10px 26px 28px -10px #4a3e2d38;
}
.vg-art #vg-art-image {
  display:block; width:auto; height:auto; max-width:min(74vw,920px); max-height:52dvh;
  object-fit:contain; box-shadow:0 0 0 1px #5f52351a; background:#e1dbcd;
}
.vg-wall-label {
  display:grid; grid-template-columns:34px minmax(0,1fr); gap:20px;
  width:min(520px,100%); margin:38px auto 0;
}
.vg-wall-number { font:italic 17px/1.6 var(--roman,Georgia); color:#92836a; padding-top:3px; }
.vg-wall-caption { border-left:1px solid #bfb9a866; padding-left:20px; }
.vg-art #vg-title { font:400 23px/1.55 var(--serif,serif); letter-spacing:-.035em; margin:0 0 10px; word-break:keep-all; overflow-wrap:anywhere; }
.vg-wall-artist { font:11px/1.8 var(--sans,system-ui); color:#686759; margin:0; }
.vg-wall-artist span { font:9px/1.8 var(--sans,system-ui); letter-spacing:.1em; margin-left:9px; color:#8d8674; }
.vg-art #vg-facts { font:10px/1.9 var(--sans,system-ui); color:#8c8471; margin:6px 0 0; }
.vg-art-story { margin:13px 0 0; }
.vg-art-story summary { display:flex; align-items:center; gap:22px; width:fit-content; min-height:36px; list-style:none; cursor:pointer; color:#77725f; font:11px/1.7 var(--sans,system-ui); }
.vg-art-story summary::-webkit-details-marker { display:none; }
.vg-art-story summary>span { color:#9b947f; }
.vg-art-story[open] summary>span { transform:rotate(45deg); }
.vg-art #vg-note { font:12px/2 var(--sans,system-ui); white-space:pre-line; overflow-wrap:anywhere; color:#736e5d; margin:7px 0 12px; }
.vg-art #vg-contact { display:inline-flex; gap:24px; align-items:center; min-height:36px; margin-top:5px; padding:0; border:0; color:#87836f; font:10px/1.8 var(--sans,system-ui); }
.vg-art #vg-contact:hover { color:#43553e; text-decoration:underline; text-underline-offset:4px; }
.vg-art [hidden] { display:none!important; }
.vg-room-floor {
  flex:0 0 32px; border-top:5px solid #c4b699; box-shadow:0 -1px 0 #f6f0e5,0 -5px 9px #5c4b2d09;
  background:linear-gradient(#6e53331a,transparent),repeating-linear-gradient(92deg,#c4ae88 0px,#c4ae88 100px,#a8906d 101px,#ceb996 102px,#ceb996 225px);
}
.vg-art .vg-tour-art-controls {
  flex-shrink:0; display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:18px;
  margin:0; padding:16px max(30px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(30px,env(safe-area-inset-left));
  border-top:1px solid #c9c5b8; background:#f2f0e7;
}
.vg-art #vg-tour-art-status { margin:0; color:#8c8e7b; font:11px/1.7 var(--sans,system-ui); }
.vg-viewing-actions { display:flex; align-items:center; gap:24px; }
.vg-art #vg-tour-art-stop { min-height:44px; padding:10px 0; font-size:11px; }
.vg-art #vg-tour-next { min-height:46px; min-width:190px; padding:12px 24px; background:#5c6951; color:#f8f5e9; font-size:12px; }
.vg-art button:focus-visible,.vg-art a:focus-visible,.vg-art summary:focus-visible { outline:2px solid #687955; outline-offset:4px; }
@media(min-width:1100px) and (min-height:650px) {
  .vg-wall-scene { display:flex; align-items:center; justify-content:center; gap:clamp(36px,5vw,90px); padding:45px 60px 70px; }
  .vg-art #vg-art-image { max-width:57vw; max-height:66dvh; }
  .vg-wall-label { width:245px; flex:0 0 245px; grid-template-columns:1fr; gap:8px; margin:100px 0 0; }
  .vg-wall-caption { padding-left:0; border:0; }
  .vg-art #vg-title { font-size:21px; }
}
@media(max-width:600px) {
  .vg-viewing-top { padding:10px 18px 6px; }
  .vg-viewing-top>div { flex-direction:column; align-items:flex-start; gap:3px; }
  .vg-viewing-top>div>span:first-child { font-size:11px; }
  #vg-art-room { font-size:9px; border:0; padding:0; }
  .vg-art #vg-close { font-size:10px; gap:13px; }
  .vg-wall-scene { padding:36px 27px 28px; }
  .vg-picture-frame { border-width:6px; padding:5px; }
  .vg-art #vg-art-image { max-width:calc(100vw - 76px); max-height:43dvh; }
  .vg-wall-label { margin-top:30px; grid-template-columns:25px minmax(0,1fr); gap:13px; }
  .vg-wall-caption { padding-left:15px; }
  .vg-art #vg-title { font-size:20px; margin-bottom:8px; }
  .vg-wall-number { font-size:15px; }
  .vg-wall-artist { font-size:10px; }
  .vg-wall-artist span { font-size:8px; }
  .vg-art-story { margin-top:9px; }
  .vg-art #vg-note { font-size:11px; }
  .vg-room-floor { flex-basis:20px; border-top-width:4px; }
  .vg-art .vg-tour-art-controls { display:block; padding:12px 20px max(12px,env(safe-area-inset-bottom)); }
  .vg-art #vg-tour-art-status { font-size:9px; margin-bottom:7px; }
  .vg-viewing-actions { justify-content:space-between; gap:12px; }
  .vg-art #vg-tour-art-stop { font-size:10px; }
  .vg-art #vg-tour-next { min-width:0; padding:12px 18px; font-size:11px; }
}
@media(max-height:500px) {
  .vg-viewing-top { padding-top:4px; padding-bottom:2px; }
  .vg-wall-scene { padding-top:16px; }
  .vg-art #vg-art-image { max-height:52dvh; }
  .vg-art .vg-tour-art-controls { padding-top:8px; padding-bottom:max(8px,env(safe-area-inset-bottom)); }
}

/* One fullscreen surface contains the walk, guide, and artwork dialogs. */
.vg-fullscreen { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:8px 10px; border:1px solid #c9cbb9; background:transparent; color:#626e54; font:11px/1.5 var(--sans,system-ui); white-space:nowrap; }
.vg-fullscreen svg { flex-shrink:0; }
.vg-fullscreen:disabled { opacity:.6; cursor:wait; }
.vg-fullscreen[aria-pressed="true"] { background:#e3e7d9; border-color:#9ca88b; }
.vg-toolbar { display:grid; grid-template-columns:1fr auto auto; gap:20px; }
.vg-viewing-top>.vg-viewing-top-actions { flex-direction:row; align-items:center; flex-shrink:0; gap:16px; }
.vg-art .vg-fullscreen { font-size:10px; border-color:#c6c3b4; color:#6b6b5b; }
.vg-page-expanded { overflow:hidden; }
.vg-page-expanded>header,.vg-page-expanded>footer,.vg-page-expanded>.skip,.vg-page-expanded>.reading-progress { display:none; }
#vg-experience.vg-expanded {
  position:fixed; inset:0; z-index:1000; width:100%; height:100vh; height:100dvh;
  margin:0; padding:0; overflow:hidden; background:#f8f5ed;
}
.vg-expanded .vg-shell { width:100%; max-width:none; height:100%; margin:0; padding:0; display:flex; flex-direction:column; }
.vg-expanded .vg-heading,.vg-expanded .vg-afterword,.vg-expanded .vg-list { display:none; }
.vg-expanded .vg-gallery-frame { flex:1; display:flex; flex-direction:column; min-height:0; border:0; box-shadow:none; }
.vg-expanded .vg-toolbar,.vg-expanded .vg-tour-bar,.vg-expanded .vg-controls { flex-shrink:0; }
.vg-expanded .vg-toolbar { padding-top:max(8px,env(safe-area-inset-top)); padding-left:max(18px,env(safe-area-inset-left)); padding-right:max(18px,env(safe-area-inset-right)); }
.vg-expanded .vg-stage { flex:1; min-height:0; display:flex; justify-content:center; align-items:center; background:linear-gradient(90deg,#c1aa87,#d0b995 50%,#c1aa87); }
.vg-expanded .vg-stage canvas { width:100%; height:100%; min-height:0; object-fit:contain; }
.vg-expanded .vg-controls { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
@media(max-width:600px) {
  .vg-toolbar { grid-template-columns:1fr auto; gap:0 12px; padding-top:8px; padding-bottom:8px; }
  .vg-toolbar>.vg-fullscreen { grid-column:2; grid-row:1; font-size:10px; }
  .vg-toolbar>.vg-tools { grid-column:1/-1; grid-row:2; gap:16px; }
  .vg-tools button { min-height:36px; }
  .vg-viewing-top>.vg-viewing-top-actions { gap:10px; }
  .vg-art .vg-fullscreen { padding:7px; font-size:9px; gap:4px; }
  .vg-viewing-top #vg-close { gap:8px; padding-left:0; }
  .vg-viewing-top { padding-inline:12px; gap:8px; }
}
@media(max-height:500px) {
  .vg-expanded .vg-toolbar { display:flex; justify-content:space-between; gap:12px; padding-block:2px; }
  .vg-expanded .vg-tools { gap:12px; }
  .vg-expanded .vg-controls { min-height:58px; padding-top:5px; padding-bottom:max(5px,env(safe-area-inset-bottom)); }
  .vg-expanded #vg-stick { width:64px; height:64px; }
  .vg-expanded #vg-stick span { left:12px; top:12px; }
  .vg-expanded .vg-tour-bar { flex-direction:row; align-items:center; padding-block:4px; }
  .vg-expanded .vg-tour-bar .vg-kicker { display:none; }
  .vg-expanded .vg-tour-actions { width:auto; }
}

/* Touch controls sit over the gallery floor, above mobile browser notices. */
@media(pointer:coarse),(max-width:600px) {
  .vg-gallery-frame { position:relative; }
  .vg-gallery-frame .vg-controls {
    position:absolute; z-index:2; left:max(18px,env(safe-area-inset-left)); right:max(18px,env(safe-area-inset-right));
    bottom:max(18px,env(safe-area-inset-bottom)); min-height:0; padding:0; gap:20px;
    background:transparent; pointer-events:none;
  }
  .vg-gallery-frame #vg-stick,.vg-gallery-frame #vg-interact { pointer-events:auto; }
  .vg-gallery-frame #vg-stick {
    background:radial-gradient(circle,#f5f3e5ed,#eae9d9c9); border-color:#f9f5e8;
    box-shadow:0 3px 14px #45382129,inset 0 0 0 1px #b5bba299;
  }
  .vg-gallery-frame #vg-stick span { box-shadow:0 2px 6px #47563733; }
  .vg-gallery-frame #vg-stick b { color:#6b785d; }
  .vg-gallery-frame #vg-interact {
    min-height:48px; max-width:160px; padding:12px 16px; border-color:#e3e7d4;
    border-radius:3px; box-shadow:0 3px 14px #45382129; background:#53614df2; transition:none;
  }
  .vg-gallery-frame #vg-interact:disabled { background:#f8f5e7e8; color:#777b65; border-color:#ece9d8; }
  .vg-gallery-frame .vg-keyboard,.vg-gallery-frame .vg-mobile-hint { display:none; }
  .vg-gallery-frame .vg-caption { top:12px; bottom:auto; padding:8px 13px; }
  /* Safe-area insets alone cannot account for Chrome's fullscreen notice. */
  .vg-expanded .vg-controls { bottom:max(96px,calc(env(safe-area-inset-bottom) + 48px)); }
}
@media(max-width:360px) {
  .vg-gallery-frame .vg-controls { left:12px; right:12px; gap:12px; }
  .vg-gallery-frame #vg-interact { max-width:148px; padding-inline:12px; }
}

.vg-view-links{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
@media(max-width:600px){.vg-view-links{margin-top:18px}.vg-view-links .vg-text-link{margin-top:0}}

/* Dialog choices retain the same keyboard rhythm as walking through the gallery. */
.vg-docent-actions button:focus { outline:2px solid #687b55; outline-offset:3px; }
#vg-docent-close:focus { background:#e5e9dc; color:#46553e; }
.vg-docent-keyboard { margin:14px 0 0; font:10px/1.8 var(--sans,system-ui); color:#737d65; }

/* Contextual interaction hints remain readable on narrow and fullscreen stages. */
.vg-caption { width:max-content; box-sizing:border-box; white-space:normal; }
.vg-caption-line { flex-shrink:0; }
#vg-toast { overflow:visible; text-overflow:clip; text-align:center; word-break:keep-all; }
.vg-art #vg-close>.vg-return-copy { font:inherit; text-align:left; }
.vg-return-copy small { display:block; margin-top:2px; font:9px/1.4 var(--sans,system-ui); color:#7c826c; letter-spacing:.04em; }
.vg-art #vg-close:focus { outline:2px solid #687955; outline-offset:4px; background:#e8ebdf; }

/* Touch guidance follows the same breakpoint as the joystick controls. */
.vg-return-copy small[hidden] { display:none; }
@media(pointer:coarse),(max-width:600px) {
  .vg-return-copy small { display:none; }
}

/* Native dialog dismissal also works while the gallery is loading. */
.vg-guide-dismiss { position:absolute; top:12px; right:12px; z-index:5; margin:0; }
.vg-guide-dismiss button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #d4cebe; border-radius:50%; background:#f8f5ecf2; color:#53614d; cursor:pointer; box-shadow:0 2px 8px #302a1810; }
.vg-guide-dismiss button:hover { background:#e7eadc; border-color:#9ba88c; }
.vg-guide-dismiss button:focus-visible { outline:2px solid #637850; outline-offset:3px; }
@media(min-width:601px){.vg-guide-copy>.vg-kicker{padding-right:44px;min-height:30px}}

/* Let desktop galleries use the full content width. */
@media (min-width:1025px) { .vg-shell { padding-left:0; padding-right:0; width:84%; max-width:none; } }

/* Keep the desktop gallery comfortably tall without stretching the artwork. */
@media (min-width:1025px) {
  #vg-experience:not(.vg-expanded) .vg-stage { height:clamp(520px,78vh,860px); display:flex; align-items:center; justify-content:center; background:linear-gradient(90deg,#c1aa87,#d0b995 50%,#c1aa87); }
  #vg-experience:not(.vg-expanded) .vg-stage canvas { width:100%; height:100%; object-fit:contain; }
}
