/* PKP 1.4: responsive type, ambient light and floating information. */
body { isolation: isolate; }
.bg-blobs { pointer-events:none; background:linear-gradient(135deg,#edf4ff,#e4f3f7 45%,#f1ecfc); }
.blob { border-radius:50%; opacity:.38; animation-duration:26s; }
.blob-1 { border-radius:45% 55% 60% 40%; }
.blob-2 { border-radius:60% 40% 45% 55%; }
.bg-blobs::after { content:""; position:absolute; inset:0; opacity:.23; background-image:radial-gradient(#64748b 0.7px,transparent 0.7px); background-size:30px 30px; mask-image:linear-gradient(#000,transparent 85%); }
#beranda::before { content:""; position:absolute; width:520px; height:520px; max-width:90vw; max-height:90vw; right:-100px; top:12%; border:1px solid #fff9; border-radius:50%; box-shadow:0 0 0 60px #ffffff12,0 0 0 120px #ffffff0d; pointer-events:none; transform:translate(var(--pkp-bg-x,0px),var(--pkp-bg-y,0px)); }
.pkp-news-card { color:inherit; text-decoration:none; position:relative; }
#berita .pkp-news-card h3 { font-size:19px; line-height:1.45; letter-spacing:-.015em; overflow-wrap:anywhere; }
main article > h1.pkp-article-title { font-size:clamp(28px,3vw,38px); line-height:1.3; letter-spacing:-.025em; overflow-wrap:break-word; }
.pkp-floating-info { position:fixed; right:24px; bottom:24px; bottom:calc(24px + env(safe-area-inset-bottom)); width:320px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 130px); overflow:auto; z-index:45; background:#fffffff2; border:1px solid #fff; border-radius:24px; box-shadow:0 16px 55px #17326430; backdrop-filter:blur(16px); color:#0f172a; animation:pkpInfoIn .5s ease both; }
.pkp-floating-info[hidden] { display:none !important; }
.pkp-info-link { display:block; color:inherit; text-decoration:none; border-radius:inherit; }
.pkp-info-link:focus-visible { outline-offset:-4px; }
.pkp-info-image { display:block; width:100%; height:130px; object-fit:cover; }
.pkp-info-close { position:absolute; right:10px; top:10px; z-index:2; width:36px; height:36px; border:1px solid #e2e8f0; border-radius:50%; background:#fff; color:#334155; font-size:25px; line-height:1; cursor:pointer; box-shadow:0 2px 8px #0001; }
.pkp-info-body { padding:18px; }
.pkp-info-label { display:block; padding-right:32px; color:#1d4ed8; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.pkp-info-date { display:block; margin-top:4px; color:#64748b; font-size:11px; }
.pkp-info-body h2 { font-size:16px; line-height:1.4; font-weight:800; margin:9px 0 7px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pkp-info-body p { color:#475569; font-size:12px; line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pkp-info-button { display:inline-flex; gap:12px; margin-top:12px; font-size:12px; font-weight:700; color:#1d4ed8; }
@keyframes pkpInfoIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media (max-width:767px) {
 #berita .pkp-news-card h3 { font-size:17px; line-height:1.45; }
 main article > h1.pkp-article-title { font-size:clamp(24px,6.3vw,28px); line-height:1.35; margin-bottom:24px; }
 .pkp-floating-info { right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); width:300px; border-radius:20px; }
 .pkp-info-image { height:80px; }
 .pkp-info-body { padding:14px; }
 .pkp-info-body h2 { font-size:15px; -webkit-line-clamp:2; }
 .pkp-info-body p { display:none; }
 .pkp-info-button { margin-top:7px; }
 .blob { opacity:.25; }
}
.pkp-motion-off .blob, .pkp-motion-off .floating { animation:none !important; }
.pkp-motion-off .bg-blobs, .pkp-motion-off .pkp-hero-visual, .pkp-motion-off #beranda::before { transform:none !important; translate:none !important; }
@media (prefers-reduced-motion:reduce) { .pkp-floating-info { animation:none; } #beranda::before { transform:none; } }

/* 1.5: continuous ambient background, including small screens. */
@keyframes pkpAmbient { 0%,100% { transform:translate3d(0,0,0) scale(1); } 35% { transform:translate3d(45px,-35px,0) scale(1.08); } 70% { transform:translate3d(-35px,40px,0) scale(.95); } }
@keyframes pkpGradient { 0%,100% { background-position:0% 30%; } 50% { background-position:100% 70%; } }
.bg-blobs { background-size:180% 180%; animation:pkpGradient 32s ease-in-out infinite; }
.blob { animation:pkpAmbient 26s ease-in-out infinite; }
.blob-2 { animation-delay:-9s; animation-duration:31s; }
.blob-3 { animation-delay:-17s; animation-duration:35s; }
.pkp-tab-paused .bg-blobs,.pkp-tab-paused .blob { animation-play-state:paused; }
.pkp-motion-off .bg-blobs { animation:none !important; }
[data-pkp-stat], [data-pkp-ikm-number] { font-variant-numeric:tabular-nums; }
.pkp-stat-help { margin-top:12px; font-size:12px; color:#475569; text-align:left; position:relative; z-index:3; }
.pkp-stat-help summary { cursor:pointer; text-align:center; color:#1d4ed8; font-weight:700; padding:6px; }
.pkp-stat-help p { margin-top:8px; line-height:1.65; }
.pkp-housing-breakdown { margin-top:24px; padding:24px; border-radius:24px; background:#ffffffa8; border:1px solid #fff; }
.pkp-housing-breakdown h3 { font-size:16px; font-weight:800; margin-bottom:14px; }
.pkp-proportion { margin-top:14px; }
.pkp-proportion-label { display:flex; justify-content:space-between; gap:12px; font-size:13px; color:#334155; margin-bottom:7px; }
.pkp-meter { background:#dbe4f0; height:10px; border-radius:20px; overflow:hidden; width:100%; }
.pkp-meter-fill { height:100%; border-radius:inherit; background:linear-gradient(90deg,#2563eb,#22d3ee); transform-origin:left; }
.pkp-proportion-rtlh .pkp-meter-fill { background:linear-gradient(90deg,#e11d48,#fb923c); }
.pkp-data-note { font-size:12px; color:#64748b; margin-top:14px; line-height:1.6; }
.pkp-ikm-meter { width:100%; max-width:300px; margin-bottom:20px; }
.pkp-ikm-ring { stroke:#2563eb; }
@media (max-width:767px) { .blob { animation-duration:36s; filter:blur(44px); } .pkp-housing-breakdown { padding:18px; } }
@media (prefers-reduced-motion:reduce) { .bg-blobs,.blob { animation:none !important; } }
