.gallery-choice{margin:1.5rem 0;padding:1.1rem 0;border-block:1px solid #c6ccc0}.gallery-choice label{display:flex;gap:.75rem;align-items:flex-start;font-size:.875rem;font-weight:700;cursor:pointer;min-height:44px}.gallery-choice input{width:22px;height:22px;flex:0 0 22px;margin:2px 0 0;accent-color:#334f3c}.gallery-choice small{display:block;font-weight:400;color:#596258}.gallery-choice p{margin:.4rem 0 0}
.wedding-gallery{--gallery-ink:#29392f;--gallery-muted:#596258;--gallery-paper:#faf7f0;--gallery-line:rgb(41 57 47 / .2);width:min(calc(100% - 4rem),1160px);max-width:none;margin:0 auto 4rem;color:var(--gallery-ink);font-family:Satoshi,Arial,sans-serif;border-top:1px solid var(--gallery-line);padding-top:2rem}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.5rem}.wedding-gallery h2{font-family:Boska,Georgia,serif;font-weight:500;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:0 0 .75rem;letter-spacing:-.025em}.wedding-gallery p{max-width:55ch;font-size:.9375rem;line-height:1.65;margin:0;color:var(--gallery-muted)}.gallery-controls{display:flex;gap:.5rem;flex-shrink:0}
.wedding-gallery button{font:inherit;cursor:pointer;touch-action:manipulation}.gallery-arrow,.gallery-more,.gallery-retry{min-height:44px;min-width:44px;border:1px solid var(--gallery-line);background:transparent;color:var(--gallery-ink);padding:.5rem .85rem}.gallery-arrow{font-size:1.25rem!important}.gallery-arrow:disabled{opacity:.35;cursor:default}.gallery-arrow:not(:disabled):hover,.gallery-more:hover,.gallery-retry:hover{background:#e9ecdf}.gallery-arrow:active,.gallery-more:active{transform:translateY(1px)}
.gallery-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#9ca694 transparent;overscroll-behavior-x:contain;padding:4px 4px 16px;margin:-4px;list-style:none;min-height:10rem}.gallery-track>li{flex:0 0 clamp(180px,24vw,265px);scroll-snap-align:start;min-width:0}.gallery-photo{display:block;width:100%;aspect-ratio:4/5;position:relative;border:0;padding:0;background:#e9ecdf;overflow:hidden;text-align:left}.gallery-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease;background:#e9ecdf}.gallery-photo:hover img{transform:scale(1.035)}.gallery-photo span{display:block;font-size:.875rem;line-height:1.5;padding:1rem}.gallery-photo:active{opacity:.85}.gallery-more{margin-top:1.25rem;font-size:.875rem!important}.gallery-state{padding:2.25rem 1.5rem;background:#f0f1e7;border:1px solid var(--gallery-line)}.gallery-state p{max-width:48ch}.gallery-state button{margin-top:1rem}.gallery-skeleton{background:#e9ecdf;aspect-ratio:4/5}
.gallery-viewer{box-sizing:border-box;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:1rem 1.5rem;border:0;background:#142219;color:#faf7f0;font:1rem/1.5 Satoshi,Arial,sans-serif}.gallery-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem}.gallery-viewer::backdrop{background:#142219}.gallery-viewer .viewer-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px}.gallery-viewer h2{font:500 1.25rem/1.3 Boska,Georgia,serif;letter-spacing:0;margin:0;color:inherit}.gallery-viewer button{background:transparent;color:inherit;border:1px solid rgb(250 247 240 / .4);font:inherit;cursor:pointer;min-height:44px;min-width:44px;padding:.5rem .9rem;touch-action:manipulation}.gallery-viewer button:hover{background:rgb(250 247 240 / .12)}.gallery-viewer button:active{background:rgb(250 247 240 / .24)}.viewer-image-area{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto}.viewer-image-area img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;touch-action:pan-y pinch-zoom}.viewer-error{max-width:34ch;text-align:center}.viewer-footer{display:flex;justify-content:center;gap:1rem;align-items:center;font-size:.875rem}.viewer-count{min-width:7rem;text-align:center}.gallery-viewer :focus-visible,.wedding-gallery :focus-visible{outline:3px solid #9b813a;outline-offset:4px}[hidden]{display:none!important}
@media(max-width:760px){.wedding-gallery{width:calc(100% - 3rem);margin-bottom:2.5rem}.gallery-heading{align-items:start;gap:1rem}.gallery-controls{padding-top:.15rem}.gallery-track>li{flex-basis:67vw;max-width:280px}.gallery-viewer{padding:.75rem;gap:.5rem}.viewer-footer{gap:.6rem}.gallery-viewer h2{font-size:1.15rem}.gallery-state{padding:1.5rem}.wedding-gallery h2{font-size:2.25rem}}
@media(prefers-reduced-motion:reduce){.gallery-photo img{transition:none}.gallery-track{scroll-behavior:auto}}
