:root{--cream:#f4ede1;--paper:#fbf7ef;--sage:#6b7d5c;--olive:#3a4232;--gold:#b0903f;--line:#dccfae}
.lps-body{margin:0;background:var(--cream);color:var(--olive);font-family:"Cormorant Garamond",Georgia,serif;font-size:21px;font-weight:500;line-height:1.55;overflow-x:hidden}
.lps-body *{box-sizing:border-box}
.lps-body h1,.lps-body h2,.lps-body p,.lps-body li,.lps-body strong,.lps-body span,.lps-body b,.lps-body a,.lps-body button{font-family:"Cormorant Garamond",Georgia,serif;text-transform:none;letter-spacing:.01em;color:inherit}
.lps-body .lps-script{font-family:"Pinyon Script","Brush Script MT",cursive;font-weight:400;font-size:38px;line-height:1.2;color:var(--sage);margin:0;letter-spacing:0}
.lps-body h1,.lps-body h2{font-weight:700;line-height:1.1;margin:0;color:var(--olive)}
/* latar tetap di belakang halaman */
.lps-bgfix{position:fixed;inset:0;z-index:0;background:radial-gradient(circle at 12% 15%,rgba(107,125,92,.28),transparent 45%),radial-gradient(circle at 92% 88%,rgba(176,144,63,.25),transparent 45%),var(--cream);background-size:cover;background-position:center top;background-repeat:no-repeat}
.lps-bgfix.has-bg{background-image:var(--ov),var(--bg);background-size:cover;background-position:center top;background-repeat:no-repeat}
.lps-page,.lps-foot{position:relative;z-index:1}
.lps-hero{position:relative;isolation:isolate}
.lps-hero::before,.lps-hero::after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.lps-hero::before{width:480px;height:480px;right:-90px;top:-70px;background:radial-gradient(circle,rgba(107,125,92,.32),transparent 70%);animation:lps-drift 11s ease-in-out infinite alternate}
.lps-hero::after{width:400px;height:400px;left:-100px;bottom:-120px;background:radial-gradient(circle,rgba(176,144,63,.3),transparent 70%);animation:lps-drift 14s ease-in-out infinite alternate-reverse}
.lps-star{position:absolute;width:22px;height:22px;background:#c9a64e;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:lps-twinkle 3.2s ease-in-out infinite;pointer-events:none}
.lps-hero-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:56px;max-width:1180px;margin:0 auto;padding:96px 24px 88px}
.lps-hero.no-img .lps-hero-in{grid-template-columns:1fr;text-align:center}.lps-hero.no-img .lps-copy{max-width:760px;margin:0 auto}
.lps-hero.no-img .lps-actions{justify-content:center}.lps-hero.no-img .lps-rule{margin-left:auto;margin-right:auto}
.lps-copy{max-width:640px}
.lps-body .lps-copy h1{font-size:clamp(44px,6vw,92px);margin:6px 0 16px}
.lps-rule{display:block;height:2px;width:96px;margin:0 0 18px;background:linear-gradient(90deg,var(--gold),transparent);transform-origin:left;animation:lps-in .9s both,lps-grow 1.2s ease-out .5s both}
.lps-body .lps-tag{font-size:clamp(22px,2.2vw,32px);line-height:1.35;margin:0 0 12px}
.lps-body .lps-price{font-size:clamp(34px,3.4vw,50px);font-weight:700;color:var(--gold);font-style:italic;margin:0 0 20px}
.lps-actions{display:flex;flex-wrap:wrap;gap:14px}
.lps-body .lps-btn{position:relative;overflow:hidden;display:inline-block;background:var(--sage);color:#fff;text-decoration:none;padding:16px 38px;border-radius:999px;border:1px solid var(--sage);font-size:22px;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 8px 20px rgba(58,66,50,.18)}
.lps-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);animation:lps-shine 3.6s ease-in-out infinite}
.lps-body .lps-btn:hover,.lps-body .lps-btn:focus-visible{background:var(--olive);border-color:var(--olive);transform:translateY(-3px);outline:2px solid var(--gold);outline-offset:3px}
.lps-body .lps-ghost{background:rgba(255,255,255,.4);color:var(--olive);border-color:var(--olive);box-shadow:none}.lps-ghost::after{display:none}
.lps-body .lps-light{background:#efe8d8;color:var(--olive);border-color:#efe8d8}
.lps-frame{position:relative;justify-self:center;width:min(100%,400px)}
.lps-frame::before{content:"";position:absolute;inset:8% -6%;z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(176,144,63,.35),transparent 68%);animation:lps-drift 9s ease-in-out infinite alternate}
.lps-frame img{width:100%;display:block;object-fit:cover}
.t-undangan img{width:auto;max-width:100%;max-height:620px;margin:auto;border-radius:24px;filter:drop-shadow(0 26px 30px rgba(30,30,20,.32))}
.t-interior img{aspect-ratio:3/4;border-radius:999px 999px 8px 8px;box-shadow:0 22px 44px rgba(30,30,20,.25)}
.t-kaos img{aspect-ratio:1;border-radius:50%;border:7px solid var(--paper);box-shadow:0 22px 44px rgba(30,30,20,.25)}
.t-grafis img{aspect-ratio:4/5;border-radius:4px;box-shadow:16px 16px 0 var(--sage)}
.lps-chip,.lps-body .lps-chip{position:absolute;background:rgba(251,247,239,.96);border:1px solid var(--gold);border-radius:999px;padding:7px 18px;font-size:18px;font-weight:700;box-shadow:0 10px 20px rgba(58,66,50,.2);white-space:nowrap;animation:lps-bob 5s ease-in-out infinite}
.c1{left:-12%;top:14%}.c2{right:-14%;top:44%;animation-delay:1.3s}.c3{left:-6%;bottom:12%;animation-delay:2.5s}
.lps-sec{max-width:1180px;margin:0 auto;padding:56px 24px}
.lps-body .lps-sec h2{font-size:clamp(34px,3.8vw,54px);text-align:center;margin:0 0 30px}
.lps-body .lps-sec h2::after{content:"";display:block;width:60px;height:2px;margin:12px auto 0;background:var(--gold)}
.lps-feat{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.lps-feat li{background:rgba(251,247,239,.88);border:1px solid var(--line);border-top:3px solid var(--gold);padding:22px 22px 24px;display:flex;flex-direction:column;gap:6px;margin:0;box-shadow:0 10px 26px rgba(58,66,50,.08);transition:transform .3s,box-shadow .3s}
.lps-feat li:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(58,66,50,.16)}
.lps-feat li::before{content:"";width:16px;height:16px;background:var(--gold);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);margin-bottom:4px}
.lps-body .lps-feat strong{font-size:27px;font-weight:700;line-height:1.2}
.lps-body .lps-feat span{font-size:21px}
.lps-gal{overflow:hidden;margin-top:6px;padding:16px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.lps-track{display:flex;gap:20px;width:max-content;padding:0 10px}
.lps-gal:not(.is-marquee) .lps-track{width:auto;justify-content:center;flex-wrap:wrap}
.lps-gal img{height:360px;width:auto;max-width:90vw;border-radius:10px;display:block;filter:drop-shadow(0 12px 18px rgba(58,66,50,.25))}
.is-marquee .lps-track{animation:lps-marq 45s linear infinite}
.is-marquee:hover .lps-track{animation-play-state:paused}
.lps-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:22px}
.lps-steps li{display:flex;gap:14px;align-items:center;font-size:23px;line-height:1.25;margin:0;background:rgba(251,247,239,.7);border:1px solid var(--line);padding:14px 16px}
.lps-body .lps-steps b{flex:none;width:46px;height:46px;border-radius:50%;background:var(--olive);color:#efe8d8;display:grid;place-items:center;font-size:24px;font-weight:700;animation:lps-pulse 3s ease-in-out infinite}
.lps-body .lps-done{margin:30px 0 0;font-size:28px;font-style:italic;text-align:center;color:var(--sage)}
.lps-foot{text-align:center;background:var(--olive);color:#efe8d8;padding:56px 24px 100px}
.lps-body .lps-foot .lps-script{color:#d8c88e;font-size:46px;margin-bottom:14px}
.lps-share{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:28px;font-size:18px}
.lps-share span{font-style:italic;margin-right:4px}
.lps-body .lps-share button{font-size:18px;background:none;color:#efe8d8;border:1px solid #76806b;border-radius:999px;padding:4px 15px;cursor:pointer}
.lps-body .lps-share button:hover,.lps-body .lps-share button:focus-visible{background:var(--sage);color:#fff}
.lps-body .lps-float{position:fixed;right:16px;bottom:16px;background:var(--paper);color:var(--olive);text-decoration:none;padding:12px 22px;border-radius:999px;border:1px solid var(--olive);box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:9;font-size:19px;font-weight:700}
.lps-a{animation:lps-in .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
.lps-frame.lps-a{animation:lps-in .9s cubic-bezier(.2,.7,.2,1) var(--d,0s) both,lps-float 6s ease-in-out 1.3s infinite}
.lps-js .lps-r{opacity:0;transform:translateY(30px);transition:opacity .8s ease var(--d,0s),transform .8s ease var(--d,0s)}
.lps-js .lps-r.in{opacity:1;transform:none}
@keyframes lps-in{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes lps-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes lps-float{50%{transform:translateY(-14px) rotate(.6deg)}}
@keyframes lps-drift{to{transform:translate(-90px,60px) scale(1.25)}}
@keyframes lps-twinkle{0%,100%{transform:scale(.3) rotate(0);opacity:.2}50%{transform:scale(1) rotate(45deg);opacity:1}}
@keyframes lps-shine{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@keyframes lps-bob{50%{transform:translateY(-9px)}}
@keyframes lps-marq{to{transform:translateX(-50%)}}
@keyframes lps-pulse{50%{box-shadow:0 0 0 8px rgba(107,125,92,.2)}}
@media (max-width:860px){
 .lps-hero-in{grid-template-columns:1fr;text-align:center;gap:40px;padding:56px 22px 56px}
 .lps-copy{margin:0 auto}.lps-rule{margin-left:auto;margin-right:auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
 .lps-actions{justify-content:center}.lps-frame{width:min(78%,340px)}
 .c1{left:-8%}.c2{right:-8%}.c3{left:-4%}
 .lps-bgfix.has-bg{background-image:var(--ov),var(--bgm,var(--bg));background-position:78% 30%}}
@media (max-width:600px){
 .lps-body{font-size:19px}.lps-body .lps-btn{width:100%;text-align:center;padding:14px 20px}
 .lps-gal img{height:300px}.t-undangan img{max-height:460px}
 .lps-chip,.lps-body .lps-chip{font-size:15px;padding:5px 13px}
 .lps-sec{padding:44px 20px}.lps-body .lps-steps b{width:40px;height:40px;font-size:20px}.lps-steps li{font-size:21px}
 .lps-body .lps-float{font-size:15px;padding:9px 16px;right:12px;bottom:12px}}
@media (prefers-reduced-motion:reduce){
 .lps-body:not(.lps-force) *,.lps-body:not(.lps-force) *::before,.lps-body:not(.lps-force) *::after{animation:none!important;transition:none!important}
 .lps-js .lps-body:not(.lps-force) .lps-r{opacity:1;transform:none}
 .lps-body:not(.lps-force) .lps-gal{overflow-x:auto}}
