.viewer-gallery{min-height:calc(100svh - 150px);margin:38px 5.4vw 0;padding:clamp(36px,5vw,72px) 0 48px;border-top:1px solid #242a2a}
.viewer-gallery-label{margin:0 0 14px;color:#aaa;font:12px Arial,sans-serif;letter-spacing:.16em}
.viewer-gallery h2{margin:0;font-size:clamp(32px,4vw,60px);font-weight:500;line-height:1.26;letter-spacing:-.04em}
.viewer-gallery-lead{margin:16px 0 32px;color:#aaa;font-size:15px;line-height:1.75;word-break:keep-all}
.viewer-gallery-grid{--gallery-columns:4;display:grid;grid-template-columns:repeat(var(--gallery-columns),minmax(0,200px));gap:clamp(12px,2vw,20px);margin:0;padding:0;list-style:none}
.viewer-gallery-card{display:grid;grid-template-columns:minmax(0,1fr);width:100%;padding:0;border:1px solid #4a4a4a;border-radius:12px;overflow:hidden;background:#191919;color:#eee;text-align:start;cursor:pointer}
button.viewer-gallery-card:hover,.viewer-gallery-card:focus-visible{border-color:#aaa;background:#242424}
.viewer-gallery-card:focus-visible{outline:2px solid #ddd;outline-offset:3px}
.viewer-gallery-thumbnail{display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;background:#080808;color:#888;font:500 36px Arial,sans-serif}
.viewer-gallery-thumbnail img{width:100%;height:100%;min-height:0;object-fit:contain}
.viewer-gallery-card-title{display:flex;justify-content:space-between;gap:16px;margin:15px 18px;font-size:17px;font-weight:600;overflow-wrap:anywhere}
.viewer-gallery-placeholder{border-color:#363636;color:#8f8f8f;cursor:default}
.viewer-gallery-placeholder .viewer-gallery-thumbnail{background:#101010}
@media(min-width:1600px){.viewer-gallery-grid{--gallery-columns:8}}
@media(max-width:1000px){.viewer-gallery-grid{--gallery-columns:2}}
@media(max-width:700px){.viewer-gallery-card-title{gap:8px;margin:11px 12px;font-size:14px}}
.viewer-gallery-empty{color:#bdbdbd;font-size:13px}
.public-viewer-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:3vh 3vw;background:rgba(0,0,0,.88)}
.public-viewer-dialog{width:min(1360px,100%);height:min(900px,94svh);min-height:420px;display:flex;flex-direction:column;background:#191919;border:1px solid #494949;border-radius:15px;box-shadow:0 24px 90px #000a;overflow:hidden;color:#ededed}
.public-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid #333}
.public-viewer-header small{font:10px Arial,sans-serif;letter-spacing:.2em;color:#b5b5b5}
.public-viewer-header h2{font:500 20px/1.35 'Noto Sans KR',Arial,sans-serif;margin:6px 0 0}
.public-viewer-header button{border:1px solid #656565;background:#282828;color:#fff;border-radius:8px;width:39px;height:39px;cursor:pointer}
.public-viewer-header button:hover{background:#3d3d3d}
.public-viewer-lighting{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 16px;border-bottom:1px solid #333}
.public-viewer-lighting button{min-height:36px;padding:5px 13px;border:1px solid #656565;border-radius:7px;background:#282828;color:#ededed;cursor:pointer;font:inherit;font-size:12px}
.public-viewer-lighting button:hover{background:#3d3d3d}
.public-viewer-lighting button[aria-pressed=true],.public-viewer-albedo[aria-pressed=true]{border-color:#aaa;background:#484848;color:#f7f7f7}
.public-viewer-dialog button:focus-visible{outline:2px solid #ddd;outline-offset:2px}
.public-viewer-hdri-note{position:absolute;left:16px;bottom:12px;max-width:min(490px,calc(100% - 152px));margin:0;padding:5px 8px;border-radius:6px;background:#1c1c1ce8;color:#d0d0d0;font-size:12px;line-height:1.45;pointer-events:none}
@media(max-width:700px){.public-viewer-hdri-note{font-size:11px}}
.public-viewer-stage{position:relative;flex:1;min-height:0;background:#212121}
.public-viewer-stage .scan-viewer{height:100%;min-height:0}
.public-viewer-stage .viewer-overlay{z-index:3}
.public-viewer-stage .viewer-error{background:#242424ed}
.public-viewer-stage .viewer-nav{background:#181818df}
.public-viewer-stage .scan-viewer .viewer-nav button{background:#393939;border-color:#656565}
.public-viewer-stage .scan-viewer .viewer-nav button:hover{background:#4b4b4b}
.public-viewer-stage .scan-viewer .viewer-nav button[aria-pressed=true]{background:#565656;border-color:#aaa}
.public-viewer-stage .scan-viewer .viewer-nav button:focus-visible{outline-color:#ddd}
.public-viewer-albedo{position:absolute;top:16px;left:16px;z-index:2;border:1px solid #656565;border-radius:7px;background:#282828e6;color:#ededed;padding:9px 13px;cursor:pointer;font:12px 'Noto Sans KR',Arial,sans-serif}
.public-viewer-albedo:hover{background:#3d3d3de6}
.public-viewer-albedo[aria-pressed=true]:hover{background:#565656}
.public-viewer-loading{width:min(360px,80vw);display:grid;gap:12px;text-align:center;font:13px 'Noto Sans KR',Arial,sans-serif}
.scan-viewer .viewer-loading{inset:auto auto 16px 16px;width:min(360px,calc(100% - 148px));display:block;padding:12px;background:#1c1c1ce8;border:1px solid #494949;border-radius:8px}
.viewer-loading .public-viewer-loading{width:100%;font-size:12px}
.public-viewer-progress{height:10px;overflow:hidden;border-radius:999px;background:#4c4c4c;box-shadow:0 0 0 1px #9995}
.public-viewer-progress>div{height:100%;border-radius:inherit;background:#b5b5b5;transition:width .2s ease}
.public-viewer-instructions{margin:0;padding:12px 24px;color:#bdbdbd;font-size:12px;text-align:center}
@media(max-width:700px){.landing .footer{flex-wrap:wrap}.video-toggle{order:2}.public-viewer-modal{padding:0}.public-viewer-dialog{width:100%;height:100svh;min-height:0;border:0;border-radius:0}.public-viewer-header{padding:14px 18px}.public-viewer-header h2{font-size:16px}.public-viewer-instructions{font-size:11px}}
@media(max-width:700px){.viewer-gallery{margin:28px 7vw 0;padding-top:38px}.viewer-gallery-lead{font-size:14px;margin-bottom:25px}}
