/* Linen Taupe */
:root{--t1rgb:150,134,108;--t2rgb:168,153,128;--ovrgb:25,25,32;--ov2rgb:25,22,18;--t2:#a8997f;--t3:#b5a794;--sand:#e2d6c6;--brown:#8a5a38;--sig:#7a6a58;--sig2:#8c7a64;--sig3:#6b5a46;--dark:#5b5247;--dark2:#4a4036;--music:#4f73ea;--bg:#8f7f6a;--fg:#2b2118;--accent:#8f7f6a;--on-accent:#fff;--card:#fff;--head:'Playfair Display',Georgia,serif;--taupe:#8f7f6a;--taupe2:var(--t2);--sand:var(--sand);--ink:#17110c;--brown:var(--brown);--bg-ov:rgba(0,0,0,0)}
body{font-family:'Playfair Display',Georgia,serif;font-weight:400;background:#fff;color:var(--ink)}
.sec{max-width:560px;margin:0 auto;padding:44px 22px}
.sec h2{font:400 clamp(2.6rem,12vw,3.6rem)/1.1 'Mrs Saint Delafield',cursive;letter-spacing:0;text-transform:none;color:inherit;margin-bottom:18px;text-align:center}
.sec h2::after{display:none}
.lt-g{position:relative}
.btn{display:inline-flex;gap:10px;align-items:center;justify-content:center;border-radius:10px;font:500 1.15rem/1 'Playfair Display',serif;letter-spacing:.02em;text-transform:none;padding:16px 30px;background:var(--taupe2);color:#fff;box-shadow:none;border:0}
.btn.sm{padding:10px 18px;font-size:.95rem;border-radius:8px}

/* ----- Cover ----- */
.cover{color:#fff;background:linear-gradient(rgba(var(--ovrgb),.46),rgba(var(--ovrgb),.46)),var(--cover-img,none) center top/cover no-repeat,var(--dark)}
.cover .inner{width:100%;max-width:520px;min-height:calc(100svh - 48px);display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 auto;padding:6px 0 8px}
.lt-title{display:flex;flex-direction:column;align-items:center}
.lt-kick{font:400 clamp(1.3rem,6vw,1.7rem)/1.2 'Playfair Display',serif;text-transform:uppercase;letter-spacing:.01em;margin:0}
.cover h1,.lt-hn{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .18em;font:400 clamp(3.6rem,19vw,5.4rem)/.95 'Mrs Saint Delafield',cursive;letter-spacing:0;margin:2px 0 0;color:inherit;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.cover h1 .amp,.lt-hn .amp{font:inherit;color:inherit}
.lt-to{margin-top:auto;padding-top:28px}
.lt-to p{font:400 1.5rem/1.2 'Playfair Display',serif;margin:0}
.lt-to b{display:block;font:400 clamp(2.8rem,14vw,4rem)/1.05 'Mrs Saint Delafield',cursive;margin:10px 0 18px}
.lt-to small{display:block;font:400 1.02rem/1.7 'Playfair Display',serif;opacity:.95;max-width:30ch;margin:0 auto}
.cover .btn{margin:26px auto 12px;background:rgba(var(--t2rgb),.92);color:#fff;font-size:1.5rem;padding:16px 34px;border-radius:12px;width:min(78vw,340px)}

/* ----- Hero ----- */
.lt-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:20px;padding:96px 18px 150px;text-align:center;color:#fff;background:linear-gradient(rgba(var(--ov2rgb),.5),rgba(var(--ov2rgb),.58)),var(--cover-img,none) center/cover no-repeat,var(--dark2)}
.lt-hero .countdown{width:min(94vw,440px);gap:12px;margin:0}
.lt-hero .countdown div{flex:1;max-width:none;padding:26px 0 20px;border-radius:22px;background:rgba(var(--t1rgb),.92);border:0;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.lt-hero .countdown b{font:400 1.7rem/1 'Playfair Display',serif;margin-bottom:12px}
.lt-hero .countdown span{font:400 1.05rem/1 'Playfair Display',serif;text-transform:uppercase;opacity:1}

/* ----- Our Wedding ----- */
.lt-white{background:#fff;color:var(--ink);text-align:center;padding-bottom:50px}
.lt-our{padding-bottom:26px}
.lt-our1{font:400 clamp(2rem,9vw,2.6rem)/1 'Playfair Display',serif;text-transform:uppercase;margin:0}
.lt-our2{font:500 clamp(3.2rem,16vw,4.6rem)/1.05 'Playfair Display',serif!important;text-transform:uppercase;color:var(--ink);margin:0 0 20px!important}
.lt-wel{font:400 1.35rem/1.65 'Playfair Display',serif;color:var(--brown);margin:0}
.lt-strip{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 0 46px;margin:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.lt-strip::-webkit-scrollbar{display:none}
.lt-strip img{flex:none;scroll-snap-align:center;height:min(48vw,230px);width:auto;max-width:78vw;object-fit:cover;box-shadow:0 22px 24px -10px rgba(0,0,0,.45)}
.lt-strip img:first-child{margin-left:calc(50% - min(39vw,160px))}.lt-strip img:last-child{margin-right:22px}
.lt-ayat .card.quote{padding:0 22px}.lt-ayat .quote .q{font:italic 400 1.2rem/1.7 'Playfair Display',serif;color:var(--brown)}.lt-ayat .qref{color:var(--ink)}

/* ----- Mempelai ----- */
.lt-people{background:#fff;padding:20px 0 40px;overflow:hidden}
.lt-p{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:6px;max-width:560px;margin:0 auto 64px;padding:0 0 0 10px}
.lt-p.rev{grid-template-columns:1.05fr 1fr;padding:0 10px 0 0}
.lt-p.rev .lt-ph{order:-1}
.lt-p.nophoto{grid-template-columns:1fr;text-align:center}
.lt-txt{text-align:center;padding:0 8px;color:var(--ink)}
.lt-sig{font:400 clamp(3rem,14vw,3.8rem)/1 'Mrs Saint Delafield',cursive;color:var(--sig);margin:0 0 2px}
.lt-txt h3{font:500 1.5rem/1.3 'Playfair Display',serif;margin:0 0 10px}
.lt-dash{font:400 1.12rem/1.65 'Playfair Display',serif;margin:0}
.lt-dash::before,.lt-dash::after{content:"";display:block;height:0;border-top:2px dashed #111;width:68%;margin:12px auto}
.ig{color:var(--brown);font-size:1rem}
.lt-ph{position:relative;padding-top:34px}
.lt-arc{display:block;position:relative;width:116%;max-width:none;height:auto;margin:0 0 -50.75% -8%;z-index:2;overflow:visible;pointer-events:none}
.lt-arc text{font:800 34px/1 'Outfit',sans-serif;fill:#111;letter-spacing:.04em;filter:drop-shadow(4px 4px 0 rgba(150,150,150,.7))}
.lt-ph .pf{display:block;width:100%;aspect-ratio:3/4.4;object-fit:cover;border-radius:999px 999px 0 0;border:0;padding:0;outline:0;margin:0;box-shadow:12px 14px 22px rgba(0,0,0,.28)}

/* ----- Susunan acara ----- */
.lt-time{background:var(--sand);color:var(--ink);padding:56px 18px 70px;text-align:center}
.lt-script{font:400 clamp(3.2rem,16vw,4.6rem)/1.1 'Mrs Saint Delafield',cursive;margin:0;color:var(--ink)}
.lt-date{font:500 1.15rem/1.4 'Playfair Display',serif;margin:6px 0 0}
.lt-line{position:relative;max-width:520px;margin:40px auto 0;padding:34px 0 0}
.lt-line::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:5px;margin-left:-2.5px;background:#0b0907}
.lt-line .dot{position:absolute;left:50%;top:-8px;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:#0b0907}
.lt-it{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;margin:0 0 70px;position:relative}
.lt-it .lt-what{text-align:right;padding:0 18px 0 6px;grid-column:1;grid-row:1}
.lt-it .lt-when{grid-column:2;grid-row:1;display:flex;align-items:center;gap:12px;padding:0 6px 0 18px;text-align:left;font:400 clamp(1.15rem,5.2vw,1.6rem)/1.25 'Playfair Display',serif;overflow-wrap:anywhere}
.lt-it .lt-when b{font-weight:400}
.lt-it.rev .lt-what{grid-column:2;text-align:left;padding:0 6px 0 18px}
.lt-it.rev .lt-when{grid-column:1;flex-direction:row-reverse;justify-content:flex-start;padding:0 18px 0 6px;text-align:right}
.lt-it.rev .lt-when{flex-direction:row}
.lt-when .ic{flex:none;width:58px;height:58px;color:#0b0907;display:block}.lt-when .ic svg{width:100%;height:100%;display:block}
.lt-it:not(.rev) .lt-when{flex-direction:row-reverse;justify-content:flex-end}
.lt-it:not(.rev) .lt-when{flex-direction:row;order:0}
.lt-what h3{font:700 1.65rem/1.25 'Playfair Display',serif;margin:0 0 12px}
.lt-what h3::after{content:"";display:block;border-top:3px dotted #111;margin-top:14px}
.lt-small{font:400 1.1rem/1.6 'Playfair Display',serif;margin:0 0 12px}
.lt-small b{font-weight:700}
.lt-it .btn{background:#0b0907;color:#fff}

/* ----- Latar taupe: live, galeri, kisah ----- */
.lt-taupe{background:var(--t3);color:#17110c}
.lt-taupe .sec{padding:30px 12px}
.lt-taupe .sec h2{color:#fff}
.gal{display:block;columns:2;column-gap:12px;padding:0}
.gal img,.gal img:first-child,.gal img:last-child:nth-child(even){display:block;width:100%;height:auto;max-height:none;object-fit:cover;border:0;border-radius:0;box-shadow:none;margin:0 0 12px;break-inside:avoid;grid-column:auto}
.gal img:nth-child(3n+1){aspect-ratio:2/3}.gal img:nth-child(3n+2){aspect-ratio:4/5}.gal img:nth-child(3n){aspect-ratio:1}
.lt-taupe #live .card{background:#fff;border-radius:14px;color:#17110c}
.story{display:block;margin:0 0 26px;text-align:center}
.story img{width:100%;max-width:none;max-height:none;aspect-ratio:4/5;object-fit:cover;border-radius:0;border:0;box-shadow:none;margin:0 0 12px}
.story h3{font:400 2.2rem/1.1 'Mrs Saint Delafield',cursive;color:#fff;margin:0 0 6px}.story p{color:#17110c;font-size:1.08rem;line-height:1.7;margin:0}

/* ----- Latar marmer: RSVP, hadiah, ucapan, penutup ----- */
.lt-marble{color:#4b4034;background:#dcdcdc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.011 .02' numOctaves='5' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .38 0 0 0 0 .38 0 0 0 0 .38 0 0 0 1.5 -.42'/%3E%3C/filter%3E%3Crect width='420' height='420' fill='%23e4e4e4'/%3E%3Crect width='420' height='420' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/420px;padding-bottom:10px}
.lt-marble .sec h2{color:var(--sig2)}
#rsvp h2{font-size:clamp(3.4rem,17vw,4.8rem)}
.card{background:#fff;border:0;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.1);color:#4b4034;padding:20px}
#rsvp .card.form{background:none;box-shadow:none;padding:0;gap:14px}
.form label{font-size:1.1rem}
input,select,textarea{border:1px solid #e1e1e1;border-radius:10px;background:#fff;color:#4b4034;padding:16px 18px;font:400 1.15rem/1.3 'Playfair Display',serif;box-shadow:0 2px 6px rgba(0,0,0,.05)}
textarea{min-height:150px}
.form .btn{width:100%;margin-top:6px}
.wish{background:#fff;border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.08);color:#4b4034;padding:16px 18px}
.wish .st{background:none;border:1px solid var(--sig2);font-weight:400;font-size:.8rem}
.wcount{color:var(--sig3)}
.gcard h3{color:var(--sig3)}.rek{color:#4b4034}
.attn{background:#fff;border-radius:12px;color:#4b4034}
.closing .nm{background:none;color:var(--sig2);font:400 clamp(3rem,15vw,4.2rem)/1.1 'Mrs Saint Delafield',cursive;padding:0}
.closing h2{font-size:clamp(2.4rem,11vw,3.2rem)}
footer{color:#4b4034;opacity:.85;padding:24px 20px calc(120px + env(safe-area-inset-bottom));text-align:center}

/* ----- Dock bulat taupe & musik biru ----- */
.dock{width:min(92vw,430px);height:66px;border-radius:999px;background:rgba(var(--t1rgb),.97);border:0;box-shadow:0 8px 24px rgba(0,0,0,.3);padding:0 66px 0 12px;align-items:center;bottom:max(12px,env(safe-area-inset-bottom))}
.dock a{color:#14100c;padding:0;height:46px;border-radius:12px;background:none}
.dock a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dock a svg{width:30px;height:30px}
.dock a.on{background:rgba(255,255,255,.3);color:#14100c}
.dock a:not(.on):hover{background:rgba(255,255,255,.18)}
.musicbtn{position:fixed;left:calc(50% + min(46vw,215px) - 62px);bottom:calc(22px + max(0px,env(safe-area-inset-bottom)));width:48px;height:48px;border:0;border-radius:12px;background:var(--music);color:#fff;font-size:1.6rem;box-shadow:0 4px 12px rgba(0,0,0,.3);cursor:pointer;z-index:9;opacity:1}
.musicbtn.off{opacity:.65}.musicbtn:not(.off){animation:none}
.asbtn{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:calc(92px + env(safe-area-inset-bottom));width:44px;height:44px;border:0;border-radius:12px;background:rgba(var(--t1rgb),.97);color:#14100c;box-shadow:0 4px 12px rgba(0,0,0,.25);opacity:.8;z-index:9}.asbtn.on{opacity:1}

@media (max-width:380px){.lt-p{grid-template-columns:1fr 1fr}.lt-it .lt-when{font-size:1.4rem}.lt-when .ic{width:44px;height:44px}}

/* Palet Slate Blue Linen */
:root{--t1rgb:93,111,134;--t2rgb:122,140,163;--ovrgb:16,22,32;--ov2rgb:14,20,30;--t2:#7a8ca3;--t3:#9fb0c4;--sand:#dde4ec;--brown:#3f5671;--sig:#52657e;--sig2:#5d7390;--sig3:#455a75;--dark:#3a4656;--dark2:#2e3948;--music:#e0a23a;--bg:#5d6f86;--accent:#5d6f86}
