/* =====================================================================
   nova — tata MOBILE (undangan berbentuk aplikasi)
   ===================================================================== */
.tata-mobile .nv-splash{flex-direction:column}
.nv-splash__isi .nv-monogram{margin:0 auto 1.4em}
.nv-splash__tgl{font:600 .85rem/1.4 var(--f-label);letter-spacing:.2em;text-transform:uppercase;color:var(--redup)}

/* cangkang aplikasi: penuh di HP, seperti ponsel di tengah pada layar lebar */
.nv-app{position:fixed;top:0;bottom:0;left:50%;width:100%;max-width:460px;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;background:var(--latar);overflow:hidden}
.nv-app[aria-hidden="true"]{visibility:hidden}
@media (min-width:700px){
  .nv-app{top:24px;bottom:24px;border-radius:34px;box-shadow:0 30px 80px rgba(0,0,0,.28),0 0 0 10px color-mix(in srgb,var(--teks) 88%,#000)}
}
.nv-appbar{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:color-mix(in srgb,var(--latar) 82%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,padding .3s}
.appbar-tipis .nv-appbar{border-bottom-color:var(--garis)}
.nv-appbar__merek{display:flex;align-items:center;gap:10px;min-width:0}
.nv-appbar__merek b{display:block;font:400 1.05rem/1.2 var(--f-judul);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nv-appbar__merek small{font:600 .68rem/1 var(--f-label);letter-spacing:.18em;color:var(--redup)}

.nv-layar-wrap{flex:1;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.nv-layar-wrap::-webkit-scrollbar{display:none}
.nv-layar{flex:0 0 100%;min-width:0;overflow-y:auto;overflow-x:hidden;scroll-snap-align:start;scroll-snap-stop:always;padding:14px 18px 120px;overscroll-behavior-y:contain;scrollbar-width:thin}
.nv-judul-layar{font:400 1.6rem/1.2 var(--f-judul);margin:1.4em 0 .5em}
.nv-layar>.nv-judul-layar:first-child{margin-top:.3em}
.nv-sub{color:var(--redup);margin-top:-.3em}

/* kartu */
.nv-kartu{background:var(--permukaan);border:1px solid var(--garis);border-radius:var(--radius);padding:1.3em 1.2em;margin:0 0 1em;box-shadow:var(--bayang);text-align:center}
.nv-kartu--rapat{padding:8px}
.nv-kartu--rapat .nv-peta{margin:0 0 8px}
.nv-kartu--rapat p{margin:0 0 6px}
.nv-judul-kartu{display:flex;align-items:center;justify-content:center;gap:.5em;font:400 1.2rem/1.3 var(--f-judul);margin:0 0 .9em}
.nv-judul-kartu .nv-ikon{color:var(--aksen)}
.nv-kartu--penutup .nv-nama-besar{margin-top:.2em}

/* hero beranda */
.nv-hero{position:relative;margin:0 0 1em;border-radius:var(--radius);overflow:hidden}
.nv-hero__foto img{width:100%;height:100%;object-fit:cover}
.nv-hero__teks{text-align:center}
.nv-hero__teks p{margin:0;color:var(--redup)}
.nv-hero .nv-nama-besar{font-size:clamp(2.2rem,10vw,3.2rem)}
.nv-hero--kartu .nv-hero__foto{aspect-ratio:4/5}
.nv-hero--kartu .nv-hero__teks{position:absolute;left:0;right:0;bottom:0;padding:5em 1em 1.3em;background:linear-gradient(transparent,rgba(0,0,0,.72));}
.nv-hero--kartu .nv-hero__teks *{color:#fff!important}
.nv-hero--bingkai{overflow:visible;padding-top:.4em}
.nv-hero--bingkai .nv-hero__foto{width:74%;margin:0 auto 1em;aspect-ratio:3/4;border-radius:999px 999px 18px 18px;overflow:hidden;border:6px solid var(--permukaan);box-shadow:var(--bayang)}
.nv-hero--lingkar{overflow:visible;padding-top:.6em}
.nv-hero--lingkar .nv-hero__foto{width:64%;margin:0 auto 1em;aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 0 0 8px color-mix(in srgb,var(--aksen) 18%,transparent),0 0 0 1px var(--aksen),var(--bayang)}
.nv-hero--lipat{overflow:visible;padding:.4em 0}
.nv-hero--lipat .nv-hero__foto{width:82%;margin:0 auto 1.1em;aspect-ratio:4/5;transform:rotate(-2.5deg);border:10px solid var(--permukaan);box-shadow:8px 10px 0 color-mix(in srgb,var(--aksen) 30%,transparent),var(--bayang)}
.nv-hero--pualam{overflow:visible}
.nv-hero--pualam .nv-hero__foto{aspect-ratio:1;border-radius:2px;outline:1px solid var(--aksen);outline-offset:-12px}
.nv-hero--pualam .nv-hero__teks{padding:1.2em 0 0}

/* pintasan */
.nv-cepat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 1em}
.nv-cepat>*{display:flex;flex-direction:column;align-items:center;gap:6px;padding:.9em .3em;border-radius:var(--radius-kecil);border:1px solid var(--garis);background:var(--permukaan);text-decoration:none;cursor:pointer;font:600 .74rem/1.2 var(--f-label);color:var(--teks)}
.nv-cepat .nv-ikon{width:24px;height:24px;color:var(--aksen)}

/* profil mempelai */
.nv-profil{position:relative;background:var(--permukaan);border:1px solid var(--garis);border-radius:var(--radius);overflow:hidden;text-align:center;padding:0 1.2em 1.4em;box-shadow:var(--bayang)}
.nv-profil__sampul{height:96px;background:linear-gradient(135deg,var(--aksen),var(--aksen-2));margin:0 -1.2em}
.nv-profil__foto{width:132px;height:132px;margin:-66px auto .8em;border-radius:50%;overflow:hidden;border:5px solid var(--permukaan);background:var(--permukaan-2)}
.nv-profil__foto img{width:100%;height:100%;object-fit:cover}
.nv-profil__nama{font:400 1.7rem/1.15 var(--f-skrip);margin:0 0 .4em}
.nv-profil__ortu{color:var(--redup);font-size:.93rem;margin:0}
.nv-dan{text-align:center;font:400 2.6rem/1 var(--f-skrip);color:var(--aksen);margin:.3em 0}
.nv-umpan{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid color-mix(in srgb,var(--aksen) 35%,transparent);display:grid;gap:1em}
.nv-umpan__item{position:relative;background:var(--permukaan);border:1px solid var(--garis);border-radius:var(--radius-kecil);padding:1em}
.nv-umpan__item::before{content:"";position:absolute;left:-26px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--aksen);box-shadow:0 0 0 4px var(--latar)}
.nv-umpan__kepala{display:flex;gap:.7em;align-items:center;margin:0 0 .6em}
.nv-umpan__no{font:400 1.5rem/1 var(--f-judul);color:var(--aksen)}
.nv-umpan__kepala b{display:block;font-weight:600}
.nv-umpan__kepala small{color:var(--redup);font-size:.78rem}
.nv-umpan__item p{margin:0;color:var(--redup);font-size:.94rem}

/* bilah tab */
.nv-tab{position:absolute;z-index:4;display:flex;justify-content:space-around;align-items:stretch}
.nv-tab button{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border:0;background:none;cursor:pointer;color:var(--redup);font:600 .66rem/1 var(--f-label);letter-spacing:.03em;transition:color .25s}
.nv-tab button .nv-ikon{width:22px;height:22px}
.nv-tab button.aktif{color:var(--aksen)}
.nv-tab__penanda{position:absolute;left:0;top:0;height:100%;transition:transform .35s cubic-bezier(.3,.8,.3,1),width .35s;pointer-events:none}
.nv-tab--pil{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));border-radius:999px;padding:6px;background:color-mix(in srgb,var(--permukaan) 70%,transparent);backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--garis);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.nv-tab--pil .nv-tab__penanda{top:6px;height:calc(100% - 12px);border-radius:999px;background:color-mix(in srgb,var(--aksen) 16%,transparent)}
.nv-tab--penuh{left:0;right:0;bottom:0;padding:4px 4px max(4px,env(safe-area-inset-bottom));background:var(--permukaan);border-top:1px solid var(--garis)}
.nv-tab--penuh .nv-tab__penanda::before{content:"";position:absolute;left:28%;right:28%;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--aksen)}
.nv-tab--garis{left:0;right:0;bottom:0;padding:0 8px max(6px,env(safe-area-inset-bottom));background:var(--latar);border-top:1px solid var(--garis)}
.nv-tab--garis button .nv-ikon{display:none}
.nv-tab--garis button{font:400 .78rem/1 var(--f-judul);letter-spacing:.06em;min-height:54px}
.nv-tab--garis .nv-tab__penanda::before{content:"";position:absolute;left:30%;right:30%;bottom:10px;height:1px;background:var(--aksen)}
.nv-tab--ikon{left:16px;right:16px;bottom:max(14px,env(safe-area-inset-bottom));border-radius:24px;padding:6px;background:var(--teks);box-shadow:0 14px 34px rgba(0,0,0,.3)}
.nv-tab--ikon button{color:color-mix(in srgb,var(--latar) 60%,transparent)}
.nv-tab--ikon button span{max-height:0;overflow:hidden;opacity:0;transition:.3s}
.nv-tab--ikon button.aktif{color:var(--teks)}
.nv-tab--ikon button.aktif span{max-height:2em;opacity:1}
.nv-tab--ikon .nv-tab__penanda{top:6px;height:calc(100% - 12px);border-radius:18px;background:var(--aksen-2)}
.nv-tab--cahaya{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));border-radius:20px;padding:4px;background:color-mix(in srgb,var(--latar) 70%,transparent);backdrop-filter:blur(16px);border:1px solid var(--garis)}
.nv-tab--cahaya button.aktif{text-shadow:0 0 10px var(--aksen)}
.nv-tab--cahaya button.aktif .nv-ikon{filter:drop-shadow(0 0 6px var(--aksen))}
.nv-tab--cahaya .nv-tab__penanda::before{content:"";position:absolute;left:35%;right:35%;bottom:3px;height:3px;border-radius:3px;background:var(--aksen);box-shadow:0 0 12px var(--aksen)}

/* lembar bawah */
.nv-lembar{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .28s}
.nv-lembar.buka{opacity:1}
.nv-lembar__isi{width:100%;max-width:460px;max-height:86vh;overflow:auto;background:var(--latar);border-radius:26px 26px 0 0;padding:10px 18px max(24px,env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .32s cubic-bezier(.3,.8,.3,1)}
.nv-lembar.buka .nv-lembar__isi{transform:none}
.nv-lembar__pegangan{display:block;width:100%;height:28px;border:0;background:none;cursor:pointer;position:relative;margin-bottom:6px}
.nv-lembar__pegangan::before{content:"";position:absolute;left:50%;top:10px;width:44px;height:5px;margin-left:-22px;border-radius:5px;background:var(--garis)}

.tata-mobile .nv-toast{bottom:110px}
