@font-face{font-family:InvitationScript;src:url('/fonts/script.ttf') format('truetype');font-display:swap}
@font-face{font-family:InvitationSerif;src:url('/fonts/serif.ttf') format('truetype');font-display:swap}
@font-face{font-family:InvitationSans;src:url('/fonts/sans.ttf') format('truetype');font-display:swap}
@font-face{font-family:InvitationTamil;src:url('/fonts/tamil.ttf') format('truetype');font-display:swap}
:root{--ivory:#f8f6ee;--paper:#efece0;--green:#203f34;--sage:#97a28a;--gold:#b8995f;--muted:#737a6c;--line:#d5d3c4;--serif:InvitationSerif,Georgia,serif;--sans:InvitationSans,Arial,sans-serif;--script:InvitationScript,cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--green);background:var(--ivory);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.invitation-closed{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}button:disabled{cursor:wait}h1,h2,p,figure{margin:0}h2{font-weight:400}button{color:inherit}::selection{background:#d9decf}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.botanical{width:220px;height:430px;color:var(--green);pointer-events:none}.small-label{font-size:11px;letter-spacing:3px;font-weight:400;line-height:1.7}.heading-rule{display:block;width:115px;height:1px;background:var(--gold);margin:22px auto}.section-padding{padding:95px max(7vw,24px)}
/* A tactile envelope, built as layered paper rather than a loading screen. */
.opening{position:fixed;inset:0;z-index:20;background:radial-gradient(ellipse at 45% 42%,#fffef8 0%,#f5f2e8 58%,#e9e7da 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;overflow:hidden;isolation:isolate;transition:opacity 1s ease,visibility 1s;visibility:visible}
.opening-grain,.hero:before{position:absolute;inset:0;pointer-events:none;opacity:.035;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.65' d='M0 0h180v180H0z'/%3E%3C/svg%3E");z-index:-1}.opening-leaf{position:absolute;opacity:.72;filter:drop-shadow(5px 9px 5px #18392913)}.leaf-top{right:-28px;top:-125px;width:260px;height:495px;transform:rotate(150deg);animation:topSway 9s ease-in-out infinite}.leaf-bottom{left:-45px;bottom:-147px;width:265px;height:530px;transform:rotate(-16deg);animation:bottomSway 10s ease-in-out infinite}.opening-meta{position:absolute;top:34px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2.3px;color:#778170}.opening-intro{text-align:center;z-index:2}.opening-intro .small-label{color:#7a806f;letter-spacing:4px}.opening h1{font-family:InvitationTamil,serif;font-size:clamp(22px,3vw,34px);font-weight:400;margin-top:13px;line-height:1.8}.envelope-stage{width:min(560px,75vw);aspect-ratio:1.45;position:relative;margin:55px 0 40px;perspective:1400px;animation:envelopeFloat 6s ease-in-out infinite}.envelope{position:absolute;inset:0;transform-style:preserve-3d;transition:transform 1.6s cubic-bezier(.2,.65,.2,1)}.envelope-back{position:absolute;inset:0;background:#aab59c;border-radius:4px;box-shadow:0 21px 60px #344e3820,0 1px 3px #29412d20;background-image:linear-gradient(160deg,#b6c0a9,#9ca98d)}.invitation-slip{position:absolute;left:7%;right:7%;bottom:6%;height:86%;background:#fcfaf2;border:1px solid #d9d4c1;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:15px;box-shadow:0 0 8px #283e2410;transition:transform 1.8s cubic-bezier(.25,.6,.15,1);z-index:2}.slip-script{font-family:var(--script);font-size:clamp(27px,5vw,48px);white-space:nowrap}.slip-script i{font-family:var(--serif);font-size:.65em;color:var(--gold);padding:0 10px}.slip-line{height:1px;width:80px;margin:21px 0;background:var(--gold)}.slip-date{font-size:8px;letter-spacing:2px}.envelope-left,.envelope-right,.envelope-bottom,.envelope-flap{position:absolute;inset:0}.envelope-left{background:linear-gradient(80deg,#b6c1a8,#aeb99f);clip-path:polygon(0 0,53% 52%,0 100%);z-index:4}.envelope-right{background:linear-gradient(-80deg,#bbc5ad,#a5b195);clip-path:polygon(100% 0,47% 52%,100% 100%);z-index:4}.envelope-bottom{background:linear-gradient(0deg,#bfc8b2,#b0bca0);clip-path:polygon(0 100%,50% 42%,100% 100%);z-index:5;border-radius:0 0 4px 4px}.envelope-flap{background:linear-gradient(0deg,#a3b18f,#c5ceba);clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:50% 0;z-index:6;filter:drop-shadow(0 3px 2px #29412915);backface-visibility:hidden;transition:transform 1.3s cubic-bezier(.4,.1,.15,1),filter .8s}.wax-seal{position:absolute;z-index:7;left:50%;top:53%;width:76px;height:76px;background:radial-gradient(circle at 30% 20%,#b0955b,#9b7c45 60%,#b49964);border-radius:47% 50% 48% 46%;border:3px solid #a18650;box-shadow:0 4px 7px #25352721,inset 0 0 0 2px #c9b47e;transform:translate(-50%,-50%) rotate(-7deg);display:flex;align-items:center;justify-content:center;transition:opacity .45s,transform .6s}.wax-seal>span{font-family:var(--serif);font-size:22px;letter-spacing:-4px;color:#f1e5bc;text-shadow:0 1px #6e5a36}.seal-amp{font-family:var(--script);font-size:18px;padding:0 3px}.seal-sprig{position:absolute;bottom:7px;width:19px;height:35px;opacity:.23;color:#f2dfad;right:9px;transform:rotate(35deg)}.envelope-shadow{position:absolute;z-index:-1;left:12%;right:12%;bottom:-21px;height:20px;background:#4f634917;filter:blur(12px);border-radius:50%}.opening-footer{text-align:center;z-index:2}.opening-names{font-family:var(--serif);font-size:16px;line-height:2}.opening-names span{color:var(--gold);margin:0 9px}.open-button{margin:20px auto 0;background:var(--green);color:#f8f6ee;border:1px solid var(--green);padding:15px 27px;display:flex;align-items:center;gap:33px;border-radius:2px;font-size:12px;letter-spacing:1px;transition:background .25s,transform .25s;box-shadow:0 5px 15px #203f3412}.open-button:hover{background:#315342;transform:translateY(-2px)}.open-button .icon{width:19px;height:19px}.opening-hint{font-size:9px;letter-spacing:1.5px;color:var(--muted);margin-top:14px}.gold-spark{position:absolute;width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg);opacity:.5;animation:sparkle 3s ease-in-out infinite}.spark-one{right:-30px;top:13%}.spark-two{left:-23px;bottom:20%;width:5px;height:5px;animation-delay:1s}.spark-three{right:20%;top:-25px;width:4px;height:4px;animation-delay:2s}.opening.is-opening .envelope-stage{animation:none}.opening.is-opening .wax-seal{opacity:0;transform:translate(-50%,-50%) rotate(18deg) scale(1.3)}.opening.is-opening .envelope-flap{transform:rotateX(178deg);filter:none}.opening.is-opening .invitation-slip{transform:translateY(-47%);transition-delay:.65s}.opening.is-opening .opening-footer,.opening.is-opening .opening-intro{opacity:0;transform:translateY(12px);transition:opacity .7s,transform 1s}.opening.is-opening .envelope{transform:translateY(65px) scale(.97)}.opening.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.opening[hidden]{display:none}
/* Invitation */
main{visibility:hidden;opacity:0;transition:opacity 1s;background:var(--ivory)}body.invitation-open main{visibility:visible;opacity:1}.site-header{position:relative;z-index:3;max-width:1440px;padding:27px 6vw;display:flex;align-items:center;justify-content:space-between;margin:auto;border-bottom:1px solid #d6d8cd70;gap:20px}.wordmark{font-family:var(--serif);font-size:28px;letter-spacing:-4px}.wordmark span{font-family:var(--script);color:var(--gold);font-size:24px;padding:0 7px}nav{display:flex;gap:34px;font-size:11px;letter-spacing:.6px}nav a{color:#596857;transition:color .2s}nav a:hover{color:var(--gold)}.icon-button{background:transparent;border:0;display:flex;align-items:center;gap:8px;font-size:10px;color:#65725e}.icon-button .icon{width:18px;height:18px}.icon-button[aria-pressed=true]{color:var(--green)}.hero{max-width:1440px;margin:auto;padding:47px 6vw 30px;position:relative;overflow:hidden;isolation:isolate}.hero:before{content:'';z-index:-1}.hero-leaf{position:absolute;right:-65px;top:-147px;transform:rotate(164deg);width:170px;height:360px;color:#70815c;opacity:.6}.hero-heading{text-align:center}.hero-heading h2{font-family:InvitationTamil,serif;font-size:clamp(25px,2.8vw,40px);margin-top:15px;line-height:1.9}.hero-heading .small-label{font-size:9px;letter-spacing:4px}.hero-heading .heading-rule{margin:15px auto 36px}.hero-composition{display:flex;align-items:center;gap:6%;max-width:1160px;margin:auto;position:relative}.couple-figure{position:relative;width:55%;flex-shrink:0;transform:translateY(24px);opacity:0;transition:opacity 1.5s ease,transform 1.5s ease}.photo-brush{width:100%;position:relative;padding:10px;background:#9ba58b26;transform:rotate(-1.8deg);clip-path:inset(0 100% 0 0);transition:clip-path 2.3s cubic-bezier(.3,.7,.1,1);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 700 520'%3E%3Cpath fill='white' d='M18 23 142 12 137 20 466 7 451 15 647 9 636 23 688 18 681 51 696 89 687 105 699 136 690 159 697 183 682 231 694 277 681 298 696 330 680 381 690 402 677 423 692 451 669 464 673 496 624 490 630 506 498 497 501 510 309 503 308 518 188 507 179 514 77 503 80 514 22 498 30 474 8 449 18 422 6 390 15 361 4 328 18 284 8 265 20 232 4 192 16 161 6 142 22 101 10 87 22 54 13 41Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 700 520'%3E%3Cpath fill='white' d='M18 23 142 12 137 20 466 7 451 15 647 9 636 23 688 18 681 51 696 89 687 105 699 136 690 159 697 183 682 231 694 277 681 298 696 330 680 381 690 402 677 423 692 451 669 464 673 496 624 490 630 506 498 497 501 510 309 503 308 518 188 507 179 514 77 503 80 514 22 498 30 474 8 449 18 422 6 390 15 361 4 328 18 284 8 265 20 232 4 192 16 161 6 142 22 101 10 87 22 54 13 41Z'/%3E%3C/svg%3E");mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}.photo-brush img{display:block;width:100%;height:auto;transform:scale(1.06);transition:transform 3.4s ease}.portrait-outline{position:absolute;inset:-4% 4% 6% -1%;border:1px solid #b999615e;transform:rotate(2deg)}.photo-caption{text-align:center;font-family:var(--serif);font-size:13px;position:relative;margin:22px 0 0;color:#647257}.photo-leaf{position:absolute;right:-33px;bottom:7px;width:90px;height:190px;transform:rotate(23deg);color:#64754a;opacity:.85}.couple-names{width:39%;text-align:center;position:relative}.name-label{font-size:9px;letter-spacing:2.7px;color:#66755c}.script-name{font-family:var(--script);font-size:clamp(45px,5.7vw,86px);line-height:1.3;white-space:nowrap;margin-top:9px}.bride-name{font-size:clamp(44px,5.5vw,82px)}.ampersand{display:flex;justify-content:center;align-items:center;gap:21px;margin:5px 0 15px}.ampersand i{font-family:var(--serif);color:var(--gold);font-style:italic;font-size:47px;line-height:1.4}.ampersand span{height:1px;width:53px;background:#b8995f90}.hero-date{font-family:var(--serif);font-size:17px;margin-top:35px}.hero-location{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-top:9px}.invitation-message{max-width:720px;margin:58px auto 0;text-align:center;font-family:var(--serif);font-size:20px;line-height:1.8}.message-names{font-size:23px;margin-top:17px}.scroll-cue{display:flex;align-items:center;flex-direction:column;margin:35px auto 0;gap:13px;font-size:8px;letter-spacing:3px;color:var(--muted)}.scroll-line{height:36px;width:1px;background:linear-gradient(var(--gold),transparent)}.sequence-item{opacity:0;transform:translateY(20px);transition:opacity 1.4s ease,transform 1.4s ease}body.photo-revealed .couple-figure{opacity:1;transform:translateY(0)}body.photo-revealed .photo-brush{clip-path:inset(0 0 0 0)}body.photo-revealed .photo-brush img{transform:scale(1)}body.content-revealed .sequence-item{opacity:1;transform:none}.hero-heading{transition-delay:0s}.couple-names{transition-delay:.25s}.invitation-message{transition-delay:.6s}.scroll-cue{transition-delay:.85s}.reveal{opacity:0;transform:translateY(30px);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.2,.65,.2,1)}.reveal.is-visible{opacity:1;transform:none}.section-intro{text-align:center;margin-bottom:53px}.section-intro h2{font-family:var(--serif);font-size:clamp(36px,4vw,54px);margin-top:8px;line-height:1.25}.section-intro .heading-rule{margin:20px auto 0}.celebrations{background:#edeFE5;position:relative;overflow:hidden}.event-layout{max-width:1020px;margin:auto;display:flex;gap:32px;align-items:flex-start}.event-card{position:relative;border:1px solid #aeb49e;border-radius:110px 110px 12px 12px;padding:47px 48px 40px;width:50%;overflow:hidden;background:#f8f7efcc;isolation:isolate}.marriage-card{margin-top:52px;background:#f4f2e7;transition-delay:.15s}.event-top{display:flex;align-items:center;gap:17px}.event-icon{width:47px;height:47px;border-radius:50%;background:var(--green);color:var(--ivory);display:grid;place-items:center}.event-icon .icon{width:24px;height:24px}.event-top .small-label{font-size:10px;letter-spacing:2.4px}.event-number{font-family:var(--serif);font-size:28px;color:#c4c7b7;margin-left:auto}.event-date{display:flex;align-items:center;gap:20px;margin:25px 0 8px}.big-day{font-family:var(--serif);font-size:103px;line-height:1.2;letter-spacing:-7px}.event-date>div{display:flex;flex-direction:column;font-family:var(--serif);font-size:24px;gap:3px}.event-date>div>span:last-child{font-size:17px;color:var(--muted)}.event-weekday{font-size:11px;color:#697460;line-height:1.7}.event-time{display:flex;gap:11px;align-items:center;margin:24px 0 30px;font-size:15px}.event-time .icon{width:19px;height:19px}.text-button{padding:0;border:0;background:transparent;display:inline-flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.3px;transition:color .2s}.text-button:hover{color:var(--gold)}.text-button .icon{width:18px;height:18px}.calendar-button{border-top:1px solid #d6d8c9;padding-top:21px;justify-content:space-between;width:100%}.event-leaf{position:absolute;right:-47px;bottom:43px;width:90px;height:190px;transform:rotate(-30deg);color:#ced4c1;opacity:.36;z-index:-1}.venue{display:flex;gap:10%;max-width:1220px;margin:auto;align-items:center;padding-top:110px;padding-bottom:115px}.venue-art{position:relative;width:38%;height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate;flex-shrink:0}.arch-outline{position:absolute;inset:0;border:1px solid #b89b6270;border-radius:180px 180px 0 0;background:linear-gradient(170deg,#e0e5d12e,#dce3d329);z-index:-1}.venue-art-mark{font-family:var(--script);font-size:112px;letter-spacing:-6px;line-height:1.4}.venue-art-mark span{font-family:var(--serif);font-size:55px;color:var(--gold);padding:0 8px;font-style:italic}.venue-art-date{font-size:8px;letter-spacing:2px;color:#899078;margin-top:17px}.venue-sprig-one{position:absolute;left:-42px;bottom:-24px;width:113px;height:265px;transform:rotate(-22deg);color:#6c8055;opacity:.75}.venue-sprig-two{position:absolute;right:-14px;top:-34px;width:100px;height:240px;transform:rotate(153deg);color:#9ba786;opacity:.65}.venue-content{max-width:580px}.venue-content h2{font-family:var(--serif);font-size:clamp(31px,3.5vw,46px);line-height:1.35;margin:19px 0 26px;letter-spacing:-1px}.venue-address{display:flex;gap:14px;font-size:14px;line-height:1.9;color:#707866}.venue-address .icon{margin-top:4px;width:20px;height:20px}.outline-button{display:inline-flex;align-items:center;gap:33px;border:1px solid #a1ae97;padding:15px 23px;margin-top:30px;font-size:11px;transition:background .25s,color .25s}.outline-button:hover{background:var(--green);color:var(--ivory)}.outline-button .icon{width:20px;height:20px}.closing{position:relative;overflow:hidden;background:var(--green);color:var(--ivory);padding-top:87px;padding-bottom:43px}.closing-inner{text-align:center;max-width:760px;margin:auto;position:relative}.closing-leaf{position:absolute;left:-55px;bottom:-175px;color:#8da17b;opacity:.19;transform:rotate(-23deg);width:300px;height:580px}.closing-flourish{display:flex;align-items:center;justify-content:center;gap:21px;color:#c9b889;margin-bottom:33px}.closing-flourish span{height:1px;width:70px;background:#c9b88970}.closing-flourish .icon{width:17px;height:17px}.closing-message{font-family:var(--serif);font-size:clamp(25px,3vw,35px);line-height:1.6}.regards{font-size:12px;color:#c6cfbb;margin-top:37px}.families{font-family:var(--serif);font-size:21px;margin-top:12px}.footer-actions{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:45px}.footer-actions .text-button{font-size:10px;color:#d4dccb}.footer-actions .text-button:hover{color:#dac397}.footer-date{display:block;margin-top:54px;font-size:8px;letter-spacing:2.7px;color:#a0b194}.status-toast{position:fixed;z-index:50;bottom:26px;left:50%;transform:translate(-50%,15px);background:var(--green);color:var(--ivory);border:1px solid #c4b180;padding:13px 22px;border-radius:4px;font-size:12px;opacity:0;transition:.3s;pointer-events:none;max-width:90vw;text-align:center}.status-toast.is-visible{opacity:1;transform:translate(-50%,0)}.noscript-note{text-align:center;background:var(--green);color:white;padding:14px;font-size:12px}
@keyframes envelopeFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(0deg)}}
@keyframes topSway{0%,100%{transform:rotate(150deg)}50%{transform:rotate(155deg)}}
@keyframes bottomSway{0%,100%{transform:rotate(-16deg)}50%{transform:rotate(-12deg)}}
@keyframes sparkle{0%,100%{opacity:.25;transform:rotate(45deg) scale(.8)}50%{opacity:.7;transform:rotate(45deg) scale(1.2)}}
@media(min-width:1500px){.opening h1{font-size:38px}.hero{padding-top:55px}.hero-composition{margin-top:10px}}
@media(max-width:900px){.hero-composition{gap:4%}.couple-figure{width:54%}.couple-names{width:42%}.script-name{font-size:6vw}.bride-name{font-size:5.8vw}.hero-date{font-size:15px;margin-top:24px}.event-card{padding:39px 28px 31px;border-radius:83px 83px 12px 12px}.event-layout{gap:22px}.event-date>div{font-size:20px}.big-day{font-size:90px}.venue{gap:9%}.venue-art{height:310px;width:37%}.venue-art-mark{font-size:93px}.venue-art-mark span{font-size:43px}.venue-content h2{font-size:34px}}
@media(max-width:620px){.opening-meta{top:23px;left:6%;right:6%;font-size:7px;letter-spacing:1.2px}.opening-intro{margin-top:10px}.opening-intro .small-label{font-size:8px;letter-spacing:3px}.opening h1{font-size:22px;margin-top:16px}.envelope-stage{width:82vw;margin:54px 0 41px;max-width:440px}.wax-seal{width:60px;height:60px}.wax-seal>span{font-size:19px}.slip-script{font-size:31px}.opening-names{font-size:12px;max-width:290px;margin:auto;line-height:1.9}.opening-names span{margin:0 5px}.open-button{font-size:11px;padding:14px 23px;gap:27px}.opening-hint{font-size:8px}.leaf-top{right:-86px;top:-150px;width:225px;opacity:.5}.leaf-bottom{left:-82px;bottom:-218px;width:238px;opacity:.55}.site-header{padding:20px 6vw;gap:14px}.wordmark{font-size:25px}nav{gap:17px;font-size:9px}.icon-button .music-label{display:none}.hero{padding:37px 5vw 31px}.hero-heading h2{font-size:24px}.hero-heading .small-label{font-size:8px;letter-spacing:3px}.hero-heading .heading-rule{margin:12px auto 32px}.hero-leaf{opacity:.25;right:-90px;top:-155px}.hero-composition{flex-direction:column;gap:0}.couple-figure{width:92%;max-width:520px}.photo-caption{font-size:10px;margin-top:15px}.photo-leaf{right:-15px;bottom:-15px;width:61px;height:137px}.portrait-outline{inset:-3% 3% 7% 0}.couple-names{width:100%;margin-top:34px}.script-name{font-size:clamp(48px,12vw,68px);line-height:1.2;margin-top:8px}.bride-name{font-size:clamp(47px,11.5vw,66px)}.name-label{font-size:8px;letter-spacing:2.3px}.ampersand{margin:2px 0 7px;gap:17px}.ampersand i{font-size:33px}.ampersand span{width:38px}.hero-date{font-size:15px;margin-top:25px}.hero-location{font-size:8px}.invitation-message{font-size:17px;line-height:1.8;margin-top:34px;max-width:440px;padding:0 9px}.message-names{font-size:19px;line-height:1.65;margin-top:15px}.scroll-cue{font-size:7px;margin-top:28px}.section-padding{padding:65px 7vw}.section-intro{margin-bottom:36px}.section-intro .small-label{font-size:8px;letter-spacing:2.4px}.section-intro h2{font-size:36px}.event-layout{flex-direction:column;gap:23px}.event-card{width:100%;max-width:430px;margin:auto;padding:36px 30px 30px;border-radius:85px 85px 10px 10px}.marriage-card{margin-top:0}.event-date{margin:22px 0 4px;gap:24px}.big-day{font-size:99px}.event-date>div{font-size:25px}.event-date>div>span:last-child{font-size:17px}.event-time{font-size:15px;margin:21px 0 24px}.event-weekday{font-size:10px}.event-top .small-label{font-size:10px}.venue{flex-direction:column;gap:42px;padding-top:74px;padding-bottom:70px}.venue-art{width:65%;height:260px;max-width:280px}.venue-art-mark{font-size:94px}.venue-art-mark span{font-size:45px}.venue-art-date{font-size:6px;letter-spacing:1.7px}.venue-sprig-one{width:84px;height:200px;left:-30px}.venue-sprig-two{width:77px;height:180px;right:-12px}.venue-content{text-align:center}.venue-content .small-label{font-size:10px}.venue-content h2{font-size:31px;line-height:1.35;margin:13px 0 22px}.venue-address{justify-content:center;text-align:left;font-size:13px}.outline-button{font-size:10px;padding:14px 20px;margin-top:24px;gap:20px}.closing{padding-top:61px;padding-bottom:34px}.closing-message{font-size:25px;line-height:1.65}.families{font-size:18px;line-height:1.6}.regards{margin-top:28px;font-size:11px}.footer-actions{gap:23px;margin-top:32px;flex-wrap:wrap}.footer-actions .text-button{font-size:9px;gap:7px}.footer-actions .icon{width:15px;height:15px}.footer-date{font-size:6px;letter-spacing:1.8px;margin-top:42px}.closing-leaf{width:200px;left:-95px;bottom:-150px}}
@media(max-height:700px) and (min-width:621px){.opening-intro{margin-top:5px}.envelope-stage{width:390px;margin:30px 0 24px}.opening-names{font-size:13px}.opening h1{font-size:25px}.open-button{padding:11px 22px;margin-top:12px}.wax-seal{width:60px;height:60px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}.reveal{opacity:1;transform:none}.photo-brush img{transform:none}.opening.is-opening .invitation-slip{transition-delay:0s}.gold-spark{display:none}}

/* Calendar confirmation preserves the invitation palette and uses native modal focus. */
.calendar-dialog{border:1px solid #b8995f80;border-radius:18px;padding:0;background:var(--ivory);color:var(--green);width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 24px 80px #203f3433;}
.calendar-dialog::backdrop{background:#15291fcc;backdrop-filter:blur(5px)}
.calendar-dialog-body{padding:32px;position:relative}
.calendar-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:29px;line-height:1;width:35px;height:35px;color:var(--muted);border-radius:50%}
.calendar-close:hover{background:#e8eadd;color:var(--green)}
.calendar-dialog .small-label{font-size:9px;letter-spacing:2.7px}
.calendar-dialog h2{font-family:var(--serif);font-size:32px;margin:10px 0 21px}
.calendar-summary{padding:20px;background:#e9ede0;border:1px solid #c8d0bc;border-radius:10px;line-height:1.7;font-size:13px}
.calendar-event-label{font-size:10px;font-weight:bold;letter-spacing:2px;margin-bottom:8px}
.calendar-event-names{font-family:var(--serif);font-size:18px;line-height:1.6;margin-bottom:11px}
.calendar-timezone{font-size:10px;color:#67725c;margin-top:4px}
.calendar-event-venue{font-size:11px;border-top:1px solid #c8d0bc;padding-top:12px;margin-top:13px;color:#52624d}
.calendar-instructions{font-size:12px;line-height:1.8;margin:19px 0;color:#65715c}
.calendar-provider{display:flex;justify-content:space-between;align-items:center;gap:13px;width:100%;padding:14px 16px;border:1px solid #a9b69e;background:transparent;color:var(--green);font-size:11px;line-height:1.5;border-radius:5px;margin-top:10px;text-align:left;transition:background .2s}
.calendar-provider:hover{background:#e5e9dc}
.calendar-provider .icon{width:18px;height:18px}
.calendar-primary{background:var(--green);border-color:var(--green);color:var(--ivory)}
.calendar-primary:hover{background:#315342}
.calendar-provider-note{font-size:10px;line-height:1.8;color:var(--muted);margin-top:15px}
@media(max-width:420px){.calendar-dialog-body{padding:27px 22px}.calendar-dialog h2{font-size:29px}.calendar-summary{padding:16px}.calendar-provider{font-size:10px;padding:13px 12px}}

/* Maker credit stays visually separate from the wedding family's signoff. */
.maker-credit{border-top:1px solid #c9b88935;margin-top:29px;padding-top:24px;color:#c6cfbb;font-size:11px;line-height:1.8}
.maker-credit strong{color:#e3d5ad;font-weight:400}
.maker-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-top:7px;font-size:10px}
.maker-contact a{padding:5px 0;overflow-wrap:anywhere;transition:color .2s}
.maker-contact a:hover{color:#e3d5ad;text-decoration:underline;text-underline-offset:4px}
@media(max-width:620px){.maker-credit{font-size:10px;margin-top:25px;padding-top:20px}.maker-contact{flex-direction:column;align-items:center;gap:1px;font-size:9px}.maker-contact a{max-width:100%}}

/* Supplied soundtrack: explicit tap-to-play, visible on desktop and mobile. */
.opening-music-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #a8b399;background:#f8f6eeaa;border-radius:24px;padding:9px 15px;margin-top:17px;font-size:10px;color:var(--green);min-height:40px}
.opening-music-button .icon{width:17px;height:17px}
.music-control[aria-pressed=true]{color:var(--green)}
.floating-music-button{position:fixed;right:max(19px,env(safe-area-inset-right));bottom:max(19px,env(safe-area-inset-bottom));z-index:8;display:flex;align-items:center;gap:12px;padding:12px 17px;border:1px solid #c6b07c;border-radius:40px;background:var(--green);color:var(--ivory);box-shadow:0 5px 25px #203f3433;transition:background .2s,transform .2s}
.floating-music-button:hover{background:#315342;transform:translateY(-2px)}
.floating-music-button[aria-pressed=true]{color:var(--ivory);border-color:#d8c695}
.floating-music-button .icon{width:20px;height:20px}
.floating-music-copy{display:flex;flex-direction:column;text-align:left;gap:3px}
.floating-song-name{font-family:var(--serif);font-size:15px;line-height:1.2}
.floating-music-copy .music-label{font-size:8px;letter-spacing:.4px;color:#d4dccb}
.music-control:disabled{opacity:.65}
.closing{padding-bottom:105px}
@media(max-width:620px){.site-header .music-label{display:inline;font-size:8px;max-width:60px;line-height:1.5}.site-header .music-control{gap:5px;min-height:36px}.site-header{gap:10px}.floating-music-button{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));padding:10px 14px;gap:9px}.floating-song-name{font-size:13px}.floating-music-copy .music-label{font-size:7px}.floating-music-button .icon{width:18px;height:18px}.opening-music-button{margin-top:14px;font-size:9px}.closing{padding-bottom:96px}}
@media(max-height:760px) and (max-width:620px){.envelope-stage{margin-top:32px;margin-bottom:27px}.opening-music-button{margin-top:9px;padding:6px 13px;min-height:34px}}
