/* ==========================================================
   DInvite — Tema "Koran" (Surat kabar tempo dulu)
   Halaman depan koran lama: kertas menguning, kepala koran huruf gotik,
   judul berita besar, foto bertitik (halftone) hitam-putih, garis kolom,
   rubrik (Agenda, Kronik, Iklan, Surat Pembaca), stempel tinta merah.
   Sampul berputar masuk seperti adegan koran di film lama, lalu tergulung.
   Hiasan dipasang koran.js; gerak dimatikan bila diminta perangkat.
   ========================================================== */
.t-koran {
    --bg: #e8dcc0; --bg-2: #e1d3b4; --card: #efe5cc; --ink: #1d1a16; --muted: #4b443a;
    --accent: #1d1a16; --accent-2: #a8241d; --on-accent: #efe5cc; --line: rgba(29,26,22,.55);
    --red: #a8241d; --rule: #1d1a16;
    --hero-rgb: 29,26,22; --tint-a: .35; --hero-ink: #1d1a16;
    --paper: url(../../img/themes/koran/kertas.jpg) 0 0 / 640px 640px;
    --dots: radial-gradient(circle at 50% 50%, rgba(20,16,12,.42) .9px, transparent 1.35px) 0 0 / 3.2px 3.2px;
    --head: 'Playfair Display', 'Times New Roman', serif;
    --body: 'Old Standard TT', 'Times New Roman', serif;
    --type: 'Special Elite', 'Courier New', monospace;
    --am-seam: transparent;
    color-scheme: light;
}
@keyframes krSpin { 0% { opacity: 0; transform: rotate(-900deg) scale(.04); } 70% { opacity: 1; } 100% { opacity: 1; transform: rotate(0) scale(1); } }
@keyframes krInk { from { opacity: 0; filter: blur(3px); letter-spacing: .12em; } to { opacity: 1; filter: blur(0); } }
@keyframes krStamp { 0% { opacity: 0; transform: rotate(-12deg) scale(2.2); } 60% { opacity: 1; transform: rotate(-12deg) scale(.92); } 100% { opacity: .92; transform: rotate(-12deg) scale(1); } }
@keyframes krTick { from { opacity: 0; transform: translateY(-35%); } to { opacity: 1; transform: none; } }
@keyframes krPress { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

/* ---------- Huruf & dasar ---------- */
.t-koran { font-family: var(--body); color: var(--ink); background: var(--paper), var(--bg); }
.t-koran .page { background: var(--paper), var(--bg); box-shadow: 0 0 0 1px rgba(29,26,22,.25), 0 0 60px rgba(60,40,10,.25); }
.t-koran .names { font-family: var(--head); font-weight: 900; font-style: normal; color: var(--ink); letter-spacing: -.02em; line-height: .95; text-transform: uppercase; }
.t-koran .names i { font-family: var(--head); font-style: italic; font-weight: 700; color: var(--red); text-transform: none; font-size: .7em; }
.t-koran .cover .names { font-size: clamp(2.5rem, 12.5vw, 3.6rem); }
.t-koran .names--lg { font-size: clamp(3rem, 15vw, 4.4rem); }
.t-koran .names--xl { font-size: clamp(3.4rem, 5vw, 5rem); }
.t-koran .names--md { font-size: 1.7rem; text-transform: none; letter-spacing: -.01em; line-height: 1.1; }
.t-koran .kicker { font-family: var(--type); font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--red); }
.t-koran .sec { padding: 3.4rem 1.4rem; }
.t-koran .sec__title { position: relative; margin-bottom: 1.4rem; padding: .55rem 0 .5rem; font-family: var(--head); font-weight: 900; font-size: clamp(1.9rem, 8.5vw, 2.4rem); line-height: 1; letter-spacing: -.01em; color: var(--ink);
    border-top: 3px double var(--rule); border-bottom: 1px solid var(--rule); }
