:root{--paper:#f5eadc;--paper-light:#fbf6ed;--ink:#29231e;--muted:#7b6e63;--line:#29231e1f;--line-strong:#29231e2e;--surface:#fffcf638;--surface-strong:#fffcf675}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;color:var(--ink);margin:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;overflow-x:hidden}img{max-width:100%}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit}a:focus-visible,button:focus-visible{outline-offset:8px;outline:1px solid #29231e5c}.invite-shell{background:var(--paper);min-height:100svh}.cover-page,.frontispiece-page,.declaration-page,.day-page,.countdown-page,.rsvp-page,.gift-page,.directions-page,.useful-page,.closing-page{text-align:center;background:radial-gradient(circle at 50% 42%, #fffcf6c2, transparent 42%), linear-gradient(180deg, var(--paper), var(--paper-light) 52%, var(--paper));place-items:center;width:100%;min-height:100svh;padding:34px 24px;display:grid;position:relative;overflow:hidden}.paper-texture{pointer-events:none;opacity:.24;mix-blend-mode:multiply;background-image:radial-gradient(#29231e0e .55px,#0000 .55px);background-size:17px 17px;position:absolute;inset:0}.cover-page{background:radial-gradient(circle at 50% 16%, #fffcf6eb, transparent 39%), linear-gradient(180deg, var(--paper-light), var(--paper));padding:28px 24px}.cover-content{flex-direction:column;justify-content:center;align-items:center;width:min(100%,560px);min-height:74svh;animation:1.8s cubic-bezier(.22,1,.36,1) both pageIn;display:flex;position:relative}.cover-engraving{opacity:.42;filter:none;width:min(240px,60vw);height:auto;margin-bottom:24px}.cover-kicker{letter-spacing:.46em;color:var(--muted);text-transform:uppercase;margin:0 0 46px;font-size:10px;font-weight:400;line-height:1;animation:1.3s cubic-bezier(.22,1,.36,1) .26s both fadeUp}.cover-title{letter-spacing:-.078em;color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(60px,15vw,92px);font-weight:400;line-height:.82;animation:1.5s cubic-bezier(.22,1,.36,1) .62s both fadeUp}.name-line{display:block}.amp{letter-spacing:-.04em;color:var(--muted);margin:.08em 0 .12em;font-size:.42em;font-style:italic;line-height:1;display:block}.cover-date{color:var(--muted);margin:56px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(19px,5vw,28px);font-weight:400;line-height:1.2;animation:1.3s cubic-bezier(.22,1,.36,1) 1.04s both fadeUp}.cover-arrow,.declaration-arrow,.day-arrow,.rsvp-arrow,.section-arrow{color:var(--muted);opacity:.56;font-family:Georgia,Times New Roman,serif;font-size:22px;line-height:1}.cover-arrow{flex-direction:column;align-items:center;gap:6px;margin-top:72px;animation:1.2s cubic-bezier(.22,1,.36,1) 1.46s both fadeUp,2.4s ease-in-out 2.6s infinite arrowBreath;display:flex}.cover-arrow span:first-child{letter-spacing:.22em;text-transform:uppercase;opacity:.85;font-size:11px}.cover-arrow span:last-child{font-size:22px;line-height:1}.frontispiece-photo-space,.closing-photo-space{aspect-ratio:4/5;background:linear-gradient(#fffcf62e,#f5eadc14);width:min(84vw,410px);position:relative;overflow:hidden}.frontispiece-image,.closing-image{object-fit:cover}.declaration-content,.rsvp-content,.countdown-content,.gift-content,.directions-content,.useful-content,.closing-content{flex-direction:column;align-items:center;width:min(100%,620px);display:flex;position:relative}.declaration-content,.rsvp-content{justify-content:center;min-height:72svh}.declaration-title{white-space:nowrap;letter-spacing:-.07em;color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(54px,13vw,88px);font-weight:400;line-height:.92;animation:1.5s cubic-bezier(.22,1,.36,1) .24s both fadeUp}.declaration-text{max-width:30ch;color:var(--muted);margin:42px auto 0;font-size:15px;line-height:1.8}.declaration-arrow{margin-top:86px}.day-kicker,.day-label,.rsvp-kicker,.section-kicker{letter-spacing:.44em;text-transform:uppercase;color:var(--muted);margin:0;font-size:10px;font-weight:400;line-height:1}.day-kicker,.section-kicker{margin-bottom:52px}.countdown-title,.section-title,.rsvp-title{letter-spacing:-.07em;max-width:10ch;color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,12vw,82px);font-weight:400;line-height:.92}.rsvp-text,.section-text{max-width:32ch;color:var(--muted);margin:42px auto 0;font-size:15px;line-height:1.8}.section-arrow{margin-top:68px}.day-page{padding:38px 24px}.day-content{flex-direction:column;align-items:center;width:min(100%,620px);display:flex;position:relative}.day-block,.direction-block{width:100%;padding:0 10px}.day-label,.direction-label{letter-spacing:.34em;text-transform:uppercase;color:var(--muted);margin:0 0 22px;font-size:10px}.day-place,.direction-place{letter-spacing:-.055em;color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(31px,7.7vw,50px);font-weight:400;line-height:.96}.day-time{color:var(--muted);margin:24px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,4.5vw,25px)}.day-address,.direction-address{max-width:30ch;color:var(--muted);margin:12px auto 0;font-size:13px;line-height:1.6}.day-divider{background:var(--line);width:72px;height:1px;margin:52px 0}.day-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.day-actions a,.day-actions button,.map-action{letter-spacing:.22em;text-transform:uppercase;min-height:42px;color:var(--ink);cursor:pointer;background:#ffffff6b;border:1px solid #7b6e632e;border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-family:inherit;font-size:10px;text-decoration:none;transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s,background .22s,box-shadow .22s,opacity .22s;display:inline-flex}.day-actions a:hover,.day-actions a:focus-visible,.day-actions button:hover,.day-actions button:focus-visible,.map-action:hover,.map-action:focus-visible{background:#ffffffc7;border-color:#29231e38;transform:translateY(-2px);box-shadow:0 8px 24px #0000000a}.day-actions a:active,.day-actions button:active,.map-action:active{opacity:.82;transform:translateY(1px)}.day-calendar-action{min-width:260px;margin-top:52px}.day-arrow{display:none}.countdown-page{text-align:center;background:radial-gradient(circle at 50% 42%, #fffcf6d6, transparent 46%), linear-gradient(180deg, var(--paper), var(--paper-light) 52%, var(--paper));place-items:center;width:100%;min-height:100svh;padding:56px 24px;display:grid;position:relative;overflow:hidden}.countdown-content{flex-direction:column;align-items:center;width:min(100%,680px);animation:1.6s cubic-bezier(.22,1,.36,1) both pageIn;display:flex;position:relative}.countdown-content:before{content:"";background:#2e272014;width:60px;height:1px;margin-bottom:48px}.countdown-grid{grid-template-columns:repeat(4,1fr);align-items:end;gap:clamp(14px,5vw,34px);width:min(100%,560px);margin-top:78px;display:grid}.countdown-loading{opacity:.34}.countdown-unit{flex-direction:column;align-items:center;display:flex}.countdown-unit strong{letter-spacing:-.09em;min-width:2ch;color:var(--ink);font-variant-numeric:tabular-nums;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-family:Georgia,Times New Roman,serif;font-size:clamp(44px,11vw,82px);font-weight:400;line-height:.88;display:inline-block}.countdown-unit span{letter-spacing:.32em;text-transform:uppercase;color:#2e27208a;margin-top:16px;font-size:9px;line-height:1}.countdown-changing-value{animation:.22s cubic-bezier(.22,1,.36,1) both countdownTick}.countdown-finished{letter-spacing:-.08em;color:var(--ink);margin:64px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(56px,13vw,90px);font-weight:400;line-height:.92}@media (max-width:420px){.countdown-page{padding:48px 18px}.countdown-content:before{width:52px;margin-bottom:44px}.countdown-grid{gap:13px;margin-top:66px}.countdown-unit strong{letter-spacing:-.08em;font-size:clamp(40px,13vw,58px)}.countdown-unit span{letter-spacing:.26em;margin-top:14px;font-size:8.5px}}@keyframes countdownTick{0%{opacity:.62;filter:blur(.35px);transform:translateY(2px)}to{opacity:1;filter:blur();transform:translateY(0)}}.rsvp-kicker{margin-bottom:54px}.rsvp-title{max-width:9ch}.rsvp-deadline{color:var(--muted);margin:34px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,4.5vw,25px)}.rsvp-deadline span{color:var(--ink)}.rsvp-arrow{margin-top:70px}.premium-action{letter-spacing:.28em;text-transform:uppercase;min-height:42px;color:var(--muted);cursor:pointer;background:#fffcf63d;border:1px solid #7b6e6347;justify-content:center;align-items:center;margin-top:36px;padding:14px 19px 13px;font-size:10px;line-height:1;text-decoration:none;transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s,background .22s,color .22s,opacity .22s,box-shadow .22s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 #29231e00}.premium-action:after{content:"";opacity:.45;pointer-events:none;border:1px solid #fffcf66b;position:absolute;inset:1px}.premium-action:hover,.premium-action:focus-visible{color:var(--ink);background:#fffcf675;border-color:#29231e52;transform:translateY(-1px);box-shadow:0 10px 28px #29231e0e}.premium-action:active{background:#fffcf68a;border-color:#29231e61;transform:scale(.975);box-shadow:0 4px 12px #29231e0a}.premium-action-disabled{opacity:.42;pointer-events:none}.day-map-link,.direction-links a,.direction-map-button,.rsvp-link,.gift-iban button{letter-spacing:.28em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #7b6e6342;padding:0 0 6px;font-size:10px;text-decoration:none;transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s,color .22s,opacity .22s;display:inline-block}.day-map-link:hover,.direction-links a:hover,.direction-map-button:hover,.rsvp-link:hover,.gift-iban button:hover,.day-map-link:focus-visible,.direction-links a:focus-visible,.direction-map-button:focus-visible,.rsvp-link:focus-visible,.gift-iban button:focus-visible{color:var(--ink);border-color:#29231e57;transform:translateY(-1px)}.day-map-link:active,.direction-links a:active,.direction-map-button:active,.rsvp-link:active,.gift-iban button:active{opacity:.72;transform:translateY(1px)}.gift-iban{margin-top:42px}.gift-iban p{color:var(--ink);word-break:break-word;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,4.6vw,25px)}.gift-iban span{color:var(--muted);margin-top:12px;font-size:12px;display:block}.gift-iban button{letter-spacing:.32em;margin-top:24px}.gift-qr{opacity:.86;margin-top:36px}.gift-qr-placeholder{background-color:#0000;background-image:linear-gradient(90deg,#29231e14 1px,#0000 1px),linear-gradient(#29231e14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #29231e14;place-items:center;width:180px;height:180px;display:grid}.gift-qr-placeholder span{background:var(--paper);letter-spacing:.3em;width:72px;height:72px;color:var(--muted);border-radius:999px;place-items:center;font-size:10px;display:grid}.direction-links{flex-wrap:wrap;justify-content:center;gap:26px;margin-top:26px;display:flex}.useful-list{gap:24px;width:100%;max-width:520px;margin-top:42px;display:grid}.useful-item{border-bottom:1px solid #7b6e6324;gap:8px;padding-bottom:22px;display:grid}.useful-item:last-child{border-bottom:none;padding-bottom:0}.useful-item-label,.useful-item p{letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:0;font-size:10px}.useful-item-text,.useful-item h3{letter-spacing:-.035em;color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(19px,4.8vw,28px);font-weight:400;line-height:1.18}.closing-title{letter-spacing:-.065em;max-width:12ch;color:var(--ink);margin:54px auto 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,10vw,72px);font-weight:400;line-height:.96}.closing-share-action{margin-top:28px;margin-bottom:28px}.closing-signature{color:var(--muted);margin:38px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(20px,5vw,30px)}.editorial-photo-space{border:1px solid #29231e09}.editorial-photo-placeholder{background:radial-gradient(circle at 50% 34%,#fffcf6d6,#0000 44%),linear-gradient(#fffcf63d,#f5eadc14);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.editorial-photo-glow{aspect-ratio:1/1.28;filter:blur(22px);opacity:.38;background:radial-gradient(circle,#29231e14,#0000 64%);border-radius:999px;width:62%;position:absolute}.editorial-photo-placeholder p{letter-spacing:.34em;text-transform:uppercase;color:#7b6e636b;margin:0;font-size:10px;position:relative}.editorial-photo-placeholder span{color:#7b6e637a;font-family:Georgia,Times New Roman,serif;font-size:22px;position:absolute;bottom:34px}.closing-placeholder span{bottom:30px}@keyframes pageIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;filter:blur(2px);transform:translateY(6px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes arrowBreath{0%,to{opacity:.52;transform:translateY(0)}50%{opacity:.78;transform:translateY(5px)}}@media (max-width:640px){.day-actions{gap:20px}.countdown-grid{gap:10px}.countdown-unit strong{font-size:clamp(36px,11vw,58px)}.countdown-unit span{letter-spacing:.22em;font-size:8px}}@media (max-width:390px){.cover-content{min-height:76svh}.cover-title{font-size:clamp(58px,16vw,78px)}.cover-kicker{margin-bottom:48px}.cover-date{margin-top:52px}.cover-arrow{margin-top:56px}.frontispiece-photo-space,.closing-photo-space{width:min(84vw,356px)}.declaration-content{min-height:74svh}.declaration-title{font-size:clamp(50px,12vw,82px)}.declaration-arrow{margin-top:78px}.day-kicker{margin-bottom:48px}.rsvp-title{font-size:clamp(46px,12vw,76px)}.countdown-grid{gap:12px}.countdown-grid strong{font-size:clamp(26px,7vw,44px)}.countdown-grid span{letter-spacing:.22em;font-size:8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
