/* Tema Surat Tulip: hijau sage, garis tangan zaitun, tulip & hati berwarna aksen (bawaan merah muda), sampul amplop yang terbuka.
   Semua gambar (tulip/*.svg) digambar sendiri. Bunga, hati, cincin, pesawat kertas = CSS mask berwarna aksen pilihan pelanggan;
   amplop, daun dan pola latar = gambar berwarna tetap (hijau zaitun). */
:root{--page-bg:#dbe3c4;--bg:#eef3e0;--surface:#f8faf0;--ink:#5b6a31;--muted:#7f8a62;--accent:#e0668a;--accent-ink:#fff;--line:#cdd7ac;--radius:18px;
--tl-line:#6f7f3c;--tl-frame:#93a35a;--tl-petal:color-mix(in srgb,var(--accent) 62%,#fff);
--tl-bunga:url(tulip/tulip-bunga.svg);--tl-bunga-r:url(tulip/tulip-bunga-kanan.svg);--tl-daun:url(tulip/tulip-daun.svg);--tl-daun-r:url(tulip/tulip-daun-kanan.svg);
--tl-dalam:url(tulip/amplop-dalam.svg);--tl-depan:url(tulip/amplop-depan.svg);--tl-pola:url(tulip/pola.svg);
--tl-hati:url(tulip/hati.svg);--tl-hati-garis:url(tulip/hati-garis.svg);--tl-coret:url(tulip/hati-coret.svg);--tl-cincin:url(tulip/cincin.svg);
--tl-pesawat:url(tulip/pesawat.svg);--tl-pembatas:url(tulip/pembatas.svg);--tl-ombak-h:url(tulip/ombak-h.svg);--tl-ombak-v:url(tulip/ombak-v.svg);
--tl-s1:url(tulip/sudut.svg);--tl-s2:url(tulip/sudut-kanan.svg);--tl-s3:url(tulip/sudut-bawah.svg);--tl-s4:url(tulip/sudut-bawah-kanan.svg);
--cover-bg:var(--bg)}

/* Latar: kertas sage dengan taburan hati kecil */
.theme-tulip .nk-main,.theme-tulip .nk-cover{background:var(--tl-pola) 0 0/240px 240px repeat,var(--bg)}
.theme-tulip .nk-main{position:relative;overflow:hidden;padding-bottom:84px}

/* Hiasan berwarna aksen (mask): satu aturan bersama, gambar dipilih lewat --tl-img */
.theme-tulip .nk-cover-inner::before,.theme-tulip .nk-ornament,.theme-tulip .nk-heading::after,.theme-tulip .nk-amp::before,.theme-tulip #acara::before,
.theme-tulip .nk-cal-day::before,.theme-tulip .nk-story .nk-heading::before,.theme-tulip #galeri .nk-heading::before,.theme-tulip .nk-gifts>.nk-heading::before,
.theme-tulip .nk-photo:first-child::after{
 content:"";display:block;background:var(--accent);-webkit-mask:var(--tl-img) center/contain no-repeat;mask:var(--tl-img) center/contain no-repeat}

/* Sepasang buket tulip: bunga (mask aksen) di atas daun (gambar hijau), dipakai di sampul, beranda & penutup */
.theme-tulip .nk-envelope::before,.theme-tulip .nk-hero-photo::before,.theme-tulip .nk-closing::before{content:"";position:absolute;pointer-events:none;background:var(--tl-petal);
 -webkit-mask:var(--tl-bunga) left bottom/var(--tl-w) auto no-repeat,var(--tl-bunga-r) right bottom/var(--tl-w) auto no-repeat;
 mask:var(--tl-bunga) left bottom/var(--tl-w) auto no-repeat,var(--tl-bunga-r) right bottom/var(--tl-w) auto no-repeat}

