@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff")}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-latin-400-normal-q5-78SH_.woff2)format("woff2"),url(/assets/great-vibes-latin-400-normal-BAZ173uY.woff)format("woff")}:root{color:#252823;font-synthesis:none;--green:#283d30;--ivory:#f7f1e7;--gold:#dec79e;--wine:#6d293b;background:#f7f1e7;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button{min-height:44px}input,select{min-height:48px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #ad6048}h1,h2{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;line-height:1.1}h1{margin:.7rem 0 1rem;font-size:clamp(2rem,5vw,3.8rem)}h2{margin:.5rem 0 1rem;font-size:2rem}p{line-height:1.65}label{margin-bottom:.5rem;font-size:.9rem;font-weight:600;display:block}input{color:#252823;background:#fffdf8;border:1px solid #8a8e7d;border-radius:8px;width:100%;padding:.85rem 1rem;font-size:16px}select{color:inherit;background:0 0;border:1px solid #8a8e7d;border-radius:8px;max-width:100%;padding:.5rem}.primary,.secondary,.danger{text-align:center;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:.65rem;padding:.9rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.primary{background:var(--green);color:var(--ivory)}.primary span{font-size:1.4rem;line-height:1}.secondary{color:var(--green);background:0 0;border-color:#858b7e}.danger{background:var(--wine);color:#fff}.text-button{color:var(--green);text-underline-offset:4px;background:0 0;border:0;padding:.5rem .3rem;text-decoration:underline}.hint{color:#596052;font-size:.8rem;line-height:1.6}.error{color:#74243b;overflow-wrap:anywhere;background:#f8e6e5;border-left:3px solid #8a3146;border-radius:4px;padding:.75rem;font-size:.9rem}.notice{background:#e8ecdf;border-radius:8px;padding:1rem;font-size:.9rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.welcome{background:var(--green);background-image:radial-gradient(at 10% 0,#4a5844 0%,#0000 65%);flex-direction:column;align-items:center;min-height:100svh;padding:3rem 1rem 1.5rem;display:flex}.welcome-intro{text-align:center;color:var(--gold);margin-bottom:1.5rem}.welcome-intro .eyebrow{font-size:.62rem}.names{margin:1.4rem 0 .4rem;font-family:Great Vibes,cursive;font-size:clamp(3rem,9vw,4.7rem);line-height:1.25}.date{letter-spacing:.12em;margin:0;font-family:Cormorant Garamond,serif;font-size:1.2rem}.welcome-card{isolation:isolate;background:var(--ivory);text-align:center;border-radius:3px;width:100%;max-width:470px;padding:1.6rem 1.5rem 1rem;position:relative;box-shadow:0 12px 70px #11221650}.welcome-card h1{font-size:2.1rem}.welcome-card>p{color:#555f51;font-size:.9rem}.welcome-card form{z-index:1;margin:1.5rem 0 .7rem;position:relative}.welcome-card label{text-align:left}.welcome-card .primary{width:100%;margin-top:.7rem}.pin-input{text-align:center;letter-spacing:.45em;font-size:1.35rem}.quiet{font-size:.75rem}.small-ornament{color:var(--wine);font-size:1.7rem}.botanical{pointer-events:none}.welcome-card .botanical{opacity:.5;z-index:-1;width:125px;position:absolute;bottom:-13px;right:-8px}.welcome-privacy{color:var(--gold);margin-top:1rem;font-size:.75rem}.site-header{background:var(--green);color:var(--ivory);justify-content:space-between;align-items:center;gap:1rem;padding:1rem max(1.25rem,50vw - 600px);display:flex}.brand{color:var(--gold);flex-direction:column;flex-shrink:0;text-decoration:none;display:flex}.brand-names{font-family:Great Vibes,cursive;font-size:1.9rem}.brand-date{letter-spacing:.16em;text-align:center;margin-top:2px;font-size:.65rem}.header-actions{gap:.8rem;display:flex}.header-actions .text-button{color:var(--ivory);font-size:.75rem}.gallery-main{max-width:1200px;margin:auto;padding:0 1.25rem}.gallery-intro{padding:3rem 0 2.5rem;position:relative}.gallery-intro h1{max-width:85%}.gallery-intro>p{color:#596052;font-size:.95rem}.gallery-intro .botanical{opacity:.65;width:180px;position:absolute;bottom:1rem;right:0}.gallery-intro .primary{z-index:1;margin-top:.7rem;position:relative}.gallery-toolbar{border-top:1px solid #d3d4c6;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.filters{gap:.25rem;display:flex}.filters button{color:var(--green);background:0 0;border:1px solid #0000;border-radius:24px;padding:.5rem 1rem;font-size:.85rem}.filters button.active{background:var(--green);color:var(--ivory)}.sort-label{margin:0;font-weight:400}.sort-label select{min-height:44px;font-size:.8rem}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.photo-tile{aspect-ratio:1;background:#e2e4d7;border:0;border-radius:8px;padding:0;position:relative;overflow:hidden}.photo-tile img{object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.photo-tile:hover img{transform:scale(1.025)}.video-badge,.hidden-badge{color:#fff;background:#17291fe8;border-radius:4px;padding:.25rem .4rem;font-size:.7rem;position:absolute;top:.5rem;left:.5rem}.hidden-badge{top:auto;bottom:.5rem}.photo-attribution{text-align:left;color:#fff;background:linear-gradient(#0000,#000b);padding:1.5rem .6rem .5rem;font-size:.7rem;position:absolute;bottom:0;left:0;right:0}.processing-tile{color:#455240;padding:1rem;font-size:.8rem;display:block}.empty-state{text-align:center;border:1px dashed #aaad99;border-radius:10px;margin:1rem 0;padding:3rem 1rem}.empty-state h2{font-size:1.8rem}.empty-state p{color:#596052;font-size:.9rem}.empty-icon{color:#6d293b;font-size:2.7rem}.load-more{justify-content:center;margin:2rem 0;display:flex}footer{color:#596052;border-top:1px solid #d3d4c6;justify-content:space-between;align-items:center;padding:1.5rem 0;font-size:.75rem;display:flex}footer .text-button{font-size:.75rem}.mobile-upload-bar{display:none}.admin-panel{background:#e8ecdf;border-radius:10px;margin-bottom:1.5rem;padding:1.5rem}.pin-form{max-width:400px;margin:1rem 0}.pin-form button{margin-top:.7rem}.admin-panel details{overflow-wrap:anywhere}dialog{background:var(--ivory);color:#252823;overscroll-behavior:contain;border:0;border-radius:14px;width:calc(100% - 2rem);max-width:620px;max-height:90svh;padding:1.5rem}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#102015b8}body:has(dialog[open]){overflow:hidden}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dialog-heading h2{font-size:2.2rem}.dialog-heading .eyebrow{font-size:.6rem}.icon-button{width:44px;min-width:44px;height:44px;color:inherit;background:0 0;border:0;border-radius:50%;font-size:2rem;line-height:1}.upload-dialog>p{font-size:.9rem}.choose-files{width:100%;margin-top:1.25rem}.upload-tip{background:#e8ecdf;border-radius:8px;padding:.8rem;font-size:.8rem!important}.upload-list{margin:1.5rem 0;padding:0;list-style:none}.upload-list li{border-bottom:1px solid #d3d4c6;padding:1rem 0}.upload-file-heading{justify-content:space-between;gap:.5rem;font-size:.8rem;display:flex}.upload-file-heading strong{overflow-wrap:anywhere;min-width:0}.upload-file-heading>span{white-space:nowrap;color:#596052;font-size:.7rem}progress{width:100%;height:8px;accent-color:var(--green);margin:.65rem 0}.upload-status{color:#455240;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.upload-status .text-button{font-size:.75rem}.full-width{width:100%}.privacy-dialog p{font-size:.9rem}.viewer{color:var(--ivory);background:#141c17;width:calc(100% - 1.5rem);max-width:1100px;padding:1rem}.viewer-top{justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.viewer-media{justify-content:center;align-items:center;height:min(65svh,700px);display:flex}.viewer-media img,.viewer-media video{object-fit:contain;max-width:100%;max-height:100%;display:block}.viewer-navigation{justify-content:space-between;margin-top:.7rem;display:flex}.viewer .secondary{color:var(--ivory);border-color:#95a68c;padding:.5rem .8rem}.viewer-meta{justify-content:space-between;align-items:center;gap:1rem;font-size:.8rem;display:flex}.viewer-meta p{overflow-wrap:anywhere}.viewer-meta p span{color:#bac2b5}.download-link{color:var(--gold);flex-direction:column;min-height:44px;padding:.7rem 0;display:inline-flex}.download-link span{font-size:.7rem}.viewer-admin{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.viewer-admin button{font-size:.75rem}.loading-screen{place-items:center;min-height:100svh;display:grid}@media (width>=900px){.gallery-intro{padding:3.5rem 0}.gallery-intro .botanical{width:270px;right:2rem}.welcome{padding-top:4rem}}@media (width<=700px){.gallery-main{padding:0 1rem}.site-header{padding:.8rem 1rem}.brand-names{font-size:1.6rem}.header-actions{gap:.35rem}.gallery-intro{padding:2rem 0 1.5rem}.gallery-intro h1{max-width:85%;font-size:2.5rem}.gallery-intro>p{font-size:.85rem}.gallery-intro .botanical{opacity:.4;width:105px;bottom:.6rem;right:-.5rem}.desktop-upload{display:none}.gallery-toolbar{gap:.5rem}.filters{gap:0}.filters button{padding:.45rem .7rem;font-size:.8rem}.sort-label select{max-width:140px;padding:.4rem;font-size:.7rem}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-upload-bar{z-index:5;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:#f7f1e7f5;border-top:1px solid #d3d4c6;display:block;position:fixed;bottom:0;left:0;right:0}.mobile-upload-bar .primary{width:100%;min-height:52px;font-size:.9rem}.gallery-shell{padding-bottom:calc(90px + env(safe-area-inset-bottom))}dialog.upload-dialog{width:100%;max-width:none;max-height:93svh;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;margin:auto 0 0}.viewer{border-radius:0;width:100%;height:100svh;max-height:100svh;margin:0;padding:1rem}.viewer-media{height:60svh}.viewer-meta{flex-direction:column;align-items:flex-start;gap:0}.viewer-meta p{margin-bottom:0}.welcome{padding-top:2rem}.welcome-card{padding:1.2rem}.welcome-card h1{font-size:1.85rem}.welcome-intro{margin-bottom:1.2rem}.names{font-size:3.4rem}.empty-state{padding:2rem 1rem}}@media (width<=359px){.gallery-toolbar{flex-wrap:wrap}.sort-label{margin-left:auto}.header-actions{flex-direction:column;gap:0}.header-actions .text-button{min-height:44px;padding:.3rem}.gallery-intro h1{font-size:2.2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
