@import"https://fonts.googleapis.com/css2?family=GFS+Didot&display=swap";:root{font-family:"Noto Serif Malayalam",serif;color:#3d302a;background:#f8f1e5;font-synthesis:none;text-rendering:optimizeLegibility;--ivory: #f8f1e5;--cream: #fffaf1;--gold: #a38445;--gold-light: #d4c298;--maroon: #70283d;--green: #52614c;--ink: #3d302a;--line: rgba(163, 132, 69, .56)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #70283d;outline-offset:4px}.page{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;padding:clamp(3rem,7vh,5.5rem) clamp(1rem,5vw,4rem);overflow:hidden;isolation:isolate}.page-bg{position:absolute;inset:0;z-index:-2;overflow:hidden}.page-bg img{width:100%;height:100%;object-fit:cover;filter:sepia(.28) saturate(.65)}.page-bg:after{content:"";position:absolute;inset:0;background:#f8f1e5d1}.page:before{content:"";position:absolute;inset:14px;border:1px solid var(--line);pointer-events:none;z-index:1}.page:after{content:"❈";position:absolute;top:21px;left:50%;transform:translate(-50%);color:var(--gold);font-size:17px;background:transparent;padding:0 9px;z-index:2}.frame{width:min(100%,980px);padding:8px;border:1px solid var(--gold);position:relative;z-index:2;background:#fffaf1b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.frame:before,.frame:after{position:absolute;color:var(--gold);font-size:19px;z-index:3;line-height:1}.frame:before{content:"❧";left:-4px;top:-5px;transform:rotate(-45deg)}.frame:after{content:"❧";right:-4px;bottom:-5px;transform:rotate(135deg)}.frame-inner{border:1px solid var(--line);min-height:100%;padding:clamp(1.4rem,5vw,4.5rem)}.hero-photo{position:absolute;inset:0;opacity:.3}.hero-photo .photo-shell{position:absolute;inset:0;border:0;box-shadow:none}.hero-photo img{filter:sepia(.22) saturate(.76)}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f8f1e5cc,#f8f1e58c,#f8f1e5d1)}.hero-frame{width:min(100%,840px);min-height:78svh;display:grid;background:#fffaf199;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hero-frame .frame-inner{display:grid;place-items:center;text-align:center}.hero-copy{position:relative;padding:1rem;animation:arrive .9s both}.eyebrow{color:var(--gold);font-size:.82rem;letter-spacing:.12em}.hero h1{font-size:clamp(2.2rem,6vw,4.5rem);font-weight:500;color:var(--maroon);margin:.65rem 0 .1rem}.ornament{display:flex;align-items:center;justify-content:center;gap:.8rem;color:var(--gold);font-size:1.25rem;margin:1.1rem 0}.ornament i{display:block;width:clamp(35px,8vw,86px);height:1px;background:var(--gold-light)}.name{font-size:clamp(1.65rem,4.8vw,3.25rem);color:var(--maroon);font-weight:500;margin:.45rem 0}.ampersand{font-family:GFS Didot,serif;color:var(--gold);font-size:1.4rem}.invite-line{line-height:2;margin:1.45rem 0 0;font-size:clamp(1rem,2vw,1.25rem)}.scroll-cue{margin-top:1.3rem;border:1px solid var(--line);width:40px;height:40px;background:transparent;border-radius:50%;color:var(--gold);cursor:pointer;font-size:1.3rem}.section-title{text-align:center}.section-title h2{font-size:clamp(1.65rem,4vw,2.8rem);font-weight:500;color:var(--maroon);line-height:1.55;margin:.3rem auto;max-width:850px;text-wrap:balance}.section-title .ornament{margin:.45rem auto 1rem}.lead{text-align:center;font-size:clamp(1rem,2.4vw,1.35rem);line-height:1.9;margin:.2rem 0 1.5rem}.couple-page{display:block;padding-top:clamp(4rem,8vh,6rem);padding-bottom:clamp(3rem,6vh,5rem)}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(1rem,4vw,3rem);align-items:start;width:min(100%,900px);margin:0 auto}.person{text-align:center;line-height:1.85}.person h3{font-size:clamp(1.4rem,3vw,2rem);font-weight:500;color:var(--maroon);margin:.7rem 0 .35rem}.person p,.person address{font-style:normal;font-size:clamp(.86rem,1.5vw,1rem);margin:.35rem auto}.photo-shell{overflow:hidden;border:1px solid var(--gold);padding:5px;background:var(--cream);box-shadow:0 8px 24px #462d1b1f;position:relative}.person .photo-shell{width:min(100%,240px);aspect-ratio:3 / 4;height:auto;min-height:unset;margin:auto}.photo-shell img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:top center}.photo-shell.landscape img{object-fit:contain;object-position:center center}.photo-placeholder{position:absolute;inset:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#8a754b;background:repeating-linear-gradient(135deg,#f6efdf,#f6efdf 12px,#f2e9d6 12px 24px)}.placeholder-flower{font-size:2rem}.photo-placeholder small{font-size:.78rem}.between-ornament{font-size:2rem;color:var(--gold);padding-top:calc(min(100%,240px) * (4/3) / 2)}.scratch-page{flex-direction:column}.scratch-card{position:relative;width:min(100%,560px);height:clamp(185px,32vh,270px);margin:1rem auto 0;border:1px solid var(--gold);box-shadow:0 12px 35px #6b4b3020;background:var(--cream);overflow:hidden;touch-action:none}.scratch-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--maroon);background:radial-gradient(ellipse,#fffdf8,#f5ead6)}.scratch-message strong{font-size:clamp(2rem,6vw,3.6rem);font-weight:600}.scratch-message span:not(.date-sparkle){font-size:1.2rem}.date-sparkle{color:var(--gold);font-size:1.3rem}.scratch-card canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.reveal-button{position:absolute;z-index:2;bottom:.65rem;left:50%;transform:translate(-50%);background:#fffaf0d9;border:1px solid var(--gold);padding:.4rem 1rem;color:var(--maroon);cursor:pointer;font-size:.85rem}.is-revealed .scratch-message{animation:glow 1.5s ease both}.celebrate .section-title{animation:arrive .7s}.petals{position:absolute;top:16%;color:#a38445;letter-spacing:1rem;animation:fall 4s ease-in forwards;pointer-events:none}.event-page{flex-direction:column;gap:0;justify-content:center;padding-top:clamp(4.5rem,9vh,6.5rem);padding-bottom:clamp(3rem,6vh,5rem)}.event-page .section-title{margin-bottom:2rem;position:relative;z-index:3}.location-card{width:min(100%,580px);padding:clamp(1.8rem,5vw,3rem);text-align:center;border:1px solid var(--gold-light);outline:1px solid var(--line);outline-offset:7px;background:#fffaf1e0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 16px 42px #412a1712;line-height:1.8;position:relative;z-index:3}.lamp{color:var(--gold);display:block;font-size:2rem;transform:rotate(90deg)}.event-date{color:var(--gold);font-size:1.2rem;margin:.5rem 0}.location-card h3{color:var(--maroon);font-size:clamp(1.35rem,3.3vw,2rem);font-weight:500;line-height:1.6;margin:.4rem 0}.location-card p{margin:.4rem 0}.gold-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;margin-top:1.2rem;padding:.75rem 1.45rem;background:var(--maroon);border:1px solid var(--gold);color:#fffaf0;text-decoration:none;min-height:48px;transition:background .2s,transform .2s}.gold-button:hover{background:#572033;transform:translateY(-2px)}.side-photo{position:absolute;width:clamp(130px,20vw,250px);height:clamp(190px,34vh,320px);right:5%;bottom:9%;opacity:.18;z-index:0;transform:rotate(4deg)}.message-photo,.memories-photo,.closing-photo{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;box-shadow:none;z-index:-2}.message-photo img,.memories-photo img,.closing-photo img{filter:sepia(.25) saturate(.7)}.message-page:before,.memories-page:before,.closing-page:before{inset:0;background:#f8f1e5c7;z-index:-1}.message-page .frame,.memories-page .frame,.closing-page .frame{max-width:940px;background:#fffaf1cc;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.message-copy{text-align:center}.message-copy .section-title h2{max-width:750px}.message-copy p{font-size:clamp(1.25rem,3vw,2rem);line-height:1.8;text-align:center;margin:.5rem}.memories-page .frame-inner{text-align:center}.memories-page .lead{margin:1rem 0}.closing-copy{text-align:center}.closing-copy h2{color:var(--maroon);font-size:clamp(1.8rem,4vw,2.9rem);font-weight:500}.closing-copy p{font-size:clamp(1rem,2.7vw,1.6rem);line-height:2}.closing-and{color:var(--gold)}.closing-copy h1{color:var(--maroon);font-size:clamp(2.3rem,7vw,4.5rem);font-weight:500;margin:.5rem}.back-top{background:transparent;border:0;color:var(--gold);cursor:pointer;padding:.5rem}.page-dots{position:fixed;z-index:10;right:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}.page-dots button{width:13px;height:13px;border:1px solid var(--gold);border-radius:50%;background:#f8f1e5cc;padding:0;cursor:pointer;position:relative}.page-dots button.active{background:var(--maroon);box-shadow:0 0 0 3px #a3844533}.page-dots button span{position:absolute;right:23px;top:50%;transform:translateY(-50%);background:var(--cream);padding:.25rem .55rem;white-space:nowrap;font-size:.75rem;color:var(--maroon);opacity:0;pointer-events:none;border:1px solid var(--line);transition:opacity .2s}.page-dots button:hover span,.page-dots button:focus-visible span{opacity:1}.music-wrap{position:fixed;z-index:12;bottom:22px;right:22px;display:flex;align-items:center;gap:5px}.music-control,.mute-control{border:1px solid var(--gold);border-radius:50%;background:var(--cream);color:var(--maroon);width:46px;height:46px;cursor:pointer;box-shadow:0 4px 15px #3823191a}.music-control{font-size:1.25rem}.mute-control{width:30px;height:30px;font-size:1.1rem}.music-hint{background:var(--cream);padding:.4rem .7rem;border:1px solid var(--line);font-size:.75rem;color:var(--maroon);animation:arrive .4s}.hero .frame{animation:arrive 1s both}.flower-rain{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}.flower-rain .petal{position:absolute;top:-60px;font-size:1.2rem;color:var(--gold);opacity:0;animation:petalFall linear infinite;will-change:transform,opacity;-webkit-user-select:none;user-select:none}@keyframes petalFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:0}8%{opacity:.75}85%{opacity:.55}to{transform:translateY(110vh) rotate(540deg) scale(.7);opacity:0}}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%{filter:brightness(1)}50%{filter:brightness(1.11)}to{filter:brightness(1)}}@keyframes fall{0%{transform:translateY(-30px);opacity:0}15%{opacity:.8}to{transform:translateY(75vh) rotate(35deg);opacity:0}}@media(max-width:700px){.page{padding:3.8rem 1.2rem;min-height:100svh}.page:before{inset:10px}.hero-frame{min-height:78svh}.frame-inner{padding:1.4rem 1rem}.couple-page{padding-top:4rem;padding-bottom:4rem}.couple-grid{grid-template-columns:1fr;gap:.7rem}.person .photo-shell{width:min(58vw,220px);aspect-ratio:3 / 4;height:auto}.between-ornament{padding-top:0;line-height:1}.person h3{margin:.4rem 0}.person p,.person address{line-height:1.75;margin:.25rem}.page-dots{right:9px;gap:8px}.page-dots button{width:10px;height:10px}.page-dots button span{display:none}.music-wrap{bottom:16px;right:15px}.music-control{width:42px;height:42px}.location-card{padding:1.7rem 1.1rem}.side-photo{right:3%;bottom:4%;opacity:.12}.message-page .frame,.memories-page .frame,.closing-page .frame{width:calc(100% - .2rem)}.message-copy p{font-size:clamp(1.05rem,5vw,1.45rem)}.lead{max-width:92%;margin-left:auto;margin-right:auto}.scratch-card{height:205px}.scratch-message strong{font-size:clamp(1.8rem,9vw,2.7rem)}.event-page{padding-top:4.5rem;padding-bottom:3rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.gate{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1.2rem;background:radial-gradient(ellipse at center,#fffaf1,#f1e3c6);transition:opacity .7s ease,visibility .7s;overflow-y:auto}.gate.gate-out{opacity:0;visibility:hidden;pointer-events:none}.gate .flower-rain{z-index:0}.gate-panel{position:relative;z-index:1;width:min(100%,600px);text-align:center;padding:clamp(1.4rem,5vw,2.4rem);border:1px solid var(--gold);outline:1px solid var(--line);outline-offset:7px;background:#fffaf1e6;animation:arrive .6s both}.lang-popup h2{color:var(--maroon);font-weight:500;font-size:clamp(1.3rem,4vw,1.8rem);line-height:1.6;margin:.5rem 0}.lang-popup p{margin:.3rem 0 1rem;color:var(--ink)}.lang-options{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}.lang-options .gold-button{margin-top:.4rem;min-width:140px;cursor:pointer}.gold-button.outline{background:transparent;color:var(--maroon)}.gold-button.outline:hover{background:#70283d14}.gate-card{width:100%}.gate-card canvas{z-index:1;transition:opacity .8s ease}.gate-card canvas.scratched-off{opacity:0;pointer-events:none}.scratch-progress{height:6px;margin:.9rem auto 0;width:min(100%,560px);background:#a3844533;border-radius:3px;overflow:hidden}.scratch-progress span{display:block;height:100%;background:var(--maroon);transition:width .15s linear}.gate-actions{min-height:64px;display:flex;justify-content:center}.gate-enter{cursor:pointer;animation:arrive .5s both}.gate .section-title h2{font-size:clamp(1.5rem,5vw,2.2rem)}.lang-toggle{position:fixed;z-index:60;top:20px;right:20px;padding:.4rem .9rem;background:var(--cream);border:1px solid var(--gold);color:var(--maroon);cursor:pointer;font-size:.85rem;box-shadow:0 4px 15px #3823191a}.lang-toggle:hover{background:#fff}.next-page{position:fixed;z-index:12;bottom:22px;left:50%;transform:translate(-50%);width:48px;height:48px;border-radius:50%;border:1px solid var(--gold);background:var(--cream);color:var(--maroon);font-size:1.4rem;cursor:pointer;box-shadow:0 4px 15px #3823191a;animation:nudge 1.8s ease-in-out infinite}@keyframes nudge{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}@media(max-width:700px){.lang-toggle{top:12px;right:12px}.next-page{bottom:16px;width:44px;height:44px}}
