@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,500&family=Montserrat:wght@400;500;600&display=swap";:root{font-family:Montserrat,sans-serif;color:#3f453b;background:#e8e1d4;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-width:320px;min-height:100%;margin:0}body{overflow-x:hidden;overflow-y:auto}button{color:inherit;font:inherit}.invitation-page{position:relative;isolation:isolate;width:100%;height:100vh;height:100svh;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-behavior:smooth;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#eee8dc,#ddd3c3)}.invitation-page.is-viewing-fullscreen{overflow:hidden}.envelope-hero{position:relative;display:grid;min-height:100vh;min-height:100svh;height:100vh;height:100svh;flex:0 0 100svh;grid-template-rows:1fr auto 1fr;place-items:center;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;padding:clamp(1rem,4vh,2.5rem) 1rem;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.76) 0,rgba(247,243,235,.48) 38%,transparent 70%),linear-gradient(#e8e0d347,#dacfbe6b),url(/wedding-details-background.png) center/cover no-repeat}.paper-noise{position:absolute;inset:0;z-index:-1;opacity:.24;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.17'/%3E%3C/svg%3E");pointer-events:none}.botanical{position:absolute;z-index:-1;color:#5b6c4e29;font-family:Georgia,serif;font-size:clamp(11rem,30vw,28rem);line-height:1;-webkit-user-select:none;user-select:none}.botanical--left{bottom:-7%;left:-3%;transform:rotate(-30deg)}.botanical--right{top:-9%;right:-3%;transform:rotate(148deg)}.intro{align-self:end;margin-bottom:clamp(1rem,3vh,2rem);text-align:center;transition:.7s ease}.kicker,.hint,.after-note{margin:0;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase}.kicker{color:#78806f}.intro .kicker{color:#423d35;font-weight:700;text-shadow:0 1px .35rem rgba(255,255,255,.9)}.intro h1{margin:.15rem 0 .45rem;color:#393f36;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.7rem,8vw,4.8rem);font-weight:400;line-height:1}.hint{color:#9b8268;font-size:.55rem;animation:breathe 2.2s ease-in-out infinite}.invitation-fullscreen{position:fixed;inset:0;z-index:1000;display:grid;width:100vw;max-height:none;height:100vh;height:100dvh;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#14120ff5;box-shadow:none;cursor:zoom-out;-webkit-tap-highlight-color:transparent}.invitation-fullscreen img{display:block;width:auto;max-width:100%;height:auto;max-height:100%;object-fit:contain}.envelope-scene{position:relative;width:min(86vw,29rem);aspect-ratio:1.42;padding:0;border:0;outline:none;background:none;cursor:pointer;perspective:1200px;transform:translateY(0);transition:transform .9s cubic-bezier(.2,.7,.2,1) .35s;-webkit-tap-highlight-color:transparent}.envelope-scene:focus-visible{filter:drop-shadow(0 0 .5rem rgba(106,117,91,.65))}.envelope-shadow{position:absolute;right:7%;bottom:-7%;left:7%;height:12%;border-radius:50%;background:#40342733;filter:blur(13px);transition:.8s ease}.envelope{position:absolute;inset:0;transform-style:preserve-3d;filter:drop-shadow(0 1.25rem 1.1rem rgba(72,60,45,.18))}.envelope-back,.envelope-pocket,.envelope-flap{position:absolute;inset:0;display:block;border-radius:.25rem}.envelope-back{z-index:1;background:#e3d4bd}.envelope-pocket{z-index:4;overflow:hidden;background:linear-gradient(150deg,#e9dcc7,#d8c5a8);clip-path:polygon(0 27%,50% 67%,100% 27%,100% 100%,0 100%)}.envelope-pocket:before,.envelope-pocket:after{position:absolute;bottom:0;width:72%;height:76%;background:#ffffff1f;content:""}.envelope-pocket:before{left:0;clip-path:polygon(0 0,100% 100%,0 100%)}.envelope-pocket:after{right:0;clip-path:polygon(100% 0,100% 100%,0 100%)}.envelope-flap{z-index:6;height:58%;transform:rotateX(0);transform-origin:top center;background:linear-gradient(175deg,#eee3d2,#d9c7ac);clip-path:polygon(0 0,100% 0,50% 100%);transition:transform .8s cubic-bezier(.3,.1,.2,1),z-index 0s .35s}.wax-seal{position:absolute;top:42%;left:50%;z-index:7;display:flex;width:clamp(3.1rem,12vw,4rem);aspect-ratio:1;align-items:center;justify-content:center;gap:.08rem;color:#e7d5aa;background:radial-gradient(circle at 35% 30%,#9f6a5b,#75443d 66%,#633631);border:2px solid rgba(255,255,255,.15);border-radius:47% 53% 50% 46%;box-shadow:0 .3rem .45rem #41271c40,inset 0 0 0 .25rem #49231f33;font-family:Cormorant Garamond,serif;font-size:1.15rem;transform:translate(-50%,-50%) rotate(-4deg);transition:opacity .3s .15s,transform .5s}.wax-seal b{font-size:.65em;font-weight:400}.wax-seal i{font-style:italic}.reveal-piece{position:absolute;top:-12%;left:50%;z-index:3;display:block;visibility:hidden;opacity:0;pointer-events:none;transition:transform 1s cubic-bezier(.18,.75,.22,1) .8s,opacity .35s ease .8s,visibility 0s linear 1.8s}.reveal-piece img{display:block;width:100%;height:auto}.reveal-piece--bouquet{width:48%;transform:translate(-50%,55%) scale(.45) rotate(0);transform-origin:70% 80%}.reveal-piece--photo{width:42%;overflow:hidden;background:#eee8dd;border:.3rem solid #f8f4ec;box-shadow:0 .8rem 1.5rem #312b2333;transform:translate(-50%,55%) scale(.45) rotate(0);transform-origin:30% 80%}.reveal-piece--photo img{aspect-ratio:2 / 3;height:100%;object-fit:cover}.reveal-piece--photo-left,.reveal-piece--photo-right{top:12%;width:34%}.reveal-piece--photo-left{transform-origin:85% 15%}.reveal-piece--photo-right{transform-origin:15% 15%}.invitation-card{position:absolute;z-index:2;right:7%;bottom:3%;left:7%;display:block;height:172%;padding:0;overflow:hidden;visibility:hidden;opacity:0;border:1px solid rgba(131,112,82,.18);border-radius:.15rem;background:#f9f5eb;box-shadow:0 .5rem 1.5rem #42362821;transform:translateY(35%);transition:transform 1s cubic-bezier(.2,.7,.2,1) .18s,opacity .12s ease .95s,visibility 0s linear 1.07s;cursor:zoom-in}.invitation-card>img{display:block;width:100%;height:100%;object-fit:cover}.invitation-card:focus-visible{outline:.2rem solid #8c745f;outline-offset:.2rem}.card-content{position:absolute;inset:0;display:none;align-items:center;flex-direction:column;justify-content:center;padding:12% 11%;text-align:center}.card-overline{margin-bottom:6%;color:#8b7762;font-size:clamp(.38rem,1.55vw,.62rem);font-weight:600;letter-spacing:.3em;text-transform:uppercase}.names{display:flex;align-items:center;flex-direction:column;color:#46503f;font-family:Cormorant Garamond,Georgia,serif;line-height:.78}.names i{font-size:clamp(2.15rem,9vw,4.15rem);font-weight:500}.names b{margin:.35rem 0 .2rem;color:#a58368;font-size:clamp(1rem,3.5vw,1.55rem);font-weight:400}.card-copy{margin-top:7%;color:#64665e;font-family:Cormorant Garamond,serif;font-size:clamp(.64rem,2.45vw,.94rem);line-height:1.45}.card-rule{margin:5% 0 3%;color:#a58b70;font-size:.55rem}.date{color:#424a3e;font-family:Cormorant Garamond,serif;font-size:clamp(.9rem,3.2vw,1.3rem);font-weight:500;letter-spacing:.06em}.details{margin-top:2%;color:#777268;font-size:clamp(.42rem,1.55vw,.6rem);letter-spacing:.1em;line-height:1.65;text-transform:uppercase}.after-note{position:relative;z-index:10;display:flex;align-self:start;align-items:center;flex-direction:column;gap:.15rem;margin-top:clamp(1.2rem,4vh,2.4rem);padding:.5rem .8rem;color:#61584e;border:0;background:none;font-size:.5rem;text-align:center;transition:.5s ease}.after-note:disabled{margin-top:.65rem;color:#665e53;font-size:clamp(.68rem,2.8vw,.82rem);font-weight:600;cursor:default}.after-note:not(:disabled){cursor:pointer}.after-note:not(:disabled) span{font-size:clamp(.62rem,2.4vw,.76rem);font-weight:700;letter-spacing:.18em}.after-note i{font-family:Georgia,serif;font-size:1.4rem;font-style:normal;line-height:.65;animation:float-down 1.7s ease-in-out infinite}.is-open .after-note{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:50%;z-index:20;min-width:min(78vw,18rem);min-height:3rem;align-self:auto;justify-content:center;flex-direction:row;gap:.65rem;margin:0;padding:.75rem 1.25rem;color:#fffaf3;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:linear-gradient(135deg,#7e4949f5,#9d5c60f5);box-shadow:0 .65rem 1.5rem #37231f4d,inset 0 1px #fff3;transform:translate(-50%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.is-open .after-note:active{transform:translate(-50%) scale(.97)}.is-open .after-note i{color:#fffaf3;font-size:1.25rem}.is-open .envelope-flap{z-index:1;transform:rotateX(180deg);transition:transform .8s cubic-bezier(.3,.1,.2,1),z-index 0s .35s}.is-open .wax-seal{opacity:0;transform:translate(-50%,-95%) scale(.45) rotate(12deg);transition-delay:0s}.is-open .reveal-piece{visibility:visible;opacity:1;transition:transform 1s cubic-bezier(.18,.75,.22,1) .8s,opacity .35s ease .8s,visibility 0s linear .8s}.is-open .reveal-piece--bouquet{transform:translate(-115%,-34%) scale(1) rotate(-18deg)}.is-open .reveal-piece--photo-top{transform:translate(18%,-28%) scale(1) rotate(9deg)}.is-open .reveal-piece--photo-left{transform:translate(-135%,55%) scale(1) rotate(-11deg)}.is-open .reveal-piece--photo-right{transform:translate(35%,70%) scale(1) rotate(11deg)}.is-open .invitation-card{z-index:5;visibility:visible;opacity:1;transform:translateY(-65%);transition:transform 1s cubic-bezier(.2,.7,.2,1) .65s,opacity .18s ease .65s,visibility 0s linear .65s}.is-open .envelope-scene{transform:translateY(clamp(4.25rem,12svh,7rem))}.is-open .envelope-shadow{transform:scaleX(1.08);opacity:.65}.is-open .intro{opacity:0;transform:translateY(-.35rem)}@keyframes breathe{50%{opacity:.42}}@keyframes float-down{50%{transform:translateY(.28rem)}}.wedding-details{position:relative;display:flex;min-height:100svh;height:100vh;height:100svh;align-items:center;flex-direction:column;justify-content:center;padding:4.5rem clamp(1.5rem,6vw,3rem) 2.5rem;overflow:hidden;color:#3f453b;background:linear-gradient(#f8f5eda6,#eee7dac7),url(/wedding-details-background-v3.png) center/cover no-repeat;text-align:center;scroll-snap-align:start;scroll-snap-stop:always;animation:section-reveal .8s ease both}.wedding-details:before{position:absolute;top:0;left:50%;width:1px;height:3.5rem;background:#b69c7f;content:""}.section-flower{display:grid;width:2.25rem;aspect-ratio:1;margin-bottom:1.2rem;place-items:center;color:#9e856b;border:1px solid rgba(158,133,107,.45);border-radius:50%;font-size:.55rem}.wedding-details>.kicker{color:#8a7b69;font-size:clamp(.6rem,2.4vw,.72rem)}.wedding-details h2{margin:.75rem 0 2rem;color:#3e463b;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.55rem,12vw,4.5rem);font-weight:400;line-height:.88}.wedding-details h2 i{color:#8c745f;font-weight:400}.countdown{display:grid;width:min(100%,27rem);grid-template-columns:repeat(4,1fr);gap:.4rem}.countdown-unit{position:relative;padding:1.15rem .15rem 1rem;background:#ffffff85;border:1px solid rgba(136,120,97,.18)}.countdown-unit strong{display:block;color:#46503f;font-family:Cormorant Garamond,serif;font-size:clamp(2.15rem,10vw,3.25rem);font-weight:400;font-variant-numeric:tabular-nums;line-height:1}.countdown-unit span{display:block;margin-top:.55rem;color:#8c8174;font-size:clamp(.48rem,2.15vw,.62rem);font-weight:600;letter-spacing:.13em;text-transform:uppercase}.detail-label{display:flex;width:min(82%,19rem);align-items:center;gap:.7rem;margin-top:clamp(1.5rem,3.5vh,2.3rem);color:#958471}.detail-label i{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(145,125,101,.52))}.detail-label i:last-child{transform:scaleX(-1)}.detail-label span{font-size:.58rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase}.detail-label--address{margin-top:1rem}.event-card{display:flex;width:min(100%,23rem);align-items:center;justify-content:center;margin:.55rem 0 0;padding:1.05rem 1.35rem;background:#f9f6eeb3;border-block:1px solid rgba(143,124,99,.28)}.event-card p{flex:1;margin:0}.event-card span{display:block;color:#46503f;font-family:Cormorant Garamond,serif;font-size:3.15rem;font-weight:400;line-height:.85}.event-card b{display:block;color:#8c745f;font-family:Cormorant Garamond,serif;font-size:1.48rem;font-weight:500}.event-card small{display:block;margin-top:.48rem;color:#81786d;font-size:.57rem;letter-spacing:.1em;text-transform:uppercase}.event-divider{width:1px;height:4rem;margin-inline:1rem;background:#8f7c6347}.venue-note{display:flex;align-items:center;flex-direction:column;gap:.25rem;margin-top:.55rem;color:#475143}.venue-note strong{font-family:Cormorant Garamond,Georgia,serif;font-size:1.75rem;font-weight:500}.venue-note p{margin:0;color:#81786d;font-size:clamp(.56rem,2.35vw,.68rem);letter-spacing:.035em;line-height:1.55}.photo-share-card{display:flex;width:min(100%,23rem);min-height:4rem;align-items:center;gap:.8rem;margin-top:1rem;padding:.7rem 1rem;color:#6e494d;background:linear-gradient(135deg,#f6dddcf5,#edcacce6);border:1px solid rgba(157,96,103,.22);box-shadow:0 .55rem 1.2rem #77494d1f;text-align:left;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.photo-share-card>span{display:grid;width:2.2rem;aspect-ratio:1;flex:0 0 auto;place-items:center;color:#fff8f4;background:#a7666d;border-radius:50%}.photo-share-card svg{width:1.12rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.photo-share-card div{display:flex;min-width:0;flex:1;flex-direction:column}.photo-share-card small{margin-bottom:.18rem;color:#9a6d70;font-size:.48rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase}.photo-share-card strong{overflow:hidden;font-family:Cormorant Garamond,serif;font-size:1.18rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.photo-share-card>i{color:#986067;font-size:1.1rem;font-style:normal}.photo-share-card:hover,.photo-share-card:focus-visible{box-shadow:0 .8rem 1.5rem #77494d2e;transform:translateY(-2px)}.page-cue{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:50%;z-index:20;display:flex;min-width:min(78vw,18rem);min-height:3rem;flex:0 0 auto;align-items:center;justify-content:center;gap:.65rem;margin:0;padding:.75rem 1.25rem;color:#fffaf3;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:linear-gradient(135deg,#7e4949f5,#9d5c60f5);box-shadow:0 .65rem 1.5rem #37231f4d,inset 0 1px #fff3;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;transform:translate(-50%);cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.page-cue:active{transform:translate(-50%) scale(.97)}.page-cue span{font-size:clamp(.62rem,2.4vw,.76rem);font-weight:700;letter-spacing:.18em}.page-cue i{color:#fffaf3;font-family:Georgia,serif;font-size:1.25rem;font-style:normal;line-height:.7;animation:float-down 1.7s ease-in-out infinite}.location-page{position:relative;display:flex;height:100vh;height:100svh;min-height:100vh;min-height:100svh;align-items:center;flex-direction:column;justify-content:center;padding:3.2rem 1rem 0;overflow:hidden;background:linear-gradient(#10191329,#0c120e61),url(/location-background.png) center/cover no-repeat;scroll-snap-align:start;scroll-snap-stop:always}.location-page:before{position:absolute;inset:-3px;background:radial-gradient(circle at 50% 42%,#0e141014 20%,#080d0a47);backdrop-filter:blur(1.4px);-webkit-backdrop-filter:blur(1.4px);content:"";pointer-events:none}.location-block{position:relative;z-index:1;width:min(92%,28rem);padding:1rem .25rem;color:#f8f0e5;background:none;text-align:center}.location-block .kicker{color:#e6c9a3;font-size:.52rem;font-weight:600;text-shadow:0 .15rem .45rem rgba(0,0,0,.72)}.location-block h3{margin:.55rem 0 .7rem;color:#fff8ed;font-family:Cormorant Garamond,serif;font-size:clamp(1.85rem,7vw,2.1rem);font-weight:500;text-shadow:0 .18rem .55rem rgba(0,0,0,.72)}.location-block>p:not(.kicker){max-width:18rem;margin:0 auto 1.15rem;color:#f1e8dc;font-family:Cormorant Garamond,serif;font-size:.98rem;font-weight:500;line-height:1.45;text-shadow:0 .15rem .45rem rgba(0,0,0,.78)}.location-list{display:grid;gap:.65rem}.location-card{display:grid;min-height:6.35rem;grid-template-columns:2.7rem 1fr auto;align-items:center;gap:.8rem;padding:.85rem 1rem;color:#455044;background:#f9f6eeeb;border:1px solid rgba(255,255,255,.4);border-radius:.8rem;box-shadow:0 .55rem 1.4rem #080e0a33;text-align:left;text-decoration:none;transition:transform .2s ease,background .2s ease}.location-card:hover,.location-card:focus-visible{background:#fffaf2;transform:translateY(-2px)}.location-card-icon{position:relative;width:2.35rem;height:2.35rem;background:#a56862;border:.25rem solid #f8f2ea;border-radius:50% 50% 50% 0;box-shadow:0 .25rem .55rem #533e3638;transform:rotate(-45deg)}.location-card-icon i{position:absolute;inset:27%;background:#f8e8df;border-radius:50%}.location-card-copy{display:flex;min-width:0;flex-direction:column}.location-card-copy strong{font-family:Cormorant Garamond,serif;font-size:1.28rem;font-weight:600;line-height:1.05}.location-card-copy em{margin-top:.3rem;overflow:hidden;color:#777a72;font-size:.55rem;font-style:normal;line-height:1.35}.location-card-action{align-self:stretch;display:flex;min-width:4.6rem;align-items:center;justify-content:center;flex-direction:column;gap:.22rem;padding-left:.7rem;color:#7c5b57;border-left:1px solid rgba(105,92,76,.18);font-size:.56rem;font-weight:700;letter-spacing:.1em;line-height:1.3;text-align:center;text-transform:uppercase}.location-card-action i{font-size:1.05rem;font-style:normal;line-height:1}.location-page footer{display:flex;position:relative;z-index:1;align-items:center;flex-direction:column;padding:1.25rem 1rem 1rem;color:#f6ecdd;font-family:Cormorant Garamond,serif;text-shadow:0 .15rem .5rem rgba(0,0,0,.55)}.location-page footer span{font-size:2rem;font-style:italic;line-height:.72}.location-page footer i{margin:.3rem 0;color:#e7bb83;font-size:1rem;font-weight:400}.location-page footer small{margin-top:1rem;font-family:Montserrat,sans-serif;font-size:.48rem;letter-spacing:.28em}.photos-page{position:relative;min-height:100vh;min-height:100svh;padding:3rem 1rem;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.78),transparent 36%),linear-gradient(145deg,#e9e3d8,#d8d0c1)}.photos-noise{position:fixed;inset:0;opacity:.2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.17'/%3E%3C/svg%3E")}.photos-card{position:relative;width:min(100%,46rem);margin:0 auto;padding:clamp(2rem,6vw,4.25rem);background:#f9f6eee8;border:1px solid rgba(133,114,91,.16);box-shadow:0 1.5rem 4rem #453a2d26;text-align:center}.photos-card:before{position:absolute;top:0;left:50%;width:1px;height:2.5rem;background:#b69c7f;content:"";transform:translateY(-50%)}.photos-card h1{margin:.65rem 0 1rem;color:#41493e;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.8rem,10vw,5rem);font-weight:400;line-height:.84}.photos-card h1 i{color:#917661;font-weight:400}.photos-intro{max-width:31rem;margin:0 auto 2rem;color:#77746d;font-family:Cormorant Garamond,serif;font-size:clamp(1rem,3vw,1.18rem);line-height:1.5}.photo-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.photo-action{display:flex;min-height:9rem;align-items:center;flex-direction:column;justify-content:center;padding:1rem;color:#596254;background:#eee9e0;border:1px solid rgba(102,112,95,.2);cursor:pointer;transition:transform .2s ease,background .2s ease}.photo-action--camera{color:#f8f4ec;background:#6b7566}.photo-action--disabled{cursor:wait;opacity:.55}.photo-action:hover{transform:translateY(-2px)}.photo-action--disabled:hover{transform:none}.photo-action input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.photo-action-icon{display:grid;width:2rem;aspect-ratio:1;margin-bottom:.45rem;place-items:center}.photo-action-icon svg{width:100%;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.55}.photo-action strong{font-family:Cormorant Garamond,serif;font-size:1.3rem;font-weight:500}.photo-action small{margin-top:.25rem;font-size:.5rem;letter-spacing:.1em;opacity:.75;text-transform:uppercase}.photo-selection{margin-top:1.8rem;text-align:left}.selection-heading{display:flex;justify-content:space-between;margin-bottom:.65rem;color:#6e746a;font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}.photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem}.photo-grid figure{position:relative;aspect-ratio:1;margin:0;overflow:hidden;background:#ddd6ca}.photo-grid img{width:100%;height:100%;object-fit:cover}.photo-grid button{position:absolute;top:.25rem;right:.25rem;display:grid;width:1.45rem;aspect-ratio:1;padding:0;place-items:center;color:#fff;background:#2f312cc7;border:0;border-radius:50%;cursor:pointer;line-height:1}.photo-grid button:disabled{cursor:wait;opacity:.45}.photo-grid figcaption{position:absolute;right:0;bottom:0;left:0;z-index:2;padding:.35rem .25rem;overflow:hidden;color:#fff;background:linear-gradient(transparent,#232721d6);font-size:.48rem;line-height:1.2;text-align:center;text-overflow:ellipsis;white-space:nowrap}.photo-status{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:#343a317a;font-size:1.5rem;font-weight:700;pointer-events:none}.photo-status--pending{background:transparent}.photo-status--success{background:#386942a6}.photo-status--error{background:#8e413aa3}.upload-progress{margin-top:1.25rem;color:#65705f;text-align:left}.upload-progress>div{display:flex;justify-content:space-between;margin-bottom:.45rem;font-size:.63rem;letter-spacing:.08em}.upload-progress>div strong{font-weight:600}.upload-progress>i{display:block;height:.38rem;overflow:hidden;background:#ddd8ce;border-radius:999px}.upload-progress>i span{display:block;height:100%;background:#71806b;border-radius:inherit;transition:width .3s ease}.upload-button{width:100%;min-height:3.65rem;margin-top:1.5rem;color:#f8f4ec;background:#687263;border:0;border-radius:999px;font-size:.64rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}.upload-button:disabled{opacity:.42;cursor:not-allowed}.upload-message{margin:1.25rem 0 -.65rem;font-size:.75rem;line-height:1.45}.upload-message--error{color:#9a514b}.upload-message--success{color:#4f7252}.privacy-note{margin:.8rem 0 0;color:#8a857d;font-size:.55rem;letter-spacing:.03em}.privacy-note span{color:#7a8374}@media(max-width:520px){.photos-page{padding:1.5rem .65rem calc(6rem + env(safe-area-inset-bottom))}.photos-card{padding:2.5rem 1rem 2rem}.photos-card h1{font-size:clamp(2.35rem,12vw,3.35rem);line-height:.88}.photos-intro{max-width:25rem;font-size:.92rem;line-height:1.4}.photos-card>.kicker{font-size:.52rem;letter-spacing:.2em}.photo-actions{gap:.5rem}.photo-action{min-height:8rem}.photo-grid{grid-template-columns:repeat(4,1fr)}.upload-button--ready{position:fixed;right:1rem;bottom:calc(.7rem + env(safe-area-inset-bottom));left:1rem;z-index:10;width:auto;margin:0;box-shadow:0 .7rem 1.8rem #30372d4d}}@keyframes section-reveal{0%{opacity:0;transform:translateY(1.5rem)}}@media(max-height:900px){.wedding-details{justify-content:flex-start;padding-top:1.25rem;padding-bottom:.8rem}.wedding-details:before{height:1rem}.section-flower{width:1.9rem;margin-bottom:.35rem}.wedding-details h2{margin:.25rem 0 .9rem;font-size:clamp(2.35rem,10.5vw,4rem)}.countdown-unit{padding-block:.85rem .75rem}.detail-label{margin-top:.7rem}.detail-label--address{margin-top:.5rem}.event-card{padding-block:.65rem}.photo-share-card{min-height:3.25rem;margin-top:.5rem;padding-block:.45rem}.venue-note strong{font-size:1.55rem}.venue-note p{line-height:1.35}.page-cue{min-height:2.8rem;padding-block:.6rem}}@media(max-height:700px){.envelope-hero{padding-block:.7rem}.intro{margin-bottom:.4rem}.intro h1{font-size:2.6rem}.envelope-scene{width:min(68vh,24rem)}.after-note{margin-top:.6rem}.wedding-details{justify-content:flex-start;padding-top:.9rem}.section-flower{margin-bottom:.65rem}.detail-label{margin-top:.85rem}.detail-label--address{margin-top:.65rem}.event-card{padding-block:.75rem}.event-card span{font-size:2.55rem}.venue-note strong{font-size:1.45rem}.photo-share-card{min-height:3.4rem;margin-top:.55rem;padding-block:.5rem}.location-page{justify-content:flex-start;padding-top:1.7rem}.location-block{padding-top:1.5rem}.location-page footer{padding-top:1.5rem}}@media(max-width:600px){.envelope-scene{width:min(76vw,20.5rem)}.invitation-card{right:4%;left:4%;height:183%}.reveal-piece--bouquet{top:-108%;width:43%}.reveal-piece--photo-top{top:-150%;width:38%}.reveal-piece--photo-left,.reveal-piece--photo-right{top:20%;width:34%}.is-open .reveal-piece--bouquet{transform:translate(-155%,-4%) scale(1) rotate(-20deg)}.is-open .reveal-piece--photo-top{transform:translate(72%,3%) scale(1) rotate(10deg)}.is-open .reveal-piece--photo-left{transform:translate(-145%,72%) scale(1) rotate(-12deg)}.is-open .reveal-piece--photo-right{transform:translate(45%,88%) scale(1) rotate(12deg)}.is-open .envelope-scene{transform:translateY(clamp(4rem,10svh,5.75rem))}.is-open .invitation-card{transform:translateY(-4%)}.is-open .intro{opacity:0}}@media(min-width:601px){.envelope-scene{width:min(86vw,29rem,38svh)}.is-open .reveal-piece--photo-left,.is-open .reveal-piece--photo-right{z-index:6}.is-open .envelope-scene{transform:translateY(clamp(4.5rem,14svh,8rem))}}@media(min-width:601px)and (max-height:800px){.is-open .intro{opacity:0}}@media(min-width:700px){.wedding-details{padding-top:7rem}.location-block{padding:1rem .25rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}}.todo-page{min-height:100svh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(ellipse at top,#fffaf2,#e5ded1)}.todo-card{width:min(100%,27rem);padding:clamp(1.5rem,6vw,3rem);text-align:center;background:#faf7f0;border:1px solid #d7cdbd;border-radius:1rem;box-shadow:0 1.5rem 4rem #453a2d14}.todo-flower{display:block;margin-top:1.5rem;color:#a77870;font-size:1.6rem}.todo-card h1{margin:.5rem 0;font:400 4rem Cormorant Garamond,Georgia,serif}.todo-intro{margin:0 0 2rem;font-size:.8rem;line-height:1.7;color:#736d63}.todo-card form{display:flex;flex-direction:column;text-align:left}.todo-card label{margin:1rem 0 .5rem;font-size:.75rem}.todo-card input{width:100%;min-height:3rem;padding:.8rem;border:1px solid #c9c2b5;border-radius:.5rem;background:#fffdf8;color:#3f453b;font:inherit;font-size:1rem}.todo-card button{margin-top:1.5rem;min-height:3rem;border:0;border-radius:.5rem;background:#65715e;color:#fff;cursor:pointer}.todo-card button:disabled{opacity:.6;cursor:wait}.todo-card :focus-visible{outline:3px solid #a77870;outline-offset:3px}.todo-error{color:#a03434;font-size:.8rem;line-height:1.5}.todo-back{display:inline-block;margin-top:2rem;color:#736d63;font-size:.7rem;text-underline-offset:.2rem}.todo-card--list{width:min(100%,39rem)}.todo-sharing{color:#736d63;font-size:.75rem;line-height:1.7}.todo-sharing--small{margin-top:.65rem;font-size:.65rem;text-align:left}.todo-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem;text-align:left}.todo-summary h2{margin:0;font-size:.85rem;font-weight:600}.todo-summary span{font-size:.7rem;color:#65715e}.daily-list progress{width:100%;height:.4rem;margin:.8rem 0;border:0;border-radius:1rem;overflow:hidden;background:#e5ded1;accent-color:#65715e}.daily-list progress::-webkit-progress-bar{background:#e5ded1}.daily-list progress::-webkit-progress-value{background:#65715e;border-radius:1rem}.daily-list progress::-moz-progress-bar{background:#65715e}.todo-items{list-style:none;padding:0;margin:.4rem 0 1rem;display:grid;gap:.65rem}.todo-items li{display:flex;align-items:center;gap:.5rem;padding:.6rem;border:1px solid #ddd4c6;border-radius:.6rem;background:#fffdf8;text-align:left}.todo-items label{display:flex;flex:1;align-items:center;gap:.8rem;margin:0;min-height:2.75rem;font-size:.85rem;line-height:1.5;cursor:pointer}.todo-items label span{overflow-wrap:anywhere}.todo-items input{appearance:auto;width:1.3rem;height:1.3rem;min-height:0;margin:0;padding:0;flex:0 0 auto;accent-color:#65715e}.todo-items .is-done{background:#edf0e8}.todo-items .is-done .todo-item-title{text-decoration:line-through;color:#65715e}.todo-card .todo-remove{flex:0 0 auto;min-height:2.75rem;width:2.75rem;margin:0;background:transparent;color:#956157;font-size:1.5rem}.todo-card .todo-remove:hover{background:#f3e5df}.todo-add-title{display:flex;align-items:stretch;gap:.5rem}.todo-add input{min-width:0;flex:1}.todo-card .todo-add button{margin:0;padding:.6rem 1rem}.todo-card .todo-list-error button{margin-top:.4rem;padding-inline:1rem}.todo-item-copy{display:flex;min-width:0;flex-direction:column;gap:.35rem}.todo-reminder-summary{color:#736d63;font-size:.65rem;line-height:1.6}.todo-reminders{min-width:0;margin:1.2rem 0;padding:1rem;border:1px solid #ddd4c6;border-radius:.6rem}.todo-reminders legend{padding:0 .4rem;font-size:.75rem}.todo-card .todo-reminder-toggle{display:flex;align-items:center;gap:.65rem;min-height:2.75rem;margin:0;cursor:pointer;line-height:1.5}.todo-card .todo-reminder-toggle input{width:1.25rem;height:1.25rem;min-height:0;padding:0;margin:0;flex:0 0 auto;accent-color:#65715e}#todo-reminder-options>label{display:block}.todo-reminders select{width:100%;min-height:3rem;padding:.65rem;color:#3f453b;background:#fffdf8;border:1px solid #c9c2b5;border-radius:.5rem;font:inherit;font-size:1rem}.todo-reminder-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.todo-reminder-times label{display:block;line-height:1.5}.todo-reminder-times input{min-width:0;max-width:100%}.todo-push-status{padding:.75rem;color:#75573c;background:#f1e8d9;border-radius:.5rem;font-size:.7rem;line-height:1.7}.todo-push-status strong{display:block}.todo-iphone-help{font-size:.7rem;line-height:1.7;color:#736d63}.todo-iphone-help summary{cursor:pointer;padding:.5rem 0}.todo-iphone-help p{margin:.4rem 0 0}@media(max-width:380px){.todo-reminder-times{grid-template-columns:1fr}}.monthly-calendar{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid #d7cdbd;text-align:left}.calendar-heading,.calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.calendar-heading h2{font:500 1.8rem Cormorant Garamond,Georgia,serif;margin:0}.todo-card .calendar-heading button{margin:0;min-height:2.75rem;padding:.5rem .8rem;background:#eae6dc;color:#46503f;font-size:.75rem}.calendar-navigation{margin:1rem 0}.calendar-navigation h3{margin:0;font-size:1rem;font-weight:500}.todo-card .calendar-navigation button{margin:0;min-height:2.75rem;width:2.75rem;font-size:1.5rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;text-align:center}.calendar-weekday{padding:.5rem 0;color:#736d63;font-size:.65rem}.todo-card .calendar-day{min-width:0;min-height:2.8rem;margin:0;padding:.35rem 0 .15rem;display:flex;align-items:center;flex-direction:column;justify-content:center;color:#46503f;background:#efeae0;border:1px solid transparent;font-size:.85rem}.todo-card .calendar-day.is-today{border-color:#65715e;font-weight:600}.todo-card .calendar-day[aria-pressed=true]{background:#65715e;color:#fff}.todo-card .calendar-day.has-events{background:#f5c99c;color:#713b15;border-color:#dfaa75}.todo-card .calendar-day.has-events.is-today{border-color:#65715e}.todo-card .calendar-day.has-events[aria-pressed=true]{background:#b95c20;color:#fff;border-color:#8a4014}.calendar-dot{line-height:.8;height:.65rem}.calendar-agenda-title,.calendar-form h3{margin:1.4rem 0 .75rem;font-size:.85rem;font-weight:600}.calendar-events{list-style:none;display:grid;gap:.5rem;padding:0}.calendar-events li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .8rem;background:#f0e7dd;border-radius:.5rem}.calendar-events li>div{min-width:0}.calendar-events strong{display:block;font-size:.85rem;overflow-wrap:anywhere}.calendar-events time{display:block;margin-top:.35rem;font-size:.7rem;color:#736d63}.todo-card .calendar-events button{margin:0;flex:0 0 auto;min-height:2.75rem;width:2.75rem;color:#956157;background:transparent;font-size:1.4rem}.calendar-form-date{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:.75rem}.calendar-form-date label{display:block}.calendar-form-date input{min-width:0;max-width:100%}@media(max-width:380px){.calendar-form-date{grid-template-columns:1fr}}.push-settings{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 2rem;padding:1rem;color:#46503f;background:#edf0e8;border:1px solid #ccd4c6;border-radius:.7rem;text-align:left}.push-settings>div{display:flex;min-width:0;flex-direction:column;gap:.3rem}.push-settings strong{font-size:.8rem}.push-settings span{color:#6f756b;font-size:.68rem;line-height:1.55}.todo-card .push-settings button{flex:0 0 auto;min-height:2.65rem;margin:0;padding:.45rem .75rem;font-size:.7rem}.push-settings--active{background:#e4ede1;border-color:#acbea8}.push-settings--install,.push-settings--denied,.push-settings--error{background:#f4e8db;border-color:#e1c4a6}@media(max-width:430px){.push-settings{align-items:stretch;flex-direction:column}.todo-card .push-settings button{width:100%}}.todo-list-heading{margin:2rem 0 .5rem;font:500 1.7rem Cormorant Garamond,Georgia,serif;text-align:left}.todo-item-content{flex:1;min-width:0}.todo-person-checks{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-top:.5rem}.todo-person-checks label{flex:0 1 auto;font-size:.7rem;gap:.4rem}.todo-person-checks input:disabled{opacity:1;cursor:default}.todo-card .calendar-day[aria-pressed=true]{outline:2px solid #65715e;outline-offset:1px}
