:root { --maxw: 1100px; --gap: 14px; --bg:#fff; --fg:#111; }
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:16px/1.5 -apple-system,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
header{max-width:var(--maxw);margin:0 auto;padding:18px 16px;display:flex;align-items:center;justify-content:space-between}
.brand{font-size:18px;letter-spacing:.06em;text-transform:uppercase}
nav a{margin-left:18px;opacity:.85}
nav a:hover,nav a:focus{opacity:1;text-decoration:underline;text-underline-offset:3px}
.hero{max-width:var(--maxw);margin:0 auto;padding:6px 16px 10px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:6px 16px 40px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.tile{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:10px}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.tile:focus-within img,.tile:hover img{transform:scale(1.02)}
.tile button{position:absolute;inset:0;border:0;padding:0;background:transparent;cursor:pointer;outline-offset:3px}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.grid{grid-template-columns:1fr}header{flex-wrap:wrap;gap:8px}nav{width:100%;display:flex;gap:14px}}
dialog.lb{border:none;padding:0;width:100%;max-width:min(96vw,1200px);background:transparent}
dialog::backdrop{background:rgba(0,0,0,.9)}
.lb__frame{position:relative}
.lb__img{width:100%;height:auto;border-radius:10px}
.lb__close,.lb__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;backdrop-filter:blur(3px)}
.lb__close{top:10px;right:10px;transform:none}
.lb__nav.prev{left:10px}
.lb__nav.next{right:10px}
.lb__caption{color:#eee;font-size:14px;margin-top:8px;text-align:center}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
