@font-face{font-family:'Cinzel';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/cinzel-latin-ext.woff2') format('woff2')}@font-face{font-family:'Cinzel';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/cinzel-latin.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 500;font-display:swap;src:url('../fonts/playfairdisplay-latin-ext.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 500;font-display:swap;src:url('../fonts/playfairdisplay-latin.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 500;font-display:swap;src:url('../fonts/playfairdisplay-italic-latin-ext.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 500;font-display:swap;src:url('../fonts/playfairdisplay-italic-latin.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 500;font-display:swap;src:url('../fonts/cormorantgaramond-latin-ext.woff2') format('woff2')}@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 500;font-display:swap;src:url('../fonts/cormorantgaramond-latin.woff2') format('woff2')}

:root{--bordeaux:#6b0f1a;--gold:#c6a75e;--cream:#f7f3eb;--green:#0f2a1d;--ink:#2c2c2c;--white:#fff;--headline:'Cinzel',serif;--sub:'Playfair Display',serif;--body:'Cormorant Garamond',serif}*,*::before,*::after{box-sizing:border-box}html{font-size:16px;background:var(--cream)}body{margin:0;min-height:100vh;color:var(--ink);background:var(--cream);font-family:var(--body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}img{display:block;max-width:100%}.eyebrow{margin:0 0 12px;color:var(--gold);font-family:var(--headline);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}h1,h2{margin:0;color:var(--bordeaux);font-family:var(--headline);font-weight:500;letter-spacing:.16em;line-height:1.25;text-transform:uppercase}

.login-page{background:var(--green)}.login-shell{position:relative;display:grid;min-height:100vh;place-items:center;padding:44px 20px;background:radial-gradient(circle at 50% 18%,rgba(198,167,94,.14),transparent 38%),var(--green)}.login-shell::before,.login-shell::after{content:'';position:fixed;pointer-events:none}.login-shell::before{inset:22px;border:1px solid rgba(198,167,94,.42)}.login-shell::after{inset:38px;border:1px solid rgba(247,243,235,.12)}.login-card{position:relative;z-index:1;width:min(500px,100%);padding:48px clamp(24px,7vw,58px) 42px;text-align:center;background:rgba(247,243,235,.98);border:1px solid rgba(198,167,94,.7);box-shadow:0 28px 90px rgba(0,0,0,.28)}.login-card::before{content:'';position:absolute;inset:10px;border:1px solid rgba(107,15,26,.18);pointer-events:none}.brand-mark{position:relative;display:inline-block;width:98px;margin-bottom:22px}.brand-mark img{width:100%;filter:drop-shadow(0 9px 18px rgba(15,42,29,.12))}.login-card h1{font-size:clamp(1.55rem,6vw,2.2rem)}.login-card__intro{max-width:360px;margin:22px auto 26px;font-size:1.16rem}.login-form{display:grid;gap:10px;text-align:left}.login-form label{font-family:var(--headline);font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}.login-form input{width:100%;height:52px;padding:0 15px;color:var(--ink);background:var(--white);border:1px solid rgba(107,15,26,.34);border-radius:0;outline:none}.login-form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(198,167,94,.2)}.login-form button,.logout-button{cursor:pointer;border:1px solid var(--gold);font-family:var(--headline);font-size:.67rem;letter-spacing:.16em;text-transform:uppercase}.login-form button{height:52px;margin-top:7px;color:var(--cream);background:var(--bordeaux);transition:background .2s,color .2s}.login-form button:hover{color:var(--green);background:var(--gold)}.form-message{margin:0 0 18px;padding:10px 12px;color:var(--bordeaux);background:rgba(107,15,26,.07);border-left:2px solid var(--bordeaux);font-size:1rem}.back-link{position:relative;display:inline-block;margin-top:25px;color:var(--bordeaux);font-family:var(--headline);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;border-bottom:1px solid rgba(107,15,26,.35)}

.gallery-page{background:var(--cream)}.gallery-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:10px clamp(18px,4vw,56px);color:var(--cream);background:rgba(15,42,29,.97);border-bottom:1px solid rgba(198,167,94,.42);backdrop-filter:blur(12px)}.gallery-header__brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-family:var(--headline);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}.gallery-header__brand img{width:44px;height:44px;object-fit:contain}.logout-button{padding:10px 13px;color:var(--gold);background:transparent}.logout-button:hover{color:var(--green);background:var(--gold)}.gallery-intro{position:relative;padding:70px 20px 56px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.56),transparent)}.gallery-intro__ornament{width:180px;margin:0 auto 28px}.gallery-intro h1{font-size:clamp(1.7rem,5vw,2.7rem)}.gallery-intro>p:not(.eyebrow){max-width:570px;margin:20px auto 17px;font-family:var(--sub);font-style:italic;font-size:1.08rem}.photo-count{display:inline-block;color:var(--green);font-family:var(--headline);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase}.photo-grid{width:min(1500px,100%);margin:0 auto;padding:0 clamp(12px,2vw,30px) 88px;columns:4 260px;column-gap:clamp(10px,1.25vw,18px)}.photo-card{position:relative;display:inline-block;width:100%;margin:0 0 clamp(10px,1.25vw,18px);overflow:hidden;background:#e8e1d6;border:1px solid rgba(198,167,94,.4);break-inside:avoid;box-shadow:0 10px 25px rgba(15,42,29,.08)}.photo-card__open{display:block;width:100%;padding:0;cursor:zoom-in;background:none;border:0}.photo-card__open img{width:100%;height:auto;transition:transform .5s ease,filter .3s ease}.photo-card__open:hover img{transform:scale(1.018);filter:brightness(.92)}.photo-card__open:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.photo-card__download{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 10px;color:var(--cream);background:rgba(15,42,29,.9);border:1px solid rgba(198,167,94,.68);text-decoration:none;font-family:var(--headline);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;width:40px;justify-content:center;opacity:1;transform:none;transition:width .2s,background .2s}.photo-card__download span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.photo-card:hover .photo-card__download,.photo-card:focus-within .photo-card__download{width:auto;padding:7px 10px}.photo-card:hover .photo-card__download span,.photo-card:focus-within .photo-card__download span{position:static;width:auto;height:auto;overflow:visible;clip:auto}.photo-card__download:hover{color:var(--green);background:var(--gold)}.photo-card__download svg,.lightbox__caption svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.empty-gallery{padding:60px 20px 120px;text-align:center}.empty-gallery h2{font-size:1.2rem}.gallery-footer{padding:58px 20px 36px;text-align:center;color:rgba(247,243,235,.84);background:var(--green);border-top:1px solid rgba(198,167,94,.42)}.gallery-footer img{width:210px;margin:0 auto 22px;opacity:.78}.gallery-footer a{color:var(--gold);font-family:var(--headline);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase}.gallery-footer p{margin:16px 0 0;font-size:.9rem}

body.lightbox-open{overflow:hidden}.lightbox[hidden]{display:none}.lightbox{position:fixed;z-index:100;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .18s ease}.lightbox.is-visible{opacity:1}.lightbox__backdrop{position:absolute;inset:0;background:rgba(7,16,12,.96);backdrop-filter:blur(8px)}.lightbox__panel{position:relative;z-index:1;display:grid;width:100%;height:100%;grid-template-columns:74px minmax(0,1fr) 74px;align-items:center;padding:54px 16px 18px}.lightbox__figure{display:flex;min-width:0;height:100%;margin:0;flex-direction:column;align-items:center;justify-content:center}.lightbox__figure>img{max-width:100%;max-height:calc(100vh - 130px);object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.38)}.lightbox__caption{display:flex;width:min(100%,1000px);min-height:58px;align-items:center;justify-content:space-between;gap:20px;padding-top:13px;color:rgba(247,243,235,.8);font-family:var(--headline);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}.lightbox__caption a{display:flex;align-items:center;gap:8px;color:var(--gold);text-decoration:none}.lightbox__close,.lightbox__nav{cursor:pointer;color:var(--cream);background:rgba(15,42,29,.64);border:1px solid rgba(198,167,94,.55);transition:color .2s,background .2s}.lightbox__close:hover,.lightbox__nav:hover{color:var(--green);background:var(--gold)}.lightbox__close{position:absolute;z-index:2;top:16px;right:18px;width:43px;height:43px;font-family:Arial,sans-serif;font-size:2rem;font-weight:200;line-height:1}.lightbox__nav{display:grid;width:50px;height:62px;place-items:center}.lightbox__nav svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.lightbox__nav--previous{justify-self:end}.lightbox__nav--next{justify-self:start}

