.links a.active{color:#d1c073}
.gallery-hero{position:relative;overflow:hidden;background:linear-gradient(105deg,rgba(27,32,10,.96),rgba(45,52,17,.8)),url('assets/adventure-woodland.jpeg') center 45%/cover;color:#fff;padding:118px 0 104px}
.gallery-hero:after{content:"";position:absolute;inset:auto -4% -54px;height:100px;background:var(--cream);border-radius:50% 50% 0 0/45% 45% 0 0}
.gallery-hero-copy{position:relative;z-index:1;max-width:760px;margin-left:auto;margin-right:auto;text-align:center}.gallery-hero h1{font:500 clamp(3.7rem,8vw,6.5rem)/.92 var(--serif);letter-spacing:-.045em;margin:.22em 0}.gallery-hero p{max-width:640px;margin:0 auto;color:#ecebdc;font-size:1.18rem}
.gallery-section{padding:72px 0 100px}.gallery-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:end;margin-bottom:38px}.gallery-kicker{color:var(--leaf);font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:.8rem}.gallery-intro h2{font:500 clamp(2.5rem,5vw,4.3rem)/1 var(--serif);margin:.16em 0 0}.gallery-intro p{font-size:1.08rem;color:#5c604c;margin:0 0 .5rem}
.photo-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-flow:dense;gap:18px}.photo-card{grid-column:span 4;position:relative;margin:0;min-height:330px;border-radius:24px;overflow:hidden;background:var(--olive);box-shadow:0 18px 42px rgba(34,39,13,.15)}.photo-card-wide{grid-column:span 8}.photo-card-tall{grid-row:span 2;min-height:678px}.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.photo-card:hover img{transform:scale(1.025)}.photo-card:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(18,22,6,.87))}.photo-card figcaption{position:absolute;z-index:1;left:22px;right:22px;bottom:20px;color:#fff}.photo-card figcaption strong,.photo-card figcaption span{display:block}.photo-card figcaption strong{font:600 1.38rem/1.1 var(--serif)}.photo-card figcaption span{margin-top:5px;color:#e5e1cf;font-size:.88rem}.gallery-owner-link{margin-top:38px;padding:20px 24px;border:1px solid #d5ccb2;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px}.gallery-owner-link span{color:#646553}.gallery-owner-link a{color:var(--leaf);font-weight:800}
.admin-preview-body{background:#ede7d5}.admin-header{background:var(--olive);color:#fff;padding:12px 0}.admin-nav{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-nav .brand img{width:48px;height:48px}.owner-chip{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 13px;font-size:.84rem}.owner-dot{width:9px;height:9px;border-radius:50%;background:#d1c073}.admin-main{padding:58px 0 90px}.admin-shell{max-width:1040px}.admin-title-row{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}.admin-title-row h1{font:500 clamp(2.8rem,6vw,4.9rem)/.95 var(--serif);letter-spacing:-.04em;margin:.2em 0}.admin-title-row p{margin:0;color:#5c604c}.view-gallery{font-weight:800;color:var(--leaf);white-space:nowrap}.upload-panel{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:28px 30px;border:2px dashed #b7ad8d;border-radius:24px;background:#faf8f0}.upload-panel h2{font:600 1.6rem/1 var(--serif);margin:0 0 7px}.upload-panel p{margin:0;color:#686958}.upload-icon{width:62px;height:62px;border-radius:18px;background:var(--olive);position:relative}.upload-icon:before,.upload-icon:after,.upload-icon span:before{content:"";position:absolute;background:#d1c073;border-radius:2px}.upload-icon:before{width:25px;height:3px;left:19px;top:30px}.upload-icon:after{width:3px;height:25px;left:30px;top:19px}.upload-icon span:before{width:20px;height:3px;left:21px;top:44px;background:#fff}.upload-note{margin-top:14px;padding:14px 18px;border-radius:14px;background:#e0e2ca;color:#343918;font-weight:700}.manage-section{margin-top:42px}.manage-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.manage-heading h2{font:600 2rem/1 var(--serif);margin:0 0 8px}.manage-heading p{margin:0;color:#686958}.manage-heading>span{font-weight:800;color:var(--leaf)}.manage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.manage-card{overflow:hidden;border:1px solid #d3cab0;border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(34,39,13,.08)}.manage-card img{width:100%;height:190px;object-fit:cover}.manage-card-copy{padding:15px}.manage-card input{width:100%;border:1px solid #c8c0a9;border-radius:10px;padding:10px 11px;font:inherit}.manage-actions{display:flex;gap:7px;margin-top:11px}.manage-actions button{border:1px solid #c8c0a9;background:#fff;border-radius:9px;min-height:38px;padding:0 11px;font:inherit;font-weight:700;color:#343918}.manage-actions .move{font-size:1.4rem;line-height:1}.manage-actions .delete{margin-left:auto;color:#7a2e21}.save-row{margin-top:28px;padding-top:24px;border-top:1px solid #cfc5aa;display:flex;align-items:center;justify-content:space-between;gap:24px}.save-row span{color:#686958}
@media(max-width:780px){.gallery-hero{padding:78px 0 76px}.gallery-intro{grid-template-columns:1fr;gap:12px}.photo-grid{grid-template-columns:1fr}.photo-card,.photo-card-wide,.photo-card-tall{grid-column:auto;grid-row:auto;min-height:360px}.gallery-owner-link{align-items:flex-start;flex-direction:column}.owner-chip{font-size:.75rem}.admin-main{padding:40px 0 70px}.admin-title-row{align-items:flex-start;flex-direction:column}.upload-panel{grid-template-columns:auto 1fr;padding:22px}.upload-button{grid-column:1/-1;width:100%}.manage-grid{grid-template-columns:1fr}.manage-card img{height:230px}.save-row{align-items:stretch;flex-direction:column}.save-row .button{width:100%}}

/* Live gallery and secure owner tools */
.photo-card video{width:100%;height:100%;object-fit:cover}.photo-card:after{pointer-events:none}.photo-card figcaption{pointer-events:none}.gallery-loading{padding:28px;border:1px solid #d5ccb2;border-radius:18px;background:#fff;text-align:center;color:#646553}.manage-card video{width:100%;height:190px;object-fit:cover}.auth-panel{max-width:560px;margin:25px auto 0;padding:36px;border:1px solid #d3cab0;border-radius:24px;background:#fff;box-shadow:0 18px 45px rgba(34,39,13,.1)}.auth-panel h1{font:500 clamp(2.7rem,6vw,4.2rem)/.95 var(--serif);margin:.18em 0}.auth-panel>p{color:#5c604c}.auth-form{display:grid;gap:16px;margin-top:25px}.auth-form label{display:grid;gap:7px;font-weight:800}.auth-form input{width:100%;border:1px solid #c8c0a9;border-radius:11px;padding:13px;font:inherit}.auth-form .button{width:100%;margin-top:2px}.text-button{border:0;background:none;padding:10px 0;color:var(--leaf);font:inherit;font-weight:800;text-decoration:underline;cursor:pointer}.auth-panel>.text-button{width:100%;margin-top:12px}.auth-message{min-height:1.5em;margin-bottom:0!important;font-weight:700}.auth-message.error,.upload-note.error{background:#f4d9d2;color:#7a2e21}.auth-message.error{padding:12px;border-radius:10px}.admin-title-actions{display:flex;align-items:center;gap:20px}
@media(max-width:780px){.admin-title-actions{align-items:flex-start;flex-direction:column;gap:4px}.manage-card video{height:230px}.auth-panel{padding:26px 22px}}
