/* =========================================================================
   Tema 03 — Langit Malam (hariH)
   Skin GELAP di atas undangan/shared/undangan.css: palet biru malam + emas,
   tipografi Prata + Manrope, motif bintang. Karena latar gelap, skin ini juga
   meng-override komponen yang warnanya hardcoded di shared (badge RSVP, pesan
   error) + menjaga QRIS tetap terbaca pemindai. Ornamen SVG inline.
   Terdaftar di undangan_get_temas().
   ========================================================================= */

/* Font SELF-HOSTED sejak 2026-08-07 (G1.2) — alasan & cara membangunnya
   dijelaskan lengkap di tema-01/style.css. Dibangun oleh
   scripts/buat-font-web.py; sumber .ttf tetap dipertahankan untuk kartu OG.

   Tema ini paling ringan: 34 KB untuk kedua keluarga. Prata TIDAK punya face
   italic (sama seperti sebelumnya di Google Fonts — permintaannya memang tanpa
   `ital`), jadi ampersand italic di .mempelai-amp tetap oblique sintetis
   PERSIS seperti tampilan live sekarang. Ini disengaja: desain sedang
   dibekukan, jadi perubahan font tidak boleh mengubah rupa apa pun. */
@font-face {
    font-family: 'Prata';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../aset/font/prata-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Prata';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../aset/font/prata-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../../aset/font/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../../aset/font/manrope-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {

    /* C1a — kunci ke satu skema. Tanpa ini mode gelap PAKSA
       (Samsung Internet, Chrome Android) membalik warna undangan
       sendiri: krem jadi abu, dan kontras yang sudah dihitung batal. */
    color-scheme: only dark;

    /* KONSEP: dramatis mewah — kontras TINGGI yang disengaja antara didone
       tebal (Prata) dan sans sangat ringan (Manrope 300). Pasangan ini kosakata
       majalah mode: huruf display berat sebagai bintang, teks tipis sebagai
       latar yang menepi. Berbeda dari tema-01 (satu serif) dan tema-02 (satu
       sans) — di sini campurannya justru inti konsepnya, bukan kelalaian. */
    --font-display: 'Prata', Georgia, serif;
    --font-body: 'Manrope', system-ui, -apple-system, sans-serif;
    --font-label: 'Manrope', system-ui, -apple-system, sans-serif;

    --c-page: #0c1220;
    --c-bg: #131b2e;
    --c-surface: #1b2540;
    --c-ink: #e8e4d8;
    --c-ink-soft: #c2bcaa;  /* krem redup — evaluasi WCAG: abu kebiruan lama gagal AA di navy */
    --c-line: #2a3452;
    --c-accent: #c9a45c;      /* emas — tombol berlatar emas, teks navy */
    --c-accent-ink: #171f33;
    --c-gold: #c9a45c;
    /* U14 — tema gelap sudah lolos (6,68:1), jadi peran teks memakai nilai yang
       sama. Tokennya tetap ada supaya selektor bersama tidak bercabang. */
    --c-gold-teks: #c9a45c;
    --c-line-input: #6b7080;  /* U15 — 3,17:1; dicampur ke --c-ink, arah TERANG karena latarnya gelap */
    --radius: 4px;        /* tegas & tenang, memberi panggung ke tipografi */
    --radius-btn: 2px;
    --shadow: 0 14px 34px rgba(0, 0, 0, .35);

    /* Cover tanpa foto: langit malam bertabur bintang */
    --cover-fallback:
        radial-gradient(1.5px 1.5px at 22% 26%, rgba(240, 234, 217, .55) 50%, transparent 51%),
        radial-gradient(1px 1px at 66% 16%, rgba(240, 234, 217, .40) 50%, transparent 51%),
        radial-gradient(1.2px 1.2px at 82% 40%, rgba(240, 234, 217, .45) 50%, transparent 51%),
        radial-gradient(1px 1px at 38% 52%, rgba(240, 234, 217, .35) 50%, transparent 51%),
        radial-gradient(1.4px 1.4px at 12% 66%, rgba(240, 234, 217, .40) 50%, transparent 51%),
        radial-gradient(1px 1px at 54% 78%, rgba(240, 234, 217, .30) 50%, transparent 51%),
        linear-gradient(180deg, #223154 0%, #131c33 55%, #0b1122 100%);
    --cover-overlay: linear-gradient(180deg, rgba(8, 12, 24, .18) 0%, rgba(8, 12, 24, .66) 100%);
    --cover-ink: #f0ead9;

    /* Ornamen pembatas: garis — titik — bintang 4 sudut — titik — garis (emas) */
    --ornament: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20160%2040'%20fill='none'%3E%3Cpath%20d='M6%2020h40'%20stroke='%23c9a45c'%20stroke-width='1'/%3E%3Cpath%20d='M114%2020h40'%20stroke='%23c9a45c'%20stroke-width='1'/%3E%3Ccircle%20cx='52'%20cy='20'%20r='1.5'%20fill='%23c9a45c'/%3E%3Ccircle%20cx='108'%20cy='20'%20r='1.5'%20fill='%23c9a45c'/%3E%3Cpath%20d='M80%208l3%209%209%203-9%203-3%209-3-9-9-3%209-3z'%20fill='%23c9a45c'/%3E%3Cpath%20d='M64%2014l2%203-2%203-2-3z'%20fill='%23c9a45c'/%3E%3Cpath%20d='M96%2014l2%203-2%203-2-3z'%20fill='%23c9a45c'/%3E%3C/svg%3E");
}

/* Prata hanya punya weight 400 — jangan minta weight lain; sintesis browser
   merusak ketebalan didone-nya. Teks memakai Manrope 300 supaya kontras
   terhadap display tetap tajam. */
.section-title, .cover-names, .mempelai-nama, .penutup-nama, .cd-num, .acara-jenis { font-weight: 400; }
.section-intro, .prose, .penutup-teks, .lokasi-alamat, .mempelai-ortu { font-weight: 300; }
.btn, .cover-eyebrow, .cd-label, .field span { font-weight: 300; letter-spacing: .24em; }
.btn { text-indent: .24em; }

/* Di latar gelap, tint section harus LEBIH TERANG (bukan lebih gelap seperti
   default shared), dan butiran kertas diperhalus supaya tidak terbaca sebagai
   noise/derau pada navy pekat. */
:root {
    --tint-alt: rgba(255, 255, 255, .035);
    /* Konsep dramatis-sinematik: hanya tema ini yang menyalakan partikel emas */
    --particles: 1;
    --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.10'/%3E%3C/svg%3E");
}

/* Taburan bintang halus di latar luar kolom (terlihat di desktop) */
body.undangan-body {
    background-image: radial-gradient(rgba(201, 164, 92, .10) 1px, transparent 1.6px);
    background-size: 26px 26px;
}

/* Gate tanpa foto: bingkai emas tipis layar penuh */
.gate:not(.has-photo) .gate-inner { margin: 14px; box-shadow: inset 0 0 0 1px rgba(201, 164, 92, .5); }
.gate:not(.has-photo) .gate-inner::before {
    content: '';
    position: absolute;
    inset: 7px;
    box-shadow: inset 0 0 0 1px rgba(201, 164, 92, .22);
    pointer-events: none;
}

/* Tombol buka di atas foto/langit malam: emas transparan */
.gate .btn-open {
    background: rgba(201, 164, 92, .14);
    box-shadow: inset 0 0 0 1.5px rgba(201, 164, 92, .85);
    color: var(--cover-ink);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.arch-inisial { background: linear-gradient(180deg, #1d2946, #151f38); }

.section-intro, .prose { line-height: 1.85; }

/* Kartu acara: garis emas kiri di atas permukaan navy */
.acara-card { border-left: 2px solid var(--c-gold); }

/* ---- Penyesuaian mode gelap utk warna hardcoded di shared ---- */

.badge-hadir { background: rgba(122, 190, 140, .16); color: #9fd4ae; }
.badge-tidak { background: rgba(160, 168, 190, .14); color: #b9c0d2; }
.badge-ragu  { background: rgba(201, 164, 92, .18); color: #dcc08a; }
.rsvp-msg.error { color: #e08a71; }

/* Placeholder field agar terbaca di permukaan navy */
.field input::placeholder, .field textarea::placeholder { color: rgba(232, 228, 216, .35); }

/* QRIS wajib berlatar terang agar bisa dipindai dari layar gelap */
.qris img { background: #ffffff; padding: 10px; }

