.ud{--bg:#fbf8f3;--bg2:#f1e8da;--card:#fff;--ink:#2b2622;--mut:#5f574f;--acc:#8a6a2f;--acc2:#c9a961;--line:#e6dccb;--on:#fff;--f-head:Georgia, serif;--f-script:Georgia, serif;--f-body:system-ui, sans-serif;--cover:radial-gradient(120% 90% at 50% 10%, var(--card) 0%, var(--bg) 55%, var(--bg2) 100%);background:var(--bg2);min-height:100vh;color:var(--ink);font-family:var(--f-body);-webkit-text-size-adjust:100%;font-size:16px;line-height:1.65}.ud p{margin:1em 0}.ud img{max-width:100%;display:block}.ud .page{background:var(--bg);max-width:440px;min-height:100vh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 60px #0000002e}.ud .corner{pointer-events:none;width:min(200px,24vh);height:min(200px,24vh);position:absolute}.ud .corner img{width:100%;height:100%}.ud .corner.tl{top:0;left:0}.ud .corner.tr{top:0;right:0;transform:scaleX(-1)}.ud .corner.bl{bottom:0;left:0;transform:scaleY(-1)}.ud .corner.br{bottom:0;right:0;transform:scale(-1)}.ud .garland{width:260px;margin:0 auto 6px;position:relative}.ud .garland img{width:100%}.ud .hero{padding-top:150px;padding-bottom:24px}.ud .div{width:200px;margin:18px auto}.ud .div img{width:100%}.ud section{text-align:center;padding:72px 28px;position:relative}.ud .sec-title{font-family:var(--f-head);color:var(--acc);margin:0 0 6px;font-size:26px;font-weight:600}.ud .mut{color:var(--mut)}.ud .small{font-size:14px}.ud .btn{background:var(--acc);min-height:48px;color:var(--on);font:600 15px var(--f-body);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 24px;text-decoration:none;display:inline-flex}.ud .btn.ghost{color:var(--acc);border:1px solid var(--acc);background:0 0}.ud .btn.sm{min-height:40px;padding:0 14px;font-size:13px}.ud .btn:disabled{opacity:.6;cursor:default}.ud .btn:focus-visible,.ud .music:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.ud .card{background:var(--card);border:1px solid var(--line);border-radius:20px;margin:16px 0;padding:24px 20px;position:relative}.ud .cover{z-index:20;background:#00000059;justify-content:center;transition:transform .9s cubic-bezier(.7,0,.2,1),opacity .9s;display:flex;position:fixed;inset:0}.ud .cover-in{background:var(--cover);text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:440px;padding:40px 28px;display:flex;position:relative;overflow:hidden}.ud .cover.open{opacity:0;pointer-events:none;transform:translateY(-100%)}.ud .kicker{letter-spacing:.28em;text-transform:uppercase;color:var(--mut);font-size:13px}.ud .names{font-family:var(--f-script);color:var(--acc);margin:14px 0;font-size:54px;font-weight:400;line-height:1.1}.ud .names .amp{margin:4px 0;font-size:.6em;display:block}.ud .to{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-width:240px;margin:28px 0 22px;padding:16px 20px}.ud .to b{font-family:var(--f-head);color:var(--ink);margin-top:4px;font-size:22px;font-weight:600;display:block}.ud .photo{border:1px solid var(--acc2);border-radius:999px 999px 24px 24px;width:170px;height:210px;margin:0 auto 16px;padding:6px}.ud .photo>*{border-radius:inherit;object-fit:cover;width:100%;height:100%}.ud .photo div{background:linear-gradient(160deg, var(--bg2), var(--line));font-family:var(--f-head);color:var(--acc);justify-content:center;align-items:center;font-size:44px;display:flex}.ud .monogram{border:1px solid var(--acc2);width:120px;height:120px;font-family:var(--f-head);color:var(--acc);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:40px;display:flex}.ud .person h3{font-family:var(--f-script);color:var(--acc);margin:0;font-size:40px;font-weight:400;line-height:1.2}.ud .person p{margin:6px 0 0}.ud .ar{color:var(--ink);direction:rtl;margin:0 0 14px;font-family:Amiri,serif;font-size:24px;line-height:2}.ud .count{grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0 4px;display:grid}.ud .count div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 4px}.ud .count b{font-family:var(--f-head);color:var(--acc);font-size:28px;line-height:1.1;display:block}.ud .count span{color:var(--mut);font-size:12px}.ud .lewat{font-family:var(--f-head);color:var(--acc);margin:22px 0 4px;font-size:20px}.ud .ev h3{font-family:var(--f-head);color:var(--acc);margin:0 0 8px;font-size:24px;font-weight:600}.ud .ev p{margin:2px 0}.ud .ev .tempat{margin-top:14px}.ud .cal{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.ud .gal{margin-top:20px}.ud .gal .ph{background:linear-gradient(160deg, var(--bg2), var(--line));color:var(--mut);border-radius:14px;justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.ud .gal img{object-fit:cover;width:100%;height:100%}.ud .gal.grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ud .gal.grid .ph{aspect-ratio:3/4}.ud .gal.grid .ph:first-child{aspect-ratio:4/3;grid-column:span 2}.ud .gal.masonry{columns:2;column-gap:8px}.ud .gal.masonry .ph{break-inside:avoid;aspect-ratio:3/4;margin-bottom:8px}.ud .gal.masonry .ph:nth-child(3n+2){aspect-ratio:1}.ud .gal.masonry img{height:auto}.ud .gal.slider{scroll-snap-type:x mandatory;gap:10px;margin-left:-28px;margin-right:-28px;padding:0 28px 8px;display:flex;overflow-x:auto}.ud .gal.slider .ph{aspect-ratio:3/4;scroll-snap-align:center;flex:0 0 82%}.ud .gal.polaroid{grid-template-columns:1fr 1fr;gap:18px 12px;padding:6px;display:grid}.ud .gal.polaroid .ph{aspect-ratio:4/5;background-color:#fff;background-clip:content-box;border-radius:4px;padding:8px 8px 30px;box-shadow:0 6px 18px #00000024}.ud .gal.polaroid .ph:nth-child(odd){transform:rotate(-2.5deg)}.ud .gal.polaroid .ph:nth-child(2n){transform:rotate(2deg)}.ud .gal.polaroid img{border-radius:2px}.ud .gal.cerita{gap:14px;display:grid}.ud .gal.cerita .ph{aspect-ratio:4/5}.ud form{text-align:left}.ud label{color:var(--mut);margin:14px 0 6px;font-size:14px;display:block}.ud input,.ud select,.ud textarea{width:100%;font:16px var(--f-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.ud textarea{resize:vertical;min-height:90px}.ud .chips{gap:8px;display:flex}.ud .chips label{flex:1;margin:0;position:relative}.ud .chips input{opacity:0;width:1px;height:1px;position:absolute}.ud .chips span{text-align:center;border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:12px;padding:12px 6px;font-size:14px;display:block}.ud .chips input:checked+span{background:var(--acc);color:var(--on);border-color:var(--acc)}.ud .chips input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}.ud .pesan{text-align:center;margin:12px 0 0}.ud .wish{text-align:left;border-top:1px solid var(--line);padding:14px 0}.ud .wish:first-child{border-top:0}.ud .wish b{font-size:15px}.ud .wish small{color:var(--mut);margin-left:6px}.ud .wish p{white-space:pre-line;overflow-wrap:anywhere;margin:4px 0 0;font-size:15px}.ud .rek{font-family:var(--f-head);letter-spacing:.06em;color:var(--ink);overflow-wrap:anywhere;margin:6px 0;font-size:26px}.ud .logo-bank{width:auto;height:28px;margin:0 auto 4px}.ud .qris{background:#fff;border-radius:12px;width:220px;margin:10px auto;padding:8px}.ud .music{z-index:15;border:1px solid var(--acc);background:var(--card);width:46px;height:46px;color:var(--acc);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:20px;right:max(16px,50% - 204px)}.ud .music svg{width:20px;height:20px}.ud .music.on svg{animation:4s linear infinite ud-putar}.ud.js .rv{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(22px)}.ud.js .rv.in{opacity:1;transform:none}.ud .foot{padding:56px 28px 90px}.ud .brand{color:var(--mut);letter-spacing:.06em;margin-top:28px;font-size:12px}.ud .brand a{color:inherit}.ud .label-contoh{z-index:30;color:#fff;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;background:#000000b8;border-radius:999px;max-width:calc(100vw - 24px);padding:6px 12px;font:600 12px system-ui,sans-serif;position:fixed;top:10px;left:50%;overflow:hidden;transform:translate(-50%)}@keyframes ud-putar{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ud.js .rv{opacity:1;transition:none;transform:none}.ud .cover{transition:none}.ud .music.on svg{animation:none}}