/* Huruf */
.theme-tulip .nk-script{color:var(--accent);font-weight:400;-webkit-text-stroke:.35px var(--accent)}
.theme-tulip .nk-script span{color:var(--accent);opacity:1;font-size:.75em}
.theme-tulip .nk-eyebrow{font-family:var(--font-display);text-transform:none;letter-spacing:.01em;font-size:1.25rem;color:var(--accent)}
.theme-tulip .nk-heading{font-family:var(--font-display);font-weight:400;color:var(--accent);font-size:2.5rem;line-height:1.1;-webkit-text-stroke:.35px var(--accent)}
.theme-tulip .nk-heading::after{--tl-img:var(--tl-pembatas);width:170px;height:30px;margin:6px auto 0;transform-origin:center;transition:transform 1s .3s}
.theme-tulip .nk-reveal:not(.nk-in) .nk-heading::after{transform:scaleX(0)}
.theme-tulip .nk-text{color:var(--ink);font-size:.95rem}
.theme-tulip .nk-muted{color:var(--muted)}
.theme-tulip .nk-btn{background:var(--tl-line);color:#fff;font-family:var(--font-body);font-weight:600;letter-spacing:.06em;border-radius:999px;box-shadow:0 3px 0 color-mix(in srgb,var(--tl-line) 60%,#000)}
.theme-tulip .nk-btn-sm{background:var(--accent);color:var(--accent-ink);border-radius:6px 14px 6px 14px;rotate:-2deg;box-shadow:0 3px 0 color-mix(in srgb,var(--accent) 60%,#000)}
.theme-tulip .nk-btn-sm.nk-btn-ghost{background:var(--surface);color:var(--accent);rotate:1.5deg;box-shadow:inset 0 0 0 1.5px var(--accent),0 3px 0 color-mix(in srgb,var(--accent) 35%,transparent)}

/* Bingkai garis tangan dengan sudut keriting (dipakai di Mempelai & Acara) */
.theme-tulip .nk-couple,.theme-tulip #acara .nk-card{position:relative;border:2.5px solid var(--tl-frame);border-radius:26px 8px 30px 10px/10px 30px 8px 26px;background:color-mix(in srgb,var(--surface) 55%,transparent)}
.theme-tulip .nk-couple::before,.theme-tulip #acara .nk-card::before{content:"";position:absolute;inset:-15px;pointer-events:none;background:var(--tl-frame);
 -webkit-mask:var(--tl-s1) left top/46px no-repeat,var(--tl-s2) right top/46px no-repeat,var(--tl-s3) left bottom/46px no-repeat,var(--tl-s4) right bottom/46px no-repeat;
 mask:var(--tl-s1) left top/46px no-repeat,var(--tl-s2) right top/46px no-repeat,var(--tl-s3) left bottom/46px no-repeat,var(--tl-s4) right bottom/46px no-repeat}

/* ===== Sampul: amplop terbuka, surat "Kamu Diundang!" naik perlahan ===== */
.theme-tulip .nk-cover{overflow:hidden}
.theme-tulip .nk-cover-inner{position:relative;width:100%}
.theme-tulip .nk-cover-inner::before{--tl-img:var(--tl-hati);position:absolute;left:12%;top:-6px;width:22px;height:22px;box-shadow:none;animation:tl-melayang 4s ease-in-out infinite}
.theme-tulip .nk-cover-inner::after{content:"";position:absolute;right:14%;top:26px;width:15px;height:15px;background:var(--accent);opacity:.75;-webkit-mask:var(--tl-hati) center/contain no-repeat;mask:var(--tl-hati) center/contain no-repeat;animation:tl-melayang 4.6s 1s ease-in-out infinite}
@keyframes tl-melayang{0%,100%{translate:0 0;rotate:-12deg}50%{translate:0 -10px;rotate:10deg}}
.theme-tulip .nk-envelope{position:relative;width:220px;height:170px;margin:26px auto 8px;isolation:isolate}
.theme-tulip .nk-envelope i{position:absolute;display:block}
.theme-tulip .nk-envelope i:nth-child(1){inset:0;background:var(--tl-dalam) center/contain no-repeat;z-index:0}
.theme-tulip .nk-envelope i:nth-child(2){left:22%;right:22%;top:34%;height:56%;z-index:1;background:var(--surface);border:2.5px solid var(--tl-line);border-radius:6px;rotate:-3deg;
 display:flex;align-items:flex-start;justify-content:center;padding-top:14px;animation:tl-surat 1.4s .5s cubic-bezier(.3,1.4,.5,1) both}
.theme-tulip .nk-envelope i:nth-child(2)::before{content:"Kamu\A Diundang!";white-space:pre;font:400 1.35rem/1.05 var(--font-script);color:var(--accent);-webkit-text-stroke:.3px var(--accent)}
.theme-tulip .nk-envelope i:nth-child(2)::after{content:"";position:absolute;left:8px;top:8px;width:16px;height:16px;background:var(--accent);-webkit-mask:var(--tl-hati-garis) center/contain no-repeat;mask:var(--tl-hati-garis) center/contain no-repeat}
@keyframes tl-surat{from{translate:0 34px}to{translate:0 -40px}}
.theme-tulip .nk-envelope i:nth-child(3){inset:0;background:var(--tl-depan) center/contain no-repeat;z-index:2}
.theme-tulip .nk-envelope::before{--tl-w:92px;left:-58px;right:-58px;bottom:-4px;height:110px;z-index:4}
.theme-tulip .nk-envelope::after{content:"";position:absolute;left:-58px;right:-58px;bottom:-4px;height:110px;z-index:3;pointer-events:none;
 background:var(--tl-daun) left bottom/92px auto no-repeat,var(--tl-daun-r) right bottom/92px auto no-repeat}
.theme-tulip .nk-cover .nk-eyebrow{margin:6px 0 0}
.theme-tulip .nk-cover h1{font-size:3.3rem;margin:2px 0 4px;line-height:1.05}
.theme-tulip .nk-date{font-family:var(--font-body);color:var(--accent);font-weight:600;letter-spacing:.12em;margin-bottom:20px}
.theme-tulip .nk-to{border:0;background:color-mix(in srgb,var(--surface) 80%,transparent);border-radius:18px;padding:16px 18px;margin:0 auto 22px;max-width:300px;
 outline:2px dashed var(--tl-frame);outline-offset:-8px}
.theme-tulip .nk-to p{color:var(--muted)}
.theme-tulip .nk-to .nk-guest{font-family:var(--font-display);color:var(--accent);font-size:1.6rem;line-height:1.2;margin-top:2px}
.theme-tulip #openBtn{padding:12px 38px;text-transform:uppercase;letter-spacing:.14em}

/* ===== Beranda: foto sebagai surat yang menyembul dari amplop, diapit tulip ===== */
.theme-tulip .nk-hero{position:relative}
.theme-tulip .nk-hero-photo{position:relative;isolation:isolate;width:250px;height:300px;margin:10px auto 22px;border:0;border-radius:0;overflow:visible;box-shadow:none;
 background:var(--tl-dalam) center bottom/270px auto no-repeat}
.theme-tulip .nk-hero-photo img{position:absolute;left:19%;top:6px;width:62%;height:74%;z-index:1;border:6px solid var(--surface);outline:2.5px solid var(--tl-line);border-radius:6px;rotate:-3deg;
 animation:tl-intip 3.6s ease-in-out infinite}
@keyframes tl-intip{0%,100%{translate:0 0}50%{translate:0 -7px}}
.theme-tulip .nk-hero-photo::after{content:"";position:absolute;left:-46px;right:-46px;bottom:0;height:210px;z-index:2;pointer-events:none;
 background:var(--tl-daun) left bottom/96px auto no-repeat,var(--tl-daun-r) right bottom/96px auto no-repeat,var(--tl-depan) center bottom/270px auto no-repeat}
.theme-tulip .nk-hero-photo::before{--tl-w:96px;left:-46px;right:-46px;bottom:0;height:210px;z-index:3}
.theme-tulip .nk-hero .nk-eyebrow{font-size:1.35rem;margin-top:4px}
.theme-tulip .nk-big{font-size:2.9rem}

/* Hitung mundur ala jam: 65 : 21 : 09 : 56 */
.theme-tulip .nk-countdown{gap:0;margin-top:22px;flex-wrap:wrap}
.theme-tulip .nk-countdown div{background:none;border:0;border-radius:0;width:auto;min-width:62px;padding:0 6px;position:relative}
.theme-tulip .nk-countdown div+div::before{content:":";position:absolute;left:-4px;top:2px;font:600 2rem/1 var(--font-body);color:var(--tl-frame)}
.theme-tulip .nk-countdown b{font:600 2.3rem/1.1 var(--font-body);color:var(--ink);letter-spacing:.02em}
.theme-tulip .nk-countdown small{font-family:var(--font-display);text-transform:none;letter-spacing:0;font-size:1rem;color:var(--accent)}

/* Kartu pemutar lagu (tombolnya menyalakan / menjeda lagu latar yang sama) */
.theme-tulip .nk-player{display:flex;align-items:center;gap:12px;width:100%;max-width:310px;margin:26px auto 0;padding:8px 18px 8px 8px;cursor:pointer;text-align:left;
 background:var(--surface);border:2px solid var(--tl-frame);border-radius:999px;box-shadow:0 4px 0 color-mix(in srgb,var(--tl-frame) 45%,transparent);font:inherit;color:var(--ink)}
.theme-tulip .nk-player:active{translate:0 2px}
.theme-tulip .nk-player-icon{flex:none;width:46px;height:46px;border-radius:50%;background:var(--accent);position:relative}
.theme-tulip .nk-player-icon::before{content:"";position:absolute;left:18px;top:14px;border-style:solid;border-width:9px 0 9px 14px;border-color:transparent transparent transparent var(--accent-ink)}
.theme-tulip:has(.nk-music.nk-playing) .nk-player-icon::before{left:16px;top:15px;width:5px;height:16px;border:0;background:var(--accent-ink);box-shadow:9px 0 0 var(--accent-ink)}
.theme-tulip .nk-player-text{flex:1;display:flex;flex-direction:column;line-height:1.2}
.theme-tulip .nk-player-text b{font:400 1.35rem/1.1 var(--font-display);color:var(--accent)}
.theme-tulip .nk-player-text small{font-size:.72rem;color:var(--muted)}
.theme-tulip .nk-player-wave{display:flex;align-items:center;gap:3px;height:26px}
.theme-tulip .nk-player-wave i{width:4px;height:8px;border-radius:4px;background:var(--tl-frame)}
.theme-tulip:has(.nk-music.nk-playing) .nk-player-wave i{background:var(--accent);animation:tl-gelombang .9s ease-in-out infinite alternate}
.theme-tulip .nk-player-wave i:nth-child(2){animation-delay:.2s!important;height:14px}
.theme-tulip .nk-player-wave i:nth-child(3){animation-delay:.4s!important;height:20px}
.theme-tulip .nk-player-wave i:nth-child(4){animation-delay:.1s!important;height:12px}
.theme-tulip .nk-player-wave i:nth-child(5){animation-delay:.3s!important}
@keyframes tl-gelombang{from{height:6px}to{height:24px}}

/* ===== Save the Date ===== */
.theme-tulip .nk-bunting{display:none}
.theme-tulip .nk-savedate .nk-heading{display:inline-block;padding:4px 34px 6px;border-block:2.5px solid var(--accent);rotate:-3deg;font-size:2.2rem;
 clip-path:polygon(0 0,100% 0,calc(100% - 16px) 50%,100% 100%,0 100%,16px 50%);background:color-mix(in srgb,var(--surface) 70%,transparent)}
.theme-tulip .nk-savedate .nk-heading::after{display:none}
.theme-tulip .nk-calendar{max-width:340px;margin:10px auto 0}
.theme-tulip .nk-cal-month{font:600 1.35rem/1.2 var(--font-body);color:var(--ink);margin:0 0 10px}
.theme-tulip .nk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 0;color:var(--ink)}
.theme-tulip .nk-cal-grid b{font-weight:600;font-size:.82rem;color:var(--ink)}
.theme-tulip .nk-cal-grid span{position:relative;line-height:34px;z-index:0}
.theme-tulip .nk-cal-sun{color:var(--accent)!important}
.theme-tulip .nk-cal-day{color:var(--accent)!important;font-weight:700}
.theme-tulip .nk-cal-day::before{--tl-img:var(--tl-hati-garis);position:absolute;left:50%;top:50%;width:44px;height:42px;translate:-50% -50%;z-index:-1;animation:tl-detak 1.6s ease-in-out infinite}
@keyframes tl-detak{0%,100%{scale:1}15%{scale:1.15}30%{scale:1}45%{scale:1.1}}

/* ===== Mempelai: dua nama dalam satu bingkai, hati arsir di tengah ===== */
.theme-tulip .nk-ornament{--tl-img:var(--tl-pembatas);width:200px;height:34px}
.theme-tulip .nk-couple{gap:0;max-width:340px;margin:38px auto 0;padding:40px 18px}
.theme-tulip .nk-person h3{font-size:2.1rem;line-height:1.15}
.theme-tulip .nk-person p{color:var(--ink);font-size:.88rem}
.theme-tulip .nk-amp{font-size:0;line-height:0;margin:18px 0}
.theme-tulip .nk-amp::before{--tl-img:var(--tl-coret);width:84px;height:50px;margin:0 auto}

/* ===== Acara ===== */
.theme-tulip #acara::before{--tl-img:var(--tl-cincin);width:96px;height:66px;margin:0 auto 6px;animation:tl-melayang 5s ease-in-out infinite}
.theme-tulip #acara .nk-card{max-width:340px;padding:38px 22px 30px;margin:0 auto 40px}
.theme-tulip .nk-card h3{font-family:var(--font-display);font-size:2.3rem;color:var(--accent);line-height:1.1;-webkit-text-stroke:.3px var(--accent)}
.theme-tulip .nk-card p{color:var(--ink);font-size:.92rem}
.theme-tulip .nk-card .nk-strong{font-weight:600}

/* ===== Galeri: foto berbingkai kertas, miring bergantian ===== */
.theme-tulip #galeri .nk-heading::before{--tl-img:var(--tl-coret);width:70px;height:40px;margin:0 auto 4px}
.theme-tulip .nk-gallery{gap:16px 12px;padding:4px}
.theme-tulip .nk-photo{border-radius:8px;border:5px solid var(--surface);outline:2px solid var(--tl-frame);rotate:-2deg;overflow:visible;transition:rotate .3s,scale .3s}
.theme-tulip .nk-photo:nth-child(even){rotate:2deg}
.theme-tulip .nk-photo:first-child{rotate:-1deg;position:relative}
.theme-tulip .nk-photo:hover{rotate:0deg;scale:1.03}
.theme-tulip .nk-photo img{border-radius:4px}
.theme-tulip .nk-photo:first-child::after{--tl-img:var(--tl-hati);position:absolute;right:-12px;top:-14px;width:34px;height:34px;rotate:14deg}

/* ===== Kisah: pesawat kertas terbang membawa hati ===== */
.theme-tulip .nk-story .nk-heading::before{--tl-img:var(--tl-pesawat);width:150px;height:80px;margin:0 auto 6px;transition:translate 1.4s cubic-bezier(.2,.8,.3,1),opacity 1.4s}
.theme-tulip .nk-story:not(.nk-in) .nk-heading::before{translate:-120px 30px;opacity:0}
.theme-tulip .nk-story .nk-text{font-size:.98rem;line-height:1.9}

/* ===== Amplop digital: bingkai bergelombang warna aksen ===== */
.theme-tulip .nk-gifts>.nk-heading::before{--tl-img:var(--tl-hati-garis);width:44px;height:42px;margin:0 auto 6px}
.theme-tulip .nk-gift{position:relative;background:color-mix(in srgb,var(--surface) 55%,transparent);border:0;border-radius:0;max-width:320px;padding:34px 24px 30px;margin:0 auto 26px}
.theme-tulip .nk-gift::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--accent);
 -webkit-mask:var(--tl-ombak-h) top/32px 12px repeat-x,var(--tl-ombak-h) bottom/32px 12px repeat-x,var(--tl-ombak-v) left/12px 32px repeat-y,var(--tl-ombak-v) right/12px 32px repeat-y;
 mask:var(--tl-ombak-h) top/32px 12px repeat-x,var(--tl-ombak-h) bottom/32px 12px repeat-x,var(--tl-ombak-v) left/12px 32px repeat-y,var(--tl-ombak-v) right/12px 32px repeat-y}
