/* =====================================================================
   nova — tata SCROLL (editorial panjang, bab bernomor)
   ===================================================================== */
.tata-scroll .nv-sampul{background:var(--latar)}
.nv-progres-baca{position:fixed;top:0;left:0;right:0;height:3px;z-index:40;pointer-events:none}
.nv-progres-baca i{display:block;height:100%;background:var(--aksen);transform:scaleX(0);transform-origin:0 50%}
.nv-halaman{position:relative;z-index:1}
.nv-sempit{max-width:640px;margin-left:auto;margin-right:auto}
.nv-lebar-sedang{max-width:860px;margin-left:auto;margin-right:auto}
.nv-subjudul{font:400 1.4rem/1.3 var(--f-judul);margin:2em 0 .8em;text-align:center}
.nv-musik--apung{position:fixed;z-index:30;right:16px;bottom:max(16px,env(safe-area-inset-bottom));box-shadow:var(--bayang)}

/* navigasi bab */
.nv-babnav{position:fixed;z-index:30;left:0;right:0;top:3px;display:flex;gap:6px;overflow-x:auto;padding:8px 12px;background:color-mix(in srgb,var(--latar) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--garis);transform:translateY(-110%);transition:transform .4s;scrollbar-width:none}
.nv-babnav::-webkit-scrollbar{display:none}
.nv-babnav.tampil{transform:none}
.nv-babnav a{flex:none;display:flex;align-items:center;gap:.4em;padding:.4em .85em;border-radius:999px;border:1px solid var(--garis);text-decoration:none;font:600 .74rem/1.2 var(--f-label);color:var(--redup);transition:.25s}
.nv-babnav a i{font-style:normal;opacity:.6}
.nv-babnav a.aktif{background:var(--aksen);border-color:var(--aksen);color:var(--aksen-teks)}
@media (min-width:1080px){
  .nv-babnav{left:auto;right:22px;top:50%;bottom:auto;flex-direction:column;gap:2px;transform:translate(140%,-50%);background:none;border:0;backdrop-filter:none;overflow:visible;padding:0}
  .nv-babnav.tampil{transform:translate(0,-50%)}
  .nv-babnav a{border:0;padding:.35em 0;justify-content:flex-end;background:none!important;color:var(--redup)!important}
  .nv-babnav a span{opacity:0;transform:translateX(8px);transition:.25s}
  .nv-babnav a i{order:2;width:30px;text-align:right;opacity:1}
  .nv-babnav a:hover span,.nv-babnav a.aktif span{opacity:1;transform:none}
  .nv-babnav a.aktif i{color:var(--aksen)}
  .nv-babnav a.aktif::after{content:"";order:3;width:18px;height:1px;background:var(--aksen)}
}

