:root{--ivory: #fbf6ef;--green: #1f3d2b;--gold: #a8873a;--ink: #3b2f2f;--line: #e6d9bf;--surface: #ffffff;--surface-2: #faf7f1;--muted: #7a6d63;--panel-rgb: 251, 246, 239;--rim-rgb: 255, 255, 255;--rim-alpha: .55;--on-green: #ffffff;--green-hover: #2c5640;--error: #a13030;--h-en: "Cormorant Garamond";--b-en: "Lato";--h-ml: "Anek Malayalam";--b-ml: "Manjari";--l-en: "Lato";--l-ml: "Manjari";--font-heading: var(--h-en), var(--h-ml), serif;--font-body: var(--b-en), var(--b-ml), sans-serif;--font-link: var(--l-en), var(--l-ml), sans-serif;color:var(--ink);background:var(--ivory);font-family:var(--font-body);line-height:1.7;font-variant-numeric:lining-nums;--font-digits: "Lora";--digit-variant: lining-nums tabular-nums}.num{font-family:var(--font-digits),var(--font-heading);font-variant-numeric:var(--digit-variant)}*{box-sizing:border-box}body{margin:0}h1,h2,h3{font-family:var(--font-heading);color:var(--green);line-height:1.3;font-weight:600;margin:0 0 .75rem}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden}.bg-layer{position:absolute;top:0;right:0;bottom:0;left:0;background-position:center 55%;background-repeat:no-repeat;transition:opacity 1.6s ease-in-out}.bg-frost{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(var(--panel-rgb),var(--frost-tint, .37));-webkit-backdrop-filter:blur(var(--frost-blur, 7px));backdrop-filter:blur(var(--frost-blur, 7px))}.site{text-shadow:0 1px 2px rgba(0,0,0,.32),0 2px 10px rgba(0,0,0,.18);font-size:calc(1rem * var(--scale-body, 1))}:lang(en){--scale-heading: var(--size-h-en, 1);--scale-body: var(--size-b-en, 1)}:lang(ml){--scale-heading: var(--size-h-ml, 1);--scale-body: var(--size-b-ml, 1)}@media(prefers-reduced-motion:reduce){.bg-layer{transition:none}}.lang-toggle{position:fixed;top:.75rem;right:.75rem;z-index:10;display:flex;background:rgba(var(--panel-rgb),.9);border:1px solid var(--line);border-radius:999px;overflow:hidden}.music-toggle{position:fixed;top:.75rem;left:.75rem;z-index:10;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--line);background:rgba(var(--panel-rgb),.9);color:var(--green);font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.music-toggle.muted{color:var(--muted)}.music-toggle.muted span{position:relative}.music-toggle.muted span:after{content:"";position:absolute;left:-.55rem;top:50%;width:1.7rem;height:1px;background:currentColor;transform:translateY(-50%) rotate(-45deg)}.envelope-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--ivory);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;cursor:pointer;padding:1.5rem;text-align:center;opacity:1;transform:scale(1);transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1)}.envelope-overlay.fading{opacity:0;transform:scale(16);pointer-events:none}.envelope{position:relative;width:19rem;aspect-ratio:3 / 2;perspective:1100px;animation:envelope-pulse 2.6s ease-in-out infinite;transition:transform .9s cubic-bezier(.22,1,.36,1)}.envelope-overlay.opening .envelope,.envelope-overlay.rising .envelope,.envelope-overlay.fading .envelope{animation:none}.envelope-overlay.rising .envelope,.envelope-overlay.fading .envelope{transform:translateY(-4%) scale(1.18)}@keyframes envelope-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}.envelope-shadow{position:absolute;left:8%;right:8%;bottom:-.6rem;height:1rem;border-radius:50%;background:#00000038;filter:blur(8px);transition:opacity .9s ease,transform .9s ease}.envelope-overlay.rising .envelope-shadow,.envelope-overlay.fading .envelope-shadow{opacity:.5;transform:scale(1.15)}.envelope-back{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px #0003;overflow:hidden;z-index:1}.envelope-card{position:absolute;left:9%;right:9%;bottom:4%;height:86%;background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 10px #0000001f;transform:translateY(4%) rotate(0);transition:transform 1.35s cubic-bezier(.16,1,.3,1)}.envelope-overlay.rising .envelope-card,.envelope-overlay.fading .envelope-card{transform:translateY(-64%) rotate(-1.5deg)}.envelope-flap{position:absolute;top:0;left:0;right:0;height:58%;background:var(--surface-2);border:1px solid var(--line);border-bottom:0;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;transform:rotateX(0);transition:transform 1.15s cubic-bezier(.16,1,.3,1);z-index:2}.envelope-overlay.opening .envelope-flap,.envelope-overlay.rising .envelope-flap,.envelope-overlay.fading .envelope-flap{transform:rotateX(-172deg)}.envelope-seal{position:absolute;top:calc(29% - .85rem);left:50%;transform:translate(-50%,-50%) scale(1);width:2.5rem;height:2.5rem;border-radius:50%;background:var(--gold);box-shadow:0 2px 6px #00000040;z-index:3;transition:opacity .5s ease,transform .5s ease}.envelope-overlay.sealing .envelope-seal{transform:translate(-50%,-50%) scale(1.35)}.envelope-overlay.opening .envelope-seal,.envelope-overlay.rising .envelope-seal,.envelope-overlay.fading .envelope-seal{opacity:0;transform:translate(-50%,-50%) scale(.5)}.envelope-names{font-family:var(--font-heading);font-size:calc(1.5rem * var(--scale-heading, 1));color:var(--green);margin:0;transition:opacity .5s ease}.envelope-tap{color:var(--gold);font-size:calc(.85rem * var(--scale-body, 1));letter-spacing:.12em;text-transform:uppercase;margin:0;transition:opacity .5s ease}.envelope-overlay.opening .envelope-names,.envelope-overlay.opening .envelope-tap,.envelope-overlay.rising .envelope-names,.envelope-overlay.rising .envelope-tap,.envelope-overlay.fading .envelope-names,.envelope-overlay.fading .envelope-tap{opacity:0}@media(prefers-reduced-motion:reduce){.envelope,.envelope-flap,.envelope-card,.envelope-seal,.envelope-shadow,.envelope-overlay{animation:none!important;transition:none!important}}.lang-toggle button{border:0;background:transparent;padding:.4rem .9rem;font:inherit;font-family:"Playfair Display",var(--font-heading);font-size:.9rem;color:var(--ink);cursor:pointer}.lang-toggle button.on{background:var(--green);color:var(--on-green)}.hero{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4.25rem 1.25rem 2rem}.hero-text{width:100%;max-width:36rem;text-align:center}.hero h1{font-size:calc(clamp(2.6rem,11vw,4.8rem) * var(--scale-heading, 1));margin:.6rem 0 1.1rem}.quote{font-family:var(--font-heading);font-style:italic;font-size:calc(1.15rem * var(--scale-heading, 1));max-width:26rem;margin:0 auto .6rem;color:var(--ink)}.quote-ref{display:block;font-style:normal;font-size:calc(.75rem * var(--scale-heading, 1));letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:.4rem}.invite{max-width:32rem;margin:0 auto 1.1rem;font-size:calc(1.15rem * var(--scale-body, 1))}.date{font-family:var(--font-heading);font-size:calc(1.4rem * var(--scale-heading, 1));color:var(--gold);margin:0}.hero-calendar{margin:1.25rem auto 0}.divider{display:flex;align-items:center;justify-content:center;gap:.9rem;max-width:20rem;margin:2.75rem auto;padding:0 1.25rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:rgba(var(--rim-rgb),.6)}.divider span{width:7px;height:7px;border-radius:1px;background:var(--gold);transform:rotate(45deg);flex-shrink:0}.section{max-width:42rem;width:calc(100% - 2.5rem);margin:0 auto;text-align:center}.section h2{font-size:calc(clamp(1.6rem,6vw,2.2rem) * var(--scale-heading, 1))}.count-row{display:flex;justify-content:center;gap:clamp(.75rem,4vw,2.25rem);margin-top:1.5rem}.count-item{display:flex;flex-direction:column;padding:0 clamp(.4rem,2vw,1rem);border-left:1px solid rgba(var(--rim-rgb),.6)}.count-item:first-child{border-left:0;padding-left:0}.count-num{position:relative;display:inline-block;overflow:hidden;width:2ch;height:1.2em;font-size:calc(clamp(1.6rem,7vw,2.6rem) * var(--scale-heading, 1));color:var(--green);line-height:1.2}.count-num-layer{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.count-num-out{animation:count-slide-out .45s cubic-bezier(.22,1,.36,1) forwards}.count-num-in{animation:count-slide-in .45s cubic-bezier(.22,1,.36,1)}@keyframes count-slide-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(70%);opacity:0}}@keyframes count-slide-in{0%{transform:translateY(-70%);opacity:0}to{transform:translateY(0);opacity:1}}.count-label{font-size:calc(.78rem * var(--scale-body, 1));letter-spacing:.05em;color:var(--gold)}.download-card{max-width:26rem}.icon-action{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem;background:transparent;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-shadow:inherit;text-decoration:none}.icon-circle{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;border:1px solid var(--gold);color:var(--green);transition:background .2s ease,color .2s ease,transform .15s ease}.icon-circle svg{width:1.35rem;height:1.35rem}.icon-action:hover .icon-circle{background:var(--green);color:var(--on-green);transform:translateY(-2px)}.icon-action:disabled{opacity:.55;cursor:not-allowed}.icon-action:disabled .icon-circle{transform:none}.icon-circle.selected{background:var(--green);color:var(--on-green)}.icon-label{font-family:var(--font-link);font-size:calc(.8rem * var(--scale-body, 1));letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}.icon-spin{animation:icon-spin .9s linear infinite}@keyframes icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.icon-spin{animation-duration:2.4s}}.video-section{max-width:40rem}.video-section>div,.video-section>button{box-shadow:0 8px 30px #00000040}.about{max-width:30rem}.portrait-frame{width:9.5rem;height:9.5rem;border-radius:50%;overflow:hidden;margin:0 auto 1.25rem;background:var(--surface);box-shadow:0 6px 20px #0003}.portrait{width:100%;height:100%;object-fit:contain;display:block}.about-parentage{font-family:var(--font-heading);font-size:calc(1rem * var(--scale-heading, 1));color:var(--gold);margin-top:.35rem}.about-text{margin-top:.75rem;white-space:pre-wrap}.venues-row{display:flex;flex-direction:column;margin-top:1.5rem}@media(min-width:640px){.venues-row{flex-direction:row;align-items:flex-start}.venue{flex:1}.venue+.venue{margin-left:2.5rem;padding-left:2.5rem;border-left:1px solid rgba(var(--rim-rgb),.6)}}.venue+.venue{margin-top:2.25rem;padding-top:2.25rem;border-top:1px solid rgba(var(--rim-rgb),.6)}@media(min-width:640px){.venue+.venue{margin-top:0;padding-top:0;border-top:0}}.venue p{margin:.25rem 0}.venue h3{font-size:calc(1.1rem * var(--scale-heading, 1))}.venue-name{font-weight:700}.venue-date{font-family:var(--font-heading);font-size:calc(1.05rem * var(--scale-heading, 1));color:var(--gold);margin-top:.5rem}.venue-time{font-family:var(--font-heading);font-size:calc(1.25rem * var(--scale-heading, 1));color:var(--gold)}.muted{color:var(--muted);font-size:calc(.92rem * var(--scale-body, 1))}.mono{font-family:ui-monospace,Consolas,monospace}.rsvp{max-width:34rem}.greeting{font-family:var(--font-heading);font-size:calc(1.3rem * var(--scale-heading, 1));color:var(--gold);margin:0 0 1rem}.rsvp-box{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:1.5rem}.rsvp-box p{margin:0}.rsvp-label{font-weight:700}.rsvp-status{font-family:var(--font-heading);font-size:calc(1.3rem * var(--scale-heading, 1));color:var(--green)}.rsvp-choices{display:flex;gap:2rem;justify-content:center}.rsvp-email{font:inherit;width:min(100%,22rem);padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-align:center}.stepper-wrap{display:flex;flex-direction:column;align-items:center;gap:.4rem}.stepper{display:flex;align-items:center;gap:1.25rem}.stepper button{width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--green);background:transparent;color:var(--green);font-size:1.4rem;line-height:1;cursor:pointer}.stepper .num{font-size:calc(1.8rem * var(--scale-heading, 1));min-width:2rem}.error{color:var(--error)}.meta-links{display:flex;justify-content:center;gap:2.5rem;margin:0 auto 5rem}.footer{text-align:center;max-width:40rem;width:calc(100% - 2rem);margin:0 auto .75rem;padding:1rem;color:var(--gold);font-family:var(--font-heading);font-size:calc(1.2rem * var(--scale-heading, 1))}.footer-line,.footer-heading{margin:0}.footer-names{margin:.35rem 0 0;font-size:calc(1.05rem * var(--scale-heading, 1))}.contact-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1.25rem}.contact-dialog{position:relative;width:min(26rem,100%);max-height:85dvh;overflow-y:auto;background:var(--surface);border-radius:16px;padding:1.75rem 1.5rem;text-align:center;box-shadow:0 20px 60px #0000004d;color:var(--ink);text-shadow:none;font-family:"Playfair Display",var(--font-heading)}.contact-dialog label{display:grid;gap:.3rem;text-align:left;margin-top:.9rem;font-size:.9rem}.contact-dialog input,.contact-dialog select,.contact-dialog textarea{font:inherit;padding:.6rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);resize:vertical}.contact-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}.contact-close svg{width:1rem;height:1rem}.contact-dialog .icon-action{margin:1.25rem auto 0}.contact-success{padding:1.5rem 0;font-size:1.05rem}.wishes-fab{position:fixed;right:1rem;bottom:1rem;z-index:15;display:flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;border-radius:999px;border:1px solid var(--gold);background:rgba(var(--panel-rgb),.92);color:var(--green);font:inherit;font-family:var(--font-link);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;box-shadow:0 6px 20px #0000002e;text-shadow:none}.wishes-fab svg{width:1.15rem;height:1.15rem;flex-shrink:0}.wishes-fab:hover{background:var(--green);color:var(--on-green);border-color:var(--green)}.wishes{max-width:34rem;overflow-x:hidden}.wish-card{margin-top:1.5rem;animation:wish-fade .7s cubic-bezier(.22,1,.36,1)}@keyframes wish-fade{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:translate(0)}}.wish-message{font-family:var(--font-heading);font-style:italic;font-size:1.25rem;line-height:1.6;color:var(--ink);margin:0 0 .75rem}.wish-name{font-family:var(--font-heading);font-size:1rem;color:var(--gold);margin:0}@media(prefers-reduced-motion:reduce){.wish-card{animation:none}}
