:root{--bg:#fefdfb;--ink:#1f1b2e;--soft:#6f6a80;--primary:#5b4fe8;--yellow:#f7b733;--green:#2fae6b;--line:#ece9f6}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{min-height:100vh;background:var(--bg);color:var(--ink);font-family:Inter,sans-serif;overflow-x:hidden}
body.no-scroll{overflow:hidden}
a{text-decoration:none;color:inherit}
button{font:inherit}
.gallery-header{max-width:1320px;margin:auto;padding:30px 42px;display:flex;align-items:center;justify-content:space-between}
.brand{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:20px;display:flex;align-items:center;gap:8px}
.brand-logo{height:38px;width:auto;display:block}
.gallery-header-right{display:flex;align-items:center;gap:24px}
.back{font-size:14px;font-weight:700;color:var(--soft)}.back:hover{color:var(--primary)}
.lang-switch{display:flex;gap:4px;background:#f3f1f8;padding:4px;border-radius:999px}
.lang-switch button{border:0;background:transparent;color:var(--soft);font:700 11px Inter,sans-serif;padding:8px 9px;border-radius:999px;cursor:pointer}
.lang-switch button.active{background:#fff;color:var(--primary);box-shadow:0 3px 10px rgba(31,27,46,.10)}
main{max-width:1320px;margin:auto;padding:20px 42px 80px}
.gallery-hero{padding:45px 0 55px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--primary)}
.gallery-hero h1{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;letter-spacing:-.055em;line-height:.98;font-size:clamp(52px,7vw,92px);margin:18px 0 22px}
.gallery-hero h1 span:last-child{color:var(--primary)}
.gallery-hero p{max-width:620px;color:var(--soft);font-size:17px;line-height:1.7}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.photo-card{border:0;padding:0;background:#fff;border-radius:24px;overflow:hidden;cursor:pointer;box-shadow:0 20px 50px -35px rgba(31,27,46,.45);transition:transform .25s ease,box-shadow .25s ease;aspect-ratio:1/1}
.photo-card:hover{transform:translateY(-5px);box-shadow:0 30px 60px -35px rgba(31,27,46,.55)}
.photo-card img{display:block;width:100%;height:100%;object-fit:cover}
.empty-gallery{color:var(--soft);padding:40px 0}
.lightbox{position:fixed;inset:0;background:rgba(20,17,30,.92);display:none;align-items:center;justify-content:center;z-index:1000;padding:40px}
.lightbox.is-open{display:flex}
.lightbox img{max-width:min(92vw,1200px);max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.4)}
.lightbox-close,.lightbox-nav{position:absolute;border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.13);backdrop-filter:blur(8px);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:24px}
.lightbox-close{right:24px;top:24px}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:22px}
.lightbox-nav.prev{left:24px}.lightbox-nav.next{right:24px}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.24)}
.album-card-disabled{cursor:default;opacity:.78}
.album-card-disabled:hover{transform:none;box-shadow:0 20px 50px -42px rgba(31,27,46,.45)}
@media(max-width:900px){.gallery-header,main{padding-left:24px;padding-right:24px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.gallery-header{padding:22px 18px}.gallery-header-right{gap:10px}.back{font-size:12px}main{padding:10px 18px 50px}.gallery-hero{padding:30px 0 38px}.gallery-hero h1{font-size:52px}.gallery-hero p{font-size:15px}.photo-grid{grid-template-columns:1fr;gap:16px}.lightbox{padding:18px}.lightbox-nav.prev{left:10px}.lightbox-nav.next{right:10px}.lightbox-close{right:12px;top:12px}}

.password-panel{max-width:650px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:36px;box-shadow:0 25px 70px -50px rgba(31,27,46,.5);margin-bottom:45px}
.lock-icon{font-size:28px;margin-bottom:14px}
.password-panel h2{font-family:"Plus Jakarta Sans",sans-serif;font-size:30px;letter-spacing:-.04em;margin-bottom:10px}
.password-panel>p{color:var(--soft);line-height:1.6;margin-bottom:22px}
.password-row{display:flex;gap:10px}
.password-row input{min-width:0;flex:1;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font-size:15px;outline:none;background:#fff}
.password-row input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,79,232,.10)}
.password-button{border:0;border-radius:14px;padding:14px 22px;background:var(--primary);color:#fff;font-weight:800;cursor:pointer}
.password-button:disabled{opacity:.6;cursor:wait}
.password-error{min-height:20px;color:#c53b55;font-size:13px;margin-top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:560px){.password-panel{padding:24px;border-radius:24px}.password-row{flex-direction:column}.password-button{width:100%}}
