/* Two retained rooms: a warm archive and the existing flying collection.
   Mode changes animate only composited opacity/transform, never document height. */
.gallery-wrapper{--gallery-room-height:clamp(490px,72vh,760px);display:grid;isolation:isolate;background:#101613;border-color:#b8a56b66;box-shadow:0 0 42px #d8b77018,0 20px 55px #0005,inset 0 1px #fff0b632}
.gallery-wrapper #gallery-3d,.gallery-wrapper #grid-view{grid-area:1/1;width:100%;height:var(--gallery-room-height);min-width:0;opacity:1;visibility:visible;transform:translateY(0) scale(1);transform-origin:50% 15%;transition:opacity .46s ease,transform .62s cubic-bezier(.22,.8,.2,1),visibility 0s;will-change:auto}
.gallery-wrapper #gallery-3d.gallery-layer-inactive,.gallery-wrapper #grid-view.hidden{display:flex;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) scale(.985);transition:opacity .38s ease,transform .56s cubic-bezier(.22,.8,.2,1),visibility 0s .56s}
.gallery-wrapper #gallery-3d.gallery-layer-inactive{display:block;transform:translateY(-8px) scale(1.025)}
.gallery-wrapper .view-controls{grid-area:1/1;position:absolute;z-index:5;top:18px;right:18px;margin:0;padding:5px;gap:5px;border:1px solid #c8b27655;border-radius:30px;background:linear-gradient(125deg,#303b2aee,#121b1dee);box-shadow:0 6px 24px #0006,inset 0 1px #f7e8ab25;backdrop-filter:blur(14px)}
.gallery-wrapper .view-btn{padding:9px 15px;font-size:12px;border-color:transparent;background:transparent;white-space:nowrap}
.gallery-wrapper .view-btn.active{border-color:#d9bd79b3;color:#fff0c5;background:linear-gradient(115deg,#977c3e55,#3d523a44);box-shadow:0 0 19px #e5c27633,inset 0 1px #ffefbd45;text-shadow:0 0 12px #ffd88d80}
.gallery-wrapper .view-btn:focus-visible,.gallery-wrapper .grid-item:focus-visible{outline:2px solid #ffe5a1;outline-offset:4px}
.gallery-wrapper #grid-view{display:flex;flex-direction:column;padding:0;overflow:hidden;background:radial-gradient(ellipse at 10% 10%,#a2843b26,transparent 46%),radial-gradient(ellipse at 85% 55%,#ac572716,transparent 50%),linear-gradient(125deg,#17221eee,#0d161ded)}
.grid-room-heading{flex:none;min-height:116px;padding:24px 30px 17px;border-bottom:1px solid #b5a37430;background:linear-gradient(90deg,#d4ba6f0e,transparent 70%)}
.grid-room-kicker{display:block;color:#e2c78c;font:10px/1.5 'Source Code Pro',monospace;letter-spacing:.2em;text-transform:uppercase}
.grid-room-heading h3{margin:4px 0 5px;font:400 28px/1.2 'Playfair Display',Georgia,serif;letter-spacing:.01em;color:#fff0c7;text-shadow:0 0 22px #e7c07c33}
.grid-room-count{font:10px/1.6 'Source Code Pro',monospace;color:#bac5b6}
.gallery-wrapper #grid-container{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;align-items:start;gap:24px 22px;padding:30px 28px 42px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b89d63 #121c19;background:repeating-linear-gradient(0deg,transparent 0 74px,#d6bb7810 74px 75px,transparent 75px 150px)}
#grid-container::-webkit-scrollbar{width:10px}#grid-container::-webkit-scrollbar-track{background:#121c19}#grid-container::-webkit-scrollbar-thumb{border:2px solid #121c19;border-radius:8px;background:linear-gradient(#d2b773,#786d45)}
.gallery-wrapper .grid-item{--frame-light:#e1c783;--frame-mid:#987331;--frame-dark:#33270e;--mount-radius:7px;position:relative;display:block;min-width:0;width:100%;margin:0;padding:12px 12px 10px;overflow:visible;appearance:none;text-align:left;cursor:zoom-in;border:1px solid #c5a86750;border-radius:14px;background:linear-gradient(145deg,#a68f531c,#12221d88 45%,#0c151bba);box-shadow:0 9px 17px #0005,inset 0 1px #f6dd9d25,inset 0 0 20px #e7bf7110;transform:translateY(0);transition:transform .4s cubic-bezier(.2,.75,.2,1),box-shadow .4s,border-color .4s,background .4s;color:#f0e4c6;font-family:inherit}
.gallery-wrapper .grid-item:nth-child(3n+2){margin-top:9px}.gallery-wrapper .grid-item:nth-child(3n+3){margin-top:3px}
.gallery-wrapper .grid-item:hover,.gallery-wrapper .grid-item:focus-visible{transform:translateY(-5px);border-color:#ead093b0;background:linear-gradient(145deg,#b89c612b,#2032269e 45%,#152128cc);box-shadow:0 18px 27px #0006,0 0 25px #d6b66725,inset 0 1px #fff0bd65}
.grid-print-mount{display:block;position:relative;padding:7px;border:1px solid var(--frame-light);border-radius:var(--mount-radius);background:linear-gradient(120deg,var(--frame-light),var(--frame-dark) 24%,var(--frame-mid) 42%,var(--frame-light) 58%,var(--frame-dark) 77%,var(--frame-mid));box-shadow:0 3px 10px #0008,0 0 10px #e1b65315,inset 0 0 0 2px #261d0c,inset 0 0 0 3px #ecc66a99;transition:box-shadow .4s}
.grid-print-mount::after{content:'';position:absolute;inset:3px;border:1px solid #f5d79a80;border-radius:calc(var(--mount-radius) - 2px);pointer-events:none}
.grid-print-mat{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:4/3;padding:5px;overflow:hidden;background:radial-gradient(ellipse at 20% 0,#b5984130,transparent 65%),#060b0e;border:1px solid #140f06;border-radius:2px;box-shadow:inset 0 1px 8px #000a}
.gallery-wrapper .grid-item img{display:block;flex:none;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border:0;border-radius:1px;opacity:0;transition:opacity .45s ease;box-shadow:0 2px 8px #0008}
.gallery-wrapper .grid-item.is-loaded img{opacity:1}.gallery-wrapper .grid-item.is-lightboxed img{opacity:0;transition:none}
.gallery-wrapper .grid-item.grid-frame-liquid{--frame-light:#f2c875;--frame-mid:#d88b31;--frame-dark:#754210;--mount-radius:18px}
.grid-frame-liquid .grid-print-mount{border-radius:18px 11px 20px 12px/12px 18px 11px 20px;background:conic-gradient(from 18deg,#b47021,#f6d287,#784511,#d99b43,#fae7a2,#8a4c18,#edb961,#b47021);box-shadow:inset 0 2px 3px #fff1ba9c,inset 0 -3px 4px #6b300fac,0 4px 12px #0009,0 0 10px #e4aa5026}
.grid-frame-liquid .grid-print-mount::after{border-radius:15px 8px 17px 9px/9px 15px 8px 17px;border-color:#ffe1a59c}.grid-frame-liquid .grid-print-mat{border-radius:10px 4px 12px 5px}
.gallery-wrapper .grid-item.grid-frame-wood{--frame-light:#ddaf72;--frame-mid:#a56c37;--frame-dark:#543117;--mount-radius:5px}
.grid-frame-wood .grid-print-mount{padding:9px;background:repeating-linear-gradient(4deg,#ad733d88 0 1px,#6d411766 1px 3px,transparent 3px 6px),linear-gradient(115deg,#d4a05e,#84502b 24%,#ba8751 57%,#6d3e20 85%,#c69758);box-shadow:inset 0 2px #edc49088,inset 0 -2px #43270ecc,0 5px 12px #0009;border-color:#c79968}
.grid-frame-wood .grid-print-mount::after{inset:4px;border-color:#372515c9;border-radius:1px;box-shadow:0 1px #f4c89155}
.grid-frame-brass .grid-print-mount::before{content:'';position:absolute;inset:-3px;border-radius:7px;pointer-events:none;background:radial-gradient(circle at 5px 5px,#fff0b1 0 1px,#a87d33 1px 4px,transparent 4px),radial-gradient(circle at calc(100% - 5px) 5px,#fff0b1 0 1px,#a87d33 1px 4px,transparent 4px),radial-gradient(circle at 5px calc(100% - 5px),#fff0b1 0 1px,#a87d33 1px 4px,transparent 4px),radial-gradient(circle at calc(100% - 5px) calc(100% - 5px),#fff0b1 0 1px,#a87d33 1px 4px,transparent 4px)}
.grid-print-plate{display:flex;align-items:center;gap:9px;min-width:0;margin:12px 0 0;padding:8px 2px 1px;border-top:1px solid #ba9c5d35}.grid-print-number{flex:none;color:#c5a870;font:10px/1.5 'Source Code Pro',monospace}.grid-print-caption{display:block;min-width:0;flex:1}.grid-print-caption strong{display:block;color:#f1dfb2;font:500 12px/1.35 'Source Code Pro',monospace;overflow-wrap:anywhere}.grid-print-caption small{display:block;font:9px/1.5 'Source Code Pro',monospace;color:#b7bba8;margin-top:3px}.grid-print-enlarge{display:grid;place-items:center;flex:none;width:25px;height:25px;border:1px solid #c3a96a45;border-radius:50%;color:#e6cf94;background:#b49a4910;transition:color .3s,box-shadow .3s}.grid-item:hover .grid-print-enlarge{color:#fff5d6;box-shadow:0 0 13px #eccd6f40}
@media(min-width:1100px){.gallery-wrapper .grid-item:nth-child(9n+1){grid-column:span 2}.grid-item:nth-child(9n+1) .grid-print-mat{aspect-ratio:2.35/1}}
@media(max-width:1050px){.gallery-wrapper #grid-container{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;padding:24px 22px}.grid-room-heading{padding-top:77px;min-height:155px}.gallery-wrapper .view-controls{top:14px;right:14px}.gallery-wrapper .grid-item:nth-child(3n+2),.gallery-wrapper .grid-item:nth-child(3n+3){margin-top:0}.gallery-wrapper .grid-item:nth-child(even){margin-top:7px}}
@media(max-width:540px){.gallery-wrapper{--gallery-room-height:clamp(540px,80vh,720px)}.gallery-wrapper #grid-container{grid-template-columns:1fr;padding:20px;gap:20px}.gallery-wrapper .grid-item:nth-child(even){margin-top:0}.grid-room-heading{padding:76px 20px 16px}.grid-room-heading h3{font-size:25px}.gallery-wrapper .view-controls{left:12px;right:12px;justify-content:center}.gallery-wrapper .view-btn{flex:1;padding:9px 10px}.gallery-wrapper .grid-print-mat{aspect-ratio:1.4}}
@media(prefers-reduced-motion:reduce){.gallery-wrapper #gallery-3d,.gallery-wrapper #grid-view,.gallery-wrapper .grid-item,.gallery-wrapper .grid-item img{transition:none!important;transform:none!important}.gallery-wrapper::before{animation:none!important}}
