:root{--ink:#090909;--steel:#c4c4bc;--paper:#f3f3e9;--blue:#183cff;--mono:"Courier New",monospace}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font:11px var(--mono);overflow:hidden}button{cursor:pointer;font:inherit;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,main:focus-visible{outline:3px solid #f3ff00;outline-offset:4px}.bevel{padding:10px 14px;background:var(--steel);color:var(--ink);border:2px solid;border-color:var(--paper) #444 #444 var(--paper);font:700 10px var(--mono);white-space:nowrap}.bevel:hover{background:var(--paper)}.bevel:active{border-color:#444 var(--paper) var(--paper) #444}.vault-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 18px;background:var(--steel);color:var(--ink);border-bottom:2px solid var(--ink);z-index:5;height:70px}.vault-header h1{font:32px Impact,"Arial Narrow",sans-serif;margin:0;letter-spacing:.02em}.vault-header h1 span{font:14px var(--mono);vertical-align:top}.vault-stage{height:calc(100svh - 106px);overflow:hidden;position:relative;cursor:grab;touch-action:none;background:linear-gradient(#183cff22 1px,transparent 1px),linear-gradient(90deg,#183cff22 1px,transparent 1px),#090c18;background-size:75px 75px}.vault-stage.grabbing{cursor:grabbing}.vault-world{position:absolute;top:50%;left:50%;width:3200px;height:2700px;transform-origin:center;will-change:transform}.vault-watermark{position:absolute;left:25%;top:25%;font:clamp(130px,25vw,400px)/.8 Impact,sans-serif;color:#183cff44;pointer-events:none}.vault-card{position:absolute;padding:4px;background:var(--steel);color:var(--ink);border:2px outset var(--paper);box-shadow:15px 17px 0 #0006;display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer}.vault-card img{width:100%;height:calc(100% - 22px);object-fit:cover;background:#000;pointer-events:none}.vault-card span{font:12px var(--mono);padding:2px;pointer-events:none;display:flex;justify-content:space-between}.vault-card:hover{outline:6px solid var(--blue)}.vault-controls{position:fixed;bottom:56px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:7px;background:var(--steel);color:var(--ink);border:2px outset var(--paper);z-index:6}.vault-controls>span{padding:0 8px;font-size:10px;min-width:90px}.vault-controls .bevel{padding:8px 13px}footer{display:flex;justify-content:space-between;padding:11px 18px;background:var(--blue);color:var(--paper);height:36px;font-size:9px;gap:15px;position:relative;z-index:4}dialog{background:var(--steel);color:var(--ink);border:3px outset var(--paper);padding:4px;width:min(1000px,calc(100vw - 24px));max-height:94svh}dialog::backdrop{background:#000e}dialog .window-bar{background:var(--blue);color:white;display:flex;justify-content:space-between;align-items:center;padding:6px 9px;gap:12px;font-size:10px}dialog img{display:block;max-width:100%;width:100%;height:calc(87svh - 50px);object-fit:contain;background:var(--ink);margin-top:5px}.grid-mode{overflow:auto}.grid-mode .vault-stage{height:auto;min-height:calc(100svh - 106px);touch-action:auto;cursor:auto;padding:28px}.grid-mode .vault-world{position:relative;top:auto;left:auto;width:auto;height:auto;transform:none!important;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;will-change:auto}.grid-mode .vault-card{position:relative;left:auto!important;top:auto!important;width:100%!important;height:auto!important;transform:none!important;aspect-ratio:.76}.grid-mode .vault-card span{font-size:10px}.grid-mode .vault-controls{display:none}.grid-mode .vault-watermark{display:none}.grid-mode footer{height:auto}.grid-mode .vault-header{position:sticky;top:0}.grid-mode .vault-stage .vault-card img{min-height:0;flex:1;object-fit:cover}.grid-mode .vault-card:hover{outline-width:3px}
@media(max-width:900px){.vault-header h1{font-size:27px}.grid-mode .vault-world{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-mode .vault-stage{padding:20px}.vault-header{gap:10px}.vault-header .bevel{font-size:9px;padding:9px}}
@media(max-width:600px){.vault-header{padding:10px;gap:8px;height:62px}.vault-header h1{font-size:22px;line-height:.9;max-width:73px}.vault-header h1 span{font-size:8px}.vault-header .bevel{padding:9px 6px;font-size:8px}.vault-stage{height:calc(100svh - 98px)}.vault-controls{bottom:50px;gap:5px;padding:5px}.vault-controls .bevel{padding:8px 11px;font-size:9px}.vault-controls>span{min-width:75px;padding:0 4px;font-size:9px}footer{font-size:8px;padding:11px 10px}footer>span:last-child{display:none}.grid-mode .vault-stage{padding:18px 12px}.grid-mode .vault-world{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-mode .vault-card{box-shadow:5px 5px 0 #0006}.grid-mode .vault-card span{font-size:8px}.grid-mode .vault-header{height:62px}dialog .window-bar{font-size:8px;padding:5px;gap:6px}dialog .bevel{font-size:8px;padding:8px}.vault-watermark{font-size:170px;left:6%;top:35%}}
.vault-stage{user-select:none}.vault-card img{-webkit-user-drag:none}
.click-echo{position:fixed;z-index:80;width:34px;height:34px;border:1px dotted #fff;box-shadow:0 0 0 1px #000;pointer-events:none;animation:click-echo .5s steps(5) forwards}.click-echo::after{content:'';position:absolute;inset:6px;border:1px solid #183cff}@keyframes click-echo{to{width:80px;height:65px;opacity:0;transform:translate(-23px,-16px)}}
@media(max-width:600px){.vault-header,.grid-mode .vault-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:1fr 1fr;height:104px;gap:8px}.vault-header .back-link{grid-column:1/3;grid-row:1;justify-self:start}.vault-header h1{grid-column:3;grid-row:1}.vault-header .lang-switch{grid-column:1;grid-row:2;justify-self:start}.vault-header #vaultSound{grid-column:2;grid-row:2}.vault-header #viewToggle{grid-column:3;grid-row:2}.vault-stage{height:calc(100svh - 140px)}.grid-mode .vault-stage{min-height:calc(100svh - 140px)}}
@media(prefers-reduced-motion:reduce){.click-echo{display:none}}

#lightboxMedia video{display:block;width:100%;height:calc(80svh - 50px);object-fit:contain;background:#090909}#lightboxMedia .mini-model-stage{height:min(65svh,600px)}#lightboxMedia .mini-model-controls{color:#090909}#lightboxMedia .mini-model-stage img{margin:0;height:100%}.vault-card .media-kind{position:absolute;top:10px;left:10px;padding:6px;background:#183cff;color:white;font-size:11px}#lightboxMedia img[hidden]{display:none}

@media(max-width:600px){.grid-mode .vault-card span{font-size:10px}.vault-header .bevel{font-size:9px}dialog .window-bar{font-size:10px}}

/* Black matte behind all transparent pixel formats, including WebP and PNG. */
#lightboxMedia,#lightboxMedia>img{background:#000}
/* Model canvas lives directly inside the single archive dialog: no nested window. */
#lightboxMedia.is-model{position:relative;background:#080d23;overflow:hidden}
#lightboxMedia.is-model .vault-model-stage{width:100%;height:min(74svh,720px);min-height:320px;background:#080d23}
#lightboxMedia.is-model .mini-model-controls{position:absolute;inset:auto 0 0;z-index:5;display:flex;align-items:center;gap:8px;padding:14px;background:linear-gradient(transparent,#080d23 24%);color:var(--paper)}
#lightboxMedia.is-model .mini-model-controls button{color:var(--ink)}
#lightboxMedia.is-model .mini-model-controls [hidden]{display:none!important}
@media(max-width:600px){#lightboxMedia.is-model .vault-model-stage{height:min(70svh,550px);min-height:280px}#lightboxMedia.is-model .mini-model-controls{gap:5px;padding:10px;flex-wrap:wrap}}

/* Model thumbnails: render the real GLB, not a poster containing an archived dialog. */
.vault-card .vault-model-thumb{
 display:flex;align-items:center;justify-content:center;flex:1;min-height:0;
 width:100%;overflow:hidden;background:#080d23;color:var(--steel);
 font:700 10px var(--mono);letter-spacing:.06em;pointer-events:none;
}
.vault-card .vault-model-thumb>img,
.grid-mode .vault-card .vault-model-thumb>img{
 display:block;flex:none;width:100%;height:100%;min-height:0;
 object-fit:contain;background:#080d23;pointer-events:none;
}
