@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-ext-400-normal-CiZNW1ec.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-DYBYyMQr.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-ext-500-normal-h0Fp6aX0.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-500-normal-CK0UkkKf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-ext-600-normal-BNd8euf0.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BeUwKxhG.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-ext-700-normal-C8_gqRu2.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-700-normal-4Hjo2OtD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#242421;background:#eeeee9;font-family:Be Vietnam Pro,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #242421;--ink-soft: #5d5c57;--paper: #fafaf6;--paper-deep: #f0f0eb;--line: #d4d3cc;--line-dark: #aaa9a1;--accent: #3c3a36;--accent-warm: #74614e;--signal: #3e655d;--danger: #8b3e37;--shadow: rgba(41, 39, 35, .13)}*{box-sizing:border-box}html{min-width:320px;background:var(--paper-deep)}body{min-width:320px;min-height:100dvh;margin:0;background:linear-gradient(90deg,transparent 0,transparent calc(50% - 1px),rgba(63,60,54,.025) calc(50% - 1px),rgba(63,60,54,.025) 50%,transparent 50%),var(--paper-deep)}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}img{display:block;max-width:100%}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #4c756d;outline-offset:3px}.skip-link{position:fixed;z-index:100;top:12px;left:12px;transform:translateY(-180%);padding:12px 16px;color:#fff;background:var(--ink);transition:transform .18s ease-out}.skip-link:focus{transform:translateY(0)}.site-shell{width:min(100%,1760px);min-height:100dvh;margin:0 auto;padding:0 24px 28px}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:88px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:11px;min-width:0;color:var(--ink);text-decoration:none}.brand img{width:47px;height:47px;object-fit:cover;object-position:center;mix-blend-mode:multiply}.brand-copy{display:grid;gap:1px;line-height:1.1}.brand-copy strong{font-size:15px;font-weight:700;letter-spacing:-.02em}.brand-copy small{color:var(--ink-soft);font-size:10px;font-weight:500;letter-spacing:.01em}.address-link{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:var(--ink-soft);font-size:13px;font-weight:500;text-decoration:none;transition:color .18s ease-out}.address-link:hover{color:var(--ink)}.address-link svg{width:17px;height:17px}.address-link svg:last-child{width:14px;height:14px;color:var(--accent-warm)}.explorer-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;padding-top:20px}.viewer-column{min-width:0}@media(min-width:961px){.site-shell{display:grid;height:100dvh;grid-template-rows:88px minmax(0,1fr);overflow:hidden}.site-header{min-height:0}.explorer-layout{height:100%;min-height:0;align-items:stretch}.viewer-column{display:flex;min-height:0;flex-direction:column}.mode-tabs,.viewer-toolbar{flex:0 0 auto}.mode-tabs{align-self:flex-start}.explorer-layout .viewer-shell{min-height:0;flex:1 1 auto}.sidebar{min-height:0;overflow-y:auto;overscroll-behavior:contain}}.mode-tabs{display:inline-flex;align-items:center;gap:2px;margin-bottom:12px;padding:3px;border:1px solid var(--line);background:#fafaf6c2}.mode-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 13px;border:0;color:var(--ink-soft);background:transparent;font-size:12px;font-weight:600;transition:color .18s ease-out,background .18s ease-out,box-shadow .18s ease-out}.mode-tabs button svg{width:15px;height:15px}.mode-tabs button:hover{color:var(--ink)}.mode-tabs button.is-active{color:#fff;background:var(--accent);box-shadow:0 2px 5px #26231e24}.viewer-shell{position:relative;min-height:calc(100dvh - 184px);overflow:hidden;border:1px solid #c9c8c0;background:radial-gradient(circle at 74% 18%,#fffffff5,#f1f1ecb8 42%,#dadad39e),#e8e8e2;box-shadow:0 14px 32px -26px var(--shadow);isolation:isolate}.viewer-shell:fullscreen{width:100vw;height:100vh;min-height:100vh;border:0}.viewer-shell.is-expanded-fallback{position:fixed;z-index:90;inset:0;width:100vw;height:100dvh;min-height:100dvh;border:0;box-shadow:none}.viewer-shell:fullscreen .webgl-host,.viewer-shell.is-expanded-fallback .webgl-host,.viewer-shell:fullscreen .viewer-poster,.viewer-shell.is-expanded-fallback .viewer-poster,.viewer-shell:fullscreen .gallery-grid,.viewer-shell.is-expanded-fallback .gallery-grid,.viewer-shell:fullscreen .gallery-empty,.viewer-shell.is-expanded-fallback .gallery-empty{position:absolute;inset:0}.webgl-host{position:absolute;inset:0;z-index:0;touch-action:none}.webgl-canvas{display:block;width:100%;height:100%;outline:0}.webgl-canvas:focus-visible{outline:3px solid #4c756d;outline-offset:-4px}.keyboard-hint{position:absolute;z-index:1;right:14px;bottom:14px;max-width:min(76vw,310px);margin:0;padding:6px 8px;color:#4c4b46;background:#fafaf6d6;font-family:IBM Plex Mono,monospace;font-size:9px;line-height:1.4;pointer-events:none}.viewer-heading-row{position:absolute;z-index:3;top:0;left:0;display:flex;align-items:flex-start;justify-content:space-between;width:100%;padding:22px 22px 42px;pointer-events:none;background:linear-gradient(180deg,#fafaf6e8,#fafaf600)}.viewer-expanded-status{position:absolute;z-index:4;top:66px;right:16px;margin:0;padding:5px 7px;color:#fff;background:var(--accent-warm);font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:500;letter-spacing:.02em}.viewer-exit-button{position:absolute;z-index:5;top:16px;right:16px;min-height:44px;padding:8px 11px;border:1px solid rgba(255,255,255,.9);color:#fff;background:var(--accent);box-shadow:0 3px 10px #1f1d1a33;font-size:11px;font-weight:600}.viewer-exit-button:hover{background:#51504a}.eyebrow{margin:0 0 4px;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.075em;text-transform:uppercase}.viewer-heading-row h1{max-width:min(610px,72vw);margin:0;color:var(--ink);font-size:clamp(21px,2.1vw,34px);font-weight:600;letter-spacing:-.045em;line-height:1.04;text-wrap:balance}.gan-logo{width:57px;height:57px;object-fit:contain;opacity:.84}.viewer-poster{position:absolute;z-index:2;inset:0;overflow:hidden;color:#fff;background:#5e5d58}.viewer-poster>img{width:100%;height:100%;object-fit:contain;filter:saturate(.72) contrast(.92)}.poster-structure{width:100%;height:100%;background:linear-gradient(122deg,transparent 0 42%,rgba(255,255,255,.11) 42% 43%,transparent 43%),repeating-linear-gradient(90deg,rgba(255,255,255,.1) 0 1px,transparent 1px 82px),linear-gradient(145deg,#787873,#4e4e4a)}.poster-scrim{position:absolute;inset:0;background:linear-gradient(120deg,#151514c9,#1a191736 72%)}.poster-content{position:absolute;z-index:1;right:22px;bottom:26px;left:22px;display:flex;align-items:flex-start;gap:12px;max-width:520px}.poster-content>svg{flex:0 0 auto;width:22px;height:22px;margin-top:2px}.poster-content strong{display:block;font-size:14px;font-weight:600}.poster-content p{max-width:48ch;margin:5px 0 0;color:#ffffffd1;font-size:12px;line-height:1.55}.poster-actions{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 0 auto}.poster-actions button,.manifest-error button{min-height:44px;padding:10px 13px;border:1px solid rgba(255,255,255,.75);color:var(--ink);background:#fff;font-size:12px;font-weight:600}.poster-actions .quiet-button{color:#fff;background:transparent}.viewer-status{position:absolute;z-index:3;bottom:17px;left:20px;color:#4c4b46;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.015em;pointer-events:none}.viewer-status span{display:inline-flex;align-items:center;gap:7px;padding:6px 8px;background:#fafaf6d6}.viewer-status i{display:block;width:7px;height:7px;border-radius:50%;background:var(--signal)}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line);background:#fafaf69e}.toolbar-group{display:flex;align-items:center;min-width:0}.toolbar-group+.toolbar-group{border-left:1px solid var(--line)}.viewer-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:10px 12px;border:0;border-right:1px solid var(--line);color:var(--ink-soft);background:transparent;font-size:11px;font-weight:600;transition:color .17s ease-out,background .17s ease-out}.viewer-toolbar button:last-child{border-right:0}.viewer-toolbar button:hover,.viewer-toolbar button.is-active{color:#fff;background:var(--accent)}.viewer-toolbar button svg{width:16px;height:16px}.viewer-toolbar .toolbar-zoom-button{font-size:18px;line-height:1}.sidebar{overflow:hidden;border:1px solid var(--line);background:#fafaf6f0;box-shadow:0 14px 32px -28px var(--shadow)}.sidebar-section{padding:19px 18px;border-bottom:1px solid var(--line)}.sidebar-section:last-child{border-bottom:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.075em;text-transform:uppercase}.section-heading svg{width:15px;height:15px}.section-heading .count{display:grid;min-width:20px;min-height:20px;place-items:center;border:1px solid var(--line);color:var(--ink-soft);font-size:10px}.scene-group{margin-top:17px}.scene-group>p{margin:0 0 6px;color:var(--ink-soft);font-size:11px;font-weight:500}.scene-link{display:flex;align-items:baseline;justify-content:space-between;width:100%;min-height:44px;padding:7px 8px;border:0;border-left:2px solid transparent;color:var(--ink-soft);background:transparent;font-size:12px;line-height:1.3;text-align:left;transition:color .16s ease-out,border-color .16s ease-out,background .16s ease-out}.scene-link:hover{color:var(--ink);background:#3836320b}.scene-link.is-selected{border-left-color:var(--accent-warm);color:var(--ink);background:#eeece5;font-weight:600}.scene-link small{flex:0 0 auto;margin-left:10px;color:var(--accent-warm);font-family:IBM Plex Mono,monospace;font-size:8px;font-weight:500;white-space:nowrap}.space-title{margin:13px 0 5px;color:var(--ink);font-size:18px;font-weight:600;letter-spacing:-.035em}.space-note,.mapping-note,.helper-note,.source-codes{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.6}.source-codes{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.mapping-note{margin-top:10px;padding:8px 9px;border-left:2px solid var(--accent-warm);color:#57493d;background:#f1ede6}.floor-control label{display:block;margin-bottom:9px;color:var(--ink);font-size:12px;font-weight:600}.select-wrap{position:relative}.select-wrap select{width:100%;min-height:44px;appearance:none;padding:10px 38px 10px 11px;border:1px solid var(--line-dark);border-radius:0;color:var(--ink);background:#fff;font-size:13px}.select-wrap svg{position:absolute;top:50%;right:12px;width:16px;height:16px;transform:translateY(-50%);pointer-events:none}.floor-control .helper-note{margin-top:9px}.camera-list{display:grid;gap:8px;margin-top:14px}.camera-preset{display:grid;grid-template-columns:65px minmax(0,1fr);align-items:center;min-height:57px;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:0;color:var(--ink-soft);background:transparent;font-size:11px;font-weight:500;text-align:left;transition:border-color .18s ease-out,color .18s ease-out,background .18s ease-out}.camera-preset:hover{border-color:var(--line-dark);color:var(--ink)}.camera-preset.is-selected{border-color:var(--accent);color:var(--ink);background:#efeee8}.camera-preset img,.camera-thumbnail{width:65px;height:57px;object-fit:cover;background:linear-gradient(135deg,transparent 0 47%,rgba(75,72,66,.12) 47% 50%,transparent 50%),#e5e4dd}.camera-preset>span{padding:9px 10px;line-height:1.4}.presets-section .helper-note{margin-top:12px}.switch-list{display:grid;gap:1px;margin-top:11px}.switch-row{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:8px 0;border:0;color:var(--ink-soft);background:transparent;font-size:12px;text-align:left}.switch-row:hover{color:var(--ink)}.switch-row:disabled{opacity:.48}.switch-track{position:relative;flex:0 0 auto;width:34px;height:18px;margin-left:13px;border:1px solid #9c9b94;border-radius:9px;background:transparent;transition:background .18s ease-out,border-color .18s ease-out}.switch-track i{position:absolute;top:3px;left:3px;width:10px;height:10px;border-radius:50%;background:#77756e;transition:transform .18s ease-out,background .18s ease-out}.switch-row[aria-pressed=true]{color:var(--ink)}.switch-row[aria-pressed=true] .switch-track{border-color:var(--accent);background:var(--accent)}.switch-row[aria-pressed=true] .switch-track i{transform:translate(16px);background:#fff}.gallery-grid,.gallery-empty{position:absolute;z-index:1;inset:0}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(160px,1fr);gap:1px;overflow:auto;background:var(--line)}.gallery-grid-render{display:block;overflow:hidden;background:#d7d6ce}.gallery-item{position:relative;min-height:210px;margin:0;overflow:hidden;background:#d7d6ce}.gallery-item-render{display:grid;width:100%;height:100%;min-height:0;grid-template-rows:minmax(0,1fr) auto;padding:92px 22px 14px;overflow:visible}.gallery-item-featured{grid-column:span 2;min-height:min(58vh,560px)}.gallery-item img{width:100%;height:100%;object-fit:contain;background:#d7d6ce}.gallery-item-render img{min-height:0}.gallery-item figcaption{position:absolute;right:0;bottom:0;left:0;padding:22px 14px 12px;color:#fff;background:linear-gradient(transparent,#161514b8);font-size:11px;line-height:1.35}.gallery-item-render figcaption{position:static;padding:10px 0 0;color:var(--ink);background:transparent;text-align:center}.gallery-empty{display:grid;place-content:center;gap:8px;padding:30px;color:var(--ink-soft);text-align:center}.gallery-empty svg{width:28px;height:28px;margin:0 auto 2px}.gallery-empty p{margin:0;color:var(--ink);font-size:14px;font-weight:600}.gallery-empty span{max-width:35ch;font-size:12px;line-height:1.5}.qa-panel{margin-top:12px;padding:12px;border:1px dashed #aa9680;color:#463d35;background:#faf3e9;font-family:IBM Plex Mono,monospace;font-size:10px}.qa-heading{display:flex;justify-content:space-between;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.qa-heading small{color:#80664d}.qa-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:12px 0}.qa-stats div{display:grid;gap:2px}.qa-stats dt{color:#7b6f63}.qa-stats dd{margin:0;color:#2d2925;overflow-wrap:anywhere}.qa-actions{display:flex;flex-wrap:wrap;gap:8px}.qa-actions button{min-height:44px;padding:8px 10px;border:1px solid #9d846b;border-radius:0;color:#40362d;background:transparent;font-family:inherit;font-size:10px}.qa-actions button:hover,.qa-actions button[aria-pressed=true]{color:#fff;background:#65503d}.loading-page,.manifest-error{display:grid;min-height:100dvh;place-content:center;justify-items:center;padding:30px;color:var(--ink);text-align:center}.loading-page img,.manifest-error img{width:88px;height:88px;margin-bottom:16px;object-fit:cover;mix-blend-mode:multiply}.loading-rule{width:74px;height:1px;margin:2px 0 13px;overflow:hidden;background:var(--line-dark)}.loading-rule:after{display:block;width:36%;height:1px;background:var(--accent);content:"";animation:loading-rule 1.4s ease-in-out infinite}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.loading-page p{margin:0;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:11px}.manifest-error{max-width:620px;margin:0 auto}.manifest-error .eyebrow{margin-top:3px}.manifest-error h1{max-width:18ch;margin:6px 0 10px;font-size:clamp(28px,4vw,48px);font-weight:600;letter-spacing:-.055em;line-height:1.02}.manifest-error>p:not(.eyebrow){max-width:53ch;margin:0 0 19px;color:var(--ink-soft);font-size:14px;line-height:1.6}.manifest-error button{border-color:var(--accent);color:#fff;background:var(--accent)}@keyframes loading-rule{0%,to{transform:translate(-100%)}50%{transform:translate(280%)}}@media(max-width:1180px){.site-shell{padding-right:16px;padding-left:16px}.explorer-layout{grid-template-columns:minmax(0,1fr) 320px;gap:12px}.sidebar-section{padding:17px 15px}.mode-tabs button{padding-right:10px;padding-left:10px}.viewer-toolbar button span{display:none}.viewer-toolbar button{min-width:45px;padding:10px}}@media(max-width:960px){.site-shell{padding:0 12px 22px}.site-header{min-height:72px}.explorer-layout{grid-template-columns:minmax(0,1fr);gap:14px;padding-top:12px}.viewer-shell{min-height:min(62dvh,620px)}.sidebar{order:2}.sidebar-section{padding:18px}.camera-list{grid-template-columns:repeat(2,minmax(0,1fr))}.viewer-toolbar{margin-top:8px;flex-wrap:wrap}.toolbar-group{flex:1 1 100%}.viewer-toolbar button{flex:1 1 0}.toolbar-group+.toolbar-group{border-top:1px solid var(--line);border-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:580px){.site-header{gap:10px;min-height:68px}.brand img{width:43px;height:43px}.brand-copy strong{font-size:14px}.brand-copy small{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.address-link{justify-content:center;width:44px;min-width:44px;padding:0;border:1px solid var(--line)}.address-link span,.address-link svg:last-child{display:none}.mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin-bottom:8px}.mode-tabs button{min-width:0;padding:8px 5px;font-size:10px}.mode-tabs button svg{display:none}.viewer-shell{min-height:min(57dvh,500px)}.viewer-heading-row{padding:16px 15px 34px}.viewer-heading-row h1{max-width:79vw;font-size:23px}.viewer-status{bottom:12px;left:10px}.viewer-status span{font-size:9px}.poster-content{right:15px;bottom:18px;left:15px;display:grid;grid-template-columns:auto 1fr}.poster-actions{grid-column:2;margin:2px 0 0}.gallery-grid{grid-template-columns:1fr}.gallery-item,.gallery-item-featured{grid-column:span 1;min-height:245px}.camera-list{grid-template-columns:1fr}.qa-stats{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
