:root{--bg:#fff3e8;--fg:#5b3340;--accent:#e2683a;--on-accent:#fff;--card:rgba(255,255,255,.8);--head:'DM Serif Display',Georgia,serif;--fxanim:fxWave;--fxdur:.9s;--step:48ms;--cover-bg:linear-gradient(#ffd9a855,#ff8a5a66 45%,#6b2e6acc 80%,#3a1a4af2)}
body{font-family:'DM Sans',system-ui,sans-serif;background:linear-gradient(#fff3e8,#ffe3d1 40%,#f6d3e3) fixed}
/* cover: foto naik seperti matahari terbit */
.cover,.cover.clear{background-image:none;color:#fff}
.cover::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--cover-img,none) center 30%/cover no-repeat;filter:saturate(1.18);animation:sunUp 6s ease-out both}
.cover::after{content:"";position:fixed;inset:0;z-index:-1;background:var(--cover-bg)}
@keyframes sunUp{from{transform:translateY(7%) scale(1.18)}to{transform:none}}
.cover .inner::before{content:"☀";display:block;font-size:2.8rem;line-height:1;color:#ffd27a;text-shadow:0 0 30px #ffb347;animation:sunRise 2.4s .2s both}
@keyframes sunRise{from{opacity:0;transform:translateY(46px) scale(.6)}to{opacity:1;transform:none}}
.sec h2{font-size:2.1rem;color:var(--accent)}
.sec h2::after{content:"";display:block;width:90px;height:6px;margin:10px auto 0;border-radius:6px;background:linear-gradient(90deg,#ffb347,#e2683a,#a24b8f)}
.card{border-radius:30px;box-shadow:0 12px 30px #e2683a22}
.btn{background:linear-gradient(135deg,#ff9a56,#e2683a);box-shadow:0 6px 18px #e2683a55}.btn.alt{background:transparent;box-shadow:none}
/* foto: bentuk organik */
.pf,.story img,.gal img{border:0;padding:0;outline:0;box-shadow:0 14px 34px #e2683a40}
.pf{width:min(60vw,230px);aspect-ratio:1;border-radius:63% 37% 54% 46%/55% 48% 52% 45%}
.person+.amp+.person .pf{border-radius:40% 60% 38% 62%/58% 42% 60% 40%}
.story img{aspect-ratio:1;max-width:320px;max-height:none;border-radius:48% 52% 46% 54%/56% 44% 56% 44%}
.gal{grid-template-columns:repeat(2,1fr);gap:14px}
.gal img,.gal img:first-child,.gal img:last-child:nth-child(even){grid-column:auto;grid-row:auto;aspect-ratio:1;max-height:none}
.gal img:nth-child(4n+1){border-radius:63% 37% 54% 46%/55% 48% 52% 45%}
.gal img:nth-child(4n+2){border-radius:40% 60% 38% 62%/58% 42% 60% 40%}
.gal img:nth-child(4n+3){border-radius:50% 50% 30% 70%/40% 60% 40% 60%}
.gal img:nth-child(4n){border-radius:28% 72% 50% 50%/50% 36% 64% 50%}

/* ===== Animasi khas: foto terbit seperti matahari, bentuk organik berdenyut, percikan naik ===== */
:root{--pva:fjSun;--pvd:1.4s;--pve:cubic-bezier(.2,.9,.25,1.15);--cva:fjUp;--cvd:.9s;--fxmove:fjSpark}
@keyframes fjSun{0%{opacity:0;transform:translateY(70px) scale(.7);filter:brightness(1.9) saturate(1.6)}60%{opacity:1;filter:brightness(1.2)}100%{opacity:1;transform:none;filter:none}}
@keyframes fjUp{from{opacity:0;transform:translateY(40px) scaleY(.92);transform-origin:50% 100%}to{opacity:1;transform:none}}
.js .gal img.gi.in,.js .gal img.gi:first-child.in{animation:fjSun 1.2s var(--d,0s) cubic-bezier(.2,.9,.25,1.15) backwards}
.js .gal img.gi:nth-child(3n+2).in{animation-delay:calc(var(--d,0s) + .12s)}
.fx span{top:auto!important;bottom:-8%}
@keyframes fjSpark{0%{opacity:0;transform:translate(0,0) scale(.5)}12%{opacity:.9}50%{transform:translate(24px,-55vh) scale(1.1)}100%{opacity:0;transform:translate(-18px,-115vh) scale(.4)}}
@keyframes fjBlob{0%,100%{border-radius:58% 42% 55% 45%/48% 56% 44% 52%}50%{border-radius:44% 56% 42% 58%/56% 44% 56% 44%}}
.pf{animation:fjBlob 9s ease-in-out infinite}
.pvjs .pf.pv-in{animation:fjSun 1.4s var(--d,0s) cubic-bezier(.2,.9,.25,1.15) backwards,fjBlob 9s 1.5s ease-in-out infinite}
@keyframes fjShine{0%,100%{filter:none}50%{filter:drop-shadow(0 0 14px #ff9a5c88)}}
.nm{animation:fjShine 3.4s ease-in-out infinite}
