:root{font-family:Arial,Helvetica,sans-serif;color:#403733;background:#f7f3ef;font-synthesis:none;text-rendering:optimizeLegibility;--wine: #805a5a;--wine-dark: #644545;--rose: #bd8e85;--ink: #403733;--muted: #877c75;--line: #e9e0da;--paper: #fffdfa}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-size:17px}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #b7887f;outline-offset:3px}a{color:var(--wine-dark)}.hero{min-height:390px;position:relative;overflow:hidden;padding:25px max(24px,calc((100% - 1120px)/2));color:#fffaf6;background:linear-gradient(124deg,#735653 1%,#96736d 50%,#b28b7f)}.hero:before,.hero:after{content:"";position:absolute;border:1px solid rgb(255 248 241 / 16%);border-radius:50%;pointer-events:none}.hero:before{width:460px;height:460px;right:-55px;top:-220px}.hero:after{width:300px;height:300px;right:66px;top:-142px}.hero-glow{position:absolute;width:500px;height:270px;bottom:-190px;left:12%;background:#ead4be;filter:blur(75px);opacity:.22}.hero-top,.hero-bottom{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.eyebrow,.hero-bottom,.section-kicker{letter-spacing:.16em;font-size:11px;font-weight:700}.hero-top .eyebrow{color:#f1dcd1}.hero-content{max-width:970px;margin:0 auto;padding:11px 0 23px;position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:center;gap:35px}.hero-copy{text-align:center;position:relative;z-index:1;padding:16px 0 28px}.hero-photo{width:205px;height:273px;justify-self:center;margin:0;padding:5px;border:1px solid rgb(255 250 246 / 76%);border-radius:112px 112px 15px 15px;background:#fffaf6d1;box-shadow:0 16px 42px #2a191747;transform:rotate(2deg)}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 54%;border-radius:108px 108px 11px 11px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgb(255 255 255 / 48%);border-radius:50%;font-size:19px;color:#f6ded1}.script{font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:17px;color:#f0d9cc;margin:11px 0 7px}.hero h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,6vw,56px);font-weight:400;letter-spacing:.015em;margin:0}.wedding-date{color:#f5e8df;font-size:13px;letter-spacing:.19em;text-transform:uppercase;margin:11px 0 0}.welcome-message{max-width:440px;margin:13px auto 0;font-size:14px;line-height:1.65;color:#f6eae2}.hero-bottom{font-size:9px;color:#f0dbce;opacity:.86}.text-button{border:0;background:transparent;color:var(--wine);font-size:13px;padding:8px 4px}.sign-out{color:#fff8f3;position:relative;z-index:2}.access-card{width:min(100% - 32px,452px);margin:-30px auto 75px;position:relative;background:var(--paper);border:1px solid #f0e9e3;border-radius:13px;box-shadow:0 15px 45px #4f373017;padding:33px 37px 28px}.section-kicker{display:block;color:var(--rose);font-size:10px}.access-card h2,.admin-banner h2{font-family:Georgia,Times New Roman,serif;font-size:27px;font-weight:500;margin:9px 0 5px;color:var(--ink)}.access-card>p{color:var(--muted);font-size:13px;line-height:1.6;margin:0}.access-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f6f1ed;border-radius:8px;padding:4px;margin:23px 0 19px}.access-tabs button{border:0;border-radius:6px;padding:10px 5px;background:transparent;color:#867b74;font-size:12px}.access-tabs button.active{background:#fff;box-shadow:0 2px 7px #3a2b2514;color:var(--wine-dark);font-weight:700}.access-card label{display:block;margin:0 0 8px;font-size:12px;font-weight:600}.access-card input,.search-form input{width:100%;height:44px;border:1px solid var(--line);border-radius:7px;padding:0 13px;background:#fff;color:var(--ink);font-size:13px}.access-card input::placeholder,.search-form input::placeholder{color:#aaa09a}.primary-button{border:0;border-radius:7px;background:var(--wine);color:#fff;min-height:44px;padding:0 17px;display:inline-flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;font-weight:600;transition:background .15s ease,transform .15s ease}.primary-button:hover{background:var(--wine-dark);transform:translateY(-1px)}.primary-button:disabled{opacity:.65;cursor:wait}.full-width{width:100%;margin-top:13px}.full-width span,.upload-button span{font-size:17px;font-weight:400}.error-message{color:#a33c36!important;margin:8px 0 0!important;font-size:12px!important}.privacy-note{border-top:1px solid var(--line);padding-top:16px;margin-top:19px!important;font-size:11px!important;text-align:center}.privacy-note span{color:var(--rose);margin-right:5px}.content-wrap{width:min(100% - 36px,1120px);margin:28px auto 70px}.storage-card,.upload-card,.admin-tools,.admin-banner{background:var(--paper);border:1px solid #eee7e1;border-radius:11px}.storage-card{padding:18px 21px}.storage-head{display:flex;justify-content:space-between;align-items:end;gap:16px}.storage-head strong{display:block;font-family:Georgia,Times New Roman,serif;font-size:21px;margin-top:7px;font-weight:500}.storage-head strong small{font:12px Arial,sans-serif;color:var(--muted)}.storage-remaining{color:var(--muted);font-size:12px}.meter,.mini-meter{height:6px;background:#f0eae5;border-radius:8px;overflow:hidden}.meter{margin-top:14px}.meter span,.mini-meter span{display:block;height:100%;background:linear-gradient(90deg,#b78d82,#80605b);border-radius:inherit;transition:width .25s ease}.storage-alert{color:#9d4a40;font-size:11px;margin:9px 0 0}.storage-details{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:11px;color:var(--muted);font-size:11px}.upload-card{margin-top:19px;padding:22px}.upload-intro{display:flex;gap:12px;align-items:center}.upload-icon{width:36px;height:36px;border-radius:50%;background:#f5eae5;color:var(--wine);display:grid;place-items:center;font-size:21px}.upload-intro h2{font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:500;margin:0 0 4px}.upload-intro p{color:var(--muted);font-size:12px;margin:0}.upload-button{margin-top:17px;min-width:225px}.upload-hint{color:var(--muted);font-size:11px;margin:10px 0 0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.upload-list{display:grid;gap:10px;max-height:350px;overflow:auto;margin-top:17px}.retry-failed{width:100%;min-height:44px;font-weight:700}.upload-row{border-top:1px solid var(--line);padding:11px 0 1px}.upload-row-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--ink);font-size:11px}.upload-row-heading span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-row-heading strong{color:var(--wine);font-size:10px}.mini-meter{height:4px;margin-top:8px}.upload-feedback{font-size:11px;color:var(--muted);margin:6px 0 0}.upload-row.error .upload-feedback{color:#a33c36}.cancel-upload{color:var(--wine-dark);background:none;border:0;padding:7px 0;font-size:11px;text-decoration:underline}.admin-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 21px;margin-bottom:16px}.admin-banner h2{font-size:21px}.secondary-button{min-height:36px;border:1px solid #d8c8c0;border-radius:6px;padding:0 13px;color:var(--wine-dark);background:#fffdfa;display:inline-flex;align-items:center;justify-content:center;font-size:12px;text-decoration:none}.secondary-button:hover{background:#f8f1ed}.admin-tools{margin-top:17px;padding:16px}.search-form{display:flex;gap:9px}.search-form input{flex:1}.admin-actions{display:flex;align-items:center;gap:14px;margin-top:13px}.danger-button{border:1px solid #e0bcb6;background:#fff9f8;color:#9d4a40;border-radius:6px;min-height:34px;padding:0 11px;font-size:11px}.danger-button:disabled{opacity:.45;cursor:not-allowed}.admin-actions .text-button{font-size:11px}.upload-history{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.upload-history h3{font-size:12px;margin:0 0 9px}.upload-history>p{color:var(--muted);font-size:11px}.upload-history ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;max-height:290px;overflow:auto}.upload-history li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #f1ebe6;font-size:11px}.upload-history li>div:first-child{min-width:0;display:grid;gap:4px}.upload-history li strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600}.upload-history li span,.history-status small{color:var(--muted);font-size:10px}.history-status{flex:0 0 115px;text-align:right;color:var(--wine-dark)}.history-status.failed{color:#9d4a40}.history-status small{display:block;margin-top:3px}.maintenance-status{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.maintenance-status h3{font-size:12px;margin:0 0 7px}.maintenance-status p{color:var(--muted);font-size:11px;margin:4px 0}.admin-feedback{color:var(--wine-dark);font-size:12px;margin:12px 0 0}.gallery-section{margin-top:32px}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:15px}.gallery-heading h2{font-family:Georgia,Times New Roman,serif;font-size:27px;font-weight:500;margin:6px 0 0}.count-badge{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#efe5df;font:11px DM Sans,sans-serif;vertical-align:4px;color:var(--wine-dark)}.small-note{color:var(--muted);font-size:11px}.gallery-filters{display:flex;gap:8px;margin:0 0 16px}.gallery-filter{min-height:38px;padding:0 17px;border:1px solid #d8c8c0;border-radius:20px;color:var(--wine-dark);background:#fffdfa;font:inherit;font-size:12px;cursor:pointer}.gallery-filter[aria-pressed=true]{border-color:var(--wine-dark);color:#fffdfa;background:var(--wine-dark)}.guest-download{display:grid;justify-items:end;gap:6px}.guest-download .small-note{max-width:310px;text-align:right}.photo-selection-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;margin:0 0 16px;border:1px solid #eee7e1;border-radius:9px;background:var(--paper)}.photo-selection-count{color:var(--ink);font-size:13px;font-weight:700}.photo-selection-actions{display:flex;flex-wrap:wrap;gap:8px}.photo-selection-actions .secondary-button{min-height:44px}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.media-card{overflow:hidden;border-radius:9px;background:var(--paper);border:1px solid #eee7e1;position:relative}.media-preview{display:block;position:relative;width:100%;border:0;padding:0;background:#eee6e0;aspect-ratio:4 / 3;overflow:hidden}.media-preview img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s ease}.media-preview:hover img{transform:scale(1.035)}.video-placeholder{height:100%;display:grid;place-content:center;gap:9px;color:var(--wine);background:linear-gradient(140deg,#f1e8e1,#dfd1c9)}.video-placeholder span{font-size:27px;text-align:center}.video-placeholder small{font-size:10px;letter-spacing:.15em}.play-indicator{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fffdfad9;color:var(--wine-dark)}.media-details{display:grid;gap:5px;padding:10px 11px 11px;color:var(--muted);font-size:10px}.media-name{color:var(--ink);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600}.select-media{position:absolute;z-index:2;right:8px;top:8px;width:28px;height:28px;border-radius:50%;background:#fffdfae8;display:grid;place-items:center}.select-media input{accent-color:var(--wine)}.photo-selection-indicator{position:absolute;z-index:2;top:8px;right:8px;width:30px;height:30px;display:grid;place-items:center;border:2px solid #fffdfa;border-radius:50%;background:#fffdfae5;color:#fff;font-size:19px;font-weight:700;pointer-events:none}.photo-selection-indicator.selected{background:var(--wine-dark)}.load-more{margin:22px auto 0;display:flex;min-width:200px}.empty-gallery{background:var(--paper);border:1px dashed #ddcec5;border-radius:10px;padding:42px 15px;text-align:center}.empty-gallery>span{color:var(--rose);font-size:28px}.empty-gallery h3{font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:500;margin:9px 0 5px}.empty-gallery p{color:var(--muted);font-size:12px;margin:0}.lightbox{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;padding:24px;background:#231b19e5;display:grid;place-items:center}.lightbox-content{position:relative;width:min(100%,1000px);max-height:90vh;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#201c1b;border-radius:8px;overflow:hidden}.lightbox-content>img,.lightbox-content>video{display:block;width:100%;max-height:80vh;object-fit:contain;min-height:0}.lightbox-content>img,.lightbox-content>video{touch-action:pan-y}.close-lightbox{position:absolute;z-index:1;right:10px;top:8px;width:36px;height:36px;border:0;border-radius:50%;background:#141110a6;color:#fff;font-size:27px;line-height:1}.lightbox-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;color:#fff;font-size:12px}.lightbox-caption-info{min-width:0}.lightbox-caption-info>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.swipe-hint{display:none;color:#d1c6c1;font-size:10px;letter-spacing:0}.lightbox-caption .download-media-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:1px solid #ead0c4;border-radius:6px;background:#ead0c4;color:#3a2026;font-size:13px;font-weight:700;text-decoration:none}.lightbox-caption .download-media-button:hover{background:#fffdfa;border-color:#fffdfa}footer{min-height:73px;border-top:1px solid #e8ded7;padding:18px max(20px,calc((100% - 1120px)/2));display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;color:#9b8b82;font-size:9px;letter-spacing:.15em;text-align:center}footer .footer-message{max-width:100%}footer .copyright{letter-spacing:.08em;text-align:center}footer .footer-credit{color:inherit;text-decoration:underline;text-underline-offset:3px}footer .footer-credit:hover{color:var(--wine-dark)}.loading-page{min-height:100vh;display:grid;place-content:center;justify-items:center;color:var(--muted);font-size:13px}.loading-page .brand-mark{color:var(--wine);border-color:var(--rose)}@media(max-width:800px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.hero{min-height:360px}.hero-content{grid-template-columns:minmax(0,1fr) 195px;gap:16px}.hero-photo{width:174px;height:232px}}@media(max-width:560px){.hero{min-height:0;padding:19px 20px 20px}.hero footer{flex-direction:column;gap:9px}.hero-content{grid-template-columns:1fr;gap:5px;padding:5px 0 14px}.hero-copy{padding:12px 0 4px}.hero-photo{width:145px;height:193px}.hero-bottom{font-size:8px}.access-card{padding:27px 22px 23px;margin-bottom:55px}.content-wrap{width:calc(100% - 26px);margin-top:17px}.storage-card{padding:15px}.storage-head{align-items:start;flex-direction:column;gap:7px}.storage-head strong{font-size:19px}.upload-card{padding:17px 15px}.upload-button{width:100%}.admin-banner{align-items:start;flex-direction:column;padding:16px}.admin-banner .secondary-button{width:100%}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-heading{align-items:start;flex-direction:column}.gallery-heading h2{font-size:24px}.gallery-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.gallery-filter{min-height:44px;padding:0 8px}.guest-download{width:100%;justify-items:stretch}.guest-download .secondary-button{min-height:44px;font-size:14px}.guest-download .small-note{max-width:none;text-align:left;line-height:1.5}.photo-selection-toolbar{align-items:stretch;flex-direction:column}.photo-selection-actions{display:grid;grid-template-columns:1fr}.photo-selection-actions .secondary-button{width:100%}.media-details{padding:8px}.search-form{flex-direction:column}.admin-actions{align-items:start;flex-direction:column;gap:4px}.upload-history li{align-items:start}.history-status{flex-basis:92px}.lightbox{padding:8px}.lightbox-content{max-height:95vh}.swipe-hint{display:block}}
