:root{--bg:#212121;--surface:#2a2a2a;--text:#e6e6e6;--text-muted:#b1b1b1;--accent:#ffffff;--gap:24px;--max-width:1008px;--font:"Lucida Grande",Verdana,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}img{max-width:100%;height:auto}img,picture{display:block}.site-nav{max-width:var(--max-width);margin:0 auto;padding:20px 0 0;position:relative}.site-nav__brand{display:inline-block}.site-nav__logo{height:31px;width:auto;display:block}.site-nav__divider{height:1px;background:#333;margin:10px 0 0}.site-nav__list{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px;margin:0;padding:7px 0 0;list-style:none;text-transform:lowercase;font-size:.8rem;color:var(--text-muted);letter-spacing:.5px}.site-nav__auth{display:inline-flex;align-items:center;gap:9px}.site-nav__user{color:#6f6f6f;text-transform:none;letter-spacing:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-nav__authbtn{margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-transform:lowercase;cursor:pointer}.site-nav__authbtn:hover{color:var(--accent)}.site-nav__bar{display:flex;align-items:center;justify-content:space-between}.site-nav__toggle{display:none}@media (max-width:768px){.site-nav__toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-right:-8px;padding:0;background:transparent;border:0;color:var(--text-muted);cursor:pointer}.site-nav__icon{position:relative;display:block;width:22px;height:2px;background:currentColor}.site-nav__icon:after,.site-nav__icon:before{content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor}.site-nav__icon:before{top:-7px}.site-nav__icon:after{top:7px}.site-nav__icon,.site-nav__icon:after,.site-nav__icon:before{transition:transform .2s ease,top .2s ease,background .2s ease}.site-nav__toggle[aria-expanded=true] .site-nav__icon{background:transparent}.site-nav__toggle[aria-expanded=true] .site-nav__icon:before{top:0;transform:rotate(45deg)}.site-nav__toggle[aria-expanded=true] .site-nav__icon:after{top:0;transform:rotate(-45deg)}.site-nav__list{display:none}.site-nav__list.is-open{display:flex;flex-direction:column;align-items:flex-end;gap:0;position:absolute;top:100%;right:0;z-index:20;min-width:160px;padding:4px 14px 10px;background:var(--bg);border:1px solid #333;box-shadow:0 10px 28px rgba(0,0,0,.55)}.site-nav__list.is-open a{display:block;padding:8px 0;font-size:.95rem}.site-nav__list.is-open .site-nav__auth{flex-direction:column;align-items:flex-end;gap:0;margin-top:6px;padding-top:2px;border-top:1px solid #333}.site-nav__list.is-open .site-nav__authbtn{display:block;padding:8px 0;font-size:.95rem}.site-nav__list.is-open .site-nav__user{padding:8px 0 2px;max-width:60vw}}.site-main{max-width:var(--max-width);margin:0 auto;padding:13px 0 48px;min-height:60vh}@media (max-width:1056px){.site-footer,.site-main,.site-nav{padding-left:16px;padding-right:16px}}.gallery-hero,.home-hero{margin:0 0 24px;padding-bottom:24px;border-bottom:1px solid #333}.gallery-hero img,.home-hero img{width:100%;aspect-ratio:1008/305;object-fit:cover}.gallery-title{font-size:1.75rem;font-weight:600;margin:8px 0 20px;text-transform:capitalize}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--gap);gap:var(--gap);margin:0;padding:0;list-style:none}@media (max-width:900px){.photo-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.photo-grid{grid-template-columns:1fr}}.photo-grid__cell{margin:0;padding:0}.photo-grid__button{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:center;overflow:hidden}.photo-grid__button[aria-disabled=true]{cursor:not-allowed}.photo-grid__button img{width:100%;aspect-ratio:1;object-fit:cover;transition:opacity .2s ease}.photo-grid__button:hover:not([aria-disabled=true]) img{opacity:.85}.photo-grid__caption{display:block;padding:8px 0 14px;font-size:.8rem;color:var(--text-muted);text-align:center}.lightbox{position:fixed;inset:0;z-index:1000;justify-content:center;padding:32px;background:rgba(0,0,0,.92)}.lightbox,.lightbox__figure{display:flex;align-items:center}.lightbox__figure{margin:0;max-width:1280px;max-height:100%;flex-direction:column}.lightbox__figure img{max-width:100%;max-height:85vh;object-fit:contain}.lightbox__caption{margin-top:12px;font-size:.9rem;color:var(--text-muted);text-align:center}.lightbox__close,.lightbox__nav{position:absolute;background:transparent;border:0;color:var(--accent);cursor:pointer;line-height:1;padding:12px}.lightbox__close{top:16px;right:24px;font-size:2.5rem}.lightbox__nav{top:50%;transform:translateY(-50%);font-size:4rem}.lightbox__nav--prev{left:12px}.lightbox__nav--next{right:12px}.site-footer{max-width:var(--max-width);margin:40px auto 0;padding:24px 0;border-top:1px solid #333;text-align:center;color:var(--text-muted);font-size:.8rem}.not-found{padding:80px 0;text-align:center}.not-found h1{font-size:2rem;margin-bottom:8px}.login{max-width:360px;margin:8vh auto 0}.login__heading{font-size:1.5rem;font-weight:600;margin:0 0 6px}.login__hint{color:var(--text-muted);font-size:.85rem;margin:0 0 20px}.login-form{gap:14px}.login-form,.login-form__field{display:flex;flex-direction:column}.login-form__field{gap:6px;font-size:.8rem;color:var(--text-muted);text-transform:lowercase;letter-spacing:.5px}.login-form__field input{font-size:1rem;padding:10px 12px;background:#1a1a1a;border:1px solid #333;border-radius:4px;color:var(--text)}.login-form__field input:focus{outline:none;border-color:#666}.login-form__error{color:#e0908a;font-size:.85rem;margin:0}.login-form__submit{margin-top:4px;padding:11px 16px;background:#2c2c2c;border:1px solid #444;border-radius:4px;color:var(--text);font-size:.9rem;text-transform:lowercase;letter-spacing:.5px;cursor:pointer}.login-form__submit:hover{border-color:#666}.login-form__submit:disabled{opacity:.6;cursor:default}.login-form__success{color:#8fbf8f;font-size:.9rem;line-height:1.5;margin:0;padding:10px 12px;background:#1a241a;border-left:2px solid #6f9f6f;border-radius:2px}.login__forgot-link{margin:14px 0 0;font-size:.8rem;text-align:center}.login__forgot-link,.login__forgot-link a{color:var(--text-muted)}.login__forgot-link a:hover{color:var(--accent)}