:root{--bg: #fbf7f2;--surface: #ffffff;--primary: #8a5a44;--accent: #c9a26b;--text: #2d2420;--muted: #8c7d74;--on-primary: #fff;--font-heading: "Playfair Display", serif;--font-body: "Inter", sans-serif;--font-script: "Great Vibes", cursive;--radius: 18px;--shadow: 0 10px 30px -12px rgb(0 0 0 / .18);--col: 460px;--ease: cubic-bezier(.22, .8, .24, 1)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.locked{overflow:hidden;height:100vh}img{max-width:100%;display:block}a{color:inherit}button{font:inherit;cursor:pointer}h1,h2,h3{font-family:var(--font-heading);font-weight:600;line-height:1.2;margin:0}.script{font-family:var(--font-script);font-weight:400}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.no-guest .guest-block,.no-code .needs-code{display:none!important}.inv-shell{position:relative}.inv-aside{display:none}.inv-main{position:relative;max-width:var(--col);margin:0 auto;background:var(--bg);min-height:100vh;overflow:hidden;box-shadow:0 0 60px #00000014}@media(min-width:900px){.inv-shell{display:grid;grid-template-columns:1fr var(--col)}.inv-aside{display:flex;position:sticky;top:0;height:100vh;align-items:center;justify-content:center;text-align:center;padding:48px;overflow:hidden;background:var(--aside-bg, var(--primary));color:var(--aside-text, var(--on-primary))}.inv-aside .aside-photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.35}.inv-aside .aside-inner{position:relative;max-width:520px}.inv-aside h1{font-size:clamp(36px,4vw,64px)}.inv-main{margin:0}}.cover{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--cover-text, var(--text));background:var(--cover-bg, var(--bg));overflow:hidden;transition:opacity .9s var(--ease),transform 1.1s var(--ease),visibility 0s linear 1.2s}@media(min-width:900px){.cover{left:auto;width:var(--col);right:0}}.cover-photo{position:absolute;inset:0;background-size:cover;background-position:center}.cover-photo:after{content:"";position:absolute;inset:0;background:var(--cover-overlay, linear-gradient(180deg, rgb(0 0 0 / .15), rgb(0 0 0 / .55)))}.has-cover-photo .cover{--cover-text: #fff}.cover-inner{position:relative;z-index:2;padding:32px 28px;width:100%;max-width:420px}.cover .eyebrow{letter-spacing:.3em;text-transform:uppercase;font-size:11px;opacity:.8}.cover h1{font-size:42px;margin:10px 0 6px}.cover .guest-block{margin:28px auto 22px;padding:14px 18px;border-radius:14px;background:var(--guest-bg, rgb(255 255 255 / .55));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:320px}.cover .guest-block small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}.cover .guest-name{display:block;font-weight:600;font-size:17px;margin-top:4px;overflow-wrap:anywhere}.btn-open{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:13px 26px;background:var(--primary);color:var(--on-primary);font-weight:600;letter-spacing:.02em;box-shadow:0 12px 30px -10px var(--primary);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.cover.opened{visibility:hidden;pointer-events:none}.t-fade.opened{opacity:0}.t-zoom.opened{opacity:0;transform:scale(1.35)}.t-slide.opened{transform:translateY(-100%)}.t-curtain{background:transparent!important}.t-curtain .curtain{position:absolute;top:0;bottom:0;width:50.5%;background:var(--cover-bg, var(--bg));transition:transform 1.3s var(--ease);z-index:1}.t-curtain .curtain.l{left:0}.t-curtain .curtain.r{right:0}.t-curtain.opened .curtain.l{transform:translate(-100%)}.t-curtain.opened .curtain.r{transform:translate(100%)}.t-curtain .cover-inner,.t-curtain .cover-photo{transition:opacity .5s}.t-curtain.opened .cover-inner,.t-curtain.opened .cover-photo{opacity:0}.t-card3d{perspective:1400px}.t-card3d .cover-card{transition:transform 1.2s var(--ease),opacity 1.2s;transform-origin:left center}.t-card3d.opened{background:transparent;transition-delay:0s,0s,1.2s}.t-card3d.opened .cover-card{transform:rotateY(-110deg);opacity:0}.t-envelope{perspective:1200px}.t-envelope .env{position:absolute;inset:auto 0 0;height:46%;z-index:3;pointer-events:none}.t-envelope .env-flap{position:absolute;left:0;right:0;top:0;height:22%;z-index:1;transform-origin:top;background:var(--env-flap, var(--primary));clip-path:polygon(0 0,100% 0,50% 100%);transition:transform 1s var(--ease);filter:drop-shadow(0 6px 10px rgb(0 0 0 / .2))}.t-envelope.opened .env-flap{transform:rotateX(180deg)}.t-envelope.opened{transform:translateY(100%);transition-delay:0s,.8s,1.9s}.sec{position:relative;padding:72px 26px;text-align:center}.sec+.sec{border-top:0}.sec-alt{background:var(--surface)}.sec-title{font-size:30px;margin-bottom:6px;color:var(--title-color, var(--primary))}.sec-sub{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:26px}.divider{display:flex;align-items:center;justify-content:center;gap:10px;margin:18px auto;color:var(--accent)}.divider:before,.divider:after{content:"";height:1px;width:56px;background:currentColor;opacity:.6}.card{background:var(--surface);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.sec-alt .card{background:var(--bg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:600;text-decoration:none;background:var(--primary);color:var(--on-primary);transition:transform .2s,opacity .2s}.btn:active{transform:scale(.97)}.btn-outline{background:transparent;color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--primary)}.btn-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.bismillah{font-size:26px;color:var(--accent);margin-bottom:14px;font-family:Amiri,serif}.quote{font-style:italic;max-width:380px;margin:0 auto}.quote cite{display:block;margin-top:10px;font-style:normal;font-weight:600;color:var(--primary);font-size:13px}.hosts{display:grid;gap:28px}.host-photo{width:168px;height:210px;margin:0 auto 16px;border-radius:120px 120px 22px 22px;object-fit:cover;background:var(--surface);border:4px solid var(--surface);box-shadow:var(--shadow),0 0 0 1px var(--accent)}.host-photo.ph{display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:64px;color:var(--accent)}.host-name{font-size:30px;color:var(--primary);overflow-wrap:anywhere}.host-full{font-weight:600;margin-top:4px;overflow-wrap:anywhere}.host-parents{font-size:13px;color:var(--muted);margin-top:6px}.host-ig{display:inline-block;margin-top:8px;font-size:12px;color:var(--primary);text-decoration:none}.amp{font-family:var(--font-script);font-size:54px;color:var(--accent);line-height:1}.hosts.many{grid-template-columns:1fr 1fr;gap:18px}.hosts.many .host-photo{width:110px;height:110px;border-radius:50%}.hosts.many .host-name{font-size:18px}.flip{perspective:1000px}.flip-inner{position:relative;transition:transform .8s var(--ease);transform-style:preserve-3d}.flip.flipped .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{backface-visibility:hidden}.flip-back{position:absolute;inset:0;transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:center;padding:20px;border-radius:var(--radius);background:var(--primary);color:var(--on-primary)}.flip-hint{font-size:11px;color:var(--muted);margin-top:6px}.sessions{display:grid;gap:18px}.session h3{font-size:24px;color:var(--primary)}.session .date{font-weight:600;margin-top:10px}.session .venue{font-weight:600;margin-top:12px}.session .addr{font-size:13px;color:var(--muted)}.map{margin-top:14px;width:100%;height:190px;border:0;border-radius:14px;filter:saturate(.85)}.countdown{display:flex;justify-content:center;gap:10px;margin-top:8px}.cd{min-width:66px;padding:12px 6px 8px;border-radius:14px;background:var(--primary);color:var(--on-primary);perspective:300px}.cd b{display:block;font-family:var(--font-heading);font-size:30px;line-height:1;font-variant-numeric:tabular-nums}.cd b.flipping{animation:flip .5s var(--ease)}@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg);opacity:.4}to{transform:rotateX(0)}}.cd span{font-size:10px;letter-spacing:.15em;text-transform:uppercase;opacity:.8}.cd-done{font-family:var(--font-heading);font-size:22px;color:var(--primary)}.rundown{text-align:left;max-width:360px;margin:0 auto}.rundown li{display:flex;gap:14px;padding:10px 0;border-bottom:1px dashed color-mix(in srgb,var(--muted) 40%,transparent)}.rundown time{flex:0 0 70px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}.speakers{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:34px}.speaker img,.speaker .ph{width:92px;height:92px;border-radius:50%;object-fit:cover;margin:0 auto 10px;border:3px solid var(--accent);background:var(--surface)}.speaker .ph{display:flex;align-items:center;justify-content:center;font-size:32px;font-family:var(--font-heading);color:var(--accent)}.speaker b{display:block;font-size:14px}.speaker small{color:var(--muted);font-size:12px}.fields{display:grid;gap:8px;max-width:360px;margin:22px auto 0}.field{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;background:var(--surface);font-size:14px;text-align:left}.field span{color:var(--muted)}.timeline{position:relative;text-align:left;padding-left:30px;max-width:380px;margin:0 auto}.timeline:before,.timeline .tl-progress{content:"";position:absolute;left:9px;top:6px;width:2px;bottom:6px;background:color-mix(in srgb,var(--accent) 30%,transparent)}.timeline .tl-progress{background:var(--accent);bottom:auto;height:0;transition:height .15s linear}.tl-item{position:relative;padding-bottom:28px}.tl-item:before{content:"";position:absolute;left:-27px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}.tl-item.in:before{background:var(--accent)}.tl-item small{color:var(--accent);font-weight:700;letter-spacing:.06em}.tl-item h3{font-size:20px;margin:2px 0 6px}.tl-item img{border-radius:14px;margin-top:10px}.gallery{columns:2;column-gap:8px}.gallery button{display:block;width:100%;margin:0 0 8px;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--surface);break-inside:avoid}.gallery img{width:100%;height:auto;transition:transform .6s var(--ease)}.gallery button:hover img{transform:scale(1.05)}.video{position:relative;aspect-ratio:16/9;margin-top:18px;border-radius:16px;overflow:hidden}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.lightbox{position:fixed;inset:0;z-index:90;background:#000000eb;display:flex;align-items:center;justify-content:center;touch-action:none;opacity:0;pointer-events:none;transition:opacity .3s}.lightbox.show{opacity:1;pointer-events:auto}.lightbox img{max-width:94vw;max-height:86vh;border-radius:6px;transition:transform .25s var(--ease);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox .lb-btn{position:absolute;border:0;background:#ffffff1f;color:#fff;width:44px;height:44px;border-radius:50%;font-size:20px}.lb-close{top:16px;right:16px}.lb-prev{left:12px;top:50%}.lb-next{right:12px;top:50%}.lb-count{position:absolute;bottom:18px;color:#fff;font-size:12px;opacity:.7}.form{display:grid;gap:12px;text-align:left}.form label{font-size:12px;font-weight:600;color:var(--muted)}.form input,.form select,.form textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--muted) 35%,transparent);background:var(--bg);color:var(--text);font:inherit;font-size:14px}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.choice{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.choice label{display:block;text-align:center;padding:10px 4px;border-radius:12px;border:1px solid color-mix(in srgb,var(--muted) 35%,transparent);font-size:13px;color:var(--text);cursor:pointer}.choice input{display:none}.choice input:checked+label{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.hp{position:absolute;left:-9999px}.form-msg{font-size:13px;text-align:center;color:var(--primary);font-weight:600;min-height:1em}.gifts{display:grid;gap:14px}.gift{position:relative;text-align:left;padding:22px;border-radius:18px;color:#fff;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 60%,#000));overflow:hidden;box-shadow:var(--shadow)}.gift:after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:#ffffff1a}.gift .bank{font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:13px}.gift .num{font-family:ui-monospace,monospace;font-size:21px;letter-spacing:.08em;margin:14px 0 4px}.gift .holder{font-size:13px;opacity:.85}.gift .btn{position:absolute;right:16px;bottom:16px;background:#fff3;color:#fff;z-index:2}.gift .qris{width:150px;margin:12px auto 0;border-radius:10px;background:#fff;padding:6px;cursor:zoom-in}.gift-address{margin-top:16px;text-align:left}.wishes{display:grid;gap:10px;margin-top:20px;text-align:left;max-height:520px;overflow-y:auto;padding:2px}.wish{padding:14px 16px;border-radius:14px;background:var(--surface);box-shadow:0 4px 14px -8px #0003;animation:wishIn .6s var(--ease)}.sec-alt .wish{background:var(--bg)}.wish b{font-size:14px}.wish p{margin:4px 0 0;font-size:14px;overflow-wrap:anywhere}.wish small{font-size:11px;color:var(--muted)}.wish.pinned{box-shadow:inset 3px 0 0 var(--accent),0 4px 14px -8px #0003}@keyframes wishIn{0%{opacity:0;transform:translateY(14px) scale(.98)}}.wish-count{font-size:13px;color:var(--muted)}.qr-card img{width:200px;margin:14px auto;background:#fff;padding:10px;border-radius:14px}.closing h2{font-size:34px;color:var(--primary)}.closing .names{font-family:var(--font-script);font-size:40px;color:var(--accent);margin-top:10px}.footer{padding:26px;text-align:center;font-size:11px;color:var(--muted)}.footer a{color:var(--primary);text-decoration:none;font-weight:600}.wm-ribbon{position:fixed;z-index:70;top:18px;right:-48px;transform:rotate(45deg);background:#e11d48;color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em;padding:6px 56px;box-shadow:0 6px 16px #00000040;pointer-events:none}.wm-tile{position:fixed;inset:0;z-index:55;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='140'%3E%3Ctext x='10' y='80' transform='rotate(-24 110 70)' font-family='sans-serif' font-size='22' font-weight='700' fill='%23000'%3EPREVIEW%3C/text%3E%3C/svg%3E")}@media(min-width:900px){.wm-ribbon{right:-48px}}.music-btn{position:fixed;z-index:50;right:16px;bottom:86px;width:48px;height:48px;border-radius:50%;border:0;padding:0;background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow);display:none;align-items:center;justify-content:center}.music-btn.show{display:flex}.music-btn .disc{width:34px;height:34px;border-radius:50%;background:repeating-radial-gradient(circle,rgb(255 255 255 / .15) 0 1px,transparent 1px 4px),var(--primary);display:flex;align-items:center;justify-content:center;font-size:14px}.music-btn.playing .disc{animation:spin 4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:900px){.music-btn{right:24px}}.navbar{position:fixed;z-index:50;left:50%;bottom:14px;transform:translate(-50%,140%);display:flex;gap:2px;padding:6px;border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);transition:transform .6s var(--ease);max-width:calc(100vw - 24px);overflow-x:auto;scrollbar-width:none}.navbar.show{transform:translate(-50%)}@media(min-width:900px){.navbar{left:auto;right:calc(var(--col) / 2);transform:translate(50%,140%)}.navbar.show{transform:translate(50%)}}.navbar a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--muted);text-decoration:none;transition:background .3s,color .3s;flex-shrink:0}.navbar a svg{width:19px;height:19px}.navbar a.active{background:var(--primary);color:var(--on-primary)}.toast{position:fixed;z-index:95;left:50%;bottom:90px;transform:translate(-50%,20px);opacity:0;background:#111;color:#fff;padding:10px 18px;border-radius:999px;font-size:13px;font-weight:600;transition:all .35s var(--ease);pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.preview-bar{position:fixed;z-index:80;left:0;right:0;top:0;background:#111;color:#fff;text-align:center;font-size:11px;padding:4px}.rv{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--d, 0) * .11s)}.rv.l{transform:translate(-34px)}.rv.r{transform:translate(34px)}.rv.z{transform:scale(.88)}.rv.in{opacity:1;transform:none}.split .ch{display:inline-block;opacity:0;transform:translateY(.5em) rotate(4deg);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * 45ms)}.split.in .ch{opacity:1;transform:none}.sway{animation:sway 6s ease-in-out infinite;transform-origin:var(--origin, top center)}.sway.alt{animation-duration:7.5s;animation-direction:reverse}@keyframes sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.float{animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.orn{position:absolute;pointer-events:none;z-index:1}.particles{position:fixed;inset:0;z-index:45;pointer-events:none}@media(min-width:900px){.particles{left:auto;width:var(--col);right:0}}@media(prefers-reduced-motion:reduce){.rv,.rv.l,.rv.r,.rv.z,.split .ch{transform:none}.particles{display:none}.sway,.float,.btn-open{animation-duration:12s}}.pal-switch{position:fixed;z-index:75;left:12px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 8px;border-radius:999px;background:#ffffffeb;box-shadow:0 10px 30px -10px #00000059}.pal-switch small{font:700 8px/1 system-ui,sans-serif;letter-spacing:.12em;color:#6b5d66}.pal-switch a{width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000026}.pal-switch a.on{outline:2px solid #b60b3d;outline-offset:2px}@media(min-width:900px){.pal-switch{left:calc(100% - var(--col) + 12px)}}.sec-hero{padding-top:64px}.hero-eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;opacity:.85}.hero-names{font-family:var(--font-script);font-weight:400;font-size:54px;line-height:1.05;margin:14px 0 22px;color:var(--title-color, var(--primary))}.hero-date{font-family:var(--font-heading);font-size:30px;letter-spacing:.12em;margin-top:22px}.hero-venue{font-family:var(--font-script);font-size:22px;opacity:.9;margin-top:6px}.photo-oval{position:relative;width:250px;aspect-ratio:3 / 4;margin:0 auto}.photo-oval .ph-img{position:absolute;inset:9%;border-radius:50%;background:var(--surface) center / cover no-repeat;overflow:hidden;display:flex;align-items:center;justify-content:center}.photo-oval .ph-img.bw{filter:grayscale(1) contrast(1.05)}.photo-oval .ph-mono{font-family:var(--font-script);font-size:86px;color:var(--accent)}.photo-oval>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.cd-big{display:flex;justify-content:center;align-items:flex-start;gap:6px;margin-top:26px}.cd-big .u{min-width:58px;text-align:center}.cd-big b{display:block;font-family:var(--font-heading);font-size:38px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.cd-big span{font-size:11px;letter-spacing:.06em;opacity:.8}.cd-big i{font-style:normal;font-size:30px;line-height:1;opacity:.7}.hosts-framed{display:grid;gap:34px}.hosts-framed .photo-oval{width:230px}.hosts-framed .photo-oval.sm{width:150px}.hf-name{font-family:var(--font-script);font-weight:400;font-size:46px;margin-top:14px;color:var(--title-color, var(--primary))}.hf-full{font-family:var(--font-heading);font-size:17px;margin:2px 0 0}.hf-parents{font-size:14px;color:var(--muted);margin:6px auto 0;max-width:300px}.script-title{font-family:var(--font-script);font-weight:400;font-size:40px}.has-art-bg .cover,.has-art-bg .inv-aside{background-image:var(--art-bg)!important;background-size:cover!important;background-position:center!important}.has-art-paper .inv-main,.has-art-paper .sec{background-image:var(--art-paper)!important;background-size:100% auto!important;background-repeat:repeat-y!important}.ca{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:column;align-items:center}.ca-top{position:absolute;left:0;right:0;top:0;width:100%;max-height:170px;object-fit:cover;object-position:bottom;pointer-events:none;z-index:1}.ca-top svg,.art-top svg,.ca-bottom svg,.art-bottom svg,.ca-scene svg,.sd-landmark svg,.frame-flowers svg{display:block;width:100%;height:auto}.ca-head{position:relative;z-index:2;padding:calc(env(safe-area-inset-top) + 66px) 24px 0}.ca-eyebrow{font-family:var(--font-heading);font-size:11px;letter-spacing:.32em;text-transform:uppercase;margin:0;opacity:.85}.ca-names{font-family:var(--names-font, var(--font-heading));font-size:var(--names-size, 38px);line-height:1.1;margin:8px 0 4px;color:var(--title-color, var(--primary))}.ca-date{font-family:var(--font-heading);letter-spacing:.3em;font-size:15px;margin:0}.ca-stage{position:relative;flex:1;width:100%;min-height:300px;display:flex;align-items:center;justify-content:center}.ca-scene{position:absolute;left:-8%;right:-8%;bottom:0;width:116%;max-height:100%;object-fit:contain;object-position:bottom;z-index:1;pointer-events:none}.ca-photo.photo-oval{position:relative;z-index:2;width:min(200px,52vw)}.photo-oval .frame-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:2}.photo-oval .frame-flowers{position:absolute;left:-22%;right:-22%;bottom:-16%;width:144%;z-index:3;pointer-events:none}.ph-img.is-couple{background-size:contain!important;background-repeat:no-repeat;border-radius:0!important}.ca-bottom{position:absolute;left:0;right:0;bottom:0;width:100%;z-index:3;pointer-events:none;max-height:34%;object-fit:cover;object-position:top}.ca-foot{position:relative;z-index:4;width:100%;padding:0 24px calc(env(safe-area-inset-bottom) + 28px)}.ca-card{margin:8px auto 14px!important;background:var(--card-bg, rgb(255 251 240 / .88))!important;color:var(--text);box-shadow:0 10px 30px -18px #00000080;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.sec:has(>.art-top){padding-top:160px}.sec:has(>.art-bottom){padding-bottom:170px}.art-top,.art-bottom{position:absolute;left:0;right:0;width:100%;pointer-events:none;z-index:1}img.art-top{top:0;max-height:150px;object-fit:cover;object-position:bottom}div.art-top{top:0}img.art-bottom{bottom:0;max-height:190px;object-fit:cover;object-position:top}div.art-bottom{bottom:0}.sec>*:not(.orn):not(.art-top):not(.art-bottom){position:relative;z-index:2}.sec-savedate{padding-bottom:0!important;overflow:hidden}.sd-eyebrow{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.2em;font-size:18px;color:var(--title-color, var(--primary));margin:0}.sd-day{font-family:var(--font-heading);text-transform:uppercase;font-weight:700;letter-spacing:.08em;font-size:20px;margin:14px 0 0}.sd-date{font-family:var(--font-heading);font-size:24px;font-weight:700;margin:0}.sd-title{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.14em;font-size:22px;color:var(--title-color, var(--primary));margin-top:14px}.sd-landmark{margin:22px -26px 0}.sd-landmark img{width:100%;display:block}.depth-scene{position:absolute;inset:0;overflow:hidden;perspective:900px;transform-style:preserve-3d;--p: 0}.depth-scene>.dl-wrap{position:absolute;inset:-6% -10%;will-change:transform;transform-style:preserve-3d}.depth-scene .dl{width:100%;height:100%;transition:transform 1.5s cubic-bezier(.6,0,.2,1),opacity 1.2s ease;transform:rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg))}.depth-scene .dl>img,.depth-scene .dl>svg{width:100%;height:100%;object-fit:cover;object-position:bottom;display:block}.depth-scene .dl-front .dl>img{object-fit:contain}.depth-scene .dl-text{inset:0;display:flex;align-items:center;justify-content:center;z-index:5}.depth-scene .dl-front{z-index:6;pointer-events:none}.depth-scene .dl-text .dl{display:flex;align-items:center;justify-content:center}.cover .depth-scene .dl-front .dl,.cover .depth-scene .dl-near .dl{pointer-events:none}.cover.opened .depth-scene .dl{transform:scale(calc(1 + var(--z) * 1.6));opacity:0}.cover.opened .depth-scene .dl-sky .dl{opacity:1;transform:scale(1.1)}.depth3d .cover.opened{transition:opacity .8s ease .9s,visibility 0s linear 1.8s;opacity:0}.sec-depth{position:relative;height:230vh}.depth-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}.d3-text,.d3-hero-a,.d3-hero-b{text-align:center;padding:0 26px;color:var(--d3-text, #fff);text-shadow:0 2px 18px rgb(0 0 0 / .35)}.d3-eyebrow{font-family:var(--font-heading);letter-spacing:.32em;text-transform:uppercase;font-size:11px;margin:0;opacity:.9}.d3-names{font-family:var(--font-script);font-weight:400;font-size:56px;line-height:1.05;margin:10px 0 6px}.d3-date{font-family:var(--font-heading);letter-spacing:.32em;margin:0 0 18px}.d3-text .guest-block{background:#ffffff24;border:1px solid rgb(255 255 255 / .35);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-shadow:none}.d3-hint{font-size:11px;opacity:.7;margin-top:12px}.d3-hero-a,.d3-hero-b{position:absolute;left:0;right:0}.d3-hero-a{opacity:calc(1 - var(--p) * 2.4);transform:translateY(calc(var(--p) * -80px))}.d3-hero-b{opacity:calc(var(--p) * 2.6 - 1.2);transform:translateY(calc((1 - var(--p)) * 60px))}.d3-bigdate{font-family:var(--font-heading);font-size:44px;letter-spacing:.1em;margin:6px 0 0}.d3-venue{font-family:var(--font-script);font-size:26px;margin:2px 0 0}.d3-scroll{font-size:12px;letter-spacing:.2em;opacity:.8;animation:float 2.4s ease-in-out infinite}body.depth3d .card,body.depth3d .gift{transition:transform .25s ease-out;transform-style:preserve-3d;will-change:transform}body.depth3d .card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--gx, 50%) var(--gy, 0%),rgb(255 255 255 / .22),transparent 55%)}.m{display:none;flex-shrink:0;background:var(--orn-color, var(--accent));-webkit-mask:var(--mask) center / contain no-repeat;mask:var(--mask) center / contain no-repeat;pointer-events:none}.m-corner{--mask: var(--orn-corner);position:absolute;width:var(--corner-size, 92px);height:var(--corner-size, 92px);z-index:2;opacity:.85}.m-corner.tl{top:14px;left:14px}.m-corner.tr{top:14px;right:14px;transform:scaleX(-1)}.m-corner.bl{bottom:14px;left:14px;transform:scaleY(-1)}.m-corner.br{bottom:14px;right:14px;transform:scale(-1)}.m-divider{--mask: var(--orn-divider);width:var(--divider-w, 170px);height:var(--divider-h, 30px);margin:14px auto}.m-wreath{--mask: var(--orn-wreath);position:absolute;inset:0}.has-corners .m-corner,.has-divider .m-divider,.has-wreath .m-wreath{display:block}.has-divider .divider:before,.has-divider .divider:after{display:none}.cc{position:relative;z-index:2;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.cc-photo{position:absolute;inset:0;background:center / cover}.cc-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#00000040,#0009)}.cc-inner{position:relative;z-index:3;width:100%;max-width:400px;padding:40px 30px}.cc-eyebrow{font-family:var(--font-heading);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0}.cc-names{font-family:var(--names-font, var(--font-script));font-weight:var(--names-weight, 400);font-size:var(--names-size, 52px);line-height:1.1;margin:14px 0 0;color:var(--title-color, var(--primary))}.cc-date{font-family:var(--font-heading);letter-spacing:.12em;margin:0 0 22px}.cc-frame{width:168px;height:216px;margin:22px auto 6px;background:color-mix(in srgb,var(--accent) 18%,var(--surface)) center / cover;border-radius:var(--frame-radius, 999px 999px 14px 14px);box-shadow:0 0 0 6px var(--surface),0 0 0 7px color-mix(in srgb,var(--accent) 60%,transparent),0 24px 40px -24px #00000059;display:flex;align-items:center;justify-content:center}.cc-frame span{font-family:var(--names-font, var(--font-script));font-size:56px;color:var(--primary)}.cc-mono{position:relative;width:150px;height:150px;margin:18px auto 4px;display:flex;align-items:center;justify-content:center}.cc-mono b{font-family:var(--names-font, var(--font-script));font-weight:400;font-size:46px;color:var(--primary);position:relative}.cc-card{background:var(--surface)!important;color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 14px 30px -24px #0006}.cc-sprig{display:none;position:absolute;width:150px;height:150px;background:var(--sprig-img) center / contain no-repeat;z-index:1;pointer-events:none}.cc-sprig.tl{top:-10px;left:-24px;transform:rotate(150deg)}.cc-sprig.br{bottom:-10px;right:-24px;transform:rotate(-30deg)}.has-sprig .cc-sprig{display:block}.cc-has-photo.cc-mode-bg{color:#fff;--muted: rgb(255 255 255 / .8);--title-color: #fff}:root{--ill-accent: var(--primary);--ill-dark: #3f3d56;--ill-light: #f2f2f2;--ill-mid: #cccccc;--ill-skin: #ffb8b8;--ill-skin2: #a0616a}.cf{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:28px 24px}.cf-art{position:relative;width:min(300px,78vw);display:flex;justify-content:center}.cf-ill{width:100%;height:auto;max-height:34vh}.cf-photo{width:220px;height:260px;border-radius:24px;background:center / cover;box-shadow:0 24px 40px -24px #00000073}.cf-body{width:100%;max-width:380px;text-align:center}.cf-eyebrow{font-family:var(--font-heading);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}.cf-names{font-family:var(--names-font, var(--font-script));font-weight:var(--names-weight, 400);font-size:var(--names-size, 50px);line-height:1.1;margin:8px 0 6px;color:var(--title-color, var(--primary))}.cf-date{font-family:var(--font-heading);letter-spacing:.08em;margin:0 0 18px}.cf-card{background:var(--surface)!important;color:var(--text);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);box-shadow:0 16px 34px -26px #00000073}.cf.cf-l-card .cf-art:before{content:"";position:absolute;inset:6% 2% 0;border-radius:46% 54% 50% 50%/55% 45%;background:color-mix(in srgb,var(--primary) 14%,var(--surface));z-index:-1}.cf.cf-l-card .cf-body{background:var(--surface);border-radius:26px;padding:20px 20px 24px;box-shadow:0 22px 44px -30px #0006;margin-top:-8px}.cf.cf-l-card .cf-card{box-shadow:none;background:var(--bg)!important}.cf.cf-l-split{justify-content:flex-start;padding:0 0 28px}.cf.cf-l-split .cf-art{width:100%;padding:46px 40px 26px;background:color-mix(in srgb,var(--primary) 16%,var(--surface));border-radius:0 0 44px 44px}.cf.cf-l-split .cf-ill{max-height:32vh}.cf.cf-l-split .cf-body{padding:0 26px;margin-top:auto;margin-bottom:auto}.cf.cf-l-night{background:radial-gradient(1.5px 1.5px at 20% 20%,#fff,transparent),radial-gradient(1px 1px at 70% 12%,#fff,transparent),radial-gradient(1px 1px at 40% 70%,#fff,transparent),radial-gradient(1.5px 1.5px at 85% 55%,#fff,transparent),radial-gradient(1px 1px at 10% 85%,#fff,transparent);color:var(--text)}.sec-ill{width:min(230px,62%);margin:0 auto 22px}.sec-ill-svg{width:100%;height:auto;max-height:190px;display:block;margin:0 auto}.cp{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;overflow:hidden}.cp-img{background:color-mix(in srgb,var(--primary) 20%,var(--bg)) center / cover no-repeat}.cp-body{position:relative;z-index:2;width:100%;max-width:420px;margin:0 auto;padding:0 26px 30px;text-align:center}.cp-eyebrow{font-family:var(--font-heading);font-size:12px;letter-spacing:.3em;text-transform:uppercase;margin:0;opacity:.85}.cp-names{font-family:var(--names-font, var(--font-script));font-weight:var(--names-weight, 400);font-size:var(--names-size, 52px);line-height:1.08;margin:8px 0 6px;color:var(--title-color, var(--primary))}.cp-date{font-family:var(--font-heading);letter-spacing:.08em;margin:0 0 16px}.cp-card{margin:0 auto 14px!important}.cp-m-full .cp-img{position:absolute;inset:0}.cp-m-full .cp-img:after{content:"";position:absolute;inset:0}.cp-m-full.cp-t-dark .cp-img:after{background:linear-gradient(180deg,#0000000d 25%,#000000b8 78%)}.cp-m-full.cp-t-light .cp-img:after{background:linear-gradient(180deg,transparent 28%,color-mix(in srgb,var(--bg) 92%,transparent) 72%)}.cp-m-full .cp-body{margin-top:auto}.cp-t-dark{color:#fff;--title-color: #fff}.cp-t-dark .cp-card{background:#ffffff1f!important;color:#fff;border:1px solid rgb(255 255 255 / .28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cp-t-light .cp-card{background:#ffffffd9!important;color:var(--text);border:1px solid color-mix(in srgb,var(--primary) 18%,transparent)}.cp-t-dark .btn-open{background:#fff;color:#1b1b1b}.cp-m-top{background:var(--bg);color:var(--text)}.cp-m-top .cp-img{height:54%;flex-shrink:0;border-radius:0 0 50% 50%/0 0 14% 14%}.cp-m-top .cp-body{margin:auto;padding-top:18px}.cp-m-top .cp-card,.cp-m-arch .cp-card{background:var(--surface)!important;color:var(--text);border:1px solid color-mix(in srgb,var(--primary) 15%,transparent)}.cp-m-arch{background:var(--bg);color:var(--text);justify-content:center;align-items:center}.cp-m-arch .cp-img{width:210px;height:280px;border-radius:999px 999px 18px 18px;margin:0 auto 6px;box-shadow:0 0 0 7px var(--surface),0 0 0 8px color-mix(in srgb,var(--accent) 70%,transparent),0 30px 50px -30px #00000080;flex-shrink:0}.cp-m-arch .cp-body{padding-top:14px}.has-band .sec.sec-countdown,.has-band .sec.sec-closing,.has-band .sec.sec-quote-band,.photo-band{position:relative;color:#fff;--title-color: #fff;--muted: rgb(255 255 255 / .82);background:var(--band) center / cover no-repeat!important}.has-band .sec.sec-countdown:before,.has-band .sec.sec-closing:before,.photo-band:before{content:"";position:absolute;inset:0;background:rgb(0 0 0 / var(--band-dim, .45));z-index:0}.has-band .sec-countdown>*,.has-band .sec-closing>*,.photo-band>*{position:relative;z-index:1}.has-band .sec-countdown .cd,.has-band .sec-closing .cd,.photo-band .cd,.photo-band .cd-big .u{background:#ffffff24;color:#fff;border:1px solid rgb(255 255 255 / .3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.has-band .sec-closing .names,.photo-band .names{color:#fff!important}.has-band .sec-countdown .sec-title,.has-band .sec-closing .sec-title{color:#fff}