.t-koran .sec__title::before { content: attr(data-rubrik); display: block; margin: -.2rem auto .55rem; width: max-content; max-width: 100%; padding: .2rem .7rem;
    font: 400 .66rem/1.2 var(--type); letter-spacing: .26em; text-transform: uppercase; background: var(--ink); color: var(--card); }
.t-koran .sec__title::after { display: none; }
.t-koran .cover__date, .t-koran .hero__date, .t-koran .aside__date, .t-koran .countdown__date { font-family: var(--type); font-style: normal; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.t-koran .lead-txt, .t-koran .person__parents, .t-koran .story { font-family: var(--body); font-size: 1.02rem; line-height: 1.7; color: var(--muted); }
.t-koran .quote { font-family: var(--body); font-style: italic; font-size: 1.12rem; line-height: 1.75; color: var(--ink); text-align: justify; hyphens: auto; }
.t-koran .quote::first-letter { float: left; margin: .32rem .5rem 0 0; font: 900 4.1rem/.72 var(--head); font-style: normal; color: var(--red); }
.t-koran .thanks { font-family: var(--head); font-style: italic; font-weight: 700; font-size: 2rem; color: var(--red); }
.t-koran .amp { font-family: var(--head); font-style: italic; font-weight: 700; color: var(--red); font-size: 2.6rem; }
.t-koran .ornament { color: var(--ink); }
.t-koran .divider { background: var(--rule); height: 1px; width: 70px; }

/* ---------- Tombol: label cetak tebal ---------- */
.t-koran .ibtn { border-radius: 0; border: 2px solid var(--ink); background: transparent; color: var(--ink); font: 700 .74rem/1 var(--type); letter-spacing: .14em; text-transform: uppercase; box-shadow: 3px 3px 0 var(--ink); transition: transform .15s, box-shadow .15s, background .2s, color .2s; }
.t-koran .ibtn:hover { background: var(--ink); color: var(--card); }
.t-koran .ibtn:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--ink); }
.t-koran .ibtn--solid { background: var(--ink); color: var(--card); }
.t-koran .ibtn--solid:hover { background: var(--red); border-color: var(--red); color: #fff; box-shadow: 3px 3px 0 var(--ink); }

/* ---------- Kepala koran (masthead) ---------- */
.t-koran .kr-mast { width: 100%; text-align: center; }
.t-koran .kr-mast__ears { display: flex; justify-content: space-between; gap: .6rem; font: 400 .58rem/1.25 var(--type); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.t-koran .kr-mast__ears span { max-width: 32%; padding: .25rem .35rem; border: 1px solid var(--rule); }
.t-koran .kr-mast__title { margin: .2rem 0 .25rem; font: 400 clamp(2.2rem, 11.5vw, 3.3rem)/1 'UnifrakturMaguntia', 'Old English Text MT', serif; color: var(--ink); letter-spacing: 0; white-space: nowrap; }
.t-koran .kr-mast__bar { display: flex; justify-content: space-between; gap: .5rem; padding: .3rem 0; border-top: 3px double var(--rule); border-bottom: 1px solid var(--rule);
    font: 400 .6rem/1.2 var(--type); letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.t-koran .kr-mast__bar span:nth-child(2) { text-align: center; }
.t-koran .kr-mast__bar span:last-child { text-align: right; }

/* ==========================================================
   SAMPUL — halaman depan berputar masuk, lalu tergulung ke atas
   ========================================================== */
.t-koran .cover, body.t-koran .cover.has-photo { background: radial-gradient(ellipse at 50% 40%, #3a332a, #15120e 75%); color: var(--ink); place-items: center; padding: 1.2rem; }
.t-koran .cover::before, .t-koran .cover::after { display: none; }
.t-koran .am-panel::before { background: radial-gradient(ellipse at 50% 40%, #3a332a, #15120e 75%); }
.t-koran .am-panel { transition-duration: 1.2s; }
.t-koran .cover__inner { position: relative; z-index: 2; width: min(360px, calc(100vw - 30px)); gap: .55rem; padding: 1rem 1rem 1.3rem; text-align: center;
    background: var(--paper), var(--bg); color: var(--ink); border-radius: 0;
    box-shadow: 0 30px 60px -20px rgba(0,0,0,.8), inset 0 0 50px rgba(120,80,20,.25);
    animation: krSpin 1.5s cubic-bezier(.2,.75,.25,1) .15s both; }
.t-koran .cover__inner::after { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 30px; margin-left: -15px; pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(80,55,20,.12) 45%, rgba(255,250,235,.25) 52%, transparent); }   /* lipatan koran */
.t-koran .cover .kicker { margin-top: .2rem; }
.t-koran .cover .names { margin: .1rem 0 0; }
.t-koran .cover__date { padding-bottom: .5rem; border-bottom: 1px solid var(--rule); width: 100%; }
.t-koran .cover__to { margin: .2rem 0 .5rem; padding: .7rem .8rem; border: 1.5px dashed var(--ink); background: rgba(255,250,235,.35); width: 100%; }
.t-koran .cover__to small { font-family: var(--type); font-size: .66rem; letter-spacing: .06em; color: var(--muted); }
.t-koran .cover__to strong { font: 700 1.3rem var(--head); color: var(--ink); }
.t-koran .cover .tm-house, .t-koran .cover .lx-tilt { display: none; }
.t-koran .kr-photo { position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid var(--rule); background: #cdbf9f; }
.t-koran .kr-photo::before { content: ''; position: absolute; inset: 0; background: var(--cover, var(--tp-hero, none)) center 28% / cover no-repeat; filter: grayscale(1) contrast(1.25) sepia(.28) brightness(1.02); }
.t-koran .kr-photo::after { content: ''; position: absolute; inset: 0; background: var(--dots); mix-blend-mode: multiply; opacity: .85; }
.t-koran .kr-photo--none::before { background: repeating-linear-gradient(45deg, rgba(29,26,22,.1) 0 2px, transparent 2px 7px), #d8caa9; filter: none; }
.t-koran .kr-photo--none > span { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; font: italic 700 1.05rem var(--head); color: var(--muted); }
.t-koran .kr-caption { margin-top: -.25rem; font: italic 400 .72rem/1.3 var(--body); color: var(--muted); text-align: left; width: 100%; }
.t-koran .kr-stamp { position: absolute; z-index: 3; right: -14px; top: 27%; width: 92px; pointer-events: none; opacity: .92; mix-blend-mode: multiply; animation: krStamp .55s cubic-bezier(.3,1.4,.5,1) 1.65s both; }
@media (max-height: 720px) { .t-koran .kr-photo { aspect-ratio: 16 / 7; } .t-koran .cover__inner { gap: .4rem; padding-block: .8rem 1rem; } }
body.am-has-opening.t-koran .cover.is-open .cover__inner { animation: none; opacity: 0; transform: translateY(-30px) rotate(-3deg); transition: opacity .45s, transform .6s; }

/* ==========================================================
   PEMBUKA — halaman depan dengan foto halftone & berita utama
   ========================================================== */
.t-koran .hero, .t-koran .aside, body.t-koran .hero.has-photo, body.t-koran .aside.has-photo { min-height: 100svh; background: var(--paper), var(--bg); color: var(--ink); place-items: center; padding: 1.4rem 1.2rem 2.4rem; }
.t-koran .hero .tm-house, .t-koran .aside .tm-house, .t-koran .hero .lx-tilt, .t-koran .aside .lx-tilt { display: none; }
.t-koran .hero__inner, .t-koran .aside__inner { width: 100%; max-width: 460px; gap: .65rem; }
.t-koran .hero .names, .t-koran .aside .names { color: var(--ink); text-shadow: none; }
.t-koran .hero .kicker, .t-koran .aside .kicker { color: var(--red); text-shadow: none; }
.t-koran .hero__date, .t-koran .aside__date { color: var(--ink); text-shadow: none; padding: .35rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); width: 100%; }
.t-koran .hero .kr-photo, .t-koran .aside .kr-photo { aspect-ratio: 4 / 3.2; }
.t-koran .kr-lead { font: 400 .95rem/1.6 var(--body); color: var(--muted); text-align: justify; hyphens: auto; columns: 2; column-gap: 1.1rem; column-rule: 1px solid rgba(29,26,22,.35); }
.t-koran .kr-lead b { font-family: var(--type); font-weight: 400; color: var(--ink); text-transform: uppercase; letter-spacing: .04em; }
.t-koran .hero__scroll { border-color: var(--ink); color: var(--ink); }
body.t-koran:not(.is-locked) .hero .names { animation: krPress 1.1s steps(14) .4s both; }
body.t-koran:not(.is-locked) .hero .kr-photo { animation: krInk 1.2s ease .2s both; }
.t-koran .hero .countdown b { color: var(--ink); }
.t-koran .hero .ibtn:not(.ibtn--solid) { color: var(--ink); border-color: var(--ink); }

/* ==========================================================
   ISI
   ========================================================== */
.t-koran .sec--tint, .t-koran .sec--countdown { background: var(--paper), var(--bg-2); }
.t-koran .sec + .sec { border-top: 1px solid rgba(29,26,22,.3); }
.t-koran .reveal { opacity: 0; transform: translateY(16px); transition: opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.t-koran .reveal.is-visible { opacity: 1; transform: none; }
.t-koran .reveal .sec__title { clip-path: inset(0 0 0 0); }
.t-koran .reveal:not(.is-visible) .sec__title { clip-path: inset(0 100% 0 0); }
.t-koran .reveal.is-visible .sec__title { transition: clip-path .9s steps(16) .15s; }
.t-koran .sec--quote { padding-inline: 1.6rem; }
.t-koran .sec--quote::before { content: var(--kr-q, 'Tajuk'); display: block; margin: 0 auto 1rem; width: max-content; padding: .2rem .7rem; font: 400 .66rem/1.2 var(--type); letter-spacing: .26em; text-transform: uppercase; background: var(--ink); color: var(--card); }
.t-koran .sec--quote .ornament, .t-koran .sec--quote .tm-divider { display: none; }

/* Foto: hitam-putih bertitik (halftone) seperti hasil cetak koran */
.t-koran .pframe__arch, .t-koran .gallery__item, .t-koran .gslider__slide, .t-koran .kr-ht { position: relative; overflow: hidden; }
.t-koran .pframe__arch img, .t-koran .gallery__item img, .t-koran .gslider__slide img, .t-koran .kr-ht img { filter: grayscale(1) contrast(1.25) sepia(.28); }
.t-koran .pframe__arch::after, .t-koran .gallery__item::after, .t-koran .gslider__slide::after, .t-koran .kr-ht::after { content: ''; position: absolute; inset: 0; background: var(--dots); mix-blend-mode: multiply; opacity: .8; pointer-events: none; }
.t-koran .kr-ht { display: block; }

/* Mempelai: profil berbingkai garis koran */
.t-koran .couple { gap: 2rem; }
.t-koran .pframe::before { border: 1px solid var(--rule); border-radius: 0; inset: -7px; box-shadow: none; }
.t-koran .pframe::after { display: none; }
.t-koran .pframe__arch { border-radius: 0; box-shadow: none; aspect-ratio: 3 / 4; background: #cdbf9f; }
.t-koran .pframe__init { font: 900 4.2rem var(--head); color: var(--ink); }
.t-koran .person .names--md { margin-top: .4rem; }
.t-koran .person__parents { font-style: italic; font-size: .92rem; }
.t-koran .person__soc .psoc { background: transparent; color: var(--ink); border: 1.5px solid var(--ink); border-radius: 0; }
.t-koran .kr-byline { display: block; margin-top: .4rem; font: italic .72rem var(--body); color: var(--muted); }

/* Hitung mundur: angka cetak tebal dalam kotak */
.t-koran .countdown { gap: 0; border: 2px solid var(--ink); background: rgba(255,250,235,.3); }
.t-koran .countdown div { flex: 1; min-width: 0; padding: .55rem .2rem; border: 0; border-left: 1px solid var(--ink); border-radius: 0; background: none; box-shadow: none; }
.t-koran .countdown div:first-child { border-left: 0; }
.t-koran .countdown b { display: block; overflow: hidden; font: 900 clamp(2rem, 10vw, 2.6rem)/1 var(--head); color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
.t-koran .countdown b.kr-tick { animation: krTick .45s steps(6); }
.t-koran .countdown small { font: 400 .58rem var(--type); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.t-koran .countdown__done { font-family: var(--head); font-style: italic; color: var(--ink); }

/* Acara: kotak agenda bergaris ganda */
.t-koran .events { gap: 1.2rem; }
.t-koran .event { border-radius: 0; border: 3px double var(--ink); background: rgba(255,250,235,.3); color: var(--ink); padding: 1.6rem 1.2rem 1.4rem; box-shadow: none; }
.t-koran .event::before { display: none; }
.t-koran .event h3 { font: 900 1.85rem/1 var(--head); text-transform: uppercase; letter-spacing: -.01em; color: var(--ink); }
.t-koran .event__date { font: 400 .78rem var(--type); letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.t-koran .event__time { font: italic 400 1.05rem var(--body); }
.t-koran .event__place { font: 700 1.05rem var(--head); }
.t-koran .event__addr { font-size: .92rem; color: var(--muted); }
.t-koran .sec--tint .event p, .t-koran .sec--tint .event small, .t-koran .sec--tint .event span { color: inherit; }
.t-koran .event__map { border-radius: 0; border: 1px solid var(--ink); filter: grayscale(.85) sepia(.35) contrast(1.05); }

/* Love story: kronik dengan baris tanggal ala berita */
.t-koran .lstory::before { background: var(--ink); width: 1px; }
.t-koran .lstory__dot { width: 11px; height: 11px; border-radius: 0; background: var(--ink); transform: rotate(45deg); box-shadow: 0 0 0 4px var(--bg); }
.t-koran .lstory__card { border-radius: 0; border: 1px solid var(--ink); background: rgba(255,250,235,.35); box-shadow: none; }
.t-koran .lstory__img { border-radius: 0; }
.t-koran .lstory__date { font: 400 .72rem var(--type); letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.t-koran .lstory__title, .t-koran .tale__title { font: 900 1.4rem/1.1 var(--head); color: var(--ink); text-transform: none; }
.t-koran .lstory__text { text-align: justify; hyphens: auto; }

/* Galeri: foto berita dengan keterangan */
.t-koran .gallery { gap: .6rem; }
.t-koran .gallery__item { border-radius: 0; border: 1px solid var(--ink); background: #cdbf9f; }
.t-koran .gslider__slide, .t-koran .gslider__slide img { border-radius: 0; }
.t-koran .gslider__nav { border-radius: 0; background: var(--card); color: var(--ink); border: 1.5px solid var(--ink); }
.t-koran .gslider__dots button { border-radius: 0; background: rgba(29,26,22,.3); }
.t-koran .gslider__dots button.is-active { background: var(--ink); }
.t-koran .gslider__hint { font: italic .8rem var(--body); color: var(--muted); }
.t-koran .gvideo { border-radius: 0; border: 1px solid var(--ink); }

/* Amplop: "Iklan" dengan garis gunting */
.t-koran .gifts { position: relative; padding: 1.3rem .9rem .9rem; border: 2px dashed var(--ink); }
.t-koran .gifts::before { content: '✂ gunting di sini'; position: absolute; top: -.72rem; left: 1rem; padding: 0 .4rem; background: var(--bg-2); font: 400 .7rem var(--type); color: var(--muted); letter-spacing: .06em; }
.t-koran .gift-atm { filter: grayscale(.55) sepia(.35) contrast(1.05); border-radius: 12px; }

/* RSVP: "Surat Pembaca" bergaya mesin tik */
.t-koran .rsvp, .t-koran .wish, .t-koran .qr-card, .t-koran .gift { border-radius: 0; border: 1px solid var(--ink); background: rgba(255,250,235,.45); color: var(--ink); box-shadow: 4px 4px 0 rgba(29,26,22,.85); }
.t-koran .ifld > span { font: 400 .7rem var(--type); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.t-koran .ifld input, .t-koran .ifld textarea, .t-koran .ifld select { border-radius: 0; border: 0; border-bottom: 1.5px solid var(--ink); background: transparent; padding-inline: .1rem; font-family: var(--type); color: var(--ink); }
.t-koran .ifld input:focus, .t-koran .ifld textarea:focus, .t-koran .ifld select:focus { outline: none; background: rgba(255,250,235,.6); box-shadow: 0 2px 0 var(--red); }
.t-koran .att label span, .t-koran .att button { border-radius: 0; }
.t-koran .wishes__title { font: 900 1.4rem var(--head); color: var(--ink); }
.t-koran .wish { box-shadow: none; border-width: 0 0 1px; background: transparent; padding-inline: 0; text-align: left; }
.t-koran .wish__head strong { font: 700 1.02rem var(--head); }
.t-koran .wish p { font-family: var(--body); font-style: italic; }
.t-koran .tag { border-radius: 0; font-family: var(--type); letter-spacing: .06em; text-transform: uppercase; font-size: .6rem; }

/* Penutup */
.t-koran .sec--closing { padding-block: 4rem 4.4rem; background: var(--paper), var(--bg); overflow: hidden; }
.t-koran .sec--closing .tm-house, .t-koran .sec--closing .lx-tilt { display: none; }
.t-koran .sec--closing .names--md { font-size: clamp(2.2rem, 10vw, 2.8rem); text-transform: uppercase; }
.t-koran .kr-end { display: block; width: 120px; margin: 0 auto .6rem; opacity: .9; mix-blend-mode: multiply; transform: rotate(-12deg); }
.t-koran .kr-colophon { margin-top: 1.4rem; padding-top: .6rem; border-top: 3px double var(--rule); font: 400 .62rem/1.5 var(--type); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.t-koran .kr-coffee { position: absolute; z-index: 0; right: -60px; bottom: 30px; width: 200px; opacity: .55; pointer-events: none; mix-blend-mode: multiply; }
.t-koran .ifoot { border-top: 1px solid var(--rule); background: var(--paper), var(--bg); }
.t-koran .inav { background: var(--card); border-top: 2px solid var(--ink); }

@media (min-width: 960px) {
    .t-koran .sec { padding-inline: 2.2rem; }
    .t-koran .aside { padding: 2.4rem 3rem; }
    .t-koran .aside__inner { max-width: 560px; }
    .t-koran .aside .kr-mast__title { font-size: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
    .t-koran .cover__inner, .t-koran .kr-stamp, body.t-koran .hero *, .t-koran .countdown b.kr-tick { animation: none !important; }
    .t-koran .reveal, .t-koran .reveal .sec__title { opacity: 1; transform: none; clip-path: none !important; transition: none; }
    .t-koran .am-panel { transition-duration: .01s; }
}

/* Tinta datar: tanpa bayangan teks bawaan sampul/pembuka */
.t-koran .cover *, .t-koran .hero *, .t-koran .aside * { text-shadow: none !important; }
@media (max-width: 440px) { .t-koran .kr-lead { columns: 1; text-align: left; hyphens: manual; } .t-koran .quote, .t-koran .lstory__text { text-align: left; } }
.t-koran .hero { padding-top: 3.8rem; }
