@font-face{font-family:Cinzel;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/wedding-1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/wedding-1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/wedding-1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cutive Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/wedding-2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/wedding-3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/wedding-3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/wedding-3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/wedding-3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/wedding-4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alex Brush;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/wedding-5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#faf7ed;--cream:#fffdf4;--brown:#38251f;--brown-light:#5f4a3e;--gold:#aa8a4f;--ink:#352b25;--muted:#82786c;--line:#ded6c6;--sans:"DM Sans",sans-serif;--serif:"Cinzel",Georgia,serif;--script:"Great Vibes",cursive;--mono:"Cutive Mono",monospace;color:var(--ink);font-family:var(--sans);background:var(--paper);font-synthesis:none;font-size:14px}*{box-sizing:border-box}body,figure,h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation;color:inherit}button{cursor:pointer;background:0 0;border:0}a{text-decoration:none}button:disabled{cursor:wait;opacity:.6}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.script,h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}.eyebrow,p{line-height:1.8}svg{flex-shrink:0}html{scroll-behavior:smooth;scroll-padding-top:90px}::selection{background:#b59b6a55}img{max-width:100%}.script{font-family:var(--script);text-transform:none;letter-spacing:0}.eyebrow{letter-spacing:2px;font-size:10px;font-weight:500}.muted{color:var(--muted)}.centered,.error-banner{text-align:center}.small-copy{font-size:12px}.button{background:var(--brown);color:var(--cream);letter-spacing:1.35px;border:1px solid var(--brown);justify-content:center;align-items:center;gap:24px;min-height:48px;padding:17px 25px;font-size:10px;font-weight:500;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:#54392d;transform:translateY(-1px)}.button.cream{background:var(--paper);border-color:var(--paper);color:var(--brown)}.button.cream:hover{background:#e9dfc8}.button.outline{color:var(--brown);background:0 0;border-color:#b8a88b}.button.outline:hover{background:#e5dbc533}.button.small{gap:20px;min-height:39px;padding:11px 20px}.button.full{width:100%}.button-row{flex-wrap:wrap;gap:12px;display:flex}.text-button{letter-spacing:1px;border-bottom:1px solid #0000;justify-content:center;align-items:center;gap:9px;padding:10px 0;font-size:10px;display:inline-flex}.text-button:hover{border-bottom-color:var(--gold)}.circle-button,.icon-button{flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.circle-button{border:1px solid var(--line);background:0 0;border-radius:50%}.circle-button:hover{background:#b49b7022}.icon-button:hover{background:#b49b7015}.wordmark{align-items:center;gap:16px;display:flex}.wordmark-initials{font-family:var(--serif);white-space:nowrap;letter-spacing:-2px;font-size:28px}.wordmark-initials i{font-family:var(--script);padding:0 3px;font-size:24px;font-weight:400}.wordmark-label{letter-spacing:2px;border-left:1px solid var(--line);padding-left:16px;font-size:8px;line-height:1.6}.error-banner{background:#ffe3dc;padding:14px}.admin-notice button,.error-banner button{text-decoration:underline}.passport-cover{aspect-ratio:753/1024;background:var(--brown);color:#fffceb;border-radius:28px 31px 31px 28px;padding:10px;position:relative;box-shadow:inset 4px 0 4px #ffffff10,inset -3px -3px 5px #0004;container-type:inline-size}.passport-cover:after{content:"";border-radius:inherit;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' 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%3Cpath filter='url(%23n)' opacity='.5' d='M0 0h120v120H0z'/%3E%3C/svg%3E");position:absolute;inset:0}.passport-inner{border:1px solid #eee5cf;border-radius:23px;flex-direction:column;align-items:center;height:100%;padding:20px 10px 6px;display:flex}.passport-wedding{font-size:39px;line-height:1.1}.passport-rule{color:var(--gold);justify-content:center;align-items:center;gap:9px;width:58%;height:21px;font-size:15px;display:flex}.passport-rule:after,.passport-rule:before{content:"";background:linear-gradient(90deg,transparent,var(--gold));flex:1;height:1px}.passport-rule:after{transform:rotate(180deg)}.passport-label{font-family:var(--serif);color:var(--gold);letter-spacing:.5px;font-size:32px;line-height:1.2}.passport-emblem{width:95%;height:210px;margin-top:6px;position:relative}.laurels{width:100%;height:100%}.emblem-bottom,.emblem-star{color:var(--gold);font-size:22px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.emblem-bottom{top:auto;bottom:0}.monogram{font-size:97px;line-height:.8;position:absolute;top:36px;left:26%}.monogram i{margin-top:-4px;margin-left:30px;font-size:100px;font-style:normal;display:block}.passport-names{font-family:var(--serif);white-space:nowrap;margin-top:0;font-size:17px}.passport-date{font-family:var(--serif);margin-top:12px;font-size:23px;line-height:1.2}.passport-sprig{color:var(--gold);margin-top:7px;font-size:28px;line-height:1}.barcode{background:repeating-linear-gradient(90deg,var(--ink) 0,var(--ink) 1px,transparent 1px,transparent 4px,var(--ink) 4px,var(--ink) 7px,transparent 7px,transparent 9px,var(--ink) 9px,var(--ink) 11px,transparent 11px,transparent 14px,var(--ink) 14px,var(--ink) 15px,transparent 15px,transparent 18px,var(--ink) 18px,var(--ink) 23px,transparent 23px,transparent 26px,var(--ink) 26px,var(--ink) 28px,transparent 28px,transparent 32px);width:100%;max-width:120px;height:25px}.app-modal{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:100%;max-width:calc(min(540px,100vw - 30px));max-height:90dvh;padding:0;overflow:auto;box-shadow:0 15px 100px #1e100c55}.app-modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#23181199}.modal-content{padding:32px}.modal-heading{justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:23px;display:flex}.modal-heading .eyebrow{letter-spacing:1.5px;color:var(--gold);font-size:7px}.modal-heading h2{margin-top:9px;font-size:26px;line-height:1.4}.modal-heading .icon-button{margin-top:-9px;margin-right:-12px}.modal-description{color:var(--muted);margin-bottom:23px;font-size:12px;line-height:1.9}.modal-description strong{color:var(--brown);font-weight:500}.form-stack{flex-direction:column;gap:20px;display:flex}.field,.form-stack>label{flex-direction:column;gap:8px;font-size:11px;font-weight:500;display:flex}.field small,.form-stack label small{color:var(--muted);font-size:10px;font-weight:400;line-height:1.6}.optional{color:var(--muted);font-weight:400}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fffdf7;border-radius:0;outline:none;width:100%;min-height:43px;padding:12px 13px;font-size:12px}textarea{resize:vertical;min-height:80px;line-height:1.7}input:focus,select:focus,textarea:focus{border-color:var(--gold)}input::-moz-placeholder{color:#b2a796;font-weight:400}textarea::-moz-placeholder{color:#b2a796;font-weight:400}input::placeholder,textarea::placeholder{color:#b2a796;font-weight:400}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--brown);margin:0}input[type=number]{max-width:200px}.attendance-options{border:0;gap:9px;margin:0;padding:0;display:flex}.attendance-options legend{margin-bottom:10px;font-size:11px;font-weight:500}.attendance-options>label{border:1px solid var(--line);cursor:pointer;flex:1;align-items:center;gap:7px;padding:11px 9px;font-size:10px;display:flex}.attendance-options>label.selected{border-color:var(--gold);background:#ece2cd44}.honeypot{opacity:0!important;width:1px!important;height:1px!important;position:absolute!important;left:-10000px!important;overflow:hidden!important}.form-error{color:#9d3e2a;background:#fce9e4;border:1px solid #e5c1b8;padding:12px 14px;font-size:12px;line-height:1.6}.closed-panel,.success-panel{text-align:center;padding:20px 0}.closed-panel>svg,.success-panel>svg{color:var(--gold);margin-bottom:14px}.closed-panel h3,.success-panel h3{font-family:var(--serif);font-size:22px}.closed-panel p,.success-panel p{color:var(--muted);margin:15px 0 25px;font-size:12px}.modal-venue-art{background:#eee6d5;justify-content:center;align-items:center;height:170px;margin-bottom:25px;display:flex;position:relative}.modal-venue-art>svg:first-child{width:100%;height:100%;color:var(--gold);opacity:.25;position:absolute}.modal-venue-art>svg:last-child{color:var(--gold)}.modal-subheading{font-family:var(--serif);margin-bottom:12px;font-size:23px}.calendar-card{border:1px solid var(--gold);text-align:center;width:130px;margin:10px auto 23px}.calendar-card>span:first-child{background:var(--brown);color:var(--paper);text-transform:uppercase;letter-spacing:2px;padding:8px;font-size:10px;display:block}.calendar-card>strong{font-family:var(--serif);font-size:55px;font-weight:400;line-height:1.5;display:block}.calendar-card>span:last-child{color:var(--muted);padding-bottom:13px;font-size:10px;display:block}.contact-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:20px 0;display:flex}.admin-notice>div,.contact-row>div{flex:1}.contact-row h3{font-family:var(--serif);margin-bottom:5px;font-size:18px}.contact-row span{color:var(--muted);font-size:11px}.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}.admin-shell{background:#f6f3ec;min-height:100dvh}.admin-sidebar{background:var(--brown);width:224px;color:var(--paper);z-index:20;flex-direction:column;padding:31px 21px;display:flex;position:fixed;inset:0 auto 0 0}.admin-sidebar .wordmark-label{color:#c5b89f;border-color:#ffffff24;font-size:7px}.admin-sidebar .wordmark{gap:12px;padding-inline:5px}.admin-sidebar .wordmark-initials{font-size:26px}.sidebar-label{letter-spacing:2px;color:#aa9578;margin:43px 14px 13px;font-size:8px}.admin-sidebar nav{flex-direction:column;gap:6px;display:flex}.admin-sidebar nav button{text-align:left;color:#cbbfae;border-radius:3px;align-items:center;gap:12px;padding:13px 14px;font-size:11px;display:flex}.admin-sidebar nav button.active{color:#fff9e9;background:#ffffff0d;border:1px solid #ffffff0c}.admin-sidebar nav button:hover{background:#ffffff0a}.admin-sidebar nav button>span{color:var(--brown);background:#ad8b50;border-radius:3px;margin-left:auto;padding:2px 5px;font-size:9px}.sidebar-bottom{color:#cbbfae;border-top:1px solid #ffffff18;flex-direction:column;gap:15px;margin-top:auto;padding-top:18px;font-size:10px;display:flex}.sidebar-bottom>a,.sidebar-bottom>button{text-align:left;align-items:center;gap:10px;padding-inline:14px;display:flex}.sidebar-bottom>small{color:#a4917a;text-overflow:ellipsis;padding-inline:14px;font-size:9px;overflow:hidden}.admin-main{min-width:0;margin-left:224px}.admin-topbar{border-bottom:1px solid var(--line);background:#fbf8f1;justify-content:space-between;align-items:center;gap:20px;height:76px;padding-inline:38px;display:flex}.admin-topbar>div{align-items:center;gap:10px;display:flex}.admin-topbar>div>span{color:var(--muted);font-size:11px}.admin-topbar>div>svg{color:var(--gold)}.admin-topbar>div>strong{font-size:11px;font-weight:500}.admin-topbar .button{gap:12px;min-height:36px;padding:10px 13px;font-size:9px}.admin-content{max-width:1440px;margin-inline:auto;padding:36px 38px 60px}.admin-page-title{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.admin-page-title .eyebrow{color:var(--gold);font-size:8px}.admin-page-title h1{margin-top:6px;font-size:30px}.admin-page-title p{color:var(--muted);margin-top:8px;font-size:11px}.admin-date{color:var(--muted);white-space:nowrap;font-size:10px}.admin-notice{background:#f3ebd9;border:1px solid #d7c8aa;align-items:center;gap:13px;margin-bottom:24px;padding:17px 19px;display:flex}.admin-notice>svg,.stat-card>svg{color:var(--gold)}.admin-notice strong{font-size:11px;font-weight:500;display:block}.admin-notice p{color:#8e7a5b;margin-top:4px;font-size:10px;line-height:1.6}.admin-notice button{align-items:center;gap:8px;font-size:10px;display:flex}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px;display:grid}.stat-card{border:1px solid var(--line);background:#fdfbf5;padding:21px;position:relative}.panel-heading p,.stat-card>span{color:var(--muted);font-size:10px}.stat-card>svg{position:absolute;top:19px;right:18px}.stat-card>strong{font-family:var(--serif);margin-top:15px;font-size:34px;font-weight:400;line-height:1.3;display:block}.stat-card>small{color:#948671;margin-top:6px;font-size:9px;display:block}.dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:24px;display:grid}.admin-panel{border:1px solid var(--line);background:#fdfbf5;min-width:0}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:21px 23px;display:flex}.panel-heading h2{font-family:var(--sans);font-size:12px;font-weight:500}.panel-heading p{margin-top:5px}.panel-heading>button{color:var(--gold);align-items:center;gap:7px;font-size:9px;display:flex}.panel-body{padding:23px}.event-mini{align-items:center;gap:15px;margin-bottom:23px;display:flex}.mini-date{border:1px solid var(--line);text-align:center;background:#f3ecdcc0;flex-shrink:0;width:55px}.mini-date span{color:var(--gold);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:1px;padding:5px;font-size:8px;display:block}.mini-date strong{font-size:24px;font-weight:400}.event-mini h3,.mini-date strong{font-family:var(--serif);line-height:1.6}.event-mini h3{font-size:15px}.event-mini p{color:var(--muted);margin-top:4px;font-size:9px}.event-meta-row{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding-block:12px;font-size:10px;display:flex}.event-meta-row>svg{color:var(--gold);margin-top:2px}.event-meta-row small{color:var(--muted);margin-bottom:4px;font-size:9px;display:block}.status-badge{color:#526846;white-space:nowrap;background:#e8eee4;border-radius:20px;align-items:center;gap:5px;padding:5px 8px;font-size:8px;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;width:4px;height:4px}.status-badge.closed{color:#997845;background:#f1e6d5}.status-badge.declined{color:#976957;background:#f0e5e0}.table-wrap{overflow:auto}.admin-table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:10px}.admin-table th{color:var(--muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--line);background:#f8f5ee;padding:13px 21px;font-size:8px;font-weight:400}.admin-table td{border-bottom:1px solid #eee8dc;padding:16px 21px}.admin-table tr:last-child td{border-bottom:0}.admin-table .table-name{font-size:11px;font-weight:500;display:block}.admin-table .table-phone{color:var(--muted);margin-top:5px;font-size:9px;display:block}.admin-table .table-note{white-space:normal;overflow-wrap:anywhere;max-width:200px;color:var(--muted);line-height:1.5}.empty-state{text-align:center;color:var(--muted);padding:45px 20px}.empty-state>svg{color:#bca98b;margin-bottom:14px}.empty-state h3{color:var(--brown-light);margin-bottom:7px;font-size:13px;font-weight:500}.empty-state p{font-size:11px}.dashboard-tip{border:1px solid var(--line);background:#eee6d655;align-items:flex-start;gap:13px;margin-top:23px;padding:20px;display:flex}.dashboard-tip>svg{color:var(--gold);margin-top:2px}.dashboard-tip h3{margin-bottom:5px;font-size:11px;font-weight:500}.dashboard-tip p{color:var(--muted);font-size:10px;line-height:1.8}.table-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:18px 21px;display:flex}.search-field{flex:1;max-width:340px;position:relative}.search-field>svg{color:#a59171;position:absolute;top:13px;left:12px}.search-field input{min-height:40px;padding-left:36px;font-size:10px}.table-toolbar select{max-width:165px;min-height:40px;font-size:10px}.pagination{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:15px 21px;font-size:10px}.pagination,.pagination button,.pagination>div{align-items:center;display:flex}.pagination>div{gap:12px}.pagination button{border:1px solid var(--line);justify-content:center;width:29px;height:29px}.admin-wishes{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.moderation-card{border:1px solid var(--line);background:#fdfbf5;flex-direction:column;padding:23px;display:flex}.moderation-card>div:first-child{justify-content:space-between;align-items:center;gap:10px;display:flex}.moderation-card h3{font-size:12px;font-weight:500}.moderation-card time{color:var(--muted);margin-top:7px;font-size:9px;display:block}.moderation-card p{overflow-wrap:anywhere;white-space:pre-line;margin-top:19px;font-size:12px}.moderation-actions{border-top:1px solid var(--line);gap:20px;margin-top:auto;padding-top:14px;display:flex}.moderation-card>p{padding-bottom:20px}.moderation-actions button{align-items:center;gap:6px;font-size:10px;display:flex}.moderation-actions button:first-child{color:#75835b}.moderation-actions button:last-child{color:#a27c65;margin-left:auto}.settings-layout{grid-template-columns:190px minmax(0,1fr);gap:25px;display:grid}.settings-nav{flex-direction:column;align-self:start;gap:5px;display:flex;position:sticky;top:25px}.settings-nav button{text-align:left;color:var(--muted);border-left:2px solid #0000;align-items:center;gap:10px;padding:13px 15px;font-size:11px;display:flex}.settings-nav button.active{border-left-color:var(--gold);color:var(--brown);background:#e9dfcc60}.settings-panel{border:1px solid var(--line);background:#fdfbf5;padding:27px}.settings-panel h2{font-family:var(--sans);margin-bottom:6px;font-size:15px;font-weight:500}.settings-panel>.muted{margin-bottom:26px;font-size:11px}.settings-fields{flex-direction:column;gap:21px;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.field input,.field select,.field textarea{margin-top:0}.field textarea{min-height:90px}.settings-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;margin-top:28px;padding-top:24px;display:flex}.settings-footer>span{color:var(--muted);font-size:9px}.settings-footer .button{min-height:42px;padding:12px 19px;font-size:9px}.toggle-field{border:1px solid var(--line);background:#f7f2e8;justify-content:space-between;align-items:center;gap:20px;padding:17px;display:flex}.toggle-field>span{font-size:11px;line-height:1.7}.toggle-field small{color:var(--muted);margin-top:3px;font-size:10px;font-weight:400;display:block}.switch{flex-shrink:0;width:36px;height:21px;display:inline-flex;position:relative}.switch input{opacity:0;width:100%;height:100%;margin:0;position:absolute}.switch>span{pointer-events:none;background:#d8cbb4;border-radius:20px;width:36px;height:21px;transition:background .2s}.switch>span:after{content:"";background:#fff9ec;border-radius:50%;width:15px;height:15px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0002}.switch input:checked+span{background:var(--brown)}.switch input:checked+span:after{transform:translate(15px)}.switch input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}.setting-info{color:#927d56;background:#f1e8d3;border:1px solid #e2d5b6;padding:14px 16px;font-size:10px;line-height:1.8}.repeater-item{border:1px solid var(--line);background:#f8f4eb;padding:18px;position:relative}.repeater-item>.icon-button{color:#ab8772;width:28px;height:28px;position:absolute;top:3px;right:3px}.repeater-item .field-row{margin-top:5px;margin-bottom:15px}.repeater-item .field{font-size:10px}.add-row-button{color:#8f7c5b;border:1px dashed #c8bca6;justify-content:center;gap:7px;padding:12px;font-size:10px}.add-row-button,.admin-toast{align-items:center;display:flex}.admin-toast{color:#526140;background:#e9eedf;border:1px solid #c9d3ba;gap:10px;margin-bottom:20px;padding:13px 16px;font-size:11px}.admin-toast.error{color:#984f35;background:#f9e9e1;border-color:#e5c9bc}.admin-toast>.icon-button{width:25px;height:25px;margin-left:auto}.admin-login{grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.login-art{background:var(--brown);color:var(--paper);flex-direction:column;justify-content:center;align-items:center;padding:60px;display:flex;position:relative;overflow:hidden}.login-art>.wordmark{position:absolute;top:35px;left:40px}.login-art>.wordmark .wordmark-label{color:#c7b897;border-color:#ffffff24}.login-art>.passport-cover{filter:drop-shadow(10px 20px 20px #0002);width:260px;transform:rotate(-6deg)}.login-art .passport-emblem{height:150px}.login-art .passport-label{font-size:26px}.login-art .passport-wedding{font-size:31px}.login-art .passport-inner{padding-top:13px}.login-art .monogram{font-size:73px;top:30px}.login-art .monogram i{margin-left:20px;font-size:76px}.login-art .passport-names{font-size:13px}.login-art .passport-date{margin-top:7px;font-size:18px}.login-art .passport-sprig{font-size:22px}.login-art .emblem-star{font-size:16px;top:5px}.login-art .emblem-bottom{font-size:16px}.login-art>p{font-family:var(--script);color:#bda576;margin-top:45px;font-size:35px;position:relative}.login-art>.login-map{opacity:.07;color:#e1cfaa;pointer-events:none;width:150%;position:absolute;transform:rotate(-15deg)}.login-form-side{background:var(--paper);justify-content:center;align-items:center;padding:60px;display:flex}.login-form{width:100%;max-width:350px}.login-form>.eyebrow{color:var(--gold);font-size:9px}.login-form h1{margin-top:14px;font-size:32px}.login-form>p{color:var(--muted);margin-top:14px;margin-bottom:32px;font-size:12px}.login-form .text-button{color:var(--muted);margin-top:23px;font-size:9px}.login-form .form-stack{gap:22px}.admin-loading{min-height:100dvh;color:var(--muted);font-family:var(--serif);justify-content:center;align-items:center;gap:15px;font-size:14px;display:flex}.admin-mobile-top,.admin-scrim{display:none}.danger-button{color:#a05d44}.confirm-description{color:var(--muted);margin-bottom:25px;font-size:12px;line-height:1.9}.password-settings{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}@media (width<=1100px){.admin-sidebar{width:200px;padding-inline:16px}.admin-main{margin-left:200px}.admin-content{padding:28px 25px 45px}.admin-topbar{padding-inline:25px}.stats-grid{gap:10px}.stat-card{padding:17px}.stat-card>svg{width:15px;top:16px;right:13px}.stat-card>span{font-size:9px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 265px;gap:18px}.admin-table td,.admin-table th{padding-inline:16px}.settings-layout{grid-template-columns:155px 1fr;gap:17px}.settings-panel{padding:22px}.settings-nav button{padding-inline:12px;font-size:10px}.admin-page-title h1{font-size:26px}.admin-date{font-size:9px}.admin-panel .panel-heading{padding-inline:18px}.panel-body{padding:18px}}@media (width<=850px){.wordmark-label{display:none}.dashboard-grid{grid-template-columns:1fr}.admin-sidebar{width:184px;padding:26px 13px}.admin-sidebar .wordmark-label{letter-spacing:1.4px;padding-left:10px;display:block}.admin-sidebar .wordmark{gap:10px}.admin-main{margin-left:184px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:20px}.stat-card>span{font-size:10px}.admin-date{display:none}.admin-page-title{align-items:center}.admin-page-title .button{gap:9px;min-height:40px;padding:12px;font-size:8px}.admin-notice{align-items:flex-start}.admin-notice>button{white-space:nowrap;align-self:center;font-size:9px}.admin-wishes,.settings-layout{grid-template-columns:1fr}.settings-nav{flex-flow:wrap;gap:3px;display:flex;position:static}.settings-nav button{border-bottom:2px solid #0000;border-left:none;gap:6px;padding:10px 12px;font-size:9px}.settings-nav button.active{border-bottom-color:var(--gold)}.settings-nav button>svg{width:13px}.settings-panel{padding:23px}.field-row{gap:14px}.admin-login{grid-template-columns:.8fr 1fr}.login-art{padding:30px}.login-art>p,.login-form h1{font-size:26px}.login-art>.wordmark{left:26px}.login-form-side{padding:35px}.login-form>p{font-size:11px}}@media (width<=640px){.header-rsvp{margin-left:auto;font-size:8px;gap:10px!important;min-height:33px!important;padding:9px 13px!important}.modal-content{padding:26px 23px}.modal-heading .eyebrow{letter-spacing:1px;font-size:6px}.modal-heading h2{font-size:23px}.modal-heading{margin-bottom:20px}.modal-description{font-size:11px;line-height:1.8}.app-modal{max-height:85dvh}.app-modal .button-row{gap:9px}.app-modal .button-row .button{gap:12px;min-height:42px;padding:13px 14px;font-size:8px}.attendance-options{gap:7px}.attendance-options>label{gap:5px;padding:11px 8px;font-size:9px}.form-stack{gap:18px}.form-stack>label{font-size:10px}.form-stack .button{font-size:9px}.closed-panel h3,.success-panel h3{font-size:20px}.closed-panel p,.success-panel p{font-size:11px}.modal-subheading{font-size:20px}.contact-row h3{font-size:17px}.contact-row span{font-size:10px}.admin-sidebar{width:224px;transition:transform .2s;transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}.admin-sidebar .wordmark-label{font-size:7px}.admin-sidebar>.icon-button{color:var(--paper);width:25px;height:25px;position:absolute;top:12px;right:12px}.admin-scrim.open{z-index:19;background:#23181188;display:block;position:fixed;inset:0}.admin-main{margin-left:0}.admin-mobile-top{display:flex}.admin-topbar{gap:15px;height:65px;padding-inline:20px}.admin-topbar>div{gap:8px}.admin-topbar>div>span,.admin-topbar>div>strong{font-size:10px}.admin-topbar>div>svg{width:12px}.admin-topbar .button{gap:8px;min-height:32px;padding:9px 10px;font-size:7px}.admin-content{padding:26px 20px 40px}.admin-page-title h1{font-size:26px}.admin-page-title p{font-size:10px}.admin-page-title{align-items:center;gap:12px;margin-bottom:23px}.admin-page-title .eyebrow{letter-spacing:1.5px;font-size:7px}.admin-page-title .button{white-space:nowrap;gap:7px;min-height:36px;padding:11px;font-size:7px}.admin-page-title .button>svg{width:13px}.admin-notice{flex-wrap:wrap;gap:10px;padding:15px 13px}.admin-notice>svg{width:17px}.admin-notice>div{flex:1;min-width:200px}.admin-notice strong{font-size:10px}.admin-notice p,.panel-heading p,.stat-card>span{font-size:9px}.admin-notice>button{margin-left:27px;font-size:9px}.stats-grid{gap:12px;margin-bottom:20px}.stat-card{padding:18px 16px}.stat-card>svg{width:16px;top:18px;right:15px}.stat-card>strong{margin-top:13px;font-size:32px}.stat-card>small{margin-top:4px;font-size:8px}.dashboard-grid{gap:20px}.panel-heading{padding:17px}.panel-heading h2{font-size:11px}.panel-heading>button{white-space:nowrap;gap:5px;font-size:8px}.admin-table th{padding:12px 14px;font-size:7px}.admin-table td{padding:14px;font-size:9px}.admin-table .table-name{font-size:10px}.admin-table .table-phone{font-size:8px}.panel-body{padding:20px}.empty-state{padding:35px 18px}.empty-state h3{font-size:12px}.empty-state p{font-size:10px}.dashboard-tip{margin-top:20px;padding:17px}.dashboard-tip p{font-size:9px}.table-toolbar{gap:9px;padding:14px}.table-toolbar select{max-width:122px;padding-inline:9px;font-size:9px}.search-field input{padding-left:33px;font-size:9px}.search-field>svg{width:14px;left:11px}.pagination{padding:14px;font-size:9px}.pagination>div{gap:9px}.settings-nav{gap:3px}.settings-nav button{gap:5px;padding:9px 10px;font-size:8px}.settings-nav button>svg{width:12px}.settings-panel{padding:21px 17px}.settings-panel h2{font-size:14px}.settings-panel>.muted{margin-bottom:22px;font-size:10px;line-height:1.8}.settings-fields{gap:19px}.field,.toggle-field>span{font-size:10px}.field small,.toggle-field small{font-size:9px}.field-row{grid-template-columns:1fr;gap:19px}.field input,.field select,.field textarea{font-size:11px}.toggle-field{gap:12px;padding:14px}.setting-info{padding:12px;font-size:9px}.settings-footer{gap:10px;margin-top:24px;padding-top:21px}.settings-footer>span{font-size:8px}.settings-footer .button{white-space:nowrap;gap:10px;padding:12px 13px;font-size:8px}.repeater-item{padding:17px 13px}.repeater-item .field-row{gap:14px;margin-top:9px}.admin-wishes{gap:14px}.moderation-card{padding:19px}.moderation-card p{font-size:11px}.admin-login{flex-direction:column;min-height:100dvh;display:flex}.login-art{flex-shrink:0;justify-content:center;min-height:210px;padding:25px}.login-art>.wordmark{margin-top:15px;position:relative;top:0;left:0}.login-art>.wordmark .wordmark-label{letter-spacing:2px;font-size:7px;display:block}.login-art>p{margin-top:23px;font-size:32px}.login-art>.login-map{width:130%}.login-form-side{flex:1;padding:43px 30px}.login-form{max-width:360px}.login-form h1{font-size:29px}.login-form>p{margin-bottom:27px;font-size:11px}.login-form .form-stack{gap:20px}.login-form>.eyebrow{font-size:8px}.admin-toast{padding:12px;font-size:10px}.admin-topbar .admin-mobile-top{width:26px;height:30px}.admin-topbar .admin-mobile-top svg{width:18px}}@media (width<=360px){.modal-content{padding:23px 18px}.attendance-options>label{font-size:8px}.admin-content,.admin-topbar{padding-inline:16px}.admin-topbar{gap:8px}.admin-topbar>div>span{display:none}.admin-page-title h1{font-size:23px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.passport-cover .passport-inner{grid-template-rows:12% 4% 10% 43% 4% 9% 10% 8%;place-items:center;padding:10px 8px 9px;display:grid}.passport-cover .passport-inner>*{min-height:0;margin-top:0}.passport-cover .passport-wedding{font-size:12cqw;line-height:1.1}.passport-cover .passport-label{font-size:10cqw;line-height:1.2}.passport-cover .passport-emblem{width:95%;height:100%}.passport-cover .passport-rule{height:100%;font-size:5cqw}.passport-cover .passport-names{white-space:normal;text-align:center;max-width:100%;font-size:5.1cqw;line-height:1.2}.passport-cover .passport-date{font-size:7.4cqw;line-height:1.2}.passport-cover .passport-sprig{font-size:8cqw;line-height:1}.passport-cover .monogram{font-size:31cqw;line-height:.7;top:18%;left:25%}.passport-cover .monogram i{font-family:"Alex Brush",var(--script);margin-top:-5cqw;margin-left:8cqw;font-size:35cqw}.passport-cover .emblem-star{font-size:7cqw;top:0}.passport-cover .emblem-bottom{font-size:7cqw;bottom:0}:root{--navy:#1c2a43;--sand:#f3efe9;--ticket:#fffcef}body:has(.invite-page){background:var(--navy)}.invite-page{background:var(--navy);min-height:100vh}.invite-column{background:var(--sand);width:100%;max-width:430px;min-height:100vh;color:var(--ink);margin-inline:auto;position:relative;overflow:clip;box-shadow:0 0 40px #0006;container-type:inline-size}.invite-map{color:#8a7d6c;opacity:.14;pointer-events:none;max-width:none;position:absolute}.invite-map-top{transform-origin:30% 40%;width:150%;top:0;left:5%;transform:rotate(78deg)}.invite-map-mid{transform-origin:20% 30%;width:160%;top:2%;left:15%;transform:rotate(70deg)}.invite-map-bottom{width:170%;bottom:-10%;left:-25%;transform:rotate(-60deg)}.mono-title{font-family:var(--mono);letter-spacing:2px;text-align:center;background:var(--brown);color:var(--cream);-webkit-text-stroke:.6px currentColor;font-size:21px;font-weight:700;line-height:1.5;display:block}.mono-title.plain{color:inherit;background:0 0}.collage{gap:22px;padding:38px 14px 10px;display:grid;position:relative}.collage-row{grid-template-columns:1fr 1fr;align-items:center;gap:16px;display:grid}.collage-passport{filter:drop-shadow(3px 6px 8px #2e1a1230)}.collage-passport .passport-cover{border-radius:16px;padding:6px}.collage-passport .passport-inner{border-radius:12px;padding:6px 4px}.rsvp-ticket{filter:drop-shadow(2px 5px 6px #3a221528);align-self:stretch;display:flex}.rsvp-card{--notch:7px;--stub:30px;background:var(--ticket);text-align:center;-webkit-mask:radial-gradient(circle var(--notch) at 0 calc(100% - var(--stub)),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% calc(100% - var(--stub)),#0000 97%,#000) right/51% 100% no-repeat;-webkit-mask:radial-gradient(circle var(--notch) at 0 calc(100% - var(--stub)),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% calc(100% - var(--stub)),#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle var(--notch) at 0 calc(100% - var(--stub)),#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% calc(100% - var(--stub)),#0000 97%,#000) right/51% 100% no-repeat;border-radius:10px;flex-direction:column;flex:1;gap:5px;position:relative;overflow:hidden}.rsvp-card,.rsvp-card-head,.rsvp-card-stub,.rsvp-route{align-items:center;display:flex}.rsvp-card-head{background:var(--brown);width:100%;color:var(--gold);font:19px var(--serif);justify-content:center;gap:10px;padding:7px}.rsvp-preview p{font:600 7.5px/1.7 var(--mono);color:#2a211c;padding-inline:10px;position:relative}.pill-button,.rsvp-preview p:first-of-type{margin-top:4px}.rsvp-route{width:84%;color:var(--gold);gap:4px;position:relative}.rsvp-route b{font:600 12px var(--serif);color:var(--brown);letter-spacing:.5px}.rsvp-route span{border-top:1.2px dashed;flex:1}.rsvp-route svg{transform:rotate(45deg)}.pill-button{background:var(--brown);color:var(--cream);border-radius:99px;padding:6px 16px;font-size:11px;position:relative}.pill-button:hover{background:#54392d}.rsvp-card-stub{width:100%;height:var(--stub);border-top:1.5px dashed #38251f99;justify-content:center;margin-top:auto;position:relative}.rsvp-card-stub .barcode{max-width:70%;height:14px}.rsvp-ticket-body{flex:1;width:100%;min-height:0;position:relative;overflow:hidden}.rsvp-preview,.rsvp-ticket-body{flex-direction:column;display:flex}.rsvp-preview{align-items:center;gap:5px}.rsvp-card-head,.rsvp-card-stub{flex-shrink:0}.rsvp-ticket-backdrop{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14203766;animation:.4s both ticket-backdrop-in;position:fixed;inset:0}.rsvp-ticket-backdrop.returning{animation:.65s both ticket-backdrop-out}.rsvp-card-lifted{z-index:91;--stub:38px;--notch:8px;width:min(400px,100% - 32px);height:80dvh;color:var(--ink);text-align:left;gap:0;position:fixed;top:10dvh;left:max(16px,50% - 200px);box-shadow:0 18px 60px #0b142c55}.rsvp-card-lifted .rsvp-card-head{min-height:44px;position:relative}.rsvp-ticket-close{width:36px;height:36px;color:var(--cream);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;right:6px}.rsvp-ticket-close:hover{background:#ffffff16}.rsvp-ticket-close:focus-visible{outline-offset:-4px}.rsvp-ticket-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#aa8a4f66 transparent;flex:1;min-height:0;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 18px calc(100% - 18px),#0000);mask-image:linear-gradient(#0000,#000 18px calc(100% - 18px),#0000)}.rsvp-ticket-content{padding:24px 24px 28px}.rsvp-ticket-content>h2{font:22px/1.3 var(--serif);text-align:center;margin-bottom:8px}.rsvp-ticket-content .modal-description{text-align:center;margin-bottom:20px;font-size:11px}.rsvp-ticket-content .form-stack{gap:18px}.rsvp-ticket-content .form-stack>label{font-size:11px}.rsvp-ticket-content .attendance-options>label{padding:11px 7px;font-size:10px}.rsvp-ticket-content input:not([type=radio]),.rsvp-ticket-content select,.rsvp-ticket-content textarea{font-size:16px}.rsvp-ticket-content .button{gap:10px;font-size:9px}.rsvp-ticket-content .closed-panel,.rsvp-ticket-content .success-panel{padding:10px 0}.rsvp-ticket-content .closed-panel h3,.rsvp-ticket-content .success-panel h3{font-size:20px}.rsvp-ticket-content .closed-panel p,.rsvp-ticket-content .success-panel p{font-size:12px}.ticket-content-enter-active{transition:opacity .35s,transform .45s}.ticket-content-leave-active{transition:opacity .16s}.ticket-content-enter-from{opacity:0;transform:translateY(8px)}.ticket-content-leave-to{opacity:0}@keyframes ticket-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes ticket-backdrop-out{0%{opacity:1}to{opacity:0}}.globe-bg{isolation:isolate}.globe-bg:before{content:"";width:var(--globe-size,90%);aspect-ratio:1;background:var(--globe-color,#fff);opacity:var(--globe-opacity,.5);pointer-events:none;z-index:-1;position:absolute;bottom:0;right:0;-webkit-mask:url(../images/globe-quarter.svg) 100% 100%/contain no-repeat;mask:url(../images/globe-quarter.svg) 100% 100%/contain no-repeat}.rsvp-card.globe-bg:before{bottom:var(--stub)}.boarding-ticket.globe-bg,.rsvp-card.globe-bg{--globe-color:var(--gold);--globe-opacity:.75}.rsvp-card-lifted.globe-bg{--globe-opacity:.16}.boarding-ticket.globe-bg{--globe-size:46%}.invite-letter.globe-bg{--globe-size:75%;--globe-opacity:.1}.boarding-ticket{background:var(--ticket);border-radius:10px;min-height:118px;display:flex;position:relative;overflow:hidden;box-shadow:2px 5px 12px #3a221520}.ticket-spine{writing-mode:vertical-rl;background:var(--brown);width:26px;color:var(--cream);letter-spacing:.5px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;font-size:5.5px;display:flex;transform:rotate(180deg)}.ticket-spine b{font-size:8px}.ticket-main{flex-direction:column;flex:1;gap:5px;min-width:0;padding:10px 8px 8px 10px;display:flex}.ticket-invited{letter-spacing:.3px;justify-content:center;align-items:center;gap:6px;font-size:5.5px;line-height:1;display:flex}.ticket-invited span{background:currentColor;width:14px;height:1px}.ticket-couple{font-family:var(--serif);white-space:nowrap;text-align:center;color:#20160f;letter-spacing:.5px;font-size:20px;line-height:1.2}.ticket-couple .script{color:var(--gold);padding-inline:2px;font-size:17px}.ticket-flight{color:var(--gold);align-items:center;gap:6px;display:flex}.ticket-flight span{opacity:.7;background:currentColor;flex:1;height:1px}.ticket-details{white-space:nowrap;align-items:center;gap:6px;font-size:6px;display:flex}.ticket-details>span{align-items:center;gap:4px;display:inline-flex}.ticket-details svg{color:var(--gold)}.ticket-details i{background:#c9bea8;width:1px;height:12px}.ticket-bottom{align-items:center;gap:10px;margin-top:2px;font-size:6px;display:flex}.ticket-bottom .barcode{flex:0 0 60px;height:13px}.ticket-bottom span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ticket-stub{border-left:1.5px dashed var(--brown);color:#20160f;flex-direction:column;flex:0 0 26%;justify-content:center;align-items:center;gap:2px;padding:8px 6px;display:flex;position:relative}.ticket-stub:hover{background:#f6eedb}.ticket-stub>svg{color:var(--brown)}.ticket-stub strong{letter-spacing:.3px;font-size:7px;font-weight:600}.ticket-stub small{color:var(--gold);letter-spacing:.4px;font-size:5.5px}.ticket-airports{letter-spacing:.5px;align-items:center;gap:3px;font-size:13px;display:inline-flex}.ticket-airports svg{color:var(--gold)}.ticket-stub .barcode{max-width:100%;height:11px;margin-top:3px}.collage-moments{align-items:start}.polaroids{height:270px;position:relative}.polaroid{background:#fff;width:74%;margin:0;padding:6px 6px 0;position:absolute;box-shadow:1px 4px 10px #3a22152a}.polaroid-one{top:6px;left:8%;transform:rotate(-3deg)}.polaroid-two{top:118px;left:22%;transform:rotate(4deg)}.polaroid-clip{border:1.5px solid #9b958c;border-radius:4px;width:10px;height:14px;position:absolute;top:-7px;left:50%;transform:translate(-50%)}.polaroid-photo{aspect-ratio:5/4;color:#fff9ea;background:radial-gradient(circle at 28% 22%,#e2d3b8aa,#0000 55%),linear-gradient(160deg,#a58e70,#5a4436);place-items:center;display:grid;box-shadow:inset 0 0 18px #2a1a1255}.polaroid-photo span{opacity:.9;font-size:48px;line-height:1}.polaroid figcaption{text-align:center;color:#2b2019;font-size:15px;line-height:1.6}.polaroid-path{width:32%;color:var(--brown);position:absolute;top:34px;right:-8%}.polaroid-plane{color:#2b1e18;position:absolute;top:20px;right:-12%;transform:rotate(40deg)}.polaroid-pin{color:var(--brown);position:absolute;top:166px;left:0}.date-tag{color:#1c140f;background:#fbfaf6;border-radius:14px;flex-direction:column;align-items:center;gap:6px;min-height:220px;margin-top:6px;padding:34px 10px 14px;transition:transform .3s;display:flex;position:relative;transform:rotate(4deg);box-shadow:2px 6px 14px #3a221528}.date-tag:hover{transform:rotate(2deg)translateY(-2px)}.date-tag-hole{background:var(--sand);border-radius:50%;width:12px;height:12px;position:absolute;top:12px;box-shadow:inset 0 1px 2px #0003}.date-tag-title{font:16px var(--serif);white-space:nowrap;text-transform:none;letter-spacing:.5px}.date-tag-hearts{margin-top:2px;display:flex}.date-tag-hearts svg+svg{margin-top:5px;margin-left:-6px}.date-tag-date{font:22px var(--serif);color:var(--gold);letter-spacing:1px}.date-tag-rule{border-top:1.5px dashed #1c140f;width:82%;margin-block:4px}.date-tag strong{letter-spacing:.3px;font-size:9.5px;font-weight:600;line-height:1.5}.date-tag-sprig{color:var(--gold);transform:rotate(-60deg)}.ornament{color:var(--gold);justify-content:center;align-items:center;gap:10px;display:flex}.ornament span{background:linear-gradient(90deg,#0000,currentColor);width:44px;height:1px}.ornament span:last-child{transform:scaleX(-1)}.countdown-card{color:#fff5df;background:linear-gradient(145deg,#352922,#251e1a);border:5px solid #fffdf4;margin:18px 10px 0;padding:18px 16px 12px;position:relative;box-shadow:0 6px 18px #3a221526;container-type:inline-size}.departure-heading{border-bottom:1px solid #d4b87940;justify-content:space-between;align-items:center;gap:8px;padding-bottom:12px;display:flex}.departure-heading h2{font:700 12px/1.3 var(--mono);letter-spacing:1.7px;align-items:center;gap:7px;display:flex}.departure-heading h2 svg{color:#d4b879;transform:rotate(-35deg)}.departure-status{font:8px/1.4 var(--mono);letter-spacing:.5px;color:#e1c58a;white-space:nowrap;align-items:center;gap:5px;display:flex}.departure-status i{background:currentColor;border-radius:50%;width:4px;height:4px;box-shadow:0 0 6px #e1c58a77}.departure-route{align-items:center;gap:16px;margin-top:15px;display:flex}.departure-route>span{font:600 27px/1.1 var(--sans);letter-spacing:3px}.departure-route>div{color:#d4b879;flex:1;align-items:center;gap:10px;display:flex}.departure-route i{border-top:1px dashed #d4b87977;flex:1}.departure-passengers{font:8px/1.6 var(--mono);letter-spacing:.6px;text-transform:uppercase;color:#dfd2b7;margin-top:7px}.departure-passengers span{color:#bda16c;margin-inline:2px}.countdown-boxes{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.countdown-unit,.flap-cell{min-width:0}.countdown-unit-label{font:8px/1.3 var(--mono);text-transform:uppercase;letter-spacing:1px;color:#d4b879;margin-bottom:6px;display:block}.flap-display{gap:3px;display:flex}.flap-cell{perspective:180px;background:linear-gradient(#171512 49%,#211e18 51%);border:1px solid #574a38;border-radius:3px;flex:1;place-items:center;height:calc(clamp(40px,15cqw,54px));display:grid;position:relative;overflow:hidden;box-shadow:0 2px 2px #0006,inset 0 1px #ffffff0c}.flap-cell:after{content:"";z-index:1;pointer-events:none;background:#000b;height:1px;position:absolute;top:50%;left:0;right:0;box-shadow:0 1px #ffffff0a}.flap-value{color:#f0d89e;text-shadow:0 1px 1px #000;font-variant-numeric:tabular-nums;backface-visibility:hidden;place-items:center;width:100%;height:100%;font:700 calc(clamp(22px,9cqw,34px))/1 Courier New,monospace;display:grid}.flap-enter-active{transition:transform .32s ease-out,opacity .25s}.flap-leave-active{transition:transform .2s ease-in,opacity .2s;position:absolute;inset:0}.flap-enter-from{opacity:0;transform:rotateX(-90deg)}.flap-leave-to{opacity:0;transform:rotateX(90deg)}.departure-details{border-block:1px solid #d4b87930;justify-content:space-between;gap:12px;margin-top:17px;padding-block:11px;display:flex}.departure-details>div{gap:4px;display:grid}.departure-details>div:last-child{text-align:right}.departure-details span{font:7px/1.3 var(--mono);letter-spacing:1px;color:#c4ae83}.departure-details strong{font:500 10px/1.3 var(--sans);letter-spacing:.8px;text-transform:uppercase}.countdown-note{text-align:center;font:8px/1.4 var(--mono);letter-spacing:.6px;color:#dfd2b7;margin-top:10px}.countdown-note .script{letter-spacing:0;text-transform:none;color:#d4b879;padding-left:3px;font-size:22px;line-height:1}.invite-letter{background:var(--brown);color:var(--cream);text-align:center;margin:20px 10px 0;padding:10px;position:relative}.invite-letter-frame{outline-offset:-5px;border:1px solid #aa8a4f66;outline:1px solid #aa8a4f2a;justify-items:center;gap:14px;padding:30px 18px 32px;display:grid}.invite-letter p{font-size:13px;line-height:1.55}.invite-letter .bismillah{font-size:21px;line-height:1.6}.invite-letter .invite-gratitude{color:var(--gold);font-size:28px;line-height:1.1}.invite-hosts{font:13.5px/1.5 var(--serif);letter-spacing:.3px;display:grid}.invite-hosts .script{color:var(--gold);font-size:22px;line-height:1}.invite-letter .invite-greeting{color:#e9dfcd;white-space:pre-line;max-width:300px;font-size:12.5px;line-height:1.7}.invite-names{font:19px/1.35 var(--serif);letter-spacing:.6px;text-transform:uppercase;display:grid}.invite-names .script{text-transform:none;letter-spacing:0;color:var(--gold);font-size:30px;line-height:1.1}.invite-letter .invite-when{font:10px/1.9 var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:#d9cbb2}.timeline-section{padding:34px 0 40px;position:relative}.section-heading{gap:4px;display:grid;position:relative}.section-heading .mono-title{letter-spacing:3px;font-size:19px}.wedding-timeline{margin:24px 0 0;padding:0;list-style:none;position:relative}.wedding-timeline:before{content:"";background:#2a1d17;width:1px;position:absolute;top:41px;bottom:41px;left:32%}.wedding-timeline li{grid-template-columns:32% 0 1fr;align-items:center;min-height:82px;display:grid;position:relative}.timeline-art{color:#2a1d17;border:1px solid #2a1d1733;justify-self:end;place-items:center;width:50px;height:50px;margin-right:22px;display:grid}.timeline-art,.timeline-node{background:var(--sand);border-radius:50%}.timeline-node{border:1.5px solid #2a1d17;width:9px;height:9px;transform:translate(-4px)}.timeline-text{gap:2px;padding:0 22px 0 24px;display:grid}.timeline-text time{font:10px var(--mono);letter-spacing:1.5px;color:var(--gold);-webkit-text-stroke:.3px currentColor}.timeline-title{font:13px/1.35 var(--serif);letter-spacing:.5px;text-transform:uppercase;color:#20160f}.timeline-desc{color:var(--muted);font-size:11px;line-height:1.5}.band-group{background:var(--brown);position:relative}.band-group:after{content:"";z-index:2;opacity:0;pointer-events:none;border:2px solid #d5b87d;transition:opacity .4s;position:absolute;inset:5px;box-shadow:0 0 20px #d5b87d55,inset 0 0 24px #d5b87d18}.band-group.destination-highlight:after{opacity:1}.feature-band{background:var(--brown);width:100%;color:var(--cream);flex-direction:column;align-items:center;gap:6px;padding:26px 16px 18px;transition:background .25s;display:flex;position:relative}.feature-band .mono-title{letter-spacing:3px;font-size:17px}.feature-band:hover{background:#452e26}.band-group+.band-group{border-top:1px solid #ffffff14}.band-chevron{opacity:.7;transition:transform .45s}.band-group.expanded .band-chevron{transform:rotate(180deg)}.band-panel{color:var(--cream);background:#2c1c17;grid-template-rows:0fr;transition:grid-template-rows .5s;display:grid}.band-group.expanded .band-panel{grid-template-rows:1fr}.band-panel-inner{min-height:0;overflow:hidden}.band-panel-body{text-align:center;opacity:0;padding:22px 24px 26px;transition:opacity .35s,transform .45s;transform:translateY(-12px)}.band-group.expanded .band-panel-body{opacity:1;transition-delay:.12s;transform:none}.band-intro{color:#e9dfcd;font-size:12.5px;line-height:1.6}.band-venue{font:18px var(--serif);margin-bottom:6px}.band-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.band-actions .pill-button{background:var(--cream);color:var(--brown);align-items:center;gap:5px;margin:0;padding:8px 16px;display:inline-flex}.band-actions .pill-button:hover{background:#e9dfc8}#calendar-panel .calendar-card{background:var(--ticket);color:var(--brown)}#calendar-panel .calendar-card>span:last-child{color:#62533d}.band-panel .contact-row{text-align:left;border-top-color:#fff2;padding:14px 0}.band-panel .contact-row:first-of-type{margin-top:14px}.band-panel .contact-row h3{margin-bottom:2px;font-size:15px}.band-panel .contact-row span{color:#cbbfa9}.band-panel .circle-button{color:var(--cream);border-color:#ffffff40}.band-panel .circle-button:hover{background:#ffffff14}.closing{text-align:center;color:#2a1d17;flex-direction:column;align-items:center;gap:12px;padding:48px 24px 64px;display:flex}.closing,.closing>:not(.invite-map){position:relative}.closing-eyebrow{font:9.5px var(--mono);letter-spacing:2px;color:var(--muted)}.closing-rings{width:120px;height:auto;margin-block:-6px -10px}.closing p{color:#4a3b32;font-size:12.5px;line-height:1.7}.closing-names{font-size:34px;line-height:1.2}.closing-hashtag{font:11px var(--mono);letter-spacing:1.5px;color:var(--gold);-webkit-text-stroke:.3px currentColor}.reveal-ready .reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(26px)}.reveal-ready .reveal.in-view{opacity:1;transform:none}.host-link{color:var(--muted);align-items:center;gap:3px;margin-top:18px;font-size:10px;display:inline-flex}.host-link:hover{color:var(--brown)}.music-button{color:#fff;background:#d9d6d1e6;border-radius:6px;place-items:center;width:30px;height:30px;display:grid;top:52px}.audio-note,.music-button{z-index:20;position:fixed;right:max(12px,50% - 203px)}.audio-note{background:#fff;border-radius:4px;padding:4px 8px;font-size:11px;top:88px}.intro-complete .collage>*{animation:.9s both invite-rise}.intro-complete .collage>:nth-child(2){animation-delay:.15s}.intro-complete .collage>:nth-child(3){animation-delay:.3s}@keyframes invite-rise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@container (width<=360px){.ticket-couple{font-size:17px}.ticket-couple .script{font-size:15px}.ticket-details{font-size:5.3px}.countdown-boxes{gap:7px}.departure-heading h2{letter-spacing:1px;font-size:10px}.departure-status{letter-spacing:0;font-size:7px}.countdown-unit-label{letter-spacing:.5px;font-size:7px}}@media (prefers-reduced-motion:reduce){.intro-complete .collage>*{animation:none}.band-chevron,.band-panel,.band-panel-body{transition:none}}.invitation-intro{width:100%;max-width:none;height:100dvh;max-height:none;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:linear-gradient(90deg,var(--navy) calc(50% - 215px),var(--sand) 0 calc(50% + 215px),var(--navy) 0);color:var(--brown);z-index:100;border:0;margin:0;position:fixed;inset:0;overflow:hidden}.invitation-intro[open]{place-items:center;display:grid}.invitation-intro::backdrop{background:#1c2a43}.intro-layout{flex-direction:column;align-items:center;width:calc(min(70vw,340px,73.5svh - 154.35px));display:flex;transform:translateY(calc(clamp(-28px,-3dvh,-10px)))}.intro-passport-stage{isolation:isolate;width:100%;position:relative}.intro-passport{z-index:1;width:100%;position:relative}.intro-wedding-pass{background:#fffdf0;border:1px solid #e6dfd0;border-radius:8%/5%;position:absolute;inset:-12% 2% -9%;overflow:hidden;transform:translateY(90px);container-type:inline-size}.intro-pass-heading{background:var(--brown);height:8%;color:var(--cream);font:6.5cqw var(--serif);text-transform:uppercase;justify-content:center;align-items:center;display:flex;position:absolute;inset:0 0 auto}.intro-pass-map{width:140%;height:75%;color:var(--gold);opacity:.14;position:absolute;top:15%;left:-10%;transform:rotate(90deg)}.intro-passenger{writing-mode:vertical-rl;font-size:10px;position:absolute;top:10%;right:8%}.intro-passenger span{margin-top:20px;font-weight:600}.intro-pass-perforation{border-left:1px dashed var(--brown);position:absolute;top:10%;bottom:19%;left:30%}.intro-pass-barcode{width:70%;max-width:none;height:8%;position:absolute;bottom:5.5%;left:15%}.intro-pass-footer{background:var(--brown);height:2.7%;position:absolute;inset:auto 0 0}.intro-open-button{color:#201710;opacity:0;justify-content:center;align-items:center;gap:7px;min-height:44px;margin-top:46px;padding:10px 18px;font-size:15px;display:inline-flex}.intro-open-button:hover{color:var(--gold)}.intro-open-button:disabled{opacity:1;cursor:default}.intro-ready .intro-wedding-pass{animation:1s both intro-ticket-rise}.intro-ready .intro-open-button{animation:.7s .65s both intro-button-appear}.intro-opening{pointer-events:none;animation:.7s both intro-curtain-out}.intro-opening::backdrop{animation:.7s both intro-curtain-out}@keyframes intro-ticket-rise{0%{transform:translateY(90px)}to{transform:translateY(0)}}@keyframes intro-button-appear{0%{opacity:0}to{opacity:1}}@keyframes intro-curtain-out{0%{opacity:1}to{opacity:0}}@media (height<=480px){.intro-layout{width:calc(min(70vw,260px,73.5svh - 106.575px));transform:none}.intro-open-button{margin-top:30px}}@media (prefers-reduced-motion:reduce){.intro-wedding-pass{transform:none}.intro-open-button{opacity:1}.intro-ready .intro-open-button,.intro-ready .intro-wedding-pass,.invitation-intro,.invitation-intro::backdrop{animation:none}}
