:root{--bg:#0b1633;--fg:#f3ecd9;--accent:#e2c26b;--on-accent:#0b1633;--card:rgba(226,194,107,.07);--head:'Marcellus',Georgia,serif;--fxanim:fxGlow;--fxdur:1.1s;--step:42ms;--cover-bg:radial-gradient(ellipse at 50% 0,#2a4a9a55,transparent 60%),linear-gradient(#050b1c66,#050b1cc8 60%,#050b1cf2)}
body{font-family:'Lora',Georgia,serif;background:radial-gradient(circle at 50% -10%,#1d3478 0,transparent 55%),var(--bg) fixed}
/* cover: foto zoom pelan (Ken Burns) + salib bercahaya */
.cover,.cover.clear{background-image:none}
.cover::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--cover-img,none) center 30%/cover no-repeat;animation:kbZoom 22s ease-in-out infinite alternate}
.cover::after{content:"";position:fixed;inset:0;z-index:-1;background:var(--cover-bg)}
@keyframes kbZoom{from{transform:scale(1)}to{transform:scale(1.14) translateY(-1.5%)}}
.cover .inner::before{content:"✝";display:block;font-size:2.6rem;line-height:1;color:var(--accent);text-shadow:0 0 26px var(--accent);animation:fade 2.2s both}
.cover h1{letter-spacing:.04em}
.sec h2{font-size:1.5rem;letter-spacing:.18em;text-transform:uppercase}
.sec h2::after{content:"✝";display:block;font-size:.9rem;margin-top:10px;letter-spacing:0}
.card{border:1px solid rgba(226,194,107,.5);border-radius:120px 120px 14px 14px / 40px 40px 14px 14px;box-shadow:0 0 0 4px rgba(226,194,107,.06)}
.btn{background:linear-gradient(135deg,#f3dc98,#c9a23f 55%,#f3dc98)}.btn.alt{background:transparent}
/* foto: bingkai lengkung seperti jendela gereja */
.pf{border-radius:999px 999px 10px 10px;border:2px solid var(--accent);padding:6px;outline:1px solid #e2c26b66;outline-offset:8px;box-shadow:0 0 40px #e2c26b30}
.story img{border-radius:999px 999px 14px 14px;aspect-ratio:3/4;max-width:300px;max-height:none;border:2px solid var(--accent);padding:5px}
.gal{grid-template-columns:repeat(2,1fr);gap:14px 12px;padding-bottom:30px}
.gal img,.gal img:first-child,.gal img:last-child:nth-child(even){grid-column:auto;grid-row:auto;aspect-ratio:3/4;max-height:none;border-radius:999px 999px 12px 12px;border:2px solid var(--accent);padding:4px}
.gal img:nth-child(even){margin-top:30px;margin-bottom:-30px}

/* ===== Animasi khas: bingkai lengkung terbuka dari bawah, cahaya berdenyut, bintang berkelip ===== */
:root{--pva:slArch;--pvd:1.5s;--pve:cubic-bezier(.65,0,.25,1);--cva:slGlow;--cvd:1.2s;--fxmove:slTwinkle}
@keyframes slArch{0%{opacity:1;clip-path:inset(100% 0 0 0);filter:brightness(2) drop-shadow(0 0 24px #e2c26b)}70%{filter:brightness(1.3) drop-shadow(0 0 14px #e2c26b)}100%{opacity:1;clip-path:inset(0 0 0 0);filter:none}}
@keyframes slGlow{0%{opacity:0;box-shadow:0 0 0 #e2c26b00;transform:scale(.96)}60%{opacity:1;box-shadow:0 0 36px #e2c26b66}100%{opacity:1;transform:none}}
.js .gal img.gi.in,.js .gal img.gi:first-child.in{animation:slArch 1.4s var(--d,0s) cubic-bezier(.65,0,.25,1) backwards}
@keyframes slTwinkle{0%{opacity:0;transform:translateY(0) scale(.3)}8%{opacity:.95;transform:translateY(8vh) scale(1.1)}16%{opacity:.25;transform:translateY(17vh) scale(.7)}24%{opacity:1;transform:translateY(26vh) scale(1.15)}100%{opacity:0;transform:translateY(115vh) scale(.6)}}
@keyframes slBreath{0%,100%{text-shadow:0 0 6px #e2c26b44}50%{text-shadow:0 0 26px #e2c26bcc,0 0 4px #e2c26b}}
.nm{animation:slBreath 3.6s ease-in-out infinite}
.pf{animation:slBreath 4s ease-in-out infinite}
.pvjs .pf.pv-in{animation:slArch 1.5s var(--d,0s) cubic-bezier(.65,0,.25,1) backwards,slBreath 4s 1.6s ease-in-out infinite}