.theme-tulip .nk-gift .nk-strong{font:400 1.8rem/1.1 var(--font-display);color:var(--accent)}
.theme-tulip .nk-number{font-family:var(--font-body);font-weight:600;color:var(--ink);letter-spacing:.14em}

/* ===== RSVP & ucapan ===== */
.theme-tulip .nk-form{background:var(--surface);padding:24px 20px;border-radius:22px;box-shadow:0 0 0 2px var(--tl-frame),0 8px 22px rgba(90,110,50,.12)}
.theme-tulip .nk-form input,.theme-tulip .nk-form select,.theme-tulip .nk-form textarea{background:var(--bg);border:1.5px solid var(--line);border-radius:14px;color:var(--ink)}
.theme-tulip .nk-form input:focus,.theme-tulip .nk-form select:focus,.theme-tulip .nk-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.theme-tulip .nk-msg{background:var(--surface);border:1.5px solid var(--line);border-left:4px solid var(--accent);border-radius:16px 16px 16px 4px}
.theme-tulip .nk-msg .nk-strong{color:var(--accent)}
.theme-tulip .nk-msg small{color:var(--muted);font-weight:400}

/* ===== Lagu (YouTube) ===== */
.theme-tulip .nk-yt{border-radius:18px;border:3px solid var(--tl-frame);overflow:hidden}

