:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f5f0e8;--surface:#fbf8f2;--border:#3e372d2e;--text:#282a24;--muted:#777267;--accent:#815e4a;--sage:#8c9380;--ink:#252820}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{min-height:100%;margin:0}body{background:var(--background);color:var(--text);font-family:DM Sans,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.wedding-page{min-height:100vh;padding:0;display:block;overflow:hidden}.wedding-nav{z-index:10;color:#fff;border-bottom:1px solid #ffffff47;justify-content:space-between;align-items:center;width:min(100% - 64px,1280px);height:94px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.brand{align-items:center;gap:12px;font-family:Cormorant Garamond,serif;font-size:22px;display:flex}.brand-mark{border:1px solid;border-radius:50%;place-items:center;width:36px;height:36px;font-family:Cormorant Garamond,serif;font-size:23px;font-style:italic;display:grid}.nav-links{letter-spacing:.04em;gap:34px;font-size:12px;display:flex}.nav-links a{opacity:.82;transition:opacity .2s}.nav-links a:hover{opacity:1}.nav-cta{border:1px solid #ffffff9e;border-radius:999px;padding:13px 20px;font-size:12px}.wedding-hero{color:#fff;background:linear-gradient(#18161261 0%,#19181338 38%,#161712b3 100%),linear-gradient(90deg,#16171340,#0000 30% 70%,#16171347),url(/images/wedding-hero.jpg) 50% 40%/cover no-repeat;place-items:center;min-height:820px;display:grid;position:relative;overflow:hidden}.wedding-hero:after{content:"";opacity:.28;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");position:absolute;inset:0}.hero-art{position:absolute;inset:0}.arch{border:1px solid #ffffff38;border-radius:50% 50% 0 0;width:520px;height:820px;position:absolute;bottom:-250px}.arch-one{left:-210px;transform:rotate(10deg)}.arch-two{right:-210px;transform:rotate(-10deg)}.sun-disc{background:#e0bf9b2e;border-radius:50%;width:360px;height:360px;position:absolute;top:19%;left:50%;transform:translate(-50%);box-shadow:0 0 100px #eccaa433}.botanical{color:#fff3;font-size:190px;font-weight:400;position:absolute;top:43%}.botanical-left{left:6%;transform:rotate(-22deg)}.botanical-right{right:6%;transform:rotate(22deg)}.hero-copy{z-index:2;text-align:center;max-width:860px;padding:135px 24px 150px;position:relative}.wedding-kicker{letter-spacing:.28em;text-transform:uppercase;margin:0 0 22px;font-size:11px;font-weight:600}.script-word{color:#e9d3bd;margin:0 0 -18px;font-family:Cormorant Garamond,serif;font-size:36px;font-style:italic}.hero-copy h1,.section-heading h2,.share-copy h2{letter-spacing:-.045em;margin:0;font-family:Cormorant Garamond,serif;font-weight:400}.hero-copy h1{font-size:clamp(70px,10vw,138px);line-height:.84}.hero-copy h1 span{color:#ead8c6;font-style:italic}.hero-intro{color:#fffc;max-width:530px;margin:34px auto 30px;font-family:Cormorant Garamond,serif;font-size:20px;line-height:1.5}.primary-button{color:#292b25;background:#f7f3ec;border-radius:999px;align-items:center;gap:25px;padding:16px 22px 16px 25px;font-size:13px;font-weight:600;display:inline-flex}.hero-date{z-index:2;align-items:center;gap:18px;display:flex;position:absolute;bottom:38px;left:32px}.hero-date div{flex-direction:column;display:flex}.hero-date strong{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:400;line-height:1}.hero-date span{color:#ffffffa6;letter-spacing:.15em;text-transform:uppercase;font-size:9px}.hero-date i{background:#ffffff59;width:1px;height:25px}.hero-event-live{z-index:2;margin:0;font-family:Cormorant Garamond,serif;font-size:24px;position:absolute;bottom:38px;left:32px}.scroll-note{z-index:2;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:10px;position:absolute;bottom:38px;right:32px}.scroll-note span{margin-left:12px}.story-section,.share-section{grid-template-columns:1.05fr .95fr;gap:clamp(50px,8vw,130px);max-width:1200px;margin:0 auto;padding:130px 40px;display:grid}.section-heading h2,.share-copy h2{font-size:clamp(48px,6vw,82px);line-height:.98}.section-heading em,.share-copy em{color:var(--accent);font-weight:400}.story-copy{align-self:end;max-width:480px;padding-bottom:5px}.story-copy>p,.share-copy>p:last-child{color:var(--muted);font-family:Cormorant Garamond,serif;font-size:20px;line-height:1.65}.signature{color:var(--accent);margin-top:30px;font-family:Cormorant Garamond,serif;font-size:32px;font-style:italic}.moments-section{background:var(--ink);color:#f8f2e9;padding:110px 40px 130px}.centered{text-align:center}.centered .wedding-kicker{color:#cbb8a5}.moment-grid{grid-template-columns:repeat(3,1fr);gap:18px;max-width:1200px;margin:70px auto 0;display:grid}.moment-card{isolation:isolate;background:#5c5a53;border-radius:180px 180px 6px 6px;flex-direction:column;justify-content:space-between;min-height:480px;padding:24px;display:flex;position:relative;overflow:hidden}.moment-card:before{z-index:1;content:"";pointer-events:none;background:linear-gradient(#11120f14 25%,#11120fc7 100%);position:absolute;inset:0}.moment-card:after{z-index:1;content:"";pointer-events:none;border:1px solid #ffffff2e;border-radius:170px 170px 2px 2px;position:absolute;inset:10px}.moment-two{margin-top:55px}.moment-image{z-index:0;object-fit:cover;transition:transform .7s}.moment-one .moment-image{object-position:50% 48%}.moment-two .moment-image{object-position:50% 42%}.moment-three .moment-image{object-position:50% 40%}.moment-card:hover .moment-image{transform:scale(1.035)}.moment-number{z-index:2;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1819151f;border:1px solid #ffffff8c;border-radius:50%;align-self:flex-end;width:38px;height:38px;padding-top:10px;font-size:10px;position:relative}.moment-card h3{z-index:2;text-align:center;text-shadow:0 2px 20px #00000059;margin:0 0 25px;font-family:Cormorant Garamond,serif;font-size:34px;font-weight:400;position:relative}.share-section{align-items:start}.share-copy{position:sticky;top:50px}.share-action{border:1px solid var(--border);background:linear-gradient(145deg,#ded5c8,#f7f2ea);border-radius:10px;padding:clamp(28px,5vw,54px);position:relative;overflow:hidden}.share-action:after{color:#815e4a14;content:"✽";pointer-events:none;font-size:190px;line-height:1;position:absolute;bottom:-58px;right:-28px}.share-action-number{border:1px solid #2a2c254d;border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:44px;font-size:10px;display:grid}.share-action>div{z-index:1;position:relative}.share-action p{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:600}.share-action h3{max-width:12ch;margin:0 0 10px;font-family:Cormorant Garamond,serif;font-size:clamp(32px,4vw,46px);font-weight:400;line-height:.96}.share-action small{color:var(--muted);font-size:11px}.upload-button{z-index:1;background:var(--ink);color:#fff;text-align:left;cursor:pointer;border:0;border-radius:10px;align-items:center;gap:18px;width:100%;margin-top:42px;padding:18px 20px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.upload-button:hover{transform:translateY(-2px);box-shadow:0 14px 28px #1617132e}.upload-button .upload-icon{border:1px solid #ffffff59;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.upload-button span:nth-child(2){flex-direction:column;flex:1;gap:3px;display:flex}.upload-button small{color:#ffffff8c;font-size:10px}footer{background:var(--ink);color:#f2ece3;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:32px 5vw;font-size:11px;display:flex}.mobile-upload{display:none}main.album-main{max-width:76rem;min-height:100vh;margin:0 auto;padding:clamp(1.25rem,4vw,3.5rem);display:block}.album-header{border:1px solid var(--border);text-align:center;background:linear-gradient(145deg,#e7ddd0,#f8f3eb 60%);border-radius:12rem 12rem 1rem 1rem;margin-bottom:clamp(3rem,7vw,6rem);padding:clamp(2rem,6vw,4.5rem);position:relative;overflow:hidden}.album-header:after{color:#815e4a14;content:"✽";font-size:220px;line-height:1;position:absolute;bottom:-65px;right:-30px}.album-kicker{color:var(--accent);letter-spacing:.28em;text-transform:uppercase;font-size:.68rem;font-weight:600}.album-header h1{z-index:1;letter-spacing:-.04em;max-width:none;margin:.8rem 0 .6rem;font-family:Cormorant Garamond,serif;font-size:clamp(3rem,7vw,5.5rem);font-weight:400;position:relative}.album-date{z-index:1;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .65rem;font-size:.72rem;font-weight:600;position:relative}.album-intro{color:var(--muted);margin:0 auto 2rem;font-family:Cormorant Garamond,serif;font-size:1.15rem}.upload-form{z-index:1;flex-direction:column;align-items:center;gap:.75rem;display:flex;position:relative}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.upload-step-heading{text-align:left;align-items:center;gap:.75rem;width:min(100%,35rem);display:flex}.upload-step-heading-spaced{margin-top:1.25rem}.upload-step-heading>span{width:2rem;height:2rem;color:var(--accent);border:1px solid #815e4a61;border-radius:50%;flex:0 0 2rem;place-items:center;font-family:Cormorant Garamond,serif;font-size:.9rem;display:grid}.upload-step-heading>div{flex-direction:column;gap:.08rem;display:flex}.upload-step-heading strong{font-family:Cormorant Garamond,serif;font-size:1.25rem;font-weight:500}.upload-step-heading small{color:var(--muted);letter-spacing:.08em;font-size:.62rem}.photo-picker-wrap{width:min(100%,28rem);position:relative}.photo-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.photo-picker{width:100%;color:var(--text);text-align:left;cursor:pointer;background:#ffffffad;border:1px solid #815e4a4d;border-radius:.8rem;align-items:center;gap:.85rem;padding:.7rem .8rem;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;box-shadow:0 .5rem 1.5rem #43372e0f}.photo-picker:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 .75rem 1.75rem #43372e1a}.photo-input:focus-visible+.photo-picker{outline-offset:3px;outline:3px solid #815e4a3d}.photo-input:disabled+.photo-picker{cursor:not-allowed;opacity:.6;transform:none}.photo-picker-icon{width:2.65rem;height:2.65rem;color:var(--accent);background:#e5d8ca;border-radius:50%;flex:0 0 2.65rem;place-items:center;display:grid}.photo-picker-icon svg{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:1.35rem;height:1.35rem}.photo-picker-copy{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.photo-picker-copy strong{font-family:Cormorant Garamond,serif;font-size:1.18rem;font-weight:500}.photo-picker-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;overflow:hidden}.photo-picker-action{width:1.75rem;height:1.75rem;color:var(--accent);border:1px solid #815e4a59;border-radius:50%;flex:0 0 1.75rem;place-items:center;font-size:.9rem;display:grid}.batch-style-controls{border:0;grid-template-columns:repeat(3,1fr);gap:.6rem;width:min(100%,42rem);margin:.25rem 0 .5rem;padding:0;display:grid}.batch-style-controls label{border:1px solid var(--border);text-align:left;cursor:pointer;background:#ffffff75;border-radius:.7rem;flex-direction:column;gap:.15rem;min-width:0;padding:.75rem .8rem;transition:border-color .2s,background .2s,transform .2s;display:flex;position:relative}.batch-style-controls label:hover{transform:translateY(-1px)}.batch-style-controls label.is-selected{border-color:var(--accent);background:#fffaf3;box-shadow:inset 0 0 0 1px #815e4a29}.batch-style-controls input{opacity:0;width:1px;height:1px;position:absolute}.batch-style-controls strong{font-family:Cormorant Garamond,serif;font-size:1.08rem;font-weight:500}.batch-style-controls small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;overflow:hidden}.style-fields{border:1px solid var(--border);text-align:left;background:#ffffff6b;border-radius:.8rem;width:min(100%,42rem)}.style-fields summary,.photo-style-options summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;list-style:none;display:flex}.style-fields summary{padding:.8rem 1rem}.style-fields summary::-webkit-details-marker{display:none}.photo-style-options summary::-webkit-details-marker{display:none}.style-fields summary:after,.photo-style-options summary:after{color:var(--accent);content:"+";font-size:1rem}.style-fields[open] summary:after,.photo-style-options[open] summary:after{content:"−"}.style-fields summary span{flex:1;font-family:Cormorant Garamond,serif;font-size:1.08rem;font-weight:500}.style-fields summary small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.58rem}.style-fields .batch-style-controls{border-top:1px solid var(--border);width:auto;margin:0;padding:.8rem 1rem 1rem}.photo-preview-grid{grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));gap:.75rem;width:100%;margin-top:.25rem;display:grid}.photo-preview-card{border:1px solid var(--border);text-align:left;background:#ffffff9e;border-radius:.85rem;overflow:hidden;box-shadow:0 .65rem 1.8rem #43372e0f}.photo-preview-card.upload-success{border-color:#496b4d73}.photo-preview-card.upload-error{border-color:#a13d3d6b}.photo-preview-image-wrap{aspect-ratio:4/5;background:#d8d0c5;position:relative;overflow:hidden}.photo-preview-image-wrap img{object-fit:cover;width:100%;height:100%}.photo-preview-number{color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#191b1638;border:1px solid #ffffffa6;border-radius:50%;place-items:center;width:1.85rem;height:1.85rem;font-family:Cormorant Garamond,serif;font-size:.75rem;display:grid;position:absolute;bottom:.55rem;left:.6rem}.photo-remove{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#191b1652;border:1px solid #ffffffa6;border-radius:50%;place-items:center;width:1.8rem;height:1.8rem;padding:0;font-size:1.15rem;line-height:1;display:grid;position:absolute;top:.5rem;right:.5rem}.photo-preview-state{color:#fff;letter-spacing:.05em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#191b16a8;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .55rem;font-size:.56rem;display:inline-flex;position:absolute;bottom:.55rem;right:.55rem}.photo-preview-state.is-success{background:#375b3cdb}.photo-preview-body{flex-direction:column;gap:.55rem;padding:.7rem;display:flex}.photo-style-options summary{color:var(--muted);padding:.15rem 0;font-size:.58rem}.photo-style-options summary span{flex:1}.photo-style-options summary small{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.55rem}.photo-style-switch{grid-template-columns:repeat(3,1fr);gap:.25rem;display:grid}.photo-style-options .photo-style-switch{padding-top:.5rem}.photo-style-switch button{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:#ece5db;border:1px solid #0000;border-radius:.4rem;padding:.42rem .25rem;font-size:.55rem;font-weight:600;overflow:hidden}.photo-style-switch button.is-selected{border-color:var(--accent);background:var(--accent);color:#fff}.photo-card-error{color:#a13d3d;font-size:.58rem;line-height:1.35}.dedication-fields{border:1px solid var(--border);text-align:left;background:#ffffff6b;border-radius:.8rem;width:min(100%,35rem);margin-top:.35rem}.dedication-fields summary{color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;padding:.85rem 1rem;list-style:none;display:flex}.dedication-fields summary::-webkit-details-marker{display:none}.dedication-fields summary:after{color:var(--accent);content:"+";margin-left:.75rem;font-size:1.1rem}.dedication-fields[open] summary:after{content:"−"}.dedication-fields summary span{flex:1;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:500}.dedication-fields summary small{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem}.dedication-fields-body{border-top:1px solid var(--border);grid-template-columns:.8fr 1.2fr;gap:.8rem;padding:0 1rem 1rem;display:grid}.dedication-fields-body label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;flex-direction:column;gap:.35rem;padding-top:.85rem;font-size:.65rem;display:flex}.dedication-label-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.dedication-label-row>span:last-child{color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.04em}.dedication-fields-body input,.dedication-fields-body textarea{width:100%;color:var(--text);letter-spacing:0;resize:vertical;text-transform:none;background:#ffffffb8;border:1px solid #815e4a47;border-radius:.55rem;outline:none;padding:.75rem .8rem;font:400 .85rem/1.35 DM Sans,Arial,sans-serif}.dedication-fields-body input:focus,.dedication-fields-body textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #815e4a1f}.dedication-fields-body p{color:var(--muted);text-align:center;grid-column:1/-1;margin:0;font-size:.62rem;line-height:1.45}.publish-section{border-top:1px solid var(--border);flex-direction:column;gap:.85rem;width:min(100%,35rem);margin-top:.75rem;padding-top:1rem;display:flex}.publish-row{text-align:left;justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.publish-row>div{flex-direction:column;gap:.15rem;min-width:0;display:flex}.publish-row span{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem;font-weight:600}.publish-row small{color:var(--muted);font-size:.6rem}.publish-row>button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.25rem;font-weight:600;display:inline-flex}.upload-progress{flex-direction:column;gap:.4rem;width:100%;display:flex}.upload-progress-copy{color:var(--muted);justify-content:space-between;align-items:center;font-size:.62rem;display:flex}.upload-progress-copy strong{color:var(--accent);font-variant-numeric:tabular-nums}.upload-progress-track{background:#815e4a29;border-radius:999px;height:.5rem;overflow:hidden}.upload-progress-track>span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), #a9856e);height:100%;transition:width .35s;display:block}.upload-progress-track.is-active{background-image:linear-gradient(90deg,#815e4a0a 25%,#815e4a3d 50%,#815e4a0a 75%);background-size:220% 100%;animation:1.3s linear infinite progress-sheen}.spinner{box-sizing:border-box;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:.85em;height:.85em;animation:.7s linear infinite spinner-rotate;display:inline-block}.photo-preview-state .spinner{border-width:1.5px;width:.9em;height:.9em}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes progress-sheen{0%{background-position:220% 0}to{background-position:-220% 0}}.upload-form button:disabled{opacity:.55;cursor:not-allowed}.upload-form button:disabled.is-loading{opacity:.82;cursor:progress}.upload-message{width:100%;margin:0;font-size:.85rem}.upload-message.success{color:#496b4d}.upload-message.notice{color:var(--muted)}.upload-message.error{color:#a13d3d}.gallery-empty{border:1px solid var(--border);text-align:center;place-items:center;min-height:24rem;padding:4rem 2rem;display:grid}.gallery-empty span{color:var(--accent);opacity:.35;font-size:4rem}.gallery-empty h2{max-width:15ch;margin:-1rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(2.2rem,5vw,4rem);font-weight:400;line-height:1}.gallery-empty p{max-width:30rem;color:var(--muted);margin:-1rem 0 0}.wedding-gallery{padding-bottom:5rem}.gallery-heading{justify-content:space-between;align-items:end;margin-bottom:2rem;display:flex}.gallery-heading h2{letter-spacing:-.045em;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2.8rem,6vw,5.4rem);font-weight:400;line-height:.9}.gallery-heading h2 em{color:var(--accent);font-weight:400}.gallery-heading>p{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:.68rem}.carousel-stage{isolation:isolate;touch-action:pan-y;background:#d8d0c5;border-radius:12rem 12rem 1rem 1rem;height:min(72vh,46rem);min-height:31rem;position:relative;overflow:hidden}.carousel-image{object-fit:contain;width:100%;height:100%;animation:.45s ease-out carousel-reveal}.carousel-shade{pointer-events:none;background:linear-gradient(#0000 50%,#151712a6);position:absolute;inset:0}.carousel-ornament{z-index:2;color:#ffffffb3;font-size:2rem;position:absolute;top:2rem;right:2.25rem}.carousel-caption{z-index:2;color:#fff;flex-direction:column;display:flex;position:absolute;bottom:2rem;left:2.25rem}.carousel-caption span{letter-spacing:.25em;text-transform:uppercase;font-size:.6rem}.carousel-caption strong{font-family:Cormorant Garamond,serif;font-size:3.5rem;font-weight:400;line-height:1}.carousel-controls{z-index:3;align-items:center;gap:1rem;display:flex;position:absolute;bottom:2rem;right:2rem}.carousel-controls button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1c1e1933;border:1px solid #ffffff8c;border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;transition:background .2s,transform .2s;display:grid}.carousel-controls button:hover{background:#ffffff38;transform:scale(1.04)}.carousel-controls p{color:#ffffffa6;align-items:center;gap:.6rem;min-width:5rem;margin:0;font-family:Cormorant Garamond,serif;display:flex}.carousel-controls p strong{color:#fff;font-size:1.45rem;font-weight:400}.carousel-controls p span{background:#ffffff80;width:1.8rem;height:1px}.photo-reaction-row{align-items:center;gap:.9rem;min-height:3rem;margin-top:.9rem;display:flex}.photo-like{min-height:2.75rem;color:var(--accent);cursor:pointer;background:#fbf8f2cc;border:1px solid #815e4a4d;border-radius:999px;align-items:center;gap:.55rem;padding:.55rem .8rem;transition:background .2s,border-color .2s,transform .2s;display:inline-flex}.photo-like:hover{border-color:var(--accent);background:#fffaf3;transform:translateY(-1px)}.photo-like:focus-visible{outline-offset:2px;outline:3px solid #815e4a38}.photo-like:disabled{cursor:wait;opacity:.58;transform:none}.photo-like svg{fill:#0000;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:1.2rem;height:1.2rem;transition:fill .2s,transform .2s}.photo-like.is-liked{background:#f0e4d8;border-color:#815e4a7a}.photo-like.is-liked svg{fill:currentColor;transform:scale(1.04)}.photo-like span{font-size:.68rem;font-weight:600}.photo-like strong{font-variant-numeric:tabular-nums;text-align:center;border-left:1px solid #815e4a40;min-width:1.5rem;padding-left:.5rem;font-size:.68rem}.photo-reaction-row>p{color:#a13d3d;margin:0;font-size:.65rem}.photo-dedication{border:1px solid var(--border);background:#fbf8f2c7;border-radius:.75rem;margin:1rem 0 0;padding:1.35rem 4rem 1.3rem 1.5rem;position:relative}.photo-dedication:after{color:#815e4a29;content:"“";font-family:Cormorant Garamond,serif;font-size:5rem;line-height:1;position:absolute;top:.45rem;right:1.25rem}.photo-dedication blockquote{white-space:pre-line;color:var(--text);margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(1.25rem,2.5vw,1.65rem);font-style:italic;line-height:1.25}.photo-dedication p{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:.65rem 0 0;font-size:.65rem}.photo-dedication p strong{color:var(--accent);font-weight:600}.carousel-thumbnails{scrollbar-width:thin;scroll-snap-type:x proximity;gap:.75rem;padding:1rem 0 .5rem;display:flex;overflow-x:auto}.carousel-thumbnails button{cursor:pointer;opacity:.58;scroll-snap-align:start;background:#ddd4c8;border:1px solid #0000;border-radius:.4rem;flex:0 0 6rem;height:7.5rem;padding:0;transition:opacity .2s,border-color .2s,transform .2s;position:relative;overflow:hidden}.carousel-thumbnails button:hover,.carousel-thumbnails button.is-active{border-color:var(--accent);opacity:1;transform:translateY(-2px)}.carousel-thumbnails img{object-fit:cover;width:100%;height:100%}.carousel-thumbnails span{color:#fff;text-shadow:0 1px 5px #000;font-size:.58rem;position:absolute;bottom:.3rem;right:.35rem}.carousel-hint{color:var(--muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;margin:1rem 0 0;font-size:.65rem}.carousel-hint span{color:var(--accent);margin-right:.5rem;font-size:1rem}@keyframes carousel-reveal{0%{opacity:.35;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}@media (max-width:760px){.wedding-nav{width:calc(100% - 36px);height:76px}.nav-links,.nav-cta{display:none}.wedding-hero{background-position:50%,50%,52%;min-height:100svh}.hero-copy{padding:130px 20px 170px}.hero-copy h1{font-size:clamp(60px,20vw,88px);line-height:.78}.hero-copy h1 span{font-size:.7em;line-height:.85;display:block}.script-word{margin-bottom:-8px;font-size:29px}.hero-intro{font-size:18px}.hero-date{justify-content:space-between;gap:8px;bottom:78px;left:20px;right:20px}.hero-date i{height:24px}.hero-date strong{font-size:25px}.hero-date span{letter-spacing:.1em;font-size:7px}.hero-event-live{bottom:84px;left:20px}.scroll-note{display:none}.botanical{font-size:100px}.story-section,.share-section{grid-template-columns:1fr;gap:38px;padding:85px 22px}.section-heading h2,.share-copy h2{font-size:50px}.story-copy{border-left:1px solid var(--accent);padding-left:28px}.moments-section{padding:80px 18px 95px}.moment-grid{scroll-snap-type:x mandatory;gap:12px;margin-top:50px;padding:0 18px 15px;display:flex;overflow-x:auto}.moment-card{scroll-snap-align:center;min-width:76vw;min-height:430px}.moment-two{margin-top:0}.share-copy{position:static}.share-action-number{margin-bottom:34px}.upload-button{margin-top:34px}footer{text-align:center;flex-direction:column;gap:18px;padding-bottom:95px}.mobile-upload{z-index:20;color:var(--ink);background:#fbf8f2;border-radius:999px;justify-content:space-between;align-items:center;padding:17px 22px;font-size:13px;font-weight:600;display:flex;position:fixed;bottom:14px;left:14px;right:14px;box-shadow:0 8px 32px #16171340}main.album-main{padding:1rem}.album-header{border-radius:8rem 8rem .75rem .75rem;margin-bottom:4rem;padding:3rem 1.25rem 2.5rem}.album-header h1{font-size:3.25rem}.photo-picker-wrap{width:100%}.batch-style-controls{grid-template-columns:1fr}.batch-style-controls label{flex-direction:row;justify-content:space-between;align-items:baseline}.batch-style-controls small{max-width:55%}.photo-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.photo-preview-body{padding:.55rem}.photo-style-switch{grid-template-columns:1fr}.photo-style-switch button{padding:.38rem .3rem}.dedication-fields{width:100%}.dedication-fields-body{grid-template-columns:1fr}.dedication-fields-body p{grid-column:auto}.publish-row{flex-direction:column;align-items:stretch}.publish-row>button{width:100%}.gallery-heading{align-items:start}.gallery-heading h2{font-size:3.25rem}.gallery-heading>p{writing-mode:vertical-rl;margin-top:.35rem}.carousel-stage{border-radius:7rem 7rem .75rem .75rem;height:66vh;min-height:31rem}.carousel-caption{bottom:1.5rem;left:1.25rem}.carousel-controls{gap:.55rem;bottom:1.25rem;right:1rem}.carousel-controls button{width:2.75rem;height:2.75rem}.carousel-controls p{display:none}.photo-reaction-row{flex-direction:column;align-items:flex-start}.photo-dedication{padding:1.1rem 3rem 1.05rem 1.1rem}.carousel-thumbnails button{flex-basis:4.75rem;height:6rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.carousel-image{animation:none}.moment-image{transition:none}.spinner,.upload-progress-track.is-active{animation:none}}
