*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#100e1a;color:#f6f1ff;font-family:Arial,sans-serif}header,footer{display:flex;justify-content:space-between;padding:24px 5vw;font:12px monospace;letter-spacing:.08em;border-bottom:1px solid #6d557e}main{max-width:1600px;margin:auto;padding:48px 5vw}h1{font:clamp(36px,6vw,86px) Georgia,serif;margin:0 0 20px;letter-spacing:-.04em}h1 em{font-style:normal;color:#c3a6fb}.intro{color:#bbb2c8;font-size:16px;margin:0 0 40px}#photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 18px}.photo{padding:0;border:1px solid #6d557e;background:#191321;color:inherit;cursor:pointer;position:relative}.photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;display:block}.photo span{display:block;padding:10px;text-align:left;font:14px monospace;color:#c3a6fb}.photo:hover,.photo:focus-visible{border-color:#e3d4ff;outline:2px solid #c3a6fb;outline-offset:4px}dialog{border:1px solid #8d57c5;padding:0;width:96vw;max-width:1400px;height:94dvh;max-height:94dvh;background:#100e1a;color:#f6f1ff}dialog::backdrop{background:#07050cef}.toolbar{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid #392448}.toolbar a,button{font:14px monospace;letter-spacing:.03em}.toolbar a{color:#c3a6fb;text-decoration:none;padding:12px}.toolbar button,.stage button{border:1px solid #8d57c5;background:#21162f;color:#f6f1ff;padding:14px;cursor:pointer}.stage{height:calc(100% - 75px);display:grid;grid-template-columns:80px minmax(0,1fr) 80px;align-items:center;gap:10px;padding:12px}.stage img{width:100%;height:100%;object-fit:contain;min-height:0;max-height:100%}footer{border-top:1px solid #6d557e;border-bottom:0;color:#bbb2c8;margin-top:30px}:focus-visible{outline:2px solid #e3d4ff;outline-offset:4px}@media(max-width:900px){#photos{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){header{flex-direction:column;gap:10px}main{padding-top:30px}#photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.toolbar{flex-wrap:wrap;padding:12px}.toolbar a{font-size:12px;padding:8px}.stage{height:calc(100% - 115px);grid-template-columns:46px minmax(0,1fr) 46px;padding:4px;gap:3px}.stage button{padding:10px 3px;font-size:12px}}