/* ===== Penutup: buket tulip di dua sudut bawah ===== */
.theme-tulip .nk-closing{position:relative;padding-bottom:190px}
.theme-tulip .nk-closing::before{--tl-w:120px;left:-8px;right:-8px;bottom:0;height:170px;z-index:1;animation:tl-angin 5s ease-in-out infinite;transform-origin:50% 100%}
.theme-tulip .nk-closing::after{content:"";position:absolute;left:-8px;right:-8px;bottom:0;height:170px;pointer-events:none;
 background:var(--tl-daun) left bottom/120px auto no-repeat,var(--tl-daun-r) right bottom/120px auto no-repeat;animation:tl-angin 5s ease-in-out infinite;transform-origin:50% 100%}
@keyframes tl-angin{0%,100%{transform:skewX(0)}50%{transform:skewX(-2deg)}}
.theme-tulip .nk-closing .nk-eyebrow{font-size:1.3rem}
.theme-tulip .nk-closing .nk-big{position:relative;z-index:2}
.theme-tulip .nk-footer{color:var(--muted)}
.theme-tulip .nk-footer a{color:var(--accent)}

/* ===== Menu bawah & tombol musik ===== */
.theme-tulip:not(.nk-locked) .nk-nav{display:flex}
.theme-tulip .nk-nav{background:color-mix(in srgb,var(--surface) 92%,transparent);border:2px solid var(--tl-frame)}
.theme-tulip .nk-nav a{color:var(--ink);font-family:var(--font-body)}
.theme-tulip .nk-nav a:hover,.theme-tulip .nk-nav a:focus-visible{background:var(--accent);color:var(--accent-ink)}
.theme-tulip .nk-music{bottom:86px;box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--tl-frame)}

@media (prefers-reduced-motion:reduce){
 .theme-tulip .nk-cover-inner::before,.theme-tulip .nk-cover-inner::after,.theme-tulip .nk-envelope i,.theme-tulip .nk-hero-photo img,.theme-tulip .nk-cal-day::before,
 .theme-tulip #acara::before,.theme-tulip .nk-closing::before,.theme-tulip .nk-closing::after,.theme-tulip .nk-player-wave i{animation:none!important}
 .theme-tulip .nk-envelope i:nth-child(2){translate:0 -40px}}
