@font-face{font-family:WeddingSerif;src:local('Baskerville'),local('Palatino Linotype'),local('Georgia');font-display:swap}
:root{--paper:#f7f5f0;--white:#fffefa;--ink:#252b24;--muted:#6e7167;--line:#dddcd2;--accent:#6e765d;--soft:#eceee5;--error:#9b3331;--serif:WeddingSerif,Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit}a{color:inherit;text-underline-offset:4px}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #839372;outline-offset:4px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1}h2{font-size:clamp(36px,4.5vw,62px)}h3{font-size:29px}h4{font-size:15px;font-weight:600}p{max-width:65ch}small,.hint{font-size:12px;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:22px}.site-header{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;background:var(--paper);position:relative;z-index:10}.wordmark{font-family:var(--serif);font-size:29px;letter-spacing:2px;display:flex;align-items:center;text-decoration:none}.wordmark>span:first-child{font-style:italic;font-size:19px;margin:0 6px}.wordmark-date{font-family:var(--sans);font-size:9px;letter-spacing:2px;border-left:1px solid var(--line);padding-left:18px;margin-left:19px;color:var(--muted)}nav{display:flex;align-items:center;gap:33px}nav>a{font-size:12px;text-decoration:none}nav>a:hover{color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:16px 26px;min-height:48px;border:1px solid var(--ink);background:var(--ink);color:var(--white);font-size:12px;text-decoration:none;letter-spacing:.4px;border-radius:2px;transition:background .2s,transform .2s}.button:hover{background:#424b3d;transform:translateY(-1px)}.button.small{padding:12px 20px;min-height:43px}.button.outline{background:transparent;color:var(--ink);border-color:#b6b9aa}.button.outline:hover{background:var(--soft)}.button.light{background:var(--white);color:var(--ink);border-color:var(--white)}.text-button{background:none;border:0;color:var(--accent);padding:10px 0;text-decoration:underline;text-underline-offset:4px;min-height:44px}.menu-button{display:none;background:none;border:0;padding:12px}.skip-link{position:absolute;left:10px;top:-100px;z-index:100;background:var(--ink);color:white;padding:10px}.skip-link:focus{top:10px}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:710px;padding:80px 8% 72px;gap:6%;position:relative;overflow:hidden}.hero-copy{padding-top:28px}.hero h1{font-size:clamp(65px,7.5vw,112px);letter-spacing:-3px;line-height:.98;margin:0 0 32px}.hero h1 em{font-weight:400;color:var(--accent);font-size:.72em;display:block;line-height:1.2;margin-left:15px}.hero-subtitle{font-family:var(--serif);font-size:22px;color:var(--muted);max-width:350px;line-height:1.5;margin-bottom:28px}.hero-date{font-size:11px;text-transform:uppercase;letter-spacing:2px;margin-bottom:34px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-actions .subtle{font-size:11px;text-decoration:none;color:var(--muted)}.hero-art{min-height:545px;position:relative;display:flex;align-items:center;justify-content:center;background:#eceee4;border-radius:46% 46% 1px 1px;margin-top:0;isolation:isolate}.hero-art:before{content:'';position:absolute;inset:17px;border:1px solid #c3c9b7;border-radius:46% 46% 1px 1px;z-index:-1}.botanical{position:absolute;width:100%;height:100%;object-fit:contain;opacity:.6;z-index:-1}.invitation-seal{text-align:center;padding-top:18px}.invitation-seal .mini{font-size:9px;letter-spacing:4px}.seal-monogram{font-family:var(--serif);font-size:110px;line-height:.9;letter-spacing:-14px;margin:50px 0 35px;padding-right:14px}.seal-monogram span{font-size:48px;font-style:italic;vertical-align:middle;letter-spacing:-4px}.seal-date{font-size:12px;letter-spacing:3px}.seal-place{font-size:9px;letter-spacing:3px;margin-top:15px;text-transform:uppercase}.hero-art .art-caption{position:absolute;bottom:28px;font-family:var(--serif);font-style:italic;font-size:16px;color:var(--muted)}.vertical-note{position:absolute;right:18px;top:50%;writing-mode:vertical-rl;font-size:9px;letter-spacing:4px;color:#8c8d80}.date-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 8%;background:var(--ink);color:var(--paper)}.date-strip .date-large{font-family:var(--serif);font-size:38px;line-height:1}.date-strip .date-large small{font-family:var(--sans);font-size:9px;color:#c0c6b6;display:block;letter-spacing:3px;margin-top:12px}.date-strip p{margin:0;font-family:var(--serif);font-style:italic;font-size:20px;color:#c7cebf}.countdown{display:flex;gap:23px}.countdown>div{text-align:center;font-size:22px;font-family:var(--serif)}.countdown small{display:block;font-size:8px;font-family:var(--sans);letter-spacing:2px;color:#c0c6b6}.section{padding:92px 8%;scroll-margin-top:20px}.section-title{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:end;margin-bottom:45px}.section-title p{color:var(--muted);margin-bottom:9px}.section-title h2{margin-bottom:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.detail-card{border:1px solid var(--line);padding:35px 38px;background:var(--white)}.detail-card .card-number{display:block;font-family:var(--serif);font-size:17px;color:#999d8e;margin-bottom:25px}.detail-card h3{margin-bottom:16px}.detail-card p{color:var(--muted);margin-bottom:12px}.detail-card .time{font-size:12px;letter-spacing:2px;color:var(--ink)}.detail-card a{font-size:12px}.family-line{text-align:center;margin:48px auto 0;max-width:750px;font-family:var(--serif);font-size:19px;line-height:1.8;color:var(--muted)}.family-line strong{font-weight:400;color:var(--ink)}.dress-section{background:#eaece3;display:grid;grid-template-columns:.85fr 1.15fr;gap:12%;align-items:center}.dress-section h2{margin-bottom:20px}.dress-content{display:grid;grid-template-columns:1fr 1fr;gap:30px}.dress-content h3{font-size:25px}.dress-content p{font-size:13px;color:var(--muted)}.swatches{display:flex;margin-top:30px}.swatch{width:46px;height:46px;border-radius:50%;background:#242620;border:4px solid #eaece3}.swatch+ .swatch{background:#fffefa;margin-left:-10px;box-shadow:0 0 0 1px #d4d8ca}.travel-section{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.map-art{background:var(--soft);min-height:340px;border:1px solid #d4d7cb;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.map-art:before,.map-art:after{content:'';position:absolute;width:130%;height:38px;background:var(--paper);border:1px solid #d5d9cc;transform:rotate(-32deg);top:160px}.map-art:after{transform:rotate(43deg);height:25px}.map-label{position:relative;background:var(--ink);padding:25px 32px;color:var(--white);text-align:center;z-index:1;max-width:85%}.map-label span{font-size:26px;display:block;font-family:var(--serif);margin-bottom:5px}.map-label small{color:#d8decf;font-size:9px;letter-spacing:2px}.map-caption{font-size:11px;margin-top:12px;color:var(--muted)}.travel-copy p{color:var(--muted)}.travel-note{border-top:1px solid var(--line);padding-top:20px;margin-top:25px;font-size:13px}.rsvp-callout{margin:0 8% 85px;padding:65px 8%;background:var(--ink);color:var(--white);text-align:center}.rsvp-callout h2{font-size:58px}.rsvp-callout p{margin:0 auto 30px;color:#c1c8b7}.rsvp-callout .eyebrow{color:#bcc5ae}.contact-links{display:flex;justify-content:center;gap:28px;margin-top:24px;flex-wrap:wrap;font-size:12px}.site-footer{border-top:1px solid var(--line);padding:35px 8%;display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-monogram{font-family:var(--serif);font-size:30px}.site-footer p{font-size:11px;color:var(--muted);margin:0}.site-footer>div:last-child{display:flex;gap:20px;font-size:10px;color:var(--muted)}.initial-loading{text-align:center;padding:150px 20px;font-family:var(--serif);font-size:24px}.page-shell{max-width:850px;margin:0 auto;padding:65px 24px 90px}.page-shell.wide{max-width:1300px}.page-intro{text-align:center;margin-bottom:35px}.page-intro h1{font-size:54px;margin-bottom:16px;letter-spacing:-1px}.page-intro p{margin:0 auto;color:var(--muted)}.wizard{background:var(--white);border:1px solid var(--line);padding:35px}.steps{display:flex;justify-content:space-between;list-style:none;margin:0 0 38px;padding:0;border-bottom:1px solid var(--line);gap:10px}.steps li{flex:1;font-size:11px;color:var(--muted);padding-bottom:16px;border-bottom:2px solid transparent}.steps li.active{border-color:var(--ink);color:var(--ink);font-weight:600}.steps li span{display:block;font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:7px}.form-heading{font-size:29px;margin-bottom:8px}.form-description{color:var(--muted);font-size:13px;margin-bottom:25px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field-grid .field{margin-bottom:0}.field.full{grid-column:1/-1}.field label,.field-label{font-size:12px;font-weight:600;color:var(--ink)}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid #cdd0c2;border-radius:3px;background:#fffefa;padding:12px 13px;color:var(--ink);min-height:48px}textarea{resize:vertical;min-height:85px}input::placeholder,textarea::placeholder{color:#909582;font-size:13px}.radio-row{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 25px}.choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:13px 16px;font-size:13px;min-height:48px;cursor:pointer;background:var(--white)}.choice:has(input:checked){border-color:var(--accent);background:var(--soft)}input[type=checkbox],input[type=radio]{accent-color:var(--ink);width:17px;height:17px;flex-shrink:0;cursor:pointer}.check-label{display:flex;align-items:center;gap:10px;font-size:13px;min-height:44px;cursor:pointer}.check-label.top{align-items:flex-start}.check-label small{display:block;margin-top:4px}.person-card{padding:22px;border:1px solid var(--line);margin:20px 0;background:var(--paper)}.person-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.person-card-head h4{margin:0}.person-card-head button{font-size:11px;border:0;background:none;color:var(--muted);padding:8px;min-height:40px}.person-card .field-grid{gap:14px}.form-section{border-top:1px solid var(--line);padding-top:26px;margin-top:26px}.form-section h3{font-size:23px;margin-bottom:16px}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.form-actions .button{min-width:130px}.form-error,.notice{padding:15px 17px;background:#f5e8e2;border-left:3px solid var(--error);color:#743b32;font-size:13px;margin:20px 0}.notice{border-color:var(--accent);background:var(--soft);color:#46513e}.notice p:last-child{margin:0}.notice a{font-weight:600}.tiny-note{font-size:12px;color:var(--muted);margin-top:20px}.total-pill{display:inline-flex;align-items:center;gap:7px;background:var(--soft);color:var(--accent);padding:6px 12px;font-size:11px;border-radius:20px}.food-person summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:15px 0;gap:20px}.food-person{border-bottom:1px solid var(--line)}.food-person summary>span:first-child{font-weight:600;font-size:13px}.food-person summary>span:last-child{font-size:11px;color:var(--muted)}.food-person .food-fields{padding:12px 0 20px}.food-person .field-grid{margin-bottom:15px}.review-section{padding:23px 0;border-bottom:1px solid var(--line)}.review-section h3{font-size:23px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.review-section h3 button{font-family:var(--sans);font-size:11px;background:none;border:0;text-decoration:underline;padding:10px;color:var(--accent)}.review-row{display:flex;justify-content:space-between;gap:20px;margin:10px 0;font-size:13px}.review-row>span:last-child{text-align:right;color:var(--muted)}.success-mark{width:64px;height:64px;background:var(--soft);border-radius:50%;margin:0 auto 25px;display:grid;place-items:center;font-size:28px}.reference{font-size:13px;letter-spacing:2px;border:1px solid var(--line);padding:15px;display:inline-block;margin:10px 0 20px}.saved-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.manage-panel{margin-top:28px;background:var(--white);padding:25px;border:1px solid var(--line)}.manage-panel h3{font-size:25px}.stack-actions{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:28px 0;overflow-x:auto}.tabs button{background:none;border:0;white-space:nowrap;border-bottom:2px solid transparent;padding:14px 18px;min-height:48px;font-size:12px;color:var(--muted)}.tabs button.active{border-color:var(--ink);color:var(--ink)}.dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:25px}.dashboard-top h1{font-size:44px;margin-bottom:6px}.dashboard-top p{color:var(--muted);font-size:12px;margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.stat{border:1px solid var(--line);background:var(--white);padding:20px}.stat>span{display:block;font-size:10px;color:var(--muted)}.stat strong{font-family:var(--serif);font-size:42px;font-weight:400;line-height:1.4}.table-wrap{overflow:auto;background:var(--white);border:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:var(--soft);font-weight:600;font-size:10px;letter-spacing:.5px;white-space:nowrap}td,th{padding:15px 16px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;font-size:10px}td .text-button{font-size:11px;min-height:30px;padding:0}.table-tools{display:flex;gap:15px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.table-tools input{flex:1;min-width:180px}.table-tools select{max-width:180px}.badge{display:inline-block;padding:3px 8px;background:var(--soft);color:#4c5941;font-size:10px;border-radius:14px;white-space:nowrap}.badge.warning{background:#f2e8cc;color:#806a35}.badge.error{background:#f4ddd6;color:#8d3f30}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-card{background:var(--white);border:1px solid var(--line);padding:25px}.report-card h3{font-size:25px}.report-card .review-row{border-bottom:1px solid var(--line);padding:8px 0}.empty{padding:40px 20px;text-align:center;color:var(--muted);font-family:var(--serif);font-size:22px}.privacy-body h2{font-size:29px;margin-top:35px}.privacy-body p{font-size:14px;color:var(--muted)}.toast{position:fixed;right:25px;bottom:25px;background:var(--ink);color:var(--white);padding:14px 24px;max-width:400px;z-index:100;box-shadow:0 5px 25px #0002;font-size:13px}.modal-backdrop{position:fixed;inset:0;background:#17201288;z-index:30;padding:35px 20px;overflow:auto}.modal{max-width:720px;margin:20px auto;background:var(--paper);padding:30px;border:1px solid var(--line)}.modal-header{display:flex;justify-content:space-between;align-items:start;gap:20px}.modal-header button{border:0;background:none;font-size:22px;min-width:44px;min-height:44px}.modal h2{font-size:33px}.inline-code{background:var(--soft);padding:15px;font-family:monospace;overflow-wrap:anywhere;letter-spacing:1px;user-select:all}.status-line{font-size:12px;color:var(--muted);display:flex;gap:15px;flex-wrap:wrap}.status-line span{padding:5px 0}.hidden,[hidden]{display:none!important}
@media(min-width:1500px){.hero,.section{padding-left:max(8%,calc((100vw - 1250px)/2));padding-right:max(8%,calc((100vw - 1250px)/2))}.hero-art{max-width:500px}}
@media(max-width:950px){.hero{padding:50px 6%;gap:5%;min-height:600px}.hero h1{font-size:74px}.hero-art{min-height:480px}.hero-subtitle{font-size:19px}.section{padding:65px 6%}nav{gap:18px}.dress-section{gap:7%}.rsvp-callout{margin:0 6% 60px}.date-strip{padding:26px 6%}.date-strip p{display:none}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.site-header{height:76px;padding:0 6%}.wordmark{font-size:25px}.wordmark-date{font-size:8px;padding-left:12px;margin-left:13px}.menu-button{display:block;font-size:11px}nav{display:none;position:absolute;left:0;right:0;top:76px;background:var(--paper);padding:22px 6%;border-bottom:1px solid var(--line);align-items:stretch}nav.open{display:flex;flex-direction:column;gap:15px}nav>a:not(.button){padding:8px 0}.hero{grid-template-columns:1fr;padding:42px 7% 45px;gap:38px}.hero-copy{text-align:center;padding-top:0}.hero .eyebrow{font-size:9px;letter-spacing:2.7px}.hero h1{font-size:clamp(44px,12vw,76px);letter-spacing:-2px}.hero h1 em{margin-left:0;font-size:.68em}.hero-subtitle{margin:0 auto 24px;font-size:19px;max-width:290px}.hero-date{font-size:9px;letter-spacing:1.6px;margin-bottom:25px}.hero-actions{justify-content:center;gap:22px}.hero-art{min-height:390px;max-width:370px;width:100%;margin:0 auto}.seal-monogram{font-size:92px;margin:40px 0 30px}.seal-monogram span{font-size:40px}.hero-art .art-caption{font-size:14px;bottom:22px}.vertical-note{display:none}.date-strip{padding:28px 7%;gap:20px}.date-strip .date-large{font-size:28px}.date-strip .date-large small{font-size:8px;letter-spacing:1.5px}.countdown{gap:13px}.countdown>div{font-size:20px}.countdown small{font-size:7px;letter-spacing:1px}.section{padding:55px 7%}.section-title{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.section-title p{font-size:13px}.detail-grid{grid-template-columns:1fr;gap:15px}.detail-card{padding:27px}.detail-card .card-number{margin-bottom:18px}.family-line{font-size:16px;margin-top:30px}.dress-section{grid-template-columns:1fr;gap:30px}.dress-content{gap:25px}.dress-content h3{font-size:22px}.travel-section{grid-template-columns:1fr;gap:30px}.map-art{min-height:265px;order:1}.travel-copy{order:0}.map-label span{font-size:23px}.rsvp-callout{margin:0 7% 50px;padding:42px 22px}.rsvp-callout h2{font-size:44px}.rsvp-callout p{font-size:13px}.contact-links{gap:14px;font-size:11px}.site-footer{flex-direction:column;text-align:center;padding:30px 7%;gap:15px}.site-footer>div:last-child{flex-wrap:wrap;justify-content:center;gap:18px}.page-shell{padding:38px 16px 60px}.page-intro h1{font-size:40px}.page-intro p{font-size:13px}.wizard{padding:23px 18px}.steps{gap:7px;margin-bottom:25px}.steps li{font-size:9px}.steps li span{font-size:19px;margin-bottom:5px}.field-grid{grid-template-columns:1fr;gap:17px}.person-card .field-grid{grid-template-columns:1fr}.form-actions .button{padding:13px 18px;min-width:100px}.radio-row{gap:8px}.choice{padding:11px 12px;font-size:12px}.review-row{font-size:12px;gap:12px}.review-row>span:first-child{min-width:80px}.dashboard-top{align-items:start;gap:15px}.dashboard-top h1{font-size:32px}.stats{gap:9px}.stat{padding:15px}.stat strong{font-size:35px}.report-grid{grid-template-columns:1fr}.tabs button{padding:12px 13px}.table-tools select{max-width:none}.modal{padding:22px 18px}.toast{right:15px;left:15px;bottom:15px;max-width:none}.page-shell.wide{padding-left:14px;padding-right:14px}}
fieldset.attendance-options{border:0;padding:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* The invitation: warm paper, fine botanical lines and a black-tie palette. */
:root{--paper:#faf8f3;--white:#fffefa;--ink:#252624;--muted:#69685f;--line:#dedbd2;--accent:#74664d;--soft:#f0ede5}
body{font-size:16px;-webkit-font-smoothing:antialiased}
h2 em{font-weight:400;color:var(--accent)}
.eyebrow{font-size:10px;letter-spacing:2.8px;color:var(--accent)}
.button{border-radius:5px;font-size:13px;font-weight:600;min-height:52px;padding:16px 25px;gap:22px}
.button span[aria-hidden]{font-size:20px;font-weight:400;line-height:1}
.button:hover{background:#414139;box-shadow:0 5px 15px #25262412}
.button.outline:hover{background:var(--soft)}
.button.light:hover{background:#f0eadf}
.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#8a7957}
.site-header{position:sticky;top:0;height:82px;background:#faf8f3f5;backdrop-filter:blur(14px);padding:0 6%;z-index:20}
.site-header nav{gap:28px}.site-header nav>a{font-size:12px}.header-register{display:none}
.hero{max-width:1440px;margin:auto;grid-template-columns:1.12fr 1fr;gap:7%;min-height:0;padding:62px 7% 70px;align-items:center;overflow:visible}
.hero-copy{padding-top:0;min-width:0}.hero-copy>.eyebrow{display:flex;align-items:center;gap:13px;margin-bottom:24px;font-size:9px;letter-spacing:2.4px}
.fine-line{width:34px;height:1px;background:#aa9776;display:inline-block}
.hero h1{font-size:clamp(62px,6.8vw,100px);line-height:1.02;letter-spacing:-3.8px;margin-bottom:22px}
.hero h1 em{font-size:.54em;margin:2px 0 3px 20%;line-height:1;color:#918164}
.hero-subtitle{font-size:clamp(23px,2.3vw,31px);line-height:1.3;margin-bottom:15px;color:#4f5148;max-width:440px}
.hero-invitation{font-size:14px;line-height:1.8;color:var(--muted);max-width:350px;margin-bottom:25px}
.hero-facts{display:grid;grid-template-columns:.9fr 1.2fr;gap:18px;border-top:1px solid var(--line);padding-top:20px;margin:0 0 26px;max-width:460px}
.hero-facts>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.hero-facts small{font-size:8px;letter-spacing:2px;color:var(--accent);margin-bottom:5px}
.hero-facts strong{font-size:13px;font-weight:600;line-height:1.5}.hero-facts span{font-size:11px;color:var(--muted)}
.hero-actions{gap:16px}.hero-actions .subtle{font-size:11px;display:flex;gap:12px;min-height:44px;align-items:center}
.hero-actions .primary-rsvp{box-shadow:0 5px 16px #25262418}
.hero-rsvp-note{font-size:10px;color:var(--muted);margin:14px 0 0;max-width:380px}
.hero-art{min-height:640px;max-width:490px;width:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:space-between;padding:57px 22px 22px;background:linear-gradient(135deg,#e9e6dc,#f3efe6 55%,#e4e0d3);border-radius:48% 48% 12px 12px;border:1px solid #d8d1c3;box-shadow:0 18px 50px #3a32200a;overflow:hidden;isolation:isolate}
.hero-art:before{inset:12px;border-color:#c8beaa;border-radius:48% 48% 6px 6px}
.botanical{inset:0;object-fit:cover;opacity:.26;filter:grayscale(1);z-index:-1}
.invitation-seal{padding-top:15px}.invitation-seal .mini{font-size:8px;letter-spacing:2px;color:#6e6759}
.seal-monogram{font-size:100px;letter-spacing:-11px;margin:26px 0 21px;color:#4c4b40}.seal-monogram span{font-size:44px;color:#958465}
.seal-date{font-size:10px;letter-spacing:4px;color:#6e6759}
.hero-registration{background:#fffefaf5;border:1px solid #e0dbcf;padding:26px 24px 20px;border-radius:8px;box-shadow:0 8px 24px #4037210a;width:100%;margin-top:30px;position:relative}
.hero-registration .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:12px}.hero-registration h2{font-size:36px;margin-bottom:10px;letter-spacing:-1px}
.hero-registration p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:16px}
.registration-topics{display:flex;justify-content:space-between;gap:7px;padding:12px 0;margin:0 0 18px;border-block:1px solid var(--line);color:#716c60;font-size:9px}
.hero-registration .button{display:flex;width:100%;justify-content:space-between;font-size:12px}
.registration-manage{display:block;text-align:center;font-size:10px;color:var(--muted);margin-top:13px;padding:5px 0;line-height:1.6}
.date-strip{padding:30px max(7%,calc((100vw - 1240px)/2));background:#292c27;color:var(--paper)}
.date-strip .date-large{font-size:32px;letter-spacing:-.5px}.date-strip .date-large small{font-size:8px;letter-spacing:2.4px;color:#d2c6af}
.date-strip p{font-size:19px;color:#d0cbbb}.countdown{gap:27px}.countdown>div{font-size:32px;line-height:1.1;min-width:38px}.countdown small{color:#c8c6b8;font-size:8px;margin-top:8px}
.section{padding:90px max(7%,calc((100vw - 1240px)/2))}.section-title{gap:8%;margin-bottom:38px}.section-title h2{font-size:clamp(34px,3.8vw,50px);letter-spacing:-1.5px;line-height:1.15}.section-title p{font-size:14px;line-height:1.9}
.detail-card{border-radius:9px;padding:34px 38px;position:relative;background:linear-gradient(145deg,#fffefa,#f7f4ed);border-color:#ded8ca}
.detail-card .card-number,.card-number{color:#8b795b;font-size:9px;font-family:var(--sans);letter-spacing:1.8px;margin-bottom:26px;display:block}
.detail-card h3{font-size:31px;letter-spacing:-.7px}.detail-card p{font-size:13px;line-height:1.8}.detail-card .time{font-size:9px;letter-spacing:1.6px;margin-bottom:17px}.detail-card a{display:inline-flex;align-items:center;gap:20px;min-height:44px;font-size:11px;font-weight:600}
.family-line{font-size:15px;line-height:1.8;position:relative;padding:38px 0 0;margin-top:34px}.family-flourish{display:block;font-size:45px;line-height:1;color:#ab9979;margin-bottom:20px;font-style:italic}.family-line strong{font-size:22px}.family-joining{display:inline-block;font-style:italic;color:var(--accent);margin-top:12px}
.dress-section{background:#ebe7dd;gap:8%;border-block:1px solid #e2dccf}.dress-section h2{font-size:clamp(39px,4vw,57px);letter-spacing:-1.8px;line-height:1.13}.dress-content{gap:25px}.dress-content article{border-top:1px solid #cfc6b5;padding-top:22px}.dress-content .card-number{font-size:8px;margin-bottom:16px}.dress-content h3{font-size:26px;letter-spacing:-.6px}.dress-content p{font-size:13px;line-height:1.8}.swatch{border-color:#ebe7dd}.swatch+.swatch{box-shadow:0 0 0 1px #cfc6b5}
.travel-section{gap:8%;align-items:center}.travel-copy h2{font-size:clamp(40px,4vw,58px);letter-spacing:-1.8px}.travel-copy p{font-size:14px;line-height:1.85}.travel-copy .map-caption{font-size:11px}.travel-copy .travel-note{font-size:12px}
.venue-art{min-height:415px;border:1px solid #d8d1c1;background:#eee9dd;position:relative;overflow:hidden;border-radius:180px 180px 8px 8px;display:grid;place-items:center;padding:35px}
.venue-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;filter:grayscale(1)}.venue-art-frame{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #bfb298;min-height:330px;width:100%;border-radius:150px 150px 4px 4px;background:#f5f1e788;padding:35px 10px;text-align:center}.venue-art-frame .eyebrow{font-size:7px;letter-spacing:1.8px}.venue-art-name{font-family:var(--serif);font-style:italic;font-size:70px;line-height:1.3;color:#4d4e43}.venue-art-sub{font-size:9px;letter-spacing:3px}.venue-art-city{font-family:var(--serif);font-size:17px;color:#7e725b;margin-top:28px}
.rsvp-callout{margin:0 auto 80px;max-width:calc(100% - 14%);border-radius:10px;padding:60px 25px;background:#292c27;position:relative;overflow:hidden;isolation:isolate}.rsvp-callout>img{position:absolute;right:-35px;bottom:-80px;width:300px;height:430px;filter:grayscale(1) brightness(2.5);opacity:.17;z-index:-1}.rsvp-callout h2{font-size:clamp(39px,4.8vw,64px);letter-spacing:-1.8px;line-height:1.12}.rsvp-callout h2 em{color:#d4c5a9}.rsvp-callout p{font-size:13px;max-width:440px;line-height:1.85;color:#d6d7ca}.rsvp-callout .eyebrow{color:#d4c5a9}.contact-links a{padding:6px 0;min-height:36px}.site-footer{background:#f3f0e9;padding-block:30px}.mobile-rsvp-bar{display:none}

/* A calm, guided registration form with readable touch-sized controls. */
.registration-page{max-width:1130px;padding:35px 28px 80px}.registration-page-heading{position:relative}.registration-back{font-size:11px;display:inline-flex;min-height:44px;align-items:center;text-decoration:none;color:var(--muted);margin-bottom:8px}.registration-page .page-intro{margin-bottom:32px}.registration-page .page-intro h1{font-size:clamp(33px,3.8vw,48px);letter-spacing:-1.6px}.registration-page .page-intro p{font-size:13px}.registration-page .page-intro .eyebrow{margin-bottom:15px}
.rsvp-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:25px;align-items:start}.rsvp-aside{position:sticky;top:106px;background:#ece8dd;border:1px solid #ddd5c4;border-radius:10px;padding:28px;overflow:hidden;isolation:isolate}.rsvp-aside>.eyebrow{font-size:8px;letter-spacing:1.5px}.aside-monogram{font-family:var(--serif);font-size:46px;line-height:1;margin:30px 0;color:#6b6250}.aside-monogram em{color:#a08a63;font-size:30px}.rsvp-aside h2{font-size:34px;letter-spacing:-1px;line-height:1.1;margin-bottom:25px}.aside-event{display:flex;flex-direction:column;gap:3px}.aside-event strong{font-size:12px}.aside-event strong:nth-of-type(2){margin-top:15px}.aside-event span{font-size:11px;color:#66645b}.rsvp-aside p{font-size:11px;color:var(--muted);border-top:1px solid #d0c7b5;padding-top:20px;margin-top:25px}.aside-help{font-size:11px;line-height:2.1;color:var(--muted)}.aside-help a{display:inline-block;min-height:28px;color:var(--ink)}.rsvp-aside>img{position:absolute;bottom:-90px;right:-90px;width:260px;height:340px;opacity:.12;filter:grayscale(1);z-index:-1}
.registration-page .wizard{border-radius:10px;padding:30px 32px 22px;box-shadow:0 8px 32px #312a1d05;min-width:0}.step-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:9px;letter-spacing:1.3px;color:var(--muted);margin-bottom:12px}.step-caption strong{font-size:11px;letter-spacing:0;font-weight:500;color:var(--accent)}.step-progress{height:3px;width:100%;background:#eae6db;border-radius:4px;overflow:hidden;margin-bottom:20px}.step-progress span{display:block;background:#968263;height:100%;transition:width .25s}.registration-page .steps{margin-bottom:30px;border-bottom:0;gap:10px}.registration-page .steps li{display:flex;align-items:center;gap:8px;font-size:10px;padding:0;border-bottom:0;white-space:nowrap}.registration-page .steps li span{display:grid;place-items:center;border-radius:50%;border:1px solid #dbd5c7;width:28px;height:28px;font-family:var(--sans);font-size:9px;margin:0;flex-shrink:0}.registration-page .steps .active{color:var(--ink)}.registration-page .steps .active span{background:var(--ink);border-color:var(--ink);color:#fff}.registration-page .steps .complete span{background:#e9e5da;border-color:#d0c6b2;color:var(--accent)}
.form-heading{font-size:30px;letter-spacing:-.8px;line-height:1.15}.form-description{font-size:13px;line-height:1.8}.field label,.field-label{font-size:12px}.field-grid{gap:20px}.field{min-width:0}input:not([type=checkbox]):not([type=radio]),select,textarea{background:#fffefa;border-color:#d2cdbf;border-radius:6px;min-height:51px;font-size:16px;line-height:1.4;padding:13px 14px}input::placeholder,textarea::placeholder{font-size:13px;color:#858476}input[type=checkbox],input[type=radio]{accent-color:#4a4b3f;width:19px;height:19px}.choice{border-radius:6px;border-color:#dcd6c9;font-size:12px;padding:13px 12px;min-height:54px;line-height:1.5}.choice:has(input:checked){border-color:#8d7c5c;background:#f0ece1;box-shadow:inset 0 0 0 1px #8d7c5c}.attendance-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check-label{font-size:13px;line-height:1.6;padding:6px 0;min-height:46px}.person-card{background:#f7f4ee;border-radius:8px;border-color:#e0d9ca;padding:20px}.form-section{border-color:#e4ded2}.total-pill{background:#ede7d9;color:#796645;font-size:10px}.form-actions{margin-top:28px;padding-top:22px}.form-actions .button{min-width:155px}.form-reassurance{text-align:center;font-size:10px;line-height:1.7;color:var(--muted);margin:18px 0 0}.form-reassurance a{white-space:nowrap}.form-error,.notice{border-radius:0 6px 6px 0;overflow-wrap:anywhere}.review-row{overflow-wrap:anywhere}.review-row>span{min-width:0}.review-row>span:last-child{max-width:65%}.food-person summary{min-height:55px}.toast{bottom:25px;border-radius:8px}.modal{border-radius:10px}
@media(min-width:1500px){.hero{padding-inline:70px}.hero-art{max-width:490px}}
@media(max-width:1050px){.hero{padding:45px 5% 55px;gap:5%}.hero h1{font-size:clamp(52px,7.4vw,80px)}.hero-art{min-height:610px;padding:44px 17px 18px}.hero-registration{padding:22px 20px 18px}.hero-registration h2{font-size:33px}.hero-actions{align-items:flex-start;flex-direction:column;gap:4px}.hero-facts{grid-template-columns:1fr}.hero-facts>div{display:grid;grid-template-columns:1fr 1fr}.hero-facts small{grid-column:1/-1;margin-bottom:0}.hero-facts span{align-self:center}.rsvp-layout{grid-template-columns:220px minmax(0,1fr);gap:18px}.rsvp-aside{padding:23px}.registration-page .wizard{padding:27px 24px}.attendance-options{grid-template-columns:1fr}.section{padding-inline:6%}}
@media(max-width:760px){
 .site-header{height:72px;padding:0 5%;gap:14px}.wordmark{font-size:27px;margin-right:auto}.wordmark-date{font-size:8px;letter-spacing:1.5px;padding-left:11px;margin-left:12px}.header-register{display:inline-flex;min-height:42px;padding:9px 15px;font-size:11px;gap:12px}.menu-button{display:block;font-size:10px;padding:10px 0 10px 5px;min-height:44px;min-width:44px}.site-header nav{display:none;position:absolute;left:0;right:0;top:72px;padding:20px 6%;background:var(--paper);border-bottom:1px solid var(--line)}.site-header nav.open{display:flex;flex-direction:column;gap:7px;align-items:stretch}.site-header nav>a:not(.button){min-height:44px;display:flex;align-items:center}
 .hero{grid-template-columns:1fr;padding:37px 6% 40px;gap:28px}.hero-copy{text-align:center}.hero-copy>.eyebrow{justify-content:center;font-size:8px;letter-spacing:1.8px;margin-bottom:21px}.fine-line{width:23px}.hero h1{font-size:clamp(48px,10.5vw,77px);letter-spacing:-2.5px;margin-bottom:20px;line-height:1.02}.hero h1 em{margin:5px 0;font-size:.5em}.hero-subtitle{font-size:25px;line-height:1.25;max-width:none;margin:0 0 14px}.hero-invitation{font-size:12px;max-width:310px;margin:0 auto 22px;line-height:1.75}.hero-facts{display:flex;justify-content:center;gap:20px;text-align:left;margin:0 auto 23px;padding-top:17px;max-width:440px}.hero-facts>div{display:flex;flex-direction:column;gap:3px;max-width:52%}.hero-facts strong{font-size:11px}.hero-facts small{font-size:7px;letter-spacing:1.4px}.hero-facts span{font-size:10px;align-self:auto}.hero-actions{align-items:center;gap:6px}.hero-actions .primary-rsvp{width:100%;max-width:380px;justify-content:space-between;min-height:55px;padding-inline:23px;font-size:13px}.hero-actions .subtle{font-size:10px;min-height:35px}.hero-rsvp-note{font-size:9px;max-width:310px;margin:9px auto 0}
 .hero-art{min-height:0;max-width:440px;border-radius:180px 180px 9px 9px;padding:35px 18px 18px;gap:18px}.hero-art:before{border-radius:170px 170px 5px 5px;inset:10px}.invitation-seal{padding-top:10px}.invitation-seal .mini{font-size:7px;letter-spacing:1.8px}.seal-monogram{font-size:72px;margin:18px 0 14px;letter-spacing:-8px}.seal-monogram span{font-size:32px}.seal-date{font-size:8px;letter-spacing:3px}.hero-registration{margin-top:4px;padding:21px 23px 16px}.hero-registration h2{font-size:32px}.hero-registration p{font-size:12px;margin-bottom:13px}.hero-registration .eyebrow{font-size:7px;letter-spacing:1.3px}.hero-registration .button{min-height:50px}.registration-topics{font-size:9px;margin-bottom:14px}.registration-manage{font-size:10px;min-height:35px;margin-top:8px}
 .date-strip{padding:25px 6%;align-items:center;gap:15px}.date-strip .date-large{font-size:23px;max-width:150px;line-height:1.15}.date-strip .date-large small{font-size:7px;letter-spacing:1px;line-height:1.7;margin-top:8px}.date-strip p{display:none}.countdown{gap:15px}.countdown>div{font-size:26px;min-width:28px}.countdown small{font-size:7px;letter-spacing:1px;margin-top:6px}
 .section{padding:52px 6%}.section-title{grid-template-columns:1fr;gap:19px;margin-bottom:26px}.section-title h2{font-size:36px;letter-spacing:-1.2px}.section-title p{font-size:13px}.eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:17px}.detail-grid{grid-template-columns:1fr;gap:13px}.detail-card{padding:27px 25px}.detail-card .card-number{font-size:8px;margin-bottom:18px}.detail-card h3{font-size:28px}.detail-card .time{font-size:8px;letter-spacing:1.1px}.detail-card p{font-size:12px}.family-line{font-size:13px;padding-top:15px;margin-top:26px;line-height:1.85}.family-line strong{font-size:20px}.family-flourish{font-size:37px}.dress-section{grid-template-columns:1fr;gap:28px}.dress-section h2{font-size:39px}.dress-content{gap:20px}.dress-content h3{font-size:23px}.dress-content p{font-size:12px}.dress-content .card-number{font-size:7px;letter-spacing:1.3px}.swatches{margin-top:22px}.travel-section{grid-template-columns:1fr;gap:29px}.travel-copy{order:0}.travel-copy h2{font-size:42px}.travel-copy p{font-size:13px}.venue-art{order:1;min-height:320px;max-width:440px;width:100%;margin:auto;padding:24px}.venue-art-frame{min-height:270px}.venue-art-name{font-size:64px}.venue-art-city{margin-top:18px}.rsvp-callout{margin-bottom:45px;max-width:88%;padding:43px 23px}.rsvp-callout h2{font-size:40px}.rsvp-callout p{font-size:12px}.rsvp-callout .button{width:100%;max-width:330px;justify-content:space-between;font-size:12px}.rsvp-callout .contact-links{gap:15px;font-size:11px}.site-footer{padding:28px 6% 105px}
 .mobile-rsvp-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 6% max(11px,env(safe-area-inset-bottom));background:#fffefaf5;border-top:1px solid #d9d2c3;box-shadow:0 -5px 24px #322b1e08;z-index:19;backdrop-filter:blur(14px)}.mobile-rsvp-bar>div{display:flex;flex-direction:column}.mobile-rsvp-bar strong{font-family:var(--serif);font-size:18px;font-weight:400;line-height:1.3}.mobile-rsvp-bar>div>span{font-size:9px;color:var(--muted)}.mobile-rsvp-bar .button{min-height:44px;padding:10px 20px;font-size:12px;gap:24px}
 .registration-page{padding:18px 16px 40px}.registration-back{font-size:10px;margin-bottom:5px}.registration-page .page-intro{margin:0 0 24px;text-align:left}.registration-page .page-intro h1{font-size:35px;letter-spacing:-1.1px;margin-bottom:12px;max-width:370px}.registration-page .page-intro p{font-size:12px;line-height:1.8}.registration-page .page-intro .eyebrow{font-size:8px;margin-bottom:12px}.rsvp-layout{grid-template-columns:1fr;gap:15px}.rsvp-aside{position:relative;top:auto;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 19px;border-radius:8px}.rsvp-aside>.eyebrow,.aside-monogram,.rsvp-aside h2,.rsvp-aside>p,.aside-help,.rsvp-aside>img{display:none}.aside-event{display:grid;grid-template-columns:1fr 1.3fr;gap:3px 15px;align-items:center;width:100%}.aside-event strong{font-size:11px}.aside-event strong:nth-of-type(1){grid-column:1;grid-row:1}.aside-event span:nth-of-type(1){grid-column:1;grid-row:2}.aside-event strong:nth-of-type(2){grid-column:2;grid-row:1;margin:0}.aside-event span:nth-of-type(2){grid-column:2;grid-row:2}.aside-event span{font-size:10px}
 .registration-page .wizard{padding:22px 19px 17px;border-radius:8px}.registration-page .steps{margin-bottom:26px;gap:6px}.registration-page .steps li{font-size:9px;gap:5px}.registration-page .steps li span{width:25px;height:25px;font-size:8px}.step-caption{font-size:8px;letter-spacing:1.3px}.step-caption strong{font-size:10px}.form-heading{font-size:27px;letter-spacing:-.6px}.form-description{font-size:12px;margin-bottom:21px}.field-grid{grid-template-columns:1fr;gap:19px}.field label,.field-label{font-size:12px}.field{gap:8px}.attendance-options{grid-template-columns:1fr;gap:8px;margin-bottom:24px}.choice{font-size:13px;padding:13px 14px;min-height:51px}.check-label{font-size:12px;gap:11px;min-height:47px;line-height:1.7}.check-label input{margin:2px 0;align-self:flex-start}.form-section{margin-top:23px;padding-top:23px}.form-section h3{font-size:23px}.person-card{padding:17px}.person-card .field-grid{gap:17px}.form-actions{gap:12px;margin-top:26px;padding-top:20px;position:sticky;bottom:0;background:#fffefa;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:2}.form-actions .button{min-width:0;font-size:12px;gap:18px;padding:14px 18px;flex:1;max-width:230px}.form-actions>.text-button{font-size:11px;padding-right:10px;min-width:65px}.form-reassurance{font-size:9px;margin-top:12px}.review-row{font-size:12px}.review-section h3{font-size:23px}.food-person summary{gap:10px}.food-person summary>span:last-child{max-width:55%;text-align:right;font-size:10px}.saved-actions>.button{width:100%}.modal-backdrop{padding:16px 12px}.toast{bottom:85px;right:15px;left:15px}.site-footer>div:last-child a{min-height:36px;display:flex;align-items:center}.field-grid .field{margin-bottom:0}
}
@media(max-width:370px){.wordmark-date{display:none}.hero h1{font-size:46px;letter-spacing:-2px}.hero-facts{gap:14px}.hero-facts strong{font-size:10px}.date-strip .date-large{font-size:21px;max-width:125px}.countdown{gap:10px}.countdown>div{font-size:24px;min-width:25px}.registration-page .wizard{padding-inline:15px}.registration-page .steps li{font-size:8px;gap:4px}.registration-page .steps li span{width:23px;height:23px}.dress-content{grid-template-columns:1fr;gap:20px}.mobile-rsvp-bar strong{font-size:16px}.header-register{padding-inline:13px}}
fieldset.attendance-options{min-inline-size:0;margin-inline:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.step-progress span{transition:none}}

/* Photo invitation: preserve the faces and make the opening feel personal. */
.photo-hero{gap:7%;align-items:center;padding-block:45px 55px}
.hero-photo-stage{position:relative;isolation:isolate;min-width:0;margin:0;width:100%;height:clamp(490px,49vw,640px);overflow:hidden;border-radius:230px 230px 12px 12px;background:#252621;border:1px solid #d4cbbb;box-shadow:0 18px 48px #30271514}
.hero-photo-stage picture{display:block;width:100%;height:100%}
.hero-photo-stage img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 12%;filter:saturate(.85) sepia(.06)}
.portrait-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#17181400 50%,#17181418 66%,#171814c4 100%)}
.portrait-caption{position:absolute;left:28px;right:28px;bottom:25px;color:#fffdf5;display:flex;flex-direction:column;gap:4px}
.portrait-caption>span:first-child{font-family:var(--serif);font-size:25px;letter-spacing:-.4px}
.portrait-caption>span:last-child{font-size:9px;letter-spacing:1.8px;color:#e0d6c1}
.photo-names{display:none}
.photo-story{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center;padding-top:18px;padding-bottom:85px}
.photo-story-copy h2{font-size:clamp(39px,4.4vw,59px);letter-spacing:-1.7px;line-height:1.13;margin-bottom:21px}
.photo-story-copy>p{font-size:14px;line-height:1.9;color:var(--muted);max-width:340px;margin-bottom:20px}
.story-link{display:inline-flex;align-items:center;gap:23px;font-size:12px;font-weight:600;min-height:48px}
.story-monogram{display:block;font-family:var(--serif);font-size:55px;letter-spacing:-3px;color:#b6a78b;margin-top:30px;line-height:1}
.story-monogram em{font-size:34px;color:#9d8c6d}
.photo-story-grid{display:grid;grid-template-columns:1.05fr .85fr;gap:20px;align-items:start;min-width:0}
.story-photo{min-width:0;margin:0;padding:8px 8px 0;background:#fffefa;border:1px solid #ddd5c6;border-radius:7px;box-shadow:0 8px 24px #3027150c}
.story-photo picture{display:block;aspect-ratio:3/4;overflow:hidden;background:#e4dfd5;border-radius:3px}
.story-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.84) sepia(.05)}
.together-photo img{object-position:50% 25%}
.bride-photo{margin-top:65px}.bride-photo picture{aspect-ratio:3/5}.bride-photo img{object-position:50% 20%}
.story-photo figcaption{font-family:var(--serif);font-style:italic;font-size:14px;line-height:1.4;text-align:center;color:#71664f;padding:14px 5px 16px}
@media(max-width:1050px){.photo-hero{gap:5%;padding-block:35px 45px}.hero-photo-stage{height:560px;border-radius:210px 210px 10px 10px}.photo-story{gap:6%}.photo-story-grid{gap:14px}.story-photo figcaption{font-size:12px}.bride-photo{margin-top:50px}}
@media(max-width:760px){
 .photo-hero{display:flex;flex-direction:column;gap:0;padding:12px 0 32px;max-width:100%}
 .hero-photo-stage{order:-1;width:calc(100% - 24px);height:clamp(350px,112vw,470px);border-radius:9px;margin:0 12px;border-color:#d9cfbd;box-shadow:0 8px 24px #30271514}
 .hero-photo-stage img{object-position:50% 12%;filter:saturate(.85) sepia(.04)}
 .portrait-shade{background:linear-gradient(180deg,#15171400 43%,#15171412 54%,#151714a6 79%,#151714de 100%)}
 .portrait-caption{display:none}
 .photo-names{position:absolute;left:15px;right:15px;bottom:24px;display:flex;flex-direction:column;align-items:center;color:#fffef7;text-align:center;text-shadow:0 2px 14px #0003;pointer-events:none}
 .photo-names>small{font-size:7px;letter-spacing:2.2px;color:#e9dfca;margin-bottom:9px;line-height:1.5}.photo-names>small:last-child{font-size:8px;letter-spacing:1.7px;margin:13px 0 0;color:#f1e7d4}
 .photo-names>span{font-family:var(--serif);font-size:clamp(36px,10.4vw,54px);line-height:1.08;letter-spacing:-1.4px}.photo-names em{font-weight:400;font-size:.62em;color:#e0ceab;margin-left:3px}
 .photo-hero .hero-copy{width:100%;padding:24px 6% 0;text-align:center}
 .photo-hero .hero-copy>h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
 .photo-hero .hero-copy>.eyebrow{display:none}
 .photo-hero .hero-subtitle{font-size:25px;line-height:1.24;margin-bottom:10px}
 .photo-hero .hero-invitation{font-size:12px;line-height:1.75;max-width:310px;margin-bottom:18px}
 .photo-hero .hero-facts{padding-top:15px;margin-bottom:18px;gap:18px}
 .photo-hero .hero-actions{width:100%}.photo-hero .primary-rsvp{max-width:420px}
 .photo-hero .hero-rsvp-note{font-size:10px;margin-top:8px;max-width:330px;line-height:1.7}
 .photo-story{display:flex;flex-direction:column;align-items:stretch;gap:24px;padding:0 6% 50px}
 .photo-story-copy{text-align:center}.photo-story-copy h2{font-size:38px;letter-spacing:-1.2px;margin-bottom:15px}.photo-story-copy>p{font-size:12px;max-width:310px;margin:0 auto 9px;line-height:1.8}.photo-story-copy .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:14px}.story-link{font-size:11px;min-height:44px;gap:15px}.story-monogram{display:none}
 .photo-story-grid{width:100%;max-width:480px;margin:0 auto;gap:12px;grid-template-columns:1.05fr .85fr}
 .story-photo{padding:5px 5px 0;border-radius:6px}.together-photo picture{aspect-ratio:3/4}.bride-photo{margin-top:34px}.bride-photo picture{aspect-ratio:3/5}
 .story-photo figcaption{font-size:12px;line-height:1.4;padding:11px 3px 13px;min-height:45px}.together-photo img{object-position:50% 25%}.bride-photo img{object-position:50% 20%}
}
@media(max-width:370px){.hero-photo-stage{width:calc(100% - 20px);height:360px;margin-inline:10px}.photo-names{bottom:21px}.photo-names>span{font-size:36px}.photo-names>small{font-size:6px;letter-spacing:1.8px}.photo-story-grid{gap:9px}.story-photo figcaption{font-size:11px}.photo-story-copy h2{font-size:34px}.photo-hero .hero-subtitle{font-size:23px}}
