:root{--ink:#25342f;--muted:#66736d;--paper:#fffdf7;--soft:#f2efe4;--sage:#6f8b79;--moss:#345448;--moss-deep:#223d35;--gold:#c2a15b;--gold-deep:#a9823d;--line:rgba(37,52,47,.14);--shadow:0 18px 50px rgba(31,45,39,.16);--panel:hsla(0,0%,100%,.58);--panel-strong:hsla(0,0%,100%,.76)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Georgia,Times New Roman,serif;color:var(--ink);background:radial-gradient(circle at top,rgba(194,161,91,.11),transparent 28%),linear-gradient(180deg,#f3efe7,#e7e3da)}.invitation-state{min-height:100vh;display:grid;place-content:center;justify-items:center;grid-gap:16px;gap:16px;padding:24px;color:var(--moss);text-align:center}.invitation-state__spinner{width:42px;height:42px;border:3px solid rgba(52,84,72,.18);border-top:3px solid var(--gold-deep);border-radius:50%;animation:invitation-spin .7s linear infinite}@keyframes invitation-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.invitation-state__spinner{animation:none}}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,470px)}.desktop-photo{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:hidden}.cover__image,.desktop-photo__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.cover__image{object-position:center top}img[data-image=hero]:not([src]){display:none}.cover__shade,.desktop-photo__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,33,28,.08),rgba(18,33,28,.72))}.desktop-photo__text{position:absolute;left:56px;bottom:56px;color:#fff;display:grid;grid-gap:10px;gap:10px;text-shadow:0 2px 18px rgba(0,0,0,.35)}.desktop-photo__text span,.eyebrow,.role{font-family:Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;font-size:11px;color:var(--gold-deep);font-weight:700}.cover__content>.eyebrow,.desktop-photo__text span{text-shadow:0 1px 2px rgba(0,0,0,.95),0 3px 10px rgba(0,0,0,.75)}.desktop-photo__text strong{font-size:clamp(44px,6vw,86px);line-height:.95}.desktop-photo__text small{font-family:Arial,sans-serif;font-size:15px}.invite{position:relative;min-height:100vh;isolation:isolate;background-color:#426c4d;background-image:url(/assets/patern%20%281%29.png);background-repeat:repeat;background-size:480px 480px;box-shadow:-18px 0 60px rgba(29,39,35,.18);overflow:hidden;padding-bottom:90px}.invite:after,.invite:before{display:none}.invite>*{position:relative;z-index:1}.cover{position:fixed;inset:0 0 0 auto;width:min(470px,100vw);z-index:20;background:linear-gradient(180deg,rgba(15,21,19,.18),rgba(15,21,19,.72)),url(/assets/ornamen%201.jpeg) 50%/cover no-repeat,#111;background-blend-mode:normal,screen,normal;transition:transform .7s ease,opacity .7s ease,visibility .7s ease}.cover.is-open{transform:translateY(-100%);opacity:0;visibility:hidden}.cover__content{position:absolute;inset:auto 26px 38px;color:#fff;text-align:center;display:grid;justify-items:center;grid-gap:12px;gap:12px;text-shadow:0 2px 16px rgba(0,0,0,.38)}h1,h2,h3,p{margin:0}h1{font-size:54px;line-height:.95}h2{font-size:34px;line-height:1.05}h3{font-size:28px;line-height:1.1}.date{font-family:Arial,sans-serif;font-size:15px}.guest-box{width:min(100%,320px);display:grid;grid-gap:6px;gap:6px;padding:16px;border:1px solid hsla(0,0%,100%,.38);background:hsla(0,0%,100%,.13);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px}.guest-box span,.note{font-family:Arial,sans-serif;font-size:13px}.guest-box strong{font-size:20px}.section{position:relative;isolation:isolate;width:min(100%,520px);margin:18px auto 26px;padding:42px 26px;display:grid;grid-gap:18px;gap:18px;text-align:center;background:linear-gradient(180deg,hsla(0,0%,100%,.88),hsla(0,0%,100%,.72));border:1px solid rgba(60,85,72,.11);border-radius:30px;box-shadow:0 18px 36px rgba(47,57,53,.06),inset 0 1px 0 hsla(0,0%,100%,.7);overflow:hidden;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.section:before{display:block;content:"";position:absolute;inset:0;z-index:0;background-repeat:no-repeat;background-position:50%;background-size:cover;opacity:.12;pointer-events:none}.section>*{position:relative;z-index:1}.footer,.gallery,.gift,.hero,.rsvp,.story,.wishes{padding-top:46px;padding-bottom:46px}.footer:after,.footer:before,.hero:after,.hero:before{content:"";position:absolute;inset:auto;left:0;right:0;z-index:0;height:clamp(44px,11vw,56px);background-image:url(/assets/patern%20%282%29.png);background-repeat:no-repeat;background-size:100% auto;opacity:.19;pointer-events:none}.footer:before,.hero:before{top:0;background-position:top}.footer:after,.hero:after{bottom:0;background-position:bottom}.intro:before{background-image:url(/assets/ornamen%201.jpeg);background-position:top;background-size:100% auto;opacity:.7}.couple:before{background-image:url(/assets/ornamen%20kiri.png),url(/assets/ornamen%20kanan.png);background-position:0 0,100% 0;background-size:50% auto,50% auto;opacity:.7}.hero{min-height:64vh;align-content:center;padding-top:70px;padding-bottom:70px;background:hsla(0,0%,100%,.82)}.hero h2{font-size:56px}.footer p,.gift p,.intro p,.verse{color:var(--muted);line-height:1.75;font-size:16px}.verse-source{color:var(--moss);font-weight:700}.intro{padding-top:110px;background:linear-gradient(180deg,hsla(0,0%,100%,.86),hsla(0,0%,100%,.72));color:var(--ink);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.08),0 18px 36px rgba(47,57,53,.06)}.intro p{color:var(--muted)}.couple{background:hsla(0,0%,100%,.38);border:1px solid rgba(60,85,72,.1);border-radius:28px;box-shadow:0 18px 36px rgba(47,57,53,.06)}.couple article,.gift,.rsvp,.schedule,.wishes{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.couple article{display:grid;grid-gap:8px;gap:8px;padding:28px 18px;background:hsla(0,0%,100%,.68);border:1px solid rgba(60,85,72,.08);border-radius:18px}.couple small{color:var(--muted);line-height:1.6}.amp{width:54px;height:54px;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;justify-self:center;color:var(--gold);font-size:28px}.countdown{grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.countdown,.countdown-group,.countdown-groups{display:grid}.countdown-groups{gap:22px}.countdown-group{gap:12px}.countdown-group h3{color:var(--moss);font-size:19px}.countdown div,.event-list article,.gift-list article,.timeline article,.wish-item{background:linear-gradient(180deg,hsla(0,0%,100%,.82),hsla(42,42%,95%,.72));border:1px solid rgba(52,84,72,.09);border-radius:14px;box-shadow:0 10px 24px rgba(47,57,53,.05)}.countdown div{min-height:82px;display:grid;place-items:center;align-content:center;grid-gap:5px;gap:5px}.countdown strong{font-size:25px}.countdown span,.event-list span,.gift-list span{font-family:Arial,sans-serif;font-size:12px;color:var(--muted)}.event-list,.gift-list,.timeline,.wish-list{display:grid;grid-gap:12px;gap:12px}.event-list article,.gift-list article,.timeline article,.wish-item{padding:18px;display:grid;grid-gap:8px;gap:8px}.event-list strong,.gift-list strong{font-size:20px}.event-list p,.timeline p,.wish-item p{color:var(--muted);line-height:1.6}.copy-btn,.primary-btn,.secondary-btn{min-height:46px;border:0;border-radius:999px;padding:12px 22px;text-decoration:none;cursor:pointer;font-family:Arial,sans-serif;font-weight:700;letter-spacing:.04em;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.copy-btn:hover,.primary-btn:hover,.secondary-btn:hover{transform:translateY(-1px)}.primary-btn{color:#fff;background:linear-gradient(135deg,var(--moss) 0,#45675b 100%);box-shadow:0 12px 24px rgba(52,84,72,.18)}.copy-btn,.secondary-btn{color:var(--moss);background:linear-gradient(135deg,#fffdf9,#f4efe3);border:1px solid rgba(194,161,91,.35);justify-self:center;box-shadow:0 8px 16px rgba(53,64,60,.06)}.image-preview-box{display:grid;margin-top:8px;background:rgba(124,146,117,.06);border:1px solid var(--line);border-radius:12px;padding:10px}.image-preview{width:100%;max-height:220px;object-fit:cover;border-radius:10px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.photo-grid img{width:100%;aspect-ratio:1/1.16;object-fit:cover;border-radius:8px;box-shadow:var(--shadow)}.photo-grid img:first-child{grid-column:1/-1;aspect-ratio:1.2/1;object-position:center 65%}.timeline{text-align:left}.timeline time{color:var(--gold);font-family:Arial,sans-serif;font-weight:700}.form{display:grid;grid-gap:12px;gap:12px;text-align:left}.form label{display:grid;grid-gap:7px;gap:7px;font-family:Arial,sans-serif;font-size:13px;color:var(--muted)}.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:var(--ink);background:#fff;outline-color:var(--sage);transition:box-shadow .16s ease,border-color .16s ease,transform .16s ease}.form input:focus,.form select:focus,.form textarea:focus{border-color:rgba(52,84,72,.9);box-shadow:0 6px 20px rgba(52,84,72,.06),0 0 0 4px rgba(111,139,121,.08);transform:translateY(-1px)}.radio-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.radio-row label{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:10px 12px;background:rgba(124,146,117,.08);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-weight:600;transition:.2s ease}.radio-row label:hover{border-color:rgba(124,146,117,.5);background:rgba(124,146,117,.12)}.radio-row input{accent-color:var(--moss);width:18px;height:18px}.rsvp .form{background:hsla(0,0%,100%,.72);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.rsvp .form label{font-size:12px;font-weight:700;color:var(--ink)}.rsvp .form input,.rsvp .form select,.rsvp .form textarea{border-radius:12px;border:1px solid rgba(124,146,117,.25);background:#fff;box-shadow:inset 0 1px 2px rgba(24,34,18,.02)}.rsvp .primary-btn{width:100%;margin-top:6px}.wish-list:empty{display:none}.inviting-list{margin:0;padding:0;display:grid;grid-gap:10px;gap:10px;list-style:none;color:var(--muted);line-height:1.55}.inviting-group,.inviting-groups{display:grid}.inviting-groups{gap:26px}.inviting-group{gap:12px}.inviting-group h3{color:var(--moss);font-size:20px}.wishes{background:hsla(0,0%,100%,.76)}.wishes:before{opacity:.16}.footer{padding-top:76px;padding-bottom:104px;background:hsla(0,0%,100%,.82);color:var(--ink)}.footer p,.footer small{color:var(--muted)}.bottom-nav{position:fixed;left:auto;right:0;bottom:0;width:min(470px,100vw);height:62px;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;background:rgba(255,253,247,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid rgba(52,84,72,.08);box-shadow:0 -8px 20px rgba(28,35,31,.06);z-index:12}.bottom-nav a{color:var(--moss);text-decoration:none;font-family:Arial,sans-serif;font-size:12px;text-align:center}.music-btn{position:fixed;right:min(496px,calc(100vw - 58px));bottom:78px;z-index:13;width:46px;height:46px;border-radius:50%;border:1px solid hsla(0,0%,100%,.35);background:linear-gradient(135deg,var(--gold) 0,var(--gold-deep) 100%);color:#fff;box-shadow:0 12px 26px rgba(194,161,91,.25);cursor:pointer}.music-btn.is-muted{background:var(--muted)}.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%) translateY(20px);padding:10px 14px;border-radius:999px;background:rgba(37,52,47,.94);color:#fff;font-family:Arial,sans-serif;font-size:13px;opacity:0;pointer-events:none;transition:.2s ease;z-index:30}.toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}@media (max-width:860px){.shell{display:block}.desktop-photo{display:none}.bottom-nav,.cover,.invite{width:100%;max-width:none}.music-btn{right:16px}}@media (max-width:420px){h1{font-size:46px}.hero h2{font-size:48px}.section{padding-left:20px;padding-right:20px}}.invite>.section.scroll-reveal{opacity:0;-webkit-clip-path:inset(0 0 12% 0 round 18px);clip-path:inset(0 0 12% 0 round 18px);transform:translateY(24px);transition:opacity .56s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.16,1,.3,1),-webkit-clip-path .72s cubic-bezier(.16,1,.3,1);transition:opacity .56s cubic-bezier(.16,1,.3,1),clip-path .72s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.16,1,.3,1);transition:opacity .56s cubic-bezier(.16,1,.3,1),clip-path .72s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.16,1,.3,1),-webkit-clip-path .72s cubic-bezier(.16,1,.3,1);will-change:opacity,clip-path,transform}.invite>.section.scroll-reveal.is-visible{opacity:1;-webkit-clip-path:inset(0 0 0 0 round 0);clip-path:inset(0 0 0 0 round 0);transform:translateY(0);will-change:auto}@media (prefers-reduced-motion:reduce){.invite>.section.scroll-reveal,.invite>.section.scroll-reveal.is-visible{opacity:1;-webkit-clip-path:none;clip-path:none;transform:none;transition:none}}.admin-body{min-height:100vh;background:radial-gradient(circle at 15% 10%,rgba(194,161,91,.2),transparent 24%),linear-gradient(135deg,#f8f5ec,#e7ece4)}.admin-shell{width:min(1160px,calc(100% - 32px));margin:0 auto;padding:34px 0 56px}.admin-header,.admin-title-row,.button-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-header{margin-bottom:22px}.admin-header h1{color:var(--moss)}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.admin-panel,.form-section{background:rgba(255,253,247,.84);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.admin-panel{padding:22px;display:grid;grid-gap:16px;gap:16px}.admin-main{margin-bottom:16px}.admin-panel h2,.form-section h3{color:var(--moss)}.admin-help{color:var(--muted);font-family:Arial,sans-serif;font-size:14px;line-height:1.6}.admin-form{gap:16px}.form-section{display:grid;grid-gap:12px;gap:12px}.form-section h3{grid-column:1/-1;font-size:20px}.form-two{grid-template-columns:repeat(2,minmax(0,1fr))}.wide{grid-column:1/-1}.checkbox-line{display:flex;align-items:center;gap:12px;color:var(--ink)}.checkbox-line input[type=checkbox]{width:18px;height:18px;accent-color:var(--moss);flex:0 0 auto;margin:0;transform:translateY(1px)}.form-section{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 6px 24px rgba(31,45,39,.04)}.form-section h3{font-family:Arial,sans-serif;color:var(--moss);font-weight:700;margin-bottom:6px}.button-row{justify-content:flex-start;flex-wrap:wrap}.admin-list{display:grid;grid-gap:10px;gap:10px}.admin-list:empty:before{content:"Belum ada undangan.";color:var(--muted);font-family:Arial,sans-serif}.admin-list-item{width:100%;min-height:58px;padding:12px;display:grid;grid-gap:5px;gap:5px;text-align:left;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}.admin-list-item.is-selected{border-color:var(--moss);box-shadow:0 6px 18px rgba(52,84,72,.08);background:linear-gradient(180deg,#fff,#f6fbf6)}.admin-list-item span{color:var(--muted);font-family:Arial,sans-serif;font-size:13px}.admin-comment-item,.admin-comment-list{display:grid}.admin-comment-list{gap:14px}.admin-comment-item{gap:12px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}.admin-comment-item small{color:var(--muted);font-family:Arial,sans-serif}.bank-account-editor{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr) auto;align-items:end;grid-gap:10px;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.admin-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:8px}.admin-gallery-item{display:grid;grid-gap:8px;gap:8px}.admin-gallery-item img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px}.is-hidden{display:none!important}@media (max-width:760px){.admin-header,.admin-title-row{align-items:flex-start;flex-direction:column}.admin-grid,.form-two{grid-template-columns:1fr}.wide{grid-column:auto}.bank-account-editor{grid-template-columns:1fr}.admin-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}