*,:before,:after{box-sizing:border-box}html,body,#root{background:#f6efe3;height:100%;margin:0;overflow:hidden}body{-webkit-tap-highlight-color:transparent;font-family:Marcellus,Cormorant Garamond,Georgia,serif}.stage{touch-action:none;position:fixed;inset:0}.stage canvas{width:100%;height:100%;display:block}@font-face{font-family:Marcellus;src:url(/fonts/Marcellus-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Tiro Devanagari Hindi;src:url(/fonts/TiroDevanagariHindi-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Yatra One;src:url(/fonts/YatraOne-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Cinzel;src:url(/fonts/Cinzel-VF.ttf)format("truetype");font-weight:400 900;font-display:swap}@font-face{font-family:Cinzel Decorative;src:url(/fonts/CinzelDecorative-Bold.ttf)format("truetype");font-weight:700;font-display:swap}.overlay{pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.loader{color:#7a1f1f;z-index:20;background:#f6efe3;transition:opacity .6s}.loader.hidden{opacity:0}.loader>div{text-align:center}.loader svg{width:140px;height:140px}.loader .ring{fill:none;stroke:#7a1f1f;stroke-width:1.5px;stroke-dasharray:400;stroke-dashoffset:400px;animation:2.4s ease-in-out infinite alternate draw}.loader .ring.petals{stroke-dasharray:900;stroke-dashoffset:900px;animation-duration:3.2s}@keyframes draw{to{stroke-dashoffset:0}}.loader p{letter-spacing:.2em;text-transform:uppercase;margin:12px 0 0;font-family:Marcellus,serif;font-size:13px}.loader .hint{letter-spacing:.05em;text-transform:none;margin-top:24px;font-size:12px}.loader .hint button{pointer-events:auto;color:#7a1f1f;font:inherit;background:0 0;border:1px solid #7a1f1f;border-radius:999px;margin-left:8px;padding:6px 14px}.tap{z-index:10;left:50%;bottom:max(28px, env(safe-area-inset-bottom));pointer-events:auto;color:#f8e7bf;letter-spacing:.22em;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#1b140e8c;border:1px solid #f8e7bf80;border-radius:999px;padding:12px 26px;font-family:Marcellus,serif;font-size:13px;animation:2s ease-in-out infinite pulse;position:fixed;transform:translate(-50%)}@keyframes pulse{0%,to{box-shadow:0 0 #f8e7bf73}50%{box-shadow:0 0 0 14px #f8e7bf00}}.nameplate{color:#2b1a12;letter-spacing:.12em;white-space:nowrap;text-shadow:0 1px #ffebb499;background:linear-gradient(#e9c766,#b8862b 55%,#8c6420);border:2px solid #6b4a16;border-radius:6px;padding:6px 18px;font-family:Marcellus,serif;font-size:15px;box-shadow:0 2px 6px #00000080}.corner{z-index:20;top:max(14px, env(safe-area-inset-top));color:#7a1f1f;pointer-events:auto;cursor:pointer;background:#f6efe3b3;border:1px solid #7a1f1f80;border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;display:grid;position:fixed}.corner.left{left:14px}.corner.right{right:14px}.door-title{z-index:9;left:50%;top:max(66px, calc(env(safe-area-inset-top) + 60px));white-space:nowrap;pointer-events:none;background:radial-gradient(#1e0e049e,#1e0e0459 70%,#1e0e0400);border-radius:999px;align-items:baseline;gap:.45em;padding:8px 22px 10px;transition:opacity 1s;animation:1.4s both dt-in;display:flex;position:fixed;transform:translate(-50%)}.door-title.out{opacity:0}.dt-name{background:linear-gradient(100deg,#b8860b,#fbe7a6 38%,#d4a63a 55%,#fff2c4 75%,#b8860b) 0 0/220% 100%;color:#0000;filter:drop-shadow(0 2px 3px #140a0099);-webkit-background-clip:text;background-clip:text;font-family:Cinzel Decorative,serif;font-size:clamp(21px,5.6vw,44px);font-weight:700;line-height:1.05;animation:5s linear infinite dt-shine}.dt-weds{letter-spacing:.18em;text-transform:lowercase;color:#f8e7bf;font-family:Marcellus,serif;font-size:clamp(12px,3.2vw,20px);font-style:italic}@keyframes dt-in{0%{opacity:0}to{opacity:1}}@keyframes dt-shine{to{background-position:-220% 0}}@media (min-width:900px){.door-title{top:18px}}.title-overlay{z-index:8;align-content:start;padding-top:12vh}.title-group{text-align:center;width:min(84vw,560px)}.title-svg{filter:drop-shadow(0 2px 6px #7a1f1f40);width:100%;height:auto;display:block}.shloka{color:#7a1f1f;margin-top:10px;font-family:Tiro Devanagari Hindi,serif;font-size:clamp(14px,3.6vw,20px);line-height:1.5}.shloka p{margin:0}.journey-names{z-index:9;top:max(24px, calc(env(safe-area-inset-top) + 10px));text-overflow:ellipsis;text-align:center;pointer-events:none;letter-spacing:.08em;white-space:nowrap;background:linear-gradient(#f6e27a,#b8862b);color:#0000;filter:drop-shadow(0 1px 1px #3c1e0a59);-webkit-background-clip:text;background-clip:text;width:-moz-fit-content;width:fit-content;max-width:calc(100vw - 150px);margin:0 auto;font-family:Cinzel Decorative,Marcellus,serif;font-size:clamp(13px,3.6vw,20px);font-weight:700;animation:1.2s both names-in;position:fixed;left:0;right:0;overflow:hidden}@keyframes names-in{0%{opacity:0}to{opacity:1}}.journey-ui{z-index:9;left:50%;bottom:max(18px, env(safe-area-inset-bottom));pointer-events:none;justify-items:center;gap:12px;width:min(92vw,420px);display:grid;position:fixed;transform:translate(-50%)}.card-actions{pointer-events:auto;gap:10px;animation:.6s both names-in;display:flex}.card-actions a{letter-spacing:.12em;text-transform:uppercase;color:#f6efe3;background:#7a1f1feb;border-radius:999px;padding:9px 16px;font-family:Marcellus,serif;font-size:12px;text-decoration:none;box-shadow:0 3px 10px #3c1e0a40}.card-actions .replay-big{letter-spacing:.14em;text-transform:uppercase;color:#f6efe3;cursor:pointer;background:#7a1f1ff2;border:1px solid #c9a227;border-radius:999px;padding:12px 30px;font-family:Marcellus,serif;font-size:15px;box-shadow:0 4px 14px #3c1e0a4d}.dots{pointer-events:auto;gap:10px;display:flex}.dot{cursor:pointer;background:#f6efe3cc;border:1px solid #7a1f1f;border-radius:50%;width:11px;height:11px;padding:0}.dot.active{background:#7a1f1f}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.journey-names,.card-actions{animation:none}}.card-scroll{overscroll-behavior:contain;z-index:15;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:#28140a59;animation:1s both card-in;position:fixed;inset:0;overflow-y:auto}.card-scroll::-webkit-scrollbar{display:none}@keyframes card-in{0%{opacity:0}to{opacity:1}}.card-stage{height:100vh;pointer-events:none;height:100dvh;position:sticky;top:0;overflow:hidden}.card-stage .paper,.card-stage .paper *{pointer-events:auto}.roller{z-index:5;background:repeating-linear-gradient(90deg,#0000 0 20px,#ffffff26 20px 22px),linear-gradient(#6e4019,#d9a85a 45%,#f3d390 55%,#7a4a1e);border-radius:12px;height:24px;position:absolute;left:10px;right:10px;box-shadow:0 5px 10px #28140573}.roller:before,.roller:after{content:"";background:linear-gradient(#8a6a14,#f6dd8f 50%,#8a6a14);border-radius:8px;width:16px;height:34px;position:absolute;top:-5px}.roller:before{left:-6px}.roller:after{right:-6px}.roller.top{top:10px}.paper{z-index:4;background:radial-gradient(at 30% 15%,#fffaf0,#f3e6cc 70%),#f6efe3;height:14px;position:absolute;top:30px;left:0;right:0;overflow:hidden;box-shadow:inset 0 0 0 6px #f3e6cc,inset 0 0 0 8px #c9a227,inset 0 0 0 10px #f3e6cc,inset 0 0 0 11px #7a1f1f,0 8px 18px #28140566}.paper-inner{color:#4a1212;text-align:center;will-change:transform;max-width:600px;margin:0 auto;padding:18px 22px 60px}.card-hint{text-align:center;letter-spacing:.16em;text-transform:uppercase;color:#4a2a0a;pointer-events:none;z-index:16;text-shadow:0 1px #fff9;font-family:Marcellus,serif;font-size:10.5px;transition:opacity .4s;position:fixed;bottom:21px;left:0;right:0}.paper-inner .sec{padding:18px 6px}.divider{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 230 30'><path d='M4 15 H88 M142 15 H226' stroke='%23c9a227' stroke-width='1.5'/><path d='M88 15 q10 -12 20 0 q-10 12 -20 0z M142 15 q-10 -12 -20 0 q10 12 20 0z' fill='%23c9a227'/><g transform='translate(115 15)'><ellipse rx='4' ry='11' fill='%237a1f1f'/><ellipse rx='4' ry='11' fill='%237a1f1f' transform='rotate(45)'/><ellipse rx='4' ry='11' fill='%237a1f1f' transform='rotate(-45)'/><ellipse rx='4' ry='11' fill='%237a1f1f' transform='rotate(90)'/><circle r='4' fill='%23f3d390'/></g><circle cx='4' cy='15' r='2.5' fill='%237a1f1f'/><circle cx='226' cy='15' r='2.5' fill='%237a1f1f'/></svg>") 50%/contain no-repeat;width:230px;height:30px;margin:10px auto}.ganesh-mark{color:#c9a227;text-shadow:0 2px #7a1f1f33;font-family:Yatra One,serif;font-size:54px;line-height:1}.om{color:#7a1f1f;margin:6px 0;font-family:Yatra One,serif;font-size:26px}.shloka{margin:6px 0;font-family:Tiro Devanagari Hindi,serif;font-size:14px;line-height:1.7}.couple{height:260px;margin:0 auto 4px;display:block}.names-hi{color:#7a1f1f;margin:4px 0;font-family:Yatra One,serif;font-size:42px;font-weight:400;line-height:1.15}.names-hi span{color:#c9a227}.names-en{background:linear-gradient(100deg,#9a6b00,#f3d27a 40%,#b8860b 60%,#f6dd8f 80%,#9a6b00) 0 0/220% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;font-family:Cinzel Decorative,serif;font-size:19px;font-weight:700;animation:4s linear infinite card-shine}@keyframes card-shine{to{background-position:-220% 0}}.date-line{color:#7a1f1f;margin-top:8px;font-family:Yatra One,serif;font-size:18px}.family{margin:10px 0 18px}.family h3,.lists h3,.senders h3{color:#7a1f1f;margin:0 0 6px;font-family:Yatra One,serif;font-size:21px;font-weight:400}.family p,.lists p,.senders p,.invite-line p,.vows p,.welcome p{margin:2px 0;font-family:Tiro Devanagari Hindi,serif;font-size:14.5px;line-height:1.7}.invite-line p{color:#5a1616;font-size:16px}.programme{color:#7a1f1f;margin:14px 0 0;font-family:Yatra One,serif;font-size:28px;font-weight:400}.ceremony{margin-top:6px}.scene{aspect-ratio:3/4;background:50% 30%/cover;border-radius:14px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #c9a227,0 4px 12px #3c1e0a40}.slot{aspect-ratio:9/16;justify-content:center;align-items:flex-end;height:78%;display:flex;position:absolute;bottom:4%;left:50%;transform:translate(-50%)}.scene.wide .slot{aspect-ratio:auto;width:86%;height:auto}.slot .still{max-width:100%;max-height:100%;display:block}.scene.wide .slot .still{width:100%}.slot .dance-canvas{width:100%;height:100%;position:absolute;inset:0}.slot.dancing .still{visibility:hidden}.ev-hi{color:#7a1f1f;margin:12px 0 2px;font-family:Yatra One,serif;font-size:25px;font-weight:400}.ev-en{color:#8a5a00;letter-spacing:.08em;text-transform:uppercase;font-family:Cinzel,serif;font-size:13px;font-weight:700}.ev-detail{margin:6px 0 0;font-family:Tiro Devanagari Hindi,serif;font-size:14.5px;line-height:1.65}.ev-detail.en{letter-spacing:.04em;font-family:Cinzel,serif;font-size:12px;font-weight:600}.actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.actions a,.actions button{letter-spacing:.12em;text-transform:uppercase;color:#f6efe3;cursor:pointer;background:#7a1f1f;border:0;border-radius:999px;padding:9px 16px;font-family:Marcellus,serif;font-size:12px;text-decoration:none}.vows p{color:#7a1f1f;font-family:Yatra One,serif;font-size:17px}.welcome p{font-style:italic}.small{font-size:13px!important}.close-hi{color:#7a1f1f;margin-bottom:8px;font-family:Yatra One,serif;font-size:32px}.closing p{letter-spacing:.06em;text-transform:uppercase;margin:4px 0;font-family:Cinzel,serif;font-size:13px;font-weight:700}.paper{--vine:0px}.vine{z-index:1;opacity:.9;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='170' viewBox='0 0 80 170'><path d='M40 0 C70 42 10 85 40 127 C55 148 40 170 40 170' fill='none' stroke='%23c9a227' stroke-width='2.4'/><g fill='%236a8f4e'><ellipse cx='56' cy='28' rx='11' ry='4' transform='rotate(-35 56 28)'/><ellipse cx='22' cy='100' rx='11' ry='4' transform='rotate(35 22 100)'/><ellipse cx='50' cy='150' rx='9' ry='3.5' transform='rotate(-30 50 150)'/></g><g transform='translate(26 60)'><ellipse rx='5' ry='12' fill='%23e8507a' transform='rotate(-35)'/><ellipse rx='5' ry='12' fill='%23e8507a' transform='rotate(35)'/><ellipse rx='5' ry='13' fill='%23c62828'/><circle cy='4' r='3.5' fill='%23c9a227'/></g><g transform='translate(54 118) scale(0.8)'><path d='M0 -14 C10 -14 14 0 4 8 C0 12 -6 8 -4 2 C-2 -4 4 -4 4 0' fill='%237a1f1f'/></g><circle cx='40' cy='85' r='3' fill='%23c9a227'/></svg>") 0 var(--vine) / 100% auto repeat-y;width:clamp(34px,7vw,92px);position:absolute;top:12px;bottom:12px;pointer-events:none!important}.vine.left{left:14px}.vine.right{right:14px;transform:scaleX(-1)}.side-decor{z-index:0;will-change:transform;height:7000px;position:absolute;top:0;left:0;right:0;pointer-events:none!important}.mandala{opacity:.26;width:260px;height:260px;position:absolute}.mandala.l{left:calc(50% - 580px)}.mandala.r{right:calc(50% - 580px)}@media (max-width:900px){.mandala{opacity:.08}.mandala.l{left:-150px}.mandala.r{right:-150px}}.toran{z-index:3;width:calc(100% - 24px);height:46px;position:absolute;top:6px;left:12px;right:12px;pointer-events:none!important}.corner-lotus{z-index:3;width:54px;height:54px;position:absolute;bottom:14px;pointer-events:none!important}.corner-lotus.bl{left:16px}.corner-lotus.br{right:16px}.paper-inner{z-index:2;position:relative;padding-top:54px!important}@media (max-width:600px){.paper-inner{padding-left:46px!important;padding-right:46px!important}}.fallback{background:#f6efe3;position:fixed;inset:0;overflow:hidden}.fallback-door{object-fit:cover;width:100%;height:100%;transition:opacity 1.2s;position:absolute;inset:0}.fallback.open .fallback-door{opacity:0}.fallback-reveal{text-align:center;opacity:0;align-content:start;justify-items:center;gap:14px;padding:32px 24px;transition:opacity 1.2s .6s;display:grid;position:absolute;inset:0;overflow-y:auto}.fallback.open .fallback-reveal{opacity:1}.fallback-reveal .title-svg{width:min(84vw,560px);height:auto}.fallback-reveal .shloka{color:#7a1f1f;font-family:Tiro Devanagari Hindi,serif;font-size:clamp(14px,3.6vw,20px);line-height:1.5}.fallback-reveal .shloka p{margin:0}.names-gold{letter-spacing:.04em;background:linear-gradient(#f6e27a,#b8862b);color:#0000;-webkit-background-clip:text;background-clip:text;margin:8px 0 0;font-family:Cinzel Decorative,Marcellus,serif;font-size:clamp(26px,7vw,56px);font-weight:700}.fallback-dancers{width:min(60vw,260px);height:auto}.fallback-cards{gap:12px;width:min(92vw,420px);margin:0;padding:0;list-style:none;display:grid}.fallback-cards li{color:#7a1f1f;background:#7a1f1f0f;border:1px solid #7a1f1f40;border-radius:12px;gap:2px;padding:12px 16px;display:grid}.fallback-cards .hi{font-family:Tiro Devanagari Hindi,serif;font-size:15px}.fallback-cards strong.hi{font-size:18px}.fallback-cards .links a{color:#7a1f1f;letter-spacing:.1em;text-transform:uppercase;font-family:Marcellus,serif;font-size:12px}.fallback-cards .en{letter-spacing:.06em;opacity:.85;font-family:Marcellus,serif;font-size:12px}