@media (hover:none){.photo-card__download{opacity:1;transform:none}.photo-card__download span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.photo-card__download{width:40px;justify-content:center;padding:7px}}
@media (max-width:720px){body{font-size:17px}.login-shell{padding:28px 14px}.login-shell::before{inset:10px}.login-shell::after{display:none}.login-card{padding:38px 22px 32px}.gallery-header{min-height:62px;padding:8px 13px}.gallery-header__brand span{display:none}.gallery-header__brand img{width:40px;height:40px}.logout-button{padding:8px 10px;font-size:.58rem}.gallery-intro{padding:52px 18px 42px}.gallery-intro__ornament{width:148px}.photo-grid{padding:0 9px 56px;columns:2 145px;column-gap:8px}.photo-card{margin-bottom:8px}.photo-card__download{right:7px;bottom:7px}.lightbox__panel{grid-template-columns:50px minmax(0,1fr) 50px;padding:52px 5px 12px}.lightbox__figure>img{max-height:calc(100vh - 132px)}.lightbox__nav{width:42px;height:54px}.lightbox__caption{padding:12px 5px 0;font-size:.59rem}.lightbox__caption a{gap:5px}.lightbox__close{top:8px;right:8px}.gallery-footer{padding-top:44px}}
@media (max-width:340px){.photo-grid{columns:1 250px}.lightbox__panel{grid-template-columns:42px minmax(0,1fr) 42px}.lightbox__nav{width:38px}.lightbox__caption{gap:10px}.lightbox__caption a{font-size:0}.lightbox__caption a svg{width:22px;height:22px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
