*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#111;color:#fff;min-height:100vh}.password-gate{display:flex;justify-content:center;align-items:center;min-height:100vh}.password-gate form{display:flex;flex-direction:column;gap:1rem;text-align:center}.password-gate input{padding:.75rem 1rem;font-size:1rem;border:1px solid #333;border-radius:4px;background:#222;color:#fff}.password-gate button{padding:.75rem 1rem;font-size:1rem;border:none;border-radius:4px;background:#fff;color:#111;cursor:pointer}.password-gate .error{color:#f66}.gallery{padding:2rem;max-width:1400px;margin:0 auto}.gallery h1{margin-bottom:2rem;text-align:center}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.gallery-item{aspect-ratio:1;overflow:hidden;border-radius:4px;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.gallery-item:hover img{transform:scale(1.05)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:100}.lightbox img{max-width:90vw;max-height:90vh;object-fit:contain}.lightbox-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;opacity:.7;transition:opacity .2s}.lightbox-close:hover{opacity:1}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;opacity:.7;transition:opacity .2s;padding:1rem}.lightbox-nav:hover{opacity:1}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-download{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);background:#fff;color:#111;padding:.5rem 1.5rem;border-radius:4px;text-decoration:none;font-weight:500;opacity:.9;transition:opacity .2s}.lightbox-download:hover{opacity:1}.credits{margin-top:4rem;padding-top:2rem;border-top:1px solid #333;text-align:center}.credits h2{font-size:1.25rem;font-weight:400;margin-bottom:1.5rem;color:#888}.credits ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem 3rem}.credits li{color:#aaa}.credits a{color:#fff;text-decoration:none}.credits a:hover{text-decoration:underline}
