@font-face{font-family:Invitation;src:url(/invitation-serif.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Invitation;src:url(/invitation-serif-italic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}.dt-invite{.invitation{--ink:#a65f3f;--paper:#f9f5ef;min-height:100svh;background:var(--paper);color:var(--ink);font-family:Invitation,Georgia,serif}.paper-surface{background-color:var(--paper);background-image:linear-gradient(color-mix(in srgb,var(--paper) 22%,transparent),color-mix(in srgb,var(--paper) 22%,transparent)),url(/ivory-paper.png);background-size:100% 100%,100% auto;background-blend-mode:multiply;background-repeat:repeat-y}.cover{min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:38px 24px 60px;text-align:center;position:relative;overflow:hidden}.cover-heading{width:100%;max-width:1060px;display:flex;justify-content:space-between;text-align:left;font-size:14px;letter-spacing:.26em;text-transform:uppercase;line-height:1.65}.cover-heading>span:last-child{display:flex;align-items:center;gap:25px}.horizontal-rule{display:inline-block;width:65px;height:1px;background:currentColor}.cover-identity{margin:60px 0 24px;display:flex;align-items:center;flex-direction:column}.monogram-crop{position:relative;display:block;overflow:hidden;width:clamp(165px,26vw,300px);aspect-ratio:2.55;mix-blend-mode:multiply}.monogram-crop img{position:absolute;max-width:none;width:202%;height:auto;left:-51%;top:-73%}.brand-image{width:clamp(165px,26vw,300px);height:120px;object-fit:contain}.couple{font-size:clamp(17px,2.3vw,26px);letter-spacing:.23em;text-transform:uppercase;margin:22px 0 0;font-weight:400}.short-rule{height:1px;width:54px;background:currentColor;margin:24px auto}.invitation-verse{font-style:italic;letter-spacing:.09em;font-size:clamp(18px,2.2vw,24px);line-height:1.7}.envelope-button{padding:0;position:relative;display:block;width:min(610px,100%);aspect-ratio:1.55;margin:8px 0 34px;background:transparent;filter:drop-shadow(0 14px 13px #60432c30);transition:transform .8s,opacity .65s;overflow:hidden}.envelope-image{position:absolute;max-width:none;width:108%;height:auto;left:-4%;top:-5.8%}.opening .envelope-button{transform:translateY(-20px) scale(1.06);opacity:0}.primary-button{background:var(--ink,var(--primary));color:var(--paper,#fff8ef);border:1px solid var(--ink,var(--primary));padding:17px 34px;font-family:Invitation,Georgia,serif;font-size:14px;letter-spacing:.2em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:24px;text-decoration:none;border-radius:60px;min-height:54px;transition:filter .2s}.primary-button:hover{filter:brightness(.9)}.cover>.primary-button{width:min(360px,90%)}.fine-line{display:block;height:48px;width:1px;background:currentColor;opacity:.65;margin:32px auto}.cover-note{font-size:18px;letter-spacing:.12em;font-style:italic;line-height:1.6}.welcome{animation:reveal 1s ease both}.topbar{display:flex;justify-content:space-between;align-items:center;padding:30px 6%;gap:24px}.event-wordmark{text-decoration:none;letter-spacing:.18em;text-transform:uppercase;font-size:14px}.event-wordmark span{display:block;margin-top:4px}.topbar nav{display:flex;gap:30px;font-size:14px}.topbar nav a{text-decoration:none}.reveal-hero{display:flex;align-items:center;flex-direction:column;text-align:center;padding:45px 24px 55px}.open-envelope{container-type:inline-size;position:relative;width:min(640px,100%);aspect-ratio:2/3;margin:-22px 0 -8%;filter:drop-shadow(0 13px 12px #56361924)}.open-envelope>img{width:100%;height:auto;clip-path:polygon(10.8% 9.3%,89.2% 9.3%,89.2% 32.3%,94.6% 37.3%,96.5% 40%,97.6% 42.3%,97.6% 88.2%,2.4% 88.2%,2.4% 42.3%,3.5% 39.5%,5.5% 37.3%,10.8% 32.3%)}.letter-content{position:absolute;left:15%;right:15%;top:16%;color:var(--ink)}.letter-content h1{font-size:13cqw;line-height:1.03;letter-spacing:.025em;text-transform:uppercase}.letter-content .short-rule{margin:4cqw auto;width:9cqw}.date{font-family:Invitation,Georgia,serif;font-size:3.8cqw;letter-spacing:.18em;white-space:nowrap}.letter-content .invitation-verse{font-size:3.8cqw;margin-top:4cqw;line-height:1.65}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:22px;text-decoration:none;font-size:14px;letter-spacing:.22em;text-transform:uppercase;margin:30px auto 0}.scroll-cue .fine-line{margin:0 auto;height:50px}.countdown-section{text-align:center;padding:100px 24px 65px;max-width:1050px;margin:auto}.countdown-section>.eyebrow{font-size:24px}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:60px auto;width:100%;max-width:880px}.countdown>div+div{border-left:1px solid color-mix(in srgb,var(--ink) 35%,transparent)}.countdown strong{font-weight:400;display:block;font-size:clamp(38px,8vw,92px);line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.countdown span{font-size:14px;display:block;letter-spacing:.18em;text-transform:uppercase;margin-top:14px}.countdown-section h2{font-size:clamp(28px,4vw,44px);line-height:1.65;text-transform:uppercase;letter-spacing:.12em;margin:38px 0}.detail-section{max-width:900px;margin:auto;padding:95px 35px;text-align:center}.detail-section h2{font-size:clamp(38px,5.5vw,62px);line-height:1.25;text-transform:uppercase;letter-spacing:.06em}.day-section .short-rule{margin:28px auto 50px}.timeline-event{display:flex;flex-direction:column;align-items:center;gap:12px}.timeline-event svg{margin:15px 0}.timeline-event h3{font-size:clamp(28px,4vw,36px);text-transform:uppercase;letter-spacing:.07em}.timeline-event>p:not(.invitation-verse){letter-spacing:.08em}.event-time{font-size:28px}.timeline-line{width:1px;height:70px;background:currentColor;margin:25px auto 35px}.outline-button{border:1px solid;background:transparent;color:inherit;padding:12px 22px;font-size:14px;text-transform:uppercase;letter-spacing:.13em;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:20px;margin-top:18px;min-height:48px}.rsvp{max-width:750px}.rsvp h2{margin-top:22px}.rsvp-intro{margin:20px 0 45px}.rsvp form{text-align:left}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:8px;font-size:16px;margin-bottom:22px}.field input,.field textarea{width:100%;font:inherit;background:color-mix(in srgb,var(--paper,#fff) 40%,transparent);border:1px solid color-mix(in srgb,var(--ink,#a65f3f) 38%,transparent);padding:13px;border-radius:3px;color:inherit;min-height:48px}.field input:focus,.field textarea:focus{outline:1px solid var(--ink,var(--primary))}.form-question{margin:5px 0 16px}.attendance-options{display:grid;gap:12px;margin-bottom:28px}.radio-option{display:flex;align-items:center;gap:13px;border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);padding:15px;background:#fff5}.radio-option:has([data-state=checked]){background:color-mix(in srgb,var(--ink) 10%,transparent);border-color:var(--ink)}.rsvp form>.primary-button{display:flex;margin:28px auto 0}.rsvp-success{text-align:center}.success-check{width:110px;height:110px;border:1px solid;border-radius:50%;display:grid;place-items:center;margin:0 auto 40px}.rsvp-success h3{text-transform:uppercase;font-size:29px;letter-spacing:.18em;margin:35px 0}.rsvp-success .invitation-verse{max-width:550px;margin:25px auto}.rsvp-success .outline-button{margin-top:45px}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:35px 6%;border-top:1px solid color-mix(in srgb,var(--ink) 20%,transparent);font-size:14px}.notice{position:relative;padding:16px 42px 16px 16px;border:1px solid var(--border);background:#fff9ed;margin:0 0 20px;font-size:14px;overflow-wrap:anywhere}.dismiss-message{position:absolute;right:12px;top:16px;background:none}.muted{color:var(--muted-foreground);font-size:14px;line-height:1.6}.invitation .muted{color:color-mix(in srgb,var(--ink) 85%,#333)}.admin{max-width:1000px;margin:auto;padding:60px 30px}.admin h1{font-size:42px;margin-bottom:20px}}.dt-invite{font-family:Invitation,Georgia,serif;color:#a65f3f}.dt-invite h1,.dt-invite h2,.dt-invite h3{font-family:Invitation,Georgia,serif;font-weight:400}.dt-invite p{margin-top:0}.dt-invite .cover-date{letter-spacing:.25em;font-size:24px;color:#69523e;margin:0 0 28px}.dt-invite .cover{padding:45px max(24px,6vw) 60px}.dt-invite .cover-identity{margin-top:65px}.dt-invite .cover-heading{max-width:1050px}.dt-invite .envelope-button{border:0;border-radius:0}.dt-invite .dt-footer{text-align:center;padding:65px 24px;border-top:1px solid #a65f3f33}.dt-invite .dt-footer a{font-size:13px}.dt-invite .open-envelope{animation:dt-envelope 1.1s cubic-bezier(.2,.7,.2,1) both}.dt-invite .letter-content{animation:dt-letter 1.3s .15s both}.dt-invite .welcome{animation:dt-letter 1s .3s both}.dt-invite .letter-content h1:focus{outline:none}.dt-invite .countdown{grid-template-columns:repeat(auto-fit,minmax(60px,1fr))}.dt-invite .invitation-verse{color:#69523e}.dt-invite a:focus-visible,.dt-invite button:focus-visible{outline:2px solid #814333;outline-offset:6px}@keyframes dt-envelope{0%{opacity:0;transform:translateY(50px) scale(.94)}to{opacity:1;transform:none}}@keyframes dt-letter{0%{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}@media (max-width:650px){.dt-invite .cover{padding:28px 24px 42px}.dt-invite .cover-heading{font-size:11px}.dt-invite .cover-heading>span:last-child{gap:12px}.dt-invite .horizontal-rule{width:36px}.dt-invite .cover-identity{margin:48px 0 24px}.dt-invite .monogram-crop{width:195px}.dt-invite .couple{font-size:17px;letter-spacing:.16em}.dt-invite .cover-date,.dt-invite .invitation-verse{font-size:18px}.dt-invite .letter-content .invitation-verse{font-size:3.8cqw}.dt-invite .envelope-button{margin:8px 0 30px}.dt-invite .scroll-cue{font-size:10px}.dt-invite .primary-button{font-size:12px;padding:16px 22px}.dt-invite .countdown strong{font-size:40px}.dt-invite .countdown span{font-size:10px}.dt-invite .detail-section{padding:65px 24px}.dt-invite .countdown-section h2{font-size:27px}}@media (prefers-reduced-motion:reduce){.dt-invite *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.dt-invite .invitation.paper-surface{background-image:linear-gradient(180deg,#f9f5ef18,#f9f5ef18),url(/ivory-paper.png);background-size:100% 100%,850px auto}.dt-invite .cover{background:linear-gradient(180deg,transparent 78%,#f2e9df)}.dt-invite .welcome{background:linear-gradient(180deg,#f2e9df,#f6efe6 25%,#e9d7c7 52%,#f2e7da 77%,#f9f5ef);animation:dt-letter 1.2s .8s both}.dt-invite .dt-footer{border:0;background:linear-gradient(transparent,#f9f5ef)}.dt-invite .cover-intro{max-height:180px;opacity:1;overflow:hidden;transition:max-height 1.5s cubic-bezier(.22,1,.36,1),opacity .6s}.dt-invite .is-open .cover-intro{max-height:0;opacity:0}.dt-invite .envelope-stage{position:relative;width:min(640px,100%);height:auto;aspect-ratio:1.5;transition:aspect-ratio 1.6s cubic-bezier(.22,1,.36,1);isolation:isolate}.dt-invite .is-open .envelope-stage{aspect-ratio:.82}.dt-invite .envelope-stage .closed-envelope{position:absolute;bottom:0;left:0;width:100%;margin:0;opacity:1;transition:opacity .85s .15s,transform 1.3s cubic-bezier(.22,1,.36,1);z-index:4}.dt-invite .is-open .closed-envelope{opacity:0;transform:translateY(8%) scale(1.015);pointer-events:none}.dt-invite .envelope-stage .open-envelope{position:absolute;bottom:-14.5%;left:0;width:100%;margin:0;opacity:0;animation:none;transition:opacity 1s .25s;pointer-events:none}.dt-invite .is-open .open-envelope{opacity:1}.dt-invite .open-envelope .envelope-back{clip-path:polygon(10.8% 32.3%,50% 5.8%,89.2% 32.3%,97.6% 42.3%,97.6% 88.2%,2.4% 88.2%,2.4% 42.3%)}.dt-invite .open-envelope .envelope-front{position:absolute;inset:0;clip-path:polygon(2.4% 42.3%,50% 66%,97.6% 42.3%,97.6% 88.2%,2.4% 88.2%);z-index:3}.dt-invite .moving-letter{position:absolute;left:10.8%;top:9.3%;width:78.4%;height:63%;background:#f5eddf url(/ivory-paper.png) 50%/cover;box-shadow:inset 0 0 2px #fff,0 4px 14px #44271120;transform:translateY(35%);transition:transform 1.8s cubic-bezier(.22,1,.36,1) .3s;z-index:2}.dt-invite .is-open .moving-letter{transform:translateY(0)}.dt-invite .moving-letter .letter-content{left:6%;right:6%;top:10%;animation:none;opacity:0;transform:translateY(12px);transition:opacity 1.1s .8s,transform 1.2s .7s}.dt-invite .is-open .letter-content{opacity:1;transform:none}.dt-invite .open-control{max-height:100px;margin-top:34px;opacity:1;transition:max-height 1s,margin 1s,opacity .4s;overflow:hidden}.dt-invite .is-open .open-control{max-height:0;margin-top:0;opacity:0}@media (prefers-reduced-motion:reduce){.dt-invite *{animation:none!important;transition:none!important}}.dt-invite .open-envelope .envelope-seal{position:absolute;inset:0;clip-path:ellipse(13.5% 8.5% at 50.5% 69.8%);z-index:4;pointer-events:none}.dt-invite .countdown-section{padding-bottom:0}.dt-invite .section-connector{height:110px;margin:32px auto 0}.dt-invite .day-section{padding-top:32px}.dt-invite .timeline-event .outline-button{border-radius:999px;min-height:40px;padding:8px 15px;font-size:11px;letter-spacing:.1em;gap:10px;margin-top:12px}.dt-invite .timeline-event .outline-button svg{width:15px;height:15px;margin:0}.dt-invite .rsvp-section{max-width:700px}.dt-invite .rsvp-section form{text-align:left;margin:36px auto 0;max-width:510px}.dt-invite .rsvp-section fieldset{border:0;border-bottom:1px solid #a65f3f30;padding:0 0 24px;margin:0 0 28px;min-width:0}.dt-invite .rsvp-section legend{font-size:24px;margin-bottom:20px}.dt-invite .rsvp-options{display:grid;gap:12px;margin-bottom:24px}.dt-invite .rsvp-options label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:17px}.dt-invite .rsvp-options input{accent-color:#a65f3f;width:18px;height:18px}.dt-invite .rsvp-field{display:grid;gap:8px;font-size:16px;margin:20px 0}.dt-invite .rsvp-field span{font-size:13px;opacity:.8}.dt-invite .rsvp-field textarea{width:100%;background:#fffaf340;border:1px solid #a65f3f60;border-radius:8px;padding:12px;color:#69523e;resize:vertical;font:16px/1.5 Invitation,Georgia,serif}.dt-invite .rsvp-section .primary-button{display:flex;margin:30px auto 0;font-size:12px}.dt-invite .rsvp-note,.dt-invite .rsvp-result{font-size:15px;line-height:1.6;margin-top:24px;text-align:center;color:#69523e}.dt-invite .rsvp-field input{width:100%;background:#fffaf340;border:1px solid #a65f3f60;border-radius:8px;padding:12px;color:#69523e;font:16px/1.5 Invitation,Georgia,serif}.dt-invite .companion-request .rsvp-note{text-align:left;margin:0 0 22px}.dt-invite .companion-request .outline-button{border-radius:999px;font-size:11px;padding:8px 16px;min-height:40px;margin:0 0 20px}.dt-invite .extra-person{border-top:1px solid #a65f3f30;padding-top:8px}.dt-invite .invitation{--ink:var(--custom-primary,#a65f3f);--paper:var(--custom-paper,#f9f5ef);--section-bridge:color-mix(in srgb,var(--paper) 91%,var(--ink));--section-warm:color-mix(in srgb,var(--paper) 79%,var(--ink))}.dt-invite .custom-monogram{width:clamp(165px,26vw,300px);height:120px;display:block}.dt-invite .custom-monogram img{width:100%;height:100%;object-fit:contain}.dt-invite .cover{background:linear-gradient(180deg,transparent 72%,var(--section-bridge) 100%)}.dt-invite .welcome{display:flex;flex-direction:column;background:linear-gradient(180deg,var(--section-bridge) 0,color-mix(in srgb,var(--paper) 95%,var(--ink)) 25%,var(--section-warm) 52%,var(--section-bridge) 77%,var(--paper) 100%);animation:none}.dt-invite .welcome>.dt-footer{background:transparent}.dt-invite .welcome>.countdown-section{order:var(--order-countdown,0);display:var(--display-countdown,block);width:100%}.dt-invite .welcome>.day-section{order:var(--order-timeline,1);display:var(--display-timeline,block);width:100%}.dt-invite .welcome>.rsvp-section{order:var(--order-rsvp,2);display:var(--display-rsvp,block);width:100%}.dt-invite .welcome>.dt-footer{order:10}.dt-invite .moving-letter .letter-content h1{margin:0}.dt-invite .moving-letter .letter-content .short-rule{margin:2.2cqw auto 2cqw}.dt-invite .moving-letter .letter-content .date{margin:0}.dt-invite .moving-letter .letter-content .invitation-verse{margin-top:3cqw}.dt-invite .rsvp-section{max-width:820px;padding-inline:24px}.dt-invite .rsvp-section h2{font-size:clamp(38px,6vw,62px);line-height:1.1}.dt-invite .rsvp-section .confirmation-card{max-width:620px;padding:clamp(24px,5vw,48px);border:1px solid color-mix(in srgb,var(--ink) 24%,transparent);border-top:3px solid var(--ink);border-radius:20px;background:color-mix(in srgb,var(--paper) 94%,white);box-shadow:0 18px 55px color-mix(in srgb,var(--ink) 10%,transparent)}.dt-invite .confirmation-intro{margin-bottom:32px}.dt-invite .confirmation-intro p{font-size:18px;line-height:1.6;margin:12px 0 0}.dt-invite .confirmation-card .rsvp-options label{min-height:56px;padding:14px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 25%,transparent);background:color-mix(in srgb,var(--paper) 70%,white);transition:background .2s,border-color .2s}.dt-invite .confirmation-card .rsvp-options label:has(input:checked){border-color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,var(--paper))}.dt-invite .confirmation-card .rsvp-options label:focus-within{outline:2px solid var(--ink);outline-offset:3px}.dt-invite .confirmation-card .rsvp-options input{flex-shrink:0;accent-color:var(--ink)}.dt-invite .confirmation-card .primary-button{width:100%;justify-content:center;border-radius:999px;min-height:54px}.dt-invite .confirmation-card .primary-button:disabled{opacity:.55;cursor:not-allowed}.dt-invite .confirmation-card .rsvp-field input:not([type=checkbox]),.dt-invite .confirmation-card .rsvp-field textarea{background:color-mix(in srgb,var(--paper) 65%,white)}.dt-invite .confirmation-card .rsvp-result{padding:18px;border-radius:10px;background:color-mix(in srgb,var(--ink) 10%,var(--paper))}@media (max-width:480px){.dt-invite .rsvp-section{padding-inline:16px}.dt-invite .rsvp-section .confirmation-card{padding:24px 18px}}.dt-invite .mockup-confirmation .confirmation-controls{border:0;padding:0;margin:0}.dt-invite .mockup-confirmation fieldset{min-width:0}.dt-invite .mockup-confirmation .attendance-choice legend{font-size:clamp(28px,4vw,38px);margin-bottom:0}.dt-invite .mockup-confirmation .optional-label{font:14px/1.5 Arial,sans-serif;color:#756e67;margin:6px 0 20px}.dt-invite .mockup-confirmation .attendance-tiles{grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 0}.dt-invite .mockup-confirmation .attendance-tiles label{font:14px/1.5 Arial,sans-serif;min-height:72px;border-radius:8px}.dt-invite .mockup-confirmation .attendance-tiles label:has(input:checked){background:var(--ink);color:white}.dt-invite .mockup-confirmation input[type=checkbox],.dt-invite .mockup-confirmation input[type=radio]{width:22px;height:22px;flex-shrink:0;accent-color:var(--ink)}.dt-invite .mockup-confirmation .question-block{padding:28px 0;margin:0;border:0;border-bottom:1px solid color-mix(in srgb,var(--ink) 24%,transparent)}.dt-invite .mockup-confirmation .question-block legend{display:flex;align-items:center;gap:14px;font-size:24px;line-height:1.3;margin:0;padding-top:24px}.dt-invite .mockup-confirmation .question-block legend svg,.dt-invite .mockup-confirmation summary>svg{width:27px;height:27px;flex-shrink:0;stroke-width:1.4}.dt-invite .mockup-confirmation .simple-options{display:grid;gap:16px}.dt-invite .mockup-confirmation .simple-check,.dt-invite .mockup-confirmation .simple-options label{display:flex;align-items:center;gap:14px;font:15px/1.5 Arial,sans-serif;min-height:44px;cursor:pointer}.dt-invite .mockup-confirmation .revealed-fields{margin:12px 0 0 10px;padding-left:20px;border-left:1px solid color-mix(in srgb,var(--ink) 28%,transparent)}.dt-invite .mockup-confirmation .rsvp-field{font:14px/1.5 Arial,sans-serif}.dt-invite .mockup-confirmation .rsvp-field input:not([type=checkbox]),.dt-invite .mockup-confirmation .rsvp-field textarea{font:15px/1.6 Arial,sans-serif;color:#342a24}.dt-invite .mockup-confirmation summary{display:flex;align-items:flex-start;gap:14px;cursor:pointer;font-size:24px;list-style:none}.dt-invite .mockup-confirmation summary::-webkit-details-marker{display:none}.dt-invite .mockup-confirmation summary small{display:block;font:14px/1.5 Arial,sans-serif;color:#756e67;margin-top:6px}.dt-invite .mockup-confirmation .expand-symbol{margin-left:auto}.dt-invite .mockup-confirmation details[open] .expand-symbol{transform:rotate(45deg)}.dt-invite .mockup-confirmation .primary-button{border-radius:8px;font-size:18px;text-transform:none;letter-spacing:0;justify-content:space-between;padding-inline:24px}.dt-invite .mockup-confirmation .rsvp-note{font:13px/1.5 Arial,sans-serif}@media (max-width:480px){.dt-invite .mockup-confirmation .attendance-tiles{grid-template-columns:1fr}.dt-invite .mockup-confirmation .question-block legend,.dt-invite .mockup-confirmation summary{font-size:22px}}