/* ---------- hero ---------- */
.nv-hero{position:relative;min-height:100svh;overflow:hidden;display:grid}
.nv-hero__seni{position:absolute;inset:0;z-index:0;pointer-events:none}
.nv-hero__seni svg{width:100%;height:100%;display:block}
.nv-hero__foto{margin:0;position:relative;z-index:1}
.nv-hero__foto img{width:100%;height:100%;object-fit:cover}
.nv-hero__teks{position:relative;z-index:2}
.nv-hero__atas{font:600 .78rem/1.4 var(--f-label);letter-spacing:.32em;text-transform:uppercase;color:var(--aksen);margin:0 0 .7em}
.nv-hero__tgl{font:600 .9rem/1.4 var(--f-label);letter-spacing:.16em;text-transform:uppercase}
.nv-hero__baris{list-style:none;margin:1.2em 0 0;padding:0;display:grid;gap:.3em;font:600 .78rem/1.4 var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.nv-hero__turun{position:absolute;z-index:3;left:50%;bottom:22px;transform:translateX(-50%);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;color:var(--teks);animation:nv-ayun 2s ease-in-out infinite}
@keyframes nv-ayun{50%{transform:translate(-50%,8px)}}
/* majalah: sampul majalah */
.nv-hero--majalah{color:#fff}
.nv-hero--majalah .nv-hero__foto{position:absolute;inset:0}
.nv-hero--majalah .nv-hero__foto img{transform:scale(1.08) translateY(calc(var(--hy,0px)*.15))}
.nv-hero--majalah .nv-hero__foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 30%,transparent 55%,rgba(0,0,0,.75) 100%)}
.nv-hero--majalah .nv-hero__teks{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding:26px 22px 90px}
.nv-hero--majalah .nv-hero__atas{font:400 clamp(3.4rem,17vw,9rem)/.82 var(--f-judul);letter-spacing:-.02em;text-transform:uppercase;color:#fff;margin:0;order:-1}
.nv-hero--majalah .nv-nama-besar{color:#fff;font-size:clamp(2.6rem,11vw,6rem);margin-top:auto}
.nv-hero--majalah .nv-nama-besar em{color:var(--aksen-2)}
.nv-hero--majalah .nv-hero__tgl,.nv-hero--majalah .nv-hero__baris{color:#fff}
.nv-hero--majalah .nv-hero__turun{color:#fff}
/* lapisan: pemandangan berlapis + foto bulat */
.nv-hero--lapisan{place-items:center;text-align:center;padding:90px 20px 110px}
.nv-hero--lapisan .nv-hero__seni{transform:translateY(calc(var(--hy,0px)*.35))}
.nv-hero--lapisan .nv-hero__foto{width:min(62vw,290px);aspect-ratio:1;border-radius:50%;overflow:hidden;border:6px solid color-mix(in srgb,var(--latar) 80%,transparent);box-shadow:var(--bayang);margin:0 auto 1.2em}
.nv-hero--lapisan .nv-hero__teks{grid-row:2}
/* lengkung: jendela lengkung */
.nv-hero--lengkung{place-items:center;text-align:center;padding:96px 20px 110px}
.nv-hero--lengkung .nv-hero__foto{width:min(70vw,340px);aspect-ratio:3/4.2;border-radius:999px 999px 0 0;overflow:hidden;border:8px solid var(--permukaan);box-shadow:var(--bayang);margin:0 auto 1.4em}
.nv-hero--lengkung .nv-hero__teks{grid-row:2}
/* split: layar dibagi dua */
.nv-hero--split{grid-template-rows:62svh auto}
.nv-hero--split .nv-hero__foto{overflow:hidden}
.nv-hero--split .nv-hero__foto img{transform:translateY(calc(var(--hy,0px)*.25))}
.nv-hero--split .nv-hero__teks{padding:34px 24px 100px;background:var(--latar)}
@media (min-width:900px){.nv-hero--split{grid-template-columns:1.1fr 1fr;grid-template-rows:none}.nv-hero--split .nv-hero__teks{display:flex;flex-direction:column;justify-content:center;padding:60px 6vw}}
/* mentari: sinar retro */
.nv-hero--mentari{place-items:center;text-align:center;padding:96px 20px 120px}
.nv-hero--mentari .nv-hero__seni svg{animation:nv-putar 80s linear infinite;transform-origin:50% 50%;width:160vmax;height:160vmax;position:absolute;left:50%;top:50%;margin:-80vmax 0 0 -80vmax}
.nv-hero--mentari .nv-hero__foto{width:min(64vw,300px);aspect-ratio:3/4;border-radius:999px;overflow:hidden;border:8px solid var(--permukaan);box-shadow:10px 12px 0 var(--aksen-2);margin:0 auto 1.3em}
.nv-hero--mentari .nv-hero__teks{grid-row:2}

/* marquee nama */
.nv-marquee{overflow:hidden;border-top:1px solid var(--garis);border-bottom:1px solid var(--garis);padding:14px 0;background:var(--latar-2);position:relative;z-index:1}
.nv-marquee div{display:flex;width:max-content;gap:28px;align-items:center;animation:nv-geser 34s linear infinite;font:400 clamp(1.6rem,6vw,2.6rem)/1 var(--f-skrip);white-space:nowrap}
.nv-marquee i{font-style:normal;color:var(--aksen)}
.nv-marquee b{font-size:.6em;color:var(--aksen);font-weight:400}
@keyframes nv-geser{to{transform:translateX(-50%)}}

/* ---------- bab ---------- */
.nv-bab{position:relative;padding:clamp(72px,12vw,140px) 20px;background:var(--latar)}
.nv-bab:nth-of-type(even){background:var(--latar-2)}
.nv-bab__kepala{text-align:center;margin:0 auto clamp(36px,6vw,64px);max-width:720px}
.nv-bab__no{display:inline-flex;align-items:center;gap:.8em;font:600 .78rem/1 var(--f-label);letter-spacing:.24em;text-transform:uppercase;color:var(--aksen);margin:0 0 1em}
.nv-bab__no span{color:var(--redup)}
.nv-bab__no::before{content:"";width:34px;height:1px;background:var(--aksen)}
.nv-bab__judul{font:400 clamp(2.2rem,8vw,4rem)/1.05 var(--f-judul);margin:0}
.nv-bab__sub{color:var(--redup);margin:.8em 0 0}
.nv-bab__isi{text-align:center}

/* mempelai: bentang dua halaman */
.nv-sebar{display:grid;gap:26px;align-items:center;max-width:1040px;margin:0 auto}
.nv-sebar__foto{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius);max-width:440px;width:100%;justify-self:center}
.nv-sebar__foto img{width:100%;height:112%;object-fit:cover;transform:translateY(var(--py,0))}
.nv-sebar__teks{position:relative;text-align:center}
.nv-sebar__huruf{position:absolute;left:50%;top:-.42em;transform:translateX(-50%);font:400 9rem/1 var(--f-skrip);color:var(--aksen);opacity:.1;margin:0;pointer-events:none}
@media (min-width:760px){
  .nv-sebar{grid-template-columns:1fr 1fr;gap:60px}
  .nv-sebar--kanan .nv-sebar__foto{order:2}
  .nv-sebar__teks{text-align:left}
  .nv-sebar--kanan .nv-sebar__teks{text-align:right}
  .nv-sebar__huruf{left:0;transform:none}.nv-sebar--kanan .nv-sebar__huruf{left:auto;right:0}
}
.nv-dan{text-align:center;font:400 4rem/1 var(--f-skrip);color:var(--aksen);margin:28px 0}

/* kisah */
.nv-kisah{list-style:none;margin:0 auto;padding:0;max-width:980px}
.nv-kisah__no{font:400 3rem/1 var(--f-judul);color:var(--aksen)}
.nv-kisah__teks h3{font:400 1.6rem/1.2 var(--f-judul);margin:0 0 .4em}
.nv-kisah__teks p:last-child{color:var(--redup);margin:0}
.nv-kisah--zigzag{position:relative}
.nv-kisah--zigzag::before{content:"";position:absolute;left:24px;top:0;bottom:0;width:1px;background:var(--aksen);opacity:.4}
.nv-kisah--zigzag .nv-kisah__item{position:relative;padding:0 0 46px 70px}
.nv-kisah--zigzag .nv-kisah__no{position:absolute;left:0;top:0;width:50px;height:50px;border-radius:50%;background:var(--latar);border:1px solid var(--aksen);display:grid;place-items:center;font-size:1.1rem}
@media (min-width:860px){
  .nv-kisah--zigzag::before{left:50%}
  .nv-kisah--zigzag .nv-kisah__item{width:50%;padding:0 64px 56px 0;text-align:right}
  .nv-kisah--zigzag .nv-kisah__item:nth-child(even){margin-left:50%;padding:0 0 56px 64px;text-align:left}
  .nv-kisah--zigzag .nv-kisah__no{left:auto;right:-25px}
  .nv-kisah--zigzag .nv-kisah__item:nth-child(even) .nv-kisah__no{right:auto;left:-25px}
}
.nv-kisah--angka .nv-kisah__item{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--teks)}
.nv-kisah--angka .nv-kisah__no{font-size:clamp(3.4rem,12vw,6rem);color:var(--teks)}
.nv-kisah--kartu{display:grid;gap:16px}
@media (min-width:760px){.nv-kisah--kartu{grid-template-columns:repeat(2,1fr)}}
.nv-kisah--kartu .nv-kisah__item{background:var(--permukaan);border-radius:var(--radius);padding:26px;border:1px solid var(--garis);box-shadow:var(--bayang)}
.nv-kisah--garis .nv-kisah__item{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:0 0 34px;position:relative}
.nv-kisah--garis .nv-kisah__item::before{content:"";position:absolute;left:31px;top:58px;bottom:6px;border-left:1px dashed var(--aksen)}
.nv-kisah--garis .nv-kisah__item:last-child::before{display:none}
.nv-kisah--garis .nv-kisah__no{width:64px;height:64px;display:grid;place-items:center;border:2px solid var(--aksen);border-radius:6px;font-size:1.5rem}

/* acara */
.nv-tgl-raksasa{display:flex;justify-content:center;align-items:baseline;gap:.12em;font:400 clamp(3.8rem,18vw,11rem)/1 var(--f-judul);letter-spacing:-.03em;margin:0 0 .2em;color:var(--teks)}
.nv-tgl-raksasa i{font-style:normal;color:var(--aksen)}
.nv-acara-daftar{max-width:860px;margin:30px auto 0;display:grid;gap:16px}
@media (min-width:760px){.nv-acara-daftar:has(.nv-acara--kalender),.nv-acara-daftar:has(.nv-acara--tiket){grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}

/* galeri khusus scroll */
.nv-gal--majalah{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;max-width:1100px;margin:0 auto}
.nv-gal--majalah .nv-gal__item{border-radius:0}
.nv-gal--majalah .nv-gal__item:nth-child(5n+1){grid-column:span 6;aspect-ratio:16/9}
.nv-gal--majalah .nv-gal__item:nth-child(5n+2){grid-column:span 3;aspect-ratio:3/4}
.nv-gal--majalah .nv-gal__item:nth-child(5n+3){grid-column:span 3;aspect-ratio:3/4;margin-top:40px}
.nv-gal--majalah .nv-gal__item:nth-child(5n+4){grid-column:span 2;aspect-ratio:1}
.nv-gal--majalah .nv-gal__item:nth-child(5n){grid-column:span 4;aspect-ratio:4/3}
.nv-gal--panorama{position:relative}
.nv-panorama{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.nv-panorama__rel{display:flex;gap:18px;padding:0 6vw;will-change:transform}
.nv-panorama__item{flex:none;height:min(62svh,560px);aspect-ratio:3/4;padding:0;border:0;overflow:hidden;cursor:zoom-in;border-radius:var(--radius);background:var(--permukaan-2)}
.nv-panorama__item:nth-child(3n+2){aspect-ratio:16/10;align-self:flex-end}
.nv-panorama__item:nth-child(3n){aspect-ratio:1;align-self:flex-start}
.nv-panorama__item img{width:100%;height:100%;object-fit:cover}
.nv-gal--lengkung{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:900px;margin:0 auto}
@media (min-width:760px){.nv-gal--lengkung{grid-template-columns:repeat(4,1fr)}}
.nv-gal--lengkung .nv-gal__item{aspect-ratio:3/4.4;border-radius:999px 999px 8px 8px;border:5px solid var(--permukaan);box-shadow:var(--bayang)}
.nv-gal--lengkung .nv-gal__item:nth-child(even){margin-top:34px}
.nv-gal--kolase{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:22px 16px;max-width:900px;margin:0 auto}
@media (min-width:760px){.nv-gal--kolase{grid-template-columns:repeat(3,1fr)}}
.nv-gal--kolase .nv-gal__item{aspect-ratio:4/5;border:9px solid var(--permukaan);border-radius:2px;box-shadow:0 12px 26px rgba(0,0,0,.18);transform:rotate(-3deg)}
.nv-gal--kolase .nv-gal__item:nth-child(3n+2){transform:rotate(2.5deg) translateY(18px)}
.nv-gal--kolase .nv-gal__item:nth-child(3n){transform:rotate(-1deg)}
.nv-gal--kolase .nv-gal__item:hover{transform:rotate(0) scale(1.03);z-index:2}
.nv-gal--stiker{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:900px;margin:0 auto}
@media (min-width:760px){.nv-gal--stiker{grid-template-columns:repeat(4,1fr)}}
.nv-gal--stiker .nv-gal__item{aspect-ratio:1;border-radius:28px;border:4px solid var(--teks);box-shadow:6px 6px 0 var(--teks);position:relative;overflow:visible}
.nv-gal--stiker .nv-gal__item img{border-radius:24px}
.nv-gal--stiker .nv-gal__item:nth-child(odd){transform:rotate(-2deg)}
.nv-gal--stiker .nv-gal__item:nth-child(even){transform:rotate(2deg)}
.nv-gal--stiker .nv-gal__item::after{content:"♥";position:absolute;right:-10px;top:-12px;width:38px;height:38px;border-radius:50%;background:var(--aksen-2);color:var(--teks);display:grid;place-items:center;font-size:1rem;border:3px solid var(--teks)}

/* penutup */
.nv-bab--penutup{padding-bottom:0;overflow:hidden}
.nv-penutup__seni{margin-top:40px}
.nv-penutup__seni svg{display:block;width:100%;height:auto}
.nv-kaki{text-align:center;padding:22px 20px 80px;font-size:.78rem;color:var(--redup);background:var(--latar-2)}
.nv-kaki p{margin:0}
