@font-face{font-family:Imperial;src:url("assets/imperial.ttf") format("truetype");font-display:swap}
@font-face{font-family:Cormorant;src:url("assets/cormorant.ttf") format("truetype");font-display:swap}
:root{color-scheme:light;--ink:#4a1728;--wine:#5b142a;--dark:#260d17;--gold:#986b30;--bright:#f4d59d;--cream:#fbf2e1;--paper:#fff9ee;--border:#c9a57076;--script:Imperial,"Palatino Linotype",cursive;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5.5rem}body{margin:0;color:var(--ink);background:var(--cream);font:1.12rem/1.5 var(--serif)}body.gate-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid #ae7131;outline-offset:5px}img{display:block;max-width:100%;object-fit:contain}h1,h2,h3,p,dl,dd{margin:0}h1,h2,h3{font-weight:normal}.svg-library{position:absolute;width:0;height:0;overflow:hidden}
.eyebrow,.button,.masthead nav,.open-label,.card-continue,.reveal-button,footer a{font:600 .69rem/1.45 system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase}
.script{font:normal clamp(3rem,7vw,5.3rem)/.99 var(--script);margin:.45rem 0 .9rem}
.wrap{width:min(100% - 2.5rem,66rem);margin-inline:auto}
.masthead{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:.7rem clamp(1rem,5vw,4rem);background:#fff6e9f5;border-bottom:1px solid var(--border);backdrop-filter:blur(10px)}
.brand{font:2.2rem/1 var(--script);text-decoration:none;white-space:nowrap}.brand i,.gate-signature i{color:#b38b53;font-style:normal}
.masthead nav{display:flex;gap:clamp(.75rem,3vw,2rem)}.masthead nav a{text-decoration:none}.masthead nav a:hover{text-decoration:underline;text-underline-offset:.35rem}
.hero{display:grid;place-items:center;padding:clamp(.8rem,3vw,2.25rem) 1rem;background:radial-gradient(ellipse at 50% 28%,#794033,#371021 68%,#250a15)}
.invite-card{width:min(100%,38rem);min-height:clamp(35rem,96vw,42rem);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;padding:3.9rem clamp(2rem,7vw,4rem) 3.6rem;background:#f4e7ce url("assets/patrika-art.webp") center/100% 100% no-repeat;box-shadow:0 23px 60px #13040b90;isolation:isolate}
.ganesh{width:clamp(31px,7vw,47px);height:auto;margin-bottom:.6rem}.invocation{font-size:.57rem;color:var(--gold)}
.save-date{font-size:clamp(2.7rem,8vw,4.1rem);margin:1.1rem 0 .2rem}.intro-line{font-size:1.05rem;color:#674433}
.invite-card h1{font:clamp(3.3rem,9.7vw,6.6rem)/1.02 var(--script);margin:.7rem 0 0}.invite-card h1 span{color:var(--gold);font-size:.65em}
.flourish{color:var(--gold);display:flex;gap:.65rem;align-items:center;font-size:.65rem;margin:.85rem 0 1.35rem}.flourish span{display:block;width:2.2rem;height:1px;background:linear-gradient(90deg,transparent,#ab824e)}.flourish span:last-child{transform:rotate(180deg)}
.date-reveal{position:relative;width:min(100%,16.75rem);min-height:5.75rem;border:1px solid #ad8144;background:#fffbef80;isolation:isolate;border-radius:3px;overflow:hidden}
.date-value{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:5.75rem;line-height:1.15;padding:.65rem .3rem}.date-value span{font:600 .59rem/1.3 system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#725032}.date-value strong{font:normal clamp(1.3rem,4.5vw,1.78rem)/1.1 var(--serif);margin:.27rem 0}
#date-foil{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none;transition:opacity .36s}.date-reveal.revealed #date-foil,.no-js #date-foil{opacity:0;pointer-events:none}
.reveal-button{background:none;border:0;color:#684320;padding:.65rem .5rem;cursor:pointer;text-decoration:underline;text-underline-offset:.2rem;letter-spacing:.08em;font-size:.59rem}
.card-continue{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;margin-top:1rem;font-size:.61rem;letter-spacing:.12em}.card-continue span{font-size:1.1rem}.card-continue:hover{color:var(--gold)}
.blessings,.programme,.patrika{padding-block:clamp(3.8rem,8vw,7rem);text-align:center}.blessings .eyebrow,.programme .eyebrow,.patrika .eyebrow,.venue .eyebrow{color:var(--gold)}.lede{font-size:clamp(1.2rem,3vw,1.55rem);max-width:42rem;margin:0 auto;line-height:1.45}
.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(.75rem,4vw,3rem);align-items:center;max-width:55rem;margin:2.7rem auto 0}.couple-grid h3{font:3rem/.95 var(--script);margin-bottom:.6rem}.couple-grid p{font-size:1.07rem;line-height:1.35}.couple-grid p+p{margin-top:.4rem;color:#694a3f}
.celebrations{position:relative;isolation:isolate;display:grid;place-items:center;text-align:center;min-height:32rem;padding:4rem 1rem;color:#fff1d6;background:#2c1220;overflow:hidden}
.celebration-image{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center 53%;z-index:-2}.celebrations:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#1c070edb,#1c070e4f 65%,#1c070e88),radial-gradient(ellipse,#1c070e4f,transparent 85%)}
.celebration-content{padding:2rem clamp(.9rem,5vw,3rem);border:1px solid #dfbc7980;background:#240d14ab;backdrop-filter:blur(3px);box-shadow:0 10px 50px #17060c64}.celebration-content .script{font-size:clamp(3rem,8vw,5.3rem)}.celebration-content .eyebrow{color:var(--bright)}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:29rem;margin:1.25rem auto .7rem}.countdown div{display:flex;flex-direction:column-reverse;padding:0 clamp(.3rem,2vw,.85rem)}.countdown div+div{border-left:1px solid #f2d6a450}.countdown dt{font:600 .54rem/1.5 system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase}.countdown dd{font-size:clamp(1.8rem,6vw,3rem);line-height:1.1;color:#ffe7b5;font-variant-numeric:tabular-nums}#countdown-caption{font-size:.96rem;color:#f0d9b3}.no-js .countdown,.no-js #countdown-caption{display:none}
.radha,.patrika>img{margin:0 auto 1rem;height:auto}.programme-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;text-align:left;margin:2rem auto 0}
.day{background:var(--paper);border:1px solid var(--border);padding:clamp(1.2rem,4vw,2rem);box-shadow:0 10px 30px #754a2710}.day header{display:flex;gap:1rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--border)}.day header span{font-size:2rem;color:var(--gold)}.day header h3{font:2.9rem/.9 var(--script)}.day header p{font-size:1rem;margin-top:.35rem;color:#6a4b3d}.day dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:.65rem;padding:.68rem 0;border-bottom:1px solid #c9a57043}.day dd{white-space:nowrap;color:#6d4528;font-variant-numeric:tabular-nums}.programme-note{max-width:38rem;margin:1.5rem auto 0;font-style:italic;font-size:1.08rem}
.venue{padding:clamp(2.7rem,7vw,5rem) 0;background:radial-gradient(ellipse at 50% 0%,#75374a,#421325 75%);text-align:center}
.venue-card{background:var(--paper);padding:clamp(1.6rem,6vw,3.5rem) 1.1rem;border:double 5px #b78d53;width:min(100% - 2rem,48rem)}.venue-card .script{font-size:clamp(2.7rem,7.5vw,4.7rem)}.venue-time{color:#775439;margin-bottom:1rem}.venue-card h3{font-size:clamp(1.45rem,4vw,2rem);line-height:1.1}.venue-card address{font-style:normal}
.actions,.contacts{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;align-items:center;margin-top:1.3rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding:.65rem 1rem;gap:.35rem;text-decoration:none;letter-spacing:.09em;border:1px solid #a17b46}.button.primary{background:var(--wine);color:#fff3df;border-color:var(--wine)}.button.primary:hover{background:#771b37}.button.secondary:hover{background:#f0dfc4}.guest-help{margin-top:1.15rem}.contacts{margin-top:.3rem}.contacts a{padding:.35rem .7rem;text-underline-offset:.2rem;white-space:nowrap}.patrika .actions{margin-top:1.4rem}
footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.2rem clamp(1rem,5vw,4rem);background:var(--dark);color:#f9e7c5}footer p span{font-size:.7em;color:var(--bright)}footer a{text-decoration:none;letter-spacing:.1em}
.welcome{inset:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:1rem;overflow:auto;background:radial-gradient(ellipse at 50% 36%,#ad2844 0%,#870e2b 39%,#560d23 80%,#3b081b);color:#ffebbd;text-align:center;isolation:isolate}.welcome[open]{display:grid;place-items:center}.welcome::before{content:"";position:fixed;inset:0;opacity:.16;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}
.gate-frame{position:fixed;inset:clamp(.6rem,2.2vw,1.7rem);border:1px solid #f2cf8e65;pointer-events:none}.corner{width:clamp(4.8rem,15vw,10rem);height:auto;position:absolute;color:#e0b16c}.tl{top:-1px;left:-1px}.tr{top:-1px;right:-1px;transform:scaleX(-1)}.bl{bottom:-1px;left:-1px;transform:scaleY(-1)}.br{bottom:-1px;right:-1px;transform:scale(-1)}
.gate-content{width:min(100%,36rem);padding:2rem .2rem}.gate-eyebrow{color:#f4d5a0}.welcome h2{font:clamp(4rem,11vw,7.7rem)/1 var(--script);margin:.7rem 0 .55rem;text-shadow:0 2px 10px #3b081c70}.gate-signature{font:clamp(1.65rem,4.6vw,2.6rem)/1.05 var(--script);margin-top:1.45rem}
.envelope-button{border:0;background:none;color:inherit;padding:0;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;gap:1.05rem}.envelope-button:focus-visible{outline-color:var(--bright);outline-offset:10px}.envelope{display:block;position:relative;width:clamp(13rem,52vw,22rem);aspect-ratio:1.62;perspective:850px;margin-top:1rem;filter:drop-shadow(0 20px 20px #36051387);transition:transform .35s}.envelope-button:hover .envelope{transform:translateY(-4px)}.env-back,.env-pocket,.env-flap{position:absolute;inset:0;border-radius:3px}
.env-back{background:linear-gradient(145deg,#ab2a40,#610e24);box-shadow:inset 0 0 0 1px #ef897d38;z-index:0}.env-pocket{z-index:3;background:linear-gradient(35deg,#6c1026 0%,#982339 52%,#b33948 100%);clip-path:polygon(0 0,50% 60%,100% 0,100% 100%,0 100%);box-shadow:inset 0 -2px 1px #e6826c3d}.env-pocket::after{content:"";position:absolute;inset:0;background:linear-gradient(147deg,#ffffff15,transparent 60%);clip-path:polygon(0 100%,50% 47%,100% 100%)}.env-flap{z-index:4;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 64%);background:linear-gradient(155deg,#c64753,#8e142e 65%,#690f25);transition:transform .57s cubic-bezier(.3,.75,.35,1),z-index 0s .2s;box-shadow:inset 0 1px #fbb4a64d}
.env-letter{position:absolute;inset:7% 9% 5%;display:grid;align-content:center;gap:.3rem;z-index:1;background:#fff1d5;color:#682239;border:double 4px #ac8549;font:clamp(2rem,7vw,3.6rem)/1 var(--script);box-shadow:0 5px 15px #3a0b1550;transition:transform .65s cubic-bezier(.25,.7,.35,1) .24s}.env-letter small{font:500 .6rem system-ui,sans-serif;letter-spacing:.1em}.env-letter i{color:var(--gold);font-style:normal}
.wax{position:absolute;z-index:5;top:54%;left:50%;transform:translate(-50%,-50%) rotate(-7deg);display:flex;align-items:center;justify-content:center;width:clamp(2.6rem,11vw,4rem);aspect-ratio:1;border-radius:43% 51% 46% 50%;font:clamp(1.05rem,4vw,1.65rem)/1 var(--script);text-shadow:0 1px #5a2c17;color:#5c260f;background:radial-gradient(circle at 37% 25%,#ffdf9b,#dda446 55%,#a65a24 95%);box-shadow:0 4px 7px #350c19bd,inset 0 1px 3px #ffedb3;transition:opacity .2s,transform .3s}.wax:before{content:"";position:absolute;inset:11%;border:1px solid #9f5b2c;border-radius:50%;box-shadow:0 0 0 1px #ffdb8b73}.wax span{font-size:.7em;padding:0 .08em}.open-label{color:#ffdeaa;font-size:.65rem}
.welcome.opening .wax{opacity:0;transform:translate(-50%,-75%) rotate(15deg) scale(.75)}.welcome.opening .env-flap{transform:rotateX(175deg);z-index:0}.welcome.opening .env-letter{transform:translateY(-55%)}.welcome.opening{animation:gate-exit .38s ease .84s both}@keyframes gate-exit{to{opacity:0}}
@media(max-width:600px){.masthead{padding:.6rem .75rem}.masthead nav{gap:.75rem;font-size:.54rem;letter-spacing:.09em}.brand{font-size:1.75rem}.hero{padding:.6rem}.invite-card{padding-top:3.4rem;padding-bottom:3.2rem;min-height:34rem}.invite-card h1{max-width:100%}.couple-grid{grid-template-columns:1fr;gap:1rem}.couple-grid>img{width:46px;height:auto;margin:auto}.programme-grid{grid-template-columns:1fr}.celebrations{min-height:26rem}.celebration-content{width:min(100%,30rem)}.day{padding:1.15rem}.patrika .actions{gap:.4rem}}
@media(max-width:360px){.masthead nav{gap:.52rem}.invite-card{min-height:31rem}.invite-card h1{font-size:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}}
[hidden]{display:none!important}#welcome-title:focus{outline:none}
/* The invitation opens in three beats: seal, flap, then the letter. */
.gate-frame .corner{animation:corner-light 7s ease-in-out infinite alternate}
.gate-frame .corner:nth-child(2),.gate-frame .corner:nth-child(3){animation-delay:-3.3s}
@keyframes corner-light{from{filter:drop-shadow(0 0 1px #ffda8d42)}to{filter:drop-shadow(0 0 8px #ffd497a0)}}
.welcome::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,#f4a56047,transparent 63%);animation:velvet-glow 8s ease-in-out infinite alternate}
@keyframes velvet-glow{from{opacity:.28}to{opacity:.78}}
.envelope-button{position:relative}
.env-back{background:repeating-linear-gradient(108deg,#ffffff07 0 1px,transparent 1px 4px),linear-gradient(145deg,#b9314b,#610e24)}
.env-pocket{background:repeating-linear-gradient(108deg,#ffffff06 0 1px,transparent 1px 4px),linear-gradient(35deg,#6c1026 0%,#982339 52%,#b33948 100%)}
.env-flap{background:repeating-linear-gradient(108deg,#ffffff07 0 1px,transparent 1px 4px),linear-gradient(155deg,#c64753,#8e142e 65%,#690f25);transition:transform .74s cubic-bezier(.25,.7,.24,1) .14s,z-index 0s .41s}
.env-letter{gap:.21rem;justify-items:center;background:radial-gradient(ellipse,#fff9e8,#f0d9af);font-size:clamp(1.3rem,4.5vw,2.5rem);transition:transform .92s cubic-bezier(.22,.85,.27,1) .53s}
.env-letter img{width:clamp(1.55rem,5vw,2.85rem);height:auto;opacity:.86}
.env-letter small{font-size:.57rem;color:#72502b}
.wax::after{content:"";position:absolute;inset:10%;border-radius:50%;pointer-events:none;background:linear-gradient(115deg,transparent 24%,#ffedb971 46%,transparent 61%);background-size:240% 100%;animation:seal-shine 3.9s ease-in-out infinite}
@keyframes seal-shine{0%,44%{background-position:125% 0}78%,100%{background-position:-45% 0}}
.welcome.opening{animation:gate-exit .55s ease 1.66s both}
.welcome.opening .wax{animation:lift-seal .62s cubic-bezier(.22,.76,.24,1) both}
@keyframes lift-seal{
  0%{opacity:1;transform:translate(-50%,-50%) rotate(-7deg) scale(1)}
  20%{opacity:1;transform:translate(-50%,-49%) rotate(-7deg) scale(.91)}
  65%{opacity:.95;transform:translate(-48%,-102%) rotate(18deg) scale(1.13)}
  100%{opacity:0;transform:translate(-43%,-150%) rotate(35deg) scale(.72)}
}
.welcome.opening .env-flap{transform:rotateX(178deg)}
.welcome.opening .env-letter{transform:translateY(-81%) scale(1.04)}
.welcome.opening .open-label{opacity:0;transition:opacity .26s}
.seal-petals{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:visible}
.seal-petals i{position:absolute;left:50%;top:49%;width:var(--petal-size);height:calc(var(--petal-size)*.59);border-radius:70% 20% 70% 20%;background:var(--petal-colour);opacity:0}
.welcome.opening .seal-petals i{animation:seal-petal 1.42s cubic-bezier(.12,.64,.35,1) var(--delay) both}
@keyframes seal-petal{
  0%{opacity:0;transform:translate(0,0) rotate(0) scale(.5)}
  14%{opacity:.92}
  65%{opacity:.85;transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(1)}
  100%{opacity:0;transform:translate(calc(var(--dx)*1.22),calc(var(--dy) + 28px)) rotate(calc(var(--spin) + 80deg)) scale(.75)}
}
.invitation-opened .invite-card{animation:arrive-card .9s cubic-bezier(.22,.7,.26,1) both}
@keyframes arrive-card{from{opacity:.25;transform:translateY(23px) scale(.969)}to{opacity:1;transform:translateY(0) scale(1)}}
.invitation-opened .invite-card h1{animation:arrive-names .8s ease .16s both}
@keyframes arrive-names{from{opacity:.25;transform:translateY(9px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.date-reveal.revealed .date-value{animation:date-bloom .66s cubic-bezier(.23,.82,.27,1) both}
@keyframes date-bloom{from{opacity:.45;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.date-reveal:not(.revealed)::after{content:"";position:absolute;inset:1px;pointer-events:none;background:linear-gradient(120deg,transparent 26%,#fff0b962 48%,transparent 63%);background-size:230% 100%;animation:seal-shine 4.8s ease-in-out infinite}
.no-js .date-reveal::after{display:none}
.reading-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;transform:scaleX(var(--reading,0));transform-origin:left;background:linear-gradient(90deg,#742239,#d1a35a);pointer-events:none}
.will-reveal{opacity:0;transform:translateY(19px);transition:opacity .74s ease,transform .74s cubic-bezier(.22,.65,.27,1);transition-delay:var(--reveal-delay,0ms)}
.will-reveal.in-view,.will-reveal:focus-within{opacity:1;transform:translateY(0)}
.day.in-view dl>div{animation:arrive-row .61s ease both;animation-delay:calc(100ms + var(--row-index,0)*78ms)}
@keyframes arrive-row{from{opacity:.18;transform:translateX(-9px)}to{opacity:1;transform:translateX(0)}}
.celebrations .celebration-image{transform:scale(1.04);transition:transform 4s cubic-bezier(.17,.7,.26,1)}
.celebrations.in-view .celebration-image{transform:scale(1.005)}
.footer-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.footer-actions button{border:0;background:none;color:inherit;cursor:pointer;padding:.3rem 0;font:600 .69rem/1.45 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.footer-actions button:hover,.footer-actions a:hover{text-decoration:underline;text-underline-offset:.2rem}
@media(prefers-reduced-motion:reduce){.will-reveal{opacity:1!important;transform:none!important}.seal-petals{display:none}.reading-progress{display:none}}
/* Gold-leaf date reveal and music controls. */
.masthead nav{margin-left:auto;margin-right:clamp(.6rem,2vw,1.4rem)}
.music-toggle{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;padding:.38rem .65rem;border:1px solid #be945d88;border-radius:99px;color:var(--ink);background:#fff9ec;cursor:pointer;font:600 .6rem/1.2 system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.music-toggle[aria-pressed=true]{background:#f1e1c5;border-color:#ad8248}.music-toggle[aria-pressed=true] svg{animation:music-pulse 2.5s ease-in-out infinite}
@keyframes music-pulse{50%{transform:rotate(-10deg) scale(1.12);color:#936333}}
.date-stage{position:relative;width:min(100%,16.75rem)}.date-stage .date-reveal{width:100%}
.date-sparkles{position:absolute;inset:0;pointer-events:none}.date-sparkles i{position:absolute;left:50%;top:48%;color:#ac772e;opacity:0;font-style:normal;text-shadow:0 0 9px #f0c575}
.date-sparkles i:nth-child(1){--x:-110px;--y:-61px;--delay:35ms}.date-sparkles i:nth-child(2){--x:102px;--y:-52px;--delay:100ms}.date-sparkles i:nth-child(3){--x:-125px;--y:38px;--delay:150ms}.date-sparkles i:nth-child(4){--x:122px;--y:45px;--delay:50ms}.date-sparkles i:nth-child(5){--x:-59px;--y:-73px;--delay:95ms}.date-sparkles i:nth-child(6){--x:68px;--y:61px;--delay:135ms}
.date-opened .date-sparkles i{animation:date-sparkle 1.1s ease-out var(--delay) both}
@keyframes date-sparkle{0%{opacity:0;transform:translate(0,0) scale(.45)}29%{opacity:1}62%{opacity:.8;transform:translate(var(--x),var(--y)) scale(1.13)}100%{opacity:0;transform:translate(calc(var(--x)*1.1),calc(var(--y)*1.1)) scale(.65)}}
.countdown-reveal{display:grid;grid-template-rows:0fr;opacity:0;width:min(100%,24rem);transition:grid-template-rows .76s cubic-bezier(.22,.72,.22,1),opacity .55s ease .12s}
.countdown-reveal.countdown-opened{grid-template-rows:1fr;opacity:1}.countdown-inner{min-height:0;overflow:hidden}
.countdown-panel{margin:1rem .2rem .1rem;padding:.65rem .45rem .5rem;background:#fffbf0bc;border:1px solid #bf995a77;box-shadow:0 6px 16px #9e682219}
.countdown-panel .countdown{margin:.03rem auto .38rem}.countdown-panel .countdown dd{color:#75253e;font-size:clamp(1.5rem,5vw,2.45rem)}.countdown-panel .countdown div+div{border-color:#b68b4759}.countdown-panel .countdown dt{color:#6f492a;font-size:.5rem;letter-spacing:.1em}
.countdown-panel #countdown-caption{color:#725032;font-size:.91rem}
.countdown-opened .countdown div{animation:countdown-arrival .7s cubic-bezier(.21,.72,.25,1) both}
.countdown-opened .countdown div:nth-child(2){animation-delay:95ms}.countdown-opened .countdown div:nth-child(3){animation-delay:175ms}.countdown-opened .countdown div:nth-child(4){animation-delay:255ms}
@keyframes countdown-arrival{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}
.celebration-link{display:inline-flex;gap:.45rem;align-items:center;color:#ffedc7;text-decoration:none;border-bottom:1px solid #e6c281a0;padding:.35rem 0;font:600 .66rem/1.35 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.celebration-link:hover{border-color:#ffe6a7}.celebration-link span{font-size:1rem}
@media(max-width:600px){.music-toggle span{display:none}.music-toggle{padding:.32rem;min-width:1.95rem;justify-content:center}.masthead nav{margin-right:.45rem}.masthead nav a{letter-spacing:.055em}}
@media(prefers-reduced-motion:reduce){.date-sparkles{display:none}}
