/* PERKAPI app.css — DIBUAT OTOMATIS dari css/src/*.css oleh css/build.mjs. Jangan ubah berkas ini langsung. */

/* ===== src/site.css ===== */
:root{--tinta:#0e1f4d;--tinta2:#16307a;--kertas:#edeff4;--segel:#c8202f;--emas:#e2a81c;--garis:#c9cfdf;--teks:#121a33;--abu:#59627a;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--kertas);color:var(--teks);font:18px/1.65 "Source Serif 4",Georgia,serif}
h1,h2,h3{font-family:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;font-weight:800;line-height:.95;margin:0}
a{color:inherit}
.w{max-width:1180px;margin:0 auto;padding:0 24px}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--emas);outline-offset:3px}
header{position:sticky;top:0;z-index:20;background:var(--tinta);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
header .w{display:flex;align-items:center;gap:24px;height:68px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.lg{background:#fff;border-radius:8px;padding:3px;display:flex}
.lg img{height:48px;display:block}
.lt b{font:800 26px/1 "Big Shoulders Display",sans-serif;letter-spacing:.06em;display:block}
.lt small{font:600 11px/1.2 system-ui,sans-serif;opacity:.75;display:block;max-width:150px}
nav{margin-left:auto;display:flex;gap:22px;align-items:center;overflow-x:auto}
nav a{font:600 15px system-ui,sans-serif;text-decoration:none;color:#dfe6ff;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
nav a.on{color:#fff;border-color:var(--emas)}
@media (hover:hover) and (pointer:fine){nav a:hover{color:#fff;border-color:var(--emas)}}
nav a.cta{background:var(--segel);color:#fff;border:0;padding:9px 18px;border-radius:999px;font-weight:700}
.story{height:640vh;background:radial-gradient(120% 90% at 72% 42%,#1b3f9a 0,var(--tinta) 55%,#091434)}
.stage{position:sticky;top:68px;height:calc(100vh - 68px);min-height:540px;overflow:hidden;color:#fff;display:grid;grid-template-columns:1.05fr .95fr;align-items:center}
.stage canvas{position:absolute;right:0;top:0;width:55%;height:100%;visibility:hidden}
#glx{position:absolute;right:4%;top:0;width:44%;height:100%;display:flex;align-items:center;justify-content:center}
#glx img{max-width:80%;max-height:70%;background:#fff;border-radius:18px;padding:12px;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.beats{position:relative;z-index:2;height:64%;padding:0 24px 0 max(24px,calc((100vw - 1180px)/2 + 24px))}
.beat{position:absolute;left:max(24px,calc((100vw - 1180px)/2 + 24px));right:24px;top:50%;opacity:0;transform:translateY(calc(-50% + 36px));pointer-events:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.beat.on{opacity:1;transform:translateY(-50%);pointer-events:auto}
.beat h1{font-size:clamp(3.2rem,7.4vw,6.6rem)}
.beat h2{font-size:clamp(4rem,10vw,9rem)}
.beat p{font-size:1.2rem;max-width:27em;color:#cbd5f4;margin:18px 0 0}
.stamp{display:inline-block;margin-top:28px;background:var(--segel);color:#fff;padding:14px 28px;font:700 16px system-ui,sans-serif;text-decoration:none;border:0;border-radius:4px;cursor:pointer;transform:rotate(-2deg);box-shadow:0 6px 0 #7e1119;transition:transform .15s,box-shadow .15s}
.stamp:active{transform:rotate(-2deg) translateY(3px);box-shadow:0 3px 0 #7e1119}
@media (hover:hover) and (pointer:fine){.stamp:hover{transform:rotate(-2deg) translateY(3px);box-shadow:0 3px 0 #7e1119}}
.stamp:disabled{opacity:.6}
.rail{position:absolute;left:max(24px,calc((100vw - 1180px)/2 + 24px));bottom:26px;display:flex;gap:8px;align-items:center;color:#9fb0e6;font:600 13px system-ui,sans-serif}
.rail i{width:46px;height:3px;background:rgba(255,255,255,.22);transition:background .4s}
.rail i.on{background:var(--emas)}
.rail span{margin-left:10px}
.sec{padding:96px 0}
.sec.dark{background:var(--tinta);color:#fff}
.sec h2{font-size:clamp(2.8rem,6vw,5rem);margin:0 0 16px}
.lead{font-size:1.25rem;max-width:34em;color:var(--abu);margin:0}
.dark .lead{color:#bcc7ea}
.head{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;align-items:end;margin-bottom:44px}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.nums b{display:block;font:800 clamp(4rem,9vw,7.5rem)/.9 "Big Shoulders Display",sans-serif;color:var(--tinta2)}
.nums span{font:600 15px system-ui,sans-serif;color:var(--abu)}
.rw{display:grid;grid-template-columns:170px 1fr auto;gap:24px;padding:22px 8px;border-top:1px solid var(--garis);align-items:baseline;transition:background .2s}
.rw:first-child{border-top:2px solid var(--teks)}
@media (hover:hover) and (pointer:fine){.rw:hover{background:rgba(255,255,255,.7)}}
.rw b{font-size:1.2rem;display:block;line-height:1.3}
.rw p{margin:.25em 0 0;color:var(--abu);font-size:1rem}
.rw time,.rw .tg{font:600 .92rem system-ui,sans-serif;color:var(--abu)}
.rw .act{display:flex;gap:18px;font:600 .95rem system-ui,sans-serif;white-space:nowrap}
.rw .act a{color:var(--segel);text-decoration:underline;text-underline-offset:4px}
.two{display:grid;grid-template-columns:1.5fr 1fr;gap:56px}
.two .rw{grid-template-columns:1fr}
.two .rw time,.two .rw .tg{order:-1}
.film{position:relative;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:#091d40;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.film canvas,.film video,.film iframe{width:100%;height:100%;display:block;border:0}
.film .ctl{position:absolute;left:14px;right:14px;bottom:12px;display:flex;align-items:center;gap:12px;color:#fff}
.film button{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.18);backdrop-filter:blur(12px);color:#fff;cursor:pointer}
.bar{flex:1;height:4px;border-radius:4px;background:rgba(255,255,255,.25);overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--emas)}
.cta-band h2{font-size:clamp(3.4rem,9vw,8rem)}
.cta-band p{color:#bcc7ea;max-width:30em;font-size:1.2rem}
.pagehead{background:var(--tinta);color:#fff;padding:72px 0 64px;position:relative;overflow:hidden}
.pagehead h1{font-size:clamp(3.4rem,9vw,7.5rem)}
.pagehead p{color:#bcc7ea;font-size:1.2rem;max-width:32em;margin:18px 0 0}
.coin{position:absolute;right:max(24px,calc((100vw - 1180px)/2 + 24px));top:50%;margin-top:-80px;width:130px;height:150px;perspective:700px}
.coin img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:14px;padding:8px;box-shadow:0 18px 40px rgba(0,0,0,.45);animation:spin 9s ease-in-out infinite}
@keyframes spin{0%,100%{transform:rotateY(-30deg) rotateX(6deg)}50%{transform:rotateY(30deg) rotateX(-4deg)}}
.facts{display:grid;grid-template-columns:220px 1fr}
.facts dt,.facts dd{margin:0;padding:18px 0;border-top:1px solid var(--garis)}
.facts dt{font:700 15px system-ui,sans-serif;color:var(--abu)}
.ppl{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:32px}
.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s ease-out;transform-style:preserve-3d}
.person{margin:0}
.pimg{position:relative;background:var(--tinta)}
.pimg img,.pimg .ph{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05)}
.pimg:after{content:"";position:absolute;inset:0;background:var(--tinta2);mix-blend-mode:color;pointer-events:none}
.ph{display:flex;align-items:center;justify-content:center;color:#fff;font:800 6rem "Big Shoulders Display",sans-serif;filter:none!important}
.person figcaption{padding-top:12px}
.person b{display:block;font-size:1.15rem;line-height:1.25}
.person span{font:600 14px system-ui,sans-serif;color:var(--abu)}
.form{max-width:640px}
label{display:block;font:700 15px system-ui,sans-serif;margin:22px 0 4px}
input,select{width:100%;padding:10px 2px;border:0;border-bottom:2px solid var(--teks);background:transparent;font:inherit;color:var(--teks);border-radius:0}
input:focus,select:focus{outline:none;border-color:var(--segel)}
.qs p{font-weight:600;margin:26px 0 8px}
.opt{display:flex;gap:12px;padding:12px 14px;border:1px solid var(--garis);background:#fff;margin:6px 0;cursor:pointer;font:16px system-ui,sans-serif}
.opt input{width:auto;margin-top:4px}
.msg{padding:12px 14px;margin-top:18px;font:15px system-ui,sans-serif}
.ok{background:#e4f6ec;color:#0b5a2b}
.er{background:#fde8ea;color:#8a0d1f}
.demo{background:#fff4d6;color:#6b4a00}
.score{font:800 7rem/1 "Big Shoulders Display",sans-serif;color:var(--segel)}
footer{background:#091434;color:#a9b6e0;padding:36px 0;font:14px/1.6 system-ui,sans-serif}
footer .w{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
footer img{height:44px;background:#fff;border-radius:8px;padding:3px}
footer a{color:#fff}
@media (max-width:900px){.stage{grid-template-columns:1fr;align-items:end}
.stage canvas{width:100%;height:56%}
#glx{width:100%;right:0;height:56%}
.beats{height:44%}
.beat{top:auto;bottom:34px;transform:translateY(30px)}
.beat.on{transform:none}
.beat h1{font-size:clamp(2.6rem,11vw,4rem)}
.beat h2{font-size:clamp(3.2rem,16vw,5.5rem)}
.beat p{font-size:1.05rem}
.rail{bottom:12px}
.head,.two{grid-template-columns:1fr;gap:20px}
.rw{grid-template-columns:1fr;gap:6px}
.nums{grid-template-columns:1fr}
.facts{grid-template-columns:1fr}
.facts dt{border-bottom:0;padding-bottom:0}
.facts dd{border-top:0;padding-top:4px}
.lt small{display:none}
.coin{display:none}
nav a:not(.cta){font-size:14px}}
#pre{position:fixed;inset:0;z-index:100;background:radial-gradient(120% 90% at 50% 40%,#1b3f9a 0,#0e1f4d 55%,#091434);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;color:#cbd5f4;transition:opacity .6s,visibility .6s}
#pre.out{opacity:0;visibility:hidden}
#pre img{width:130px;background:#fff;border-radius:18px;padding:10px;box-shadow:0 24px 60px rgba(0,0,0,.5);animation:pulse 1.6s ease-in-out infinite}
#pre .bar{flex:none;width:180px;height:3px;border-radius:0}
#pre .bar i{width:40%;background:var(--emas);animation:slide 1.1s ease-in-out infinite}
#pre p{font:600 13px system-ui,sans-serif;margin:0}
@keyframes pulse{50%{transform:scale(1.05) rotateY(12deg)}}
@keyframes slide{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.why div{border-top:3px solid var(--tinta2);padding-top:16px}
.why h3{font-size:2.1rem;margin:0 0 8px}
.why p{margin:0;color:var(--abu);font-size:1rem}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px}
.steps b{display:block;font:800 5.5rem/.85 "Big Shoulders Display",sans-serif;color:var(--emas)}
.steps h3{font-size:1.9rem;margin:12px 0 6px;color:#fff}
.steps p{margin:0;color:#bcc7ea;font-size:1rem}
.faq details{border-top:1px solid var(--garis);padding:18px 0}
.faq details:last-child{border-bottom:1px solid var(--garis)}
.faq summary{cursor:pointer;font-weight:700;font-size:1.2rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font:800 1.6rem/1 system-ui,sans-serif;color:var(--segel)}
.faq details[open] summary:after{content:"\2212"}
.faq details p{margin:12px 0 0;color:var(--abu);max-width:44em}
.soc{display:flex;gap:14px;margin-left:auto}
@media (max-width:900px){.why,.steps{grid-template-columns:1fr}
.steps b{font-size:4rem}
.soc{margin-left:0}}
@media (prefers-reduced-motion:reduce){#pre img,#pre .bar i{animation:none}
*{transition:none!important;animation:none!important;scroll-behavior:auto!important}
.tilt{transform:none}}
:root{--langit:#7fb0ff;--navy-dalam:#091434}
.story{background:radial-gradient(90% 70% at 72% 30%,#16307a 0,#091434 68%)}
.stage canvas{left:0;right:auto;width:100%}
.stage:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(9,20,52,.9) 0,rgba(9,20,52,.55) 36%,rgba(9,20,52,0) 62%)}
.beat p{text-shadow:0 2px 18px rgba(9,20,52,.8)}
.beat h1,.beat h2{text-shadow:0 4px 30px rgba(9,20,52,.7)}
.rail i.on{background:var(--langit)}
.rail i:last-of-type.on{background:var(--emas)}
@media (max-width:900px){.stage:before{background:linear-gradient(0deg,rgba(9,20,52,.94) 0,rgba(9,20,52,.7) 34%,rgba(9,20,52,0) 62%)}
.stage canvas{height:100%}}
:root{--kaca:rgba(255,255,255,.07);--kaca2:rgba(255,255,255,.11);--garis-kaca:rgba(255,255,255,.16);--teks-terang:#e8eefc;--teks-redup:#b5c3ea;--merah-terang:#ff7a85}
body{background:#091434;color:var(--teks-terang)}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,#0a1840 0,#091434 100%)}
body:after{content:"";position:fixed;inset:-20%;z-index:-1;pointer-events:none;filter:blur(40px);
  background:radial-gradient(circle at 18% 28%,rgba(200,32,47,.28) 0,transparent 34%),radial-gradient(circle at 82% 22%,rgba(127,176,255,.26) 0,transparent 36%),radial-gradient(circle at 60% 85%,rgba(226,168,28,.14) 0,transparent 34%);
  animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(4%,-3%,0) scale(1.1)}}
header{background:rgba(9,20,52,.6);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border-bottom:1px solid var(--garis-kaca)}
.sec,.sec.dark{background:transparent;color:var(--teks-terang)}
.sec.dark{background:rgba(255,255,255,.055)}
.sec h2{color:#fff}
.lead,.dark .lead{color:var(--teks-redup)}
.pagehead{background:linear-gradient(180deg,rgba(14,31,77,.75),rgba(14,31,77,0))}
footer{background:rgba(9,20,52,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--garis-kaca)}
.rw,.rw:first-child{border:1px solid var(--garis-kaca);border-radius:16px;background:var(--kaca);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);margin-bottom:12px;padding:20px 22px;transition:background .25s,transform .25s var(--ease),border-color .25s}
@media (hover:hover) and (pointer:fine){.rw:hover{background:var(--kaca2);transform:translateY(-2px);border-color:rgba(255,255,255,.3)}}
.rw b{color:#fff}
.rw p{color:var(--teks-redup)}
.rw time,.rw .tg{color:#9fb0e6}
.rw .act a{color:var(--merah-terang)}
.why div{border:1px solid var(--garis-kaca);border-top:3px solid var(--langit);border-radius:16px;background:var(--kaca);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:22px}
.why h3{color:#fff}
.why p{color:var(--teks-redup)}
.nums b{color:var(--langit)}
.nums span{color:var(--teks-redup)}
.steps div{border:1px solid var(--garis-kaca);border-radius:16px;background:var(--kaca);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:22px}
.faq details{border:1px solid var(--garis-kaca);border-radius:16px;background:var(--kaca);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:18px 22px;margin-bottom:12px}
.faq details:last-child{border-bottom:1px solid var(--garis-kaca)}
.faq summary{color:#fff}
.faq details p{color:var(--teks-redup)}
.faq summary:after{color:var(--merah-terang)}
.facts dt,.facts dd{border-top:1px solid var(--garis-kaca)}
.facts dt{color:#9fb0e6}
.facts dd{color:#fff}
.person{background:var(--kaca);border:1px solid var(--garis-kaca);border-radius:18px;padding:10px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.pimg{border-radius:12px;overflow:hidden}
.person b{color:#fff}
.person span{color:var(--teks-redup)}
.form{background:var(--kaca);border:1px solid var(--garis-kaca);border-radius:22px;padding:30px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 24px 60px rgba(0,0,0,.35)}
label{color:#dbe4ff}
input,select{color:#fff;border-bottom:2px solid rgba(255,255,255,.4)}
input::placeholder{color:#8fa0cf}
input:focus,select:focus{border-color:var(--langit)}
select option{background:#0e1f4d;color:#fff}
.opt{background:var(--kaca);border:1px solid var(--garis-kaca);border-radius:12px;color:#fff}
@media (hover:hover) and (pointer:fine){.opt:hover{background:var(--kaca2)}}
.score{color:var(--merah-terang)}
.qs p{color:#fff}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.rw,.why div,.steps div,.faq details,.person,.form{background:rgba(14,31,77,.92)}
header{background:rgba(9,20,52,.96)}}
@media (prefers-reduced-motion:reduce){body:after{animation:none}}


/* ===== src/polish.css ===== */
/* Lapisan lama, sudah dibersihkan dari aturan yang tidak dipakai (Okt 2026). */
:root{/* ---- warna inti (diperkuat dari situs) ---- */
  --emas2:#ffd36b;--langit2:#a9c9ff;--merah2:#ff5a68;
  --grad-emas:linear-gradient(120deg,#ffe29a 0,#e2a81c 55%,#ffb347 100%);
  --grad-judul:linear-gradient(180deg,#fff 0,#cfe0ff 100%);
  --grad-merah:linear-gradient(135deg,#e5303f 0,#b01524 100%);
  --grad-langit:linear-gradient(135deg,#7fb0ff 0,#3b82f6 100%);
  --radius:20px;--radius-s:14px;
  --bayang:0 18px 50px rgba(2,8,28,.45);

  /* ---- palet tambahan: 5 keluarga warna aksen untuk variasi UI ---- */
  --nilam:    #6366f1;  --nilam-soft: #a5b4fc;  /* indigo: kategori, info modern */
  --nilam-deep:#4338ca;
  --zamrud:   #10b981;  --zamrud-soft:#34d399;  /* hijau: sukses, online, terverifikasi */
  --zamrud-deep:#047857;
  --kuning-madu:#f59e0b;--kuning-soft:#fbbf24; /* kuning hangat: peringatan, jadwal */
  --ungu:    #a855f7;   --ungu-soft:  #d8b4fe;  /* ungu: sorotan, premium */
  --ungu-deep:#7e22ce;
  --teal:    #14b8a6;   --teal-soft:  #5eead4;  /* teal: pending, draft */
  --teal-deep:#0f766e;

  /* ---- gradien bertema untuk komponen ---- */
  --grad-nilam: linear-gradient(135deg,#818cf8 0,#4338ca 100%);
  --grad-zamrud:linear-gradient(135deg,#10b981 0,#047857 100%);
  --grad-kuning:linear-gradient(135deg,#fbbf24 0,#d97706 100%);
  --grad-ungu:  linear-gradient(135deg,#c084fc 0,#7e22ce 100%);
  --grad-teal:  linear-gradient(135deg,#2dd4bf 0,#0f766e 100%);
  --grad-royal: linear-gradient(135deg,#1e3a8a 0,#0f172a 50%,#5b21b6 100%);
  --grad-aurora:linear-gradient(135deg,#0ea5e9 0,#6366f1 50%,#a855f7 100%);

  /* ---- bayangan berwarna (lebih hidup) ---- */
  --bayang-nilam:0 12px 32px rgba(99,102,241,.35);
  --bayang-zamrud:0 12px 32px rgba(16,185,129,.35);
  --bayang-emas:  0 12px 32px rgba(226,168,28,.45);
  --bayang-merah: 0 12px 32px rgba(200,32,47,.45);
  --bayang-ungu:  0 12px 32px rgba(168,85,247,.35);

  /* ---- fokus konsisten ---- */
  --focus-ring:0 0 0 3px rgba(127,176,255,.55);
  --shadow-sm:0 4px 12px rgba(2,8,28,.35);
  --shadow-md:0 10px 24px rgba(2,8,28,.45);
  --shadow-lg:0 24px 60px rgba(2,8,28,.55);}
html{scroll-padding-top:84px}
::selection{background:var(--emas);color:#091434}
.progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:60;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--emas) 0%,#fbbf24 25%,var(--merah-terang) 50%,var(--ungu-soft) 75%,var(--nilam-soft) 100%);pointer-events:none;box-shadow:0 0 12px rgba(226,168,28,.5)}
header{transition:background .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
header.scrolled{background:linear-gradient(180deg,rgba(9,20,52,.92) 0%,rgba(15,43,91,.85) 100%);box-shadow:0 10px 30px rgba(2,8,28,.45),0 1px 0 rgba(226,168,28,.25);border-bottom-color:rgba(255,255,255,.22)}
header.scrolled:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--emas) 30%,var(--merah2) 70%,transparent);opacity:.4}
nav a:not(.cta){position:relative;border-bottom:0;padding:8px 2px}
nav a:not(.cta):after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--emas),var(--merah2));
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
nav a.on:after{transform:scaleX(1)}
@media (hover:hover) and (pointer:fine){nav a:not(.cta):hover:after{transform:scaleX(1)}}
nav a.cta{background:linear-gradient(135deg,#e0303f,#b01524);box-shadow:0 6px 18px rgba(200,32,47,.45);transition:transform .2s var(--ease),box-shadow .2s}
@media (hover:hover) and (pointer:fine){nav a.cta:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(200,32,47,.6)}}
.lg{box-shadow:0 0 0 1px rgba(255,255,255,.35),0 6px 18px rgba(0,0,0,.35);transition:transform .35s var(--ease)}
@media (hover:hover) and (pointer:fine){.logo:hover .lg{transform:rotate(-4deg) scale(1.05)}}
.burger{display:none}
.stage:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1.4px);background-size:34px 34px;
  -webkit-mask-image:radial-gradient(70% 60% at 30% 50%,#000 0,transparent 75%);mask-image:radial-gradient(70% 60% at 30% 50%,#000 0,transparent 75%)}
.stage:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(40% 60% at 8% 15%,rgba(168,85,247,.18) 0,transparent 65%),
             radial-gradient(35% 50% at 95% 85%,rgba(16,185,129,.14) 0,transparent 65%),
             radial-gradient(30% 45% at 90% 10%,rgba(226,168,28,.16) 0,transparent 70%)}
.beat h1,.beat h2{text-shadow:none;filter:drop-shadow(0 6px 26px rgba(9,20,52,.7));letter-spacing:-.005em}
.beat h2{background:var(--grad-judul);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.beat h1 .gl{background:linear-gradient(120deg,#ffe29a 0,#e2a81c 40%,#ff7a85 80%,#c084fc 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.beat p{font-size:clamp(1.05rem,1.6vw,1.28rem)}
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:24px 0 0;padding:0}
.chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font:600 13px/1 system-ui,sans-serif;color:#e8eefc;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.chips li:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--emas);box-shadow:0 0 10px var(--emas)}
.chips li.c-emas:before{background:var(--emas);box-shadow:0 0 10px var(--emas)}
.chips li.c-emas{border-color:rgba(226,168,28,.45);background:rgba(226,168,28,.12)}
.chips li.c-nilam:before{background:var(--nilam-soft);box-shadow:0 0 10px var(--nilam-soft)}
.chips li.c-nilam{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.12)}
.chips li.c-zamrud:before{background:var(--zamrud-soft);box-shadow:0 0 10px var(--zamrud-soft)}
.chips li.c-zamrud{border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.12)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:28px}
.cta-row .stamp{margin-top:0}
.ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;font:700 15px system-ui,sans-serif;color:#fff;text-decoration:none;
  border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:background .25s,transform .25s var(--ease),border-color .25s}
@media (hover:hover) and (pointer:fine){.ghost:hover{background:rgba(255,255,255,.16);border-color:#fff;transform:translateY(-2px)}}
.ghost svg{width:16px;height:16px;transition:transform .25s var(--ease)}
@media (hover:hover) and (pointer:fine){.ghost:hover svg{transform:translateX(4px)}}
.rail i{border-radius:3px;height:4px}
.rail i{background:linear-gradient(90deg,rgba(226,168,28,.25),rgba(226,168,28,.6),rgba(127,176,255,.6))}
.stamp{position:relative;overflow:hidden;border-radius:999px;padding:15px 30px;letter-spacing:.01em;
  background:linear-gradient(135deg,#e5303f,#b01524);transform:rotate(-1.5deg) translate(var(--tx,0px),var(--ty,0px));
  box-shadow:0 8px 0 #7e1119,0 18px 34px rgba(200,32,47,.4);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.stamp:active{transform:rotate(-1.5deg) translate(var(--tx,0px),calc(var(--ty,0px) + 4px));box-shadow:0 4px 0 #7e1119,0 10px 24px rgba(200,32,47,.45)}
@media (hover:hover) and (pointer:fine){.stamp:hover{transform:rotate(-1.5deg) translate(var(--tx,0px),calc(var(--ty,0px) + 4px));box-shadow:0 4px 0 #7e1119,0 10px 24px rgba(200,32,47,.45)}}
.stamp:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shine 4.5s ease-in-out infinite}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
.marquee{position:relative;z-index:2;overflow:hidden;padding:18px 0;border-block:1px solid var(--garis-kaca);background:rgba(255,255,255,.04);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee .track{display:flex;width:max-content;gap:34px;align-items:center;animation:mq 38s linear infinite}
@media (hover:hover) and (pointer:fine){.marquee:hover .track{animation-play-state:paused}}
.marquee span{font:800 clamp(1.5rem,3.2vw,2.4rem)/1 "Big Shoulders Display","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:transparent;
  -webkit-text-stroke:1px rgba(207,224,255,.55);white-space:nowrap}
.marquee span:nth-of-type(3n){-webkit-text-stroke:0;background:var(--grad-emas);-webkit-background-clip:text;background-clip:text}
.marquee span:nth-of-type(6n+1){-webkit-text-stroke:1px rgba(168,85,247,.5);color:transparent}
.marquee span:nth-of-type(6n+2){-webkit-text-stroke:1px rgba(16,185,129,.5)}
.marquee span:nth-of-type(6n+4){-webkit-text-stroke:1px rgba(127,176,255,.55)}
.marquee span:nth-of-type(6n+5){-webkit-text-stroke:0;background:linear-gradient(120deg,#fbbf24,#f43f5e);-webkit-background-clip:text;background-clip:text}
.marquee i{width:10px;height:10px;transform:rotate(45deg);background:var(--merah-terang);flex:none;box-shadow:0 0 14px var(--merah-terang)}
.marquee i:nth-of-type(4n+1){background:#ffe29a;box-shadow:0 0 14px #ffe29a}
.marquee i:nth-of-type(4n+2){background:var(--nilam-soft);box-shadow:0 0 14px var(--nilam-soft)}
.marquee i:nth-of-type(4n+3){background:var(--zamrud-soft);box-shadow:0 0 14px var(--zamrud-soft)}
.marquee i:nth-of-type(4n){background:var(--ungu-soft);box-shadow:0 0 14px var(--ungu-soft)}
@keyframes mq{to{transform:translateX(-50%)}}
.sec{position:relative}
.sec h2{background:var(--grad-judul);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-bottom:.06em}
.head h2:before{content:"";display:block;width:56px;height:4px;border-radius:4px;margin-bottom:18px;background:linear-gradient(90deg,var(--emas),var(--merah-terang))}
.head{margin-bottom:48px}
.rw,.why>div,.steps>div,.nums>div,.faq details{position:relative;isolation:isolate;overflow:hidden}
.rw:before,.why>div:before,.steps>div:before,.nums>div:before,.faq details:before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;pointer-events:none;
  transition:opacity .35s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(127,176,255,.2),transparent 62%)}
@media (hover:hover) and (pointer:fine){.rw:hover:before,.why>div:hover:before,.steps>div:hover:before,.nums>div:hover:before,.faq details:hover:before{opacity:1}}
.why>div,.steps>div,.nums>div{border-radius:var(--radius);transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}
@media (hover:hover) and (pointer:fine){.why>div:hover,.steps>div:hover,.nums>div:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.34);box-shadow:var(--bayang)}}
.why>div{border-top-color:var(--langit)}
.why>div:nth-child(2){border-top-color:var(--merah-terang)}
.why>div:nth-child(3){border-top-color:var(--emas)}
.why>div:nth-child(4){border-top-color:var(--nilam-soft)}
.ico{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;margin-bottom:16px;color:#fff;
  background:linear-gradient(135deg,rgba(127,176,255,.35),rgba(127,176,255,.08));border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.25);transition:transform .35s var(--ease),box-shadow .35s}
@media (hover:hover) and (pointer:fine){.ico:hover{transform:rotate(-4deg) scale(1.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),var(--bayang)}}
.why>div:nth-child(2) .ico{background:linear-gradient(135deg,rgba(255,90,104,.4),rgba(255,90,104,.08))}
.why>div:nth-child(3) .ico{background:linear-gradient(135deg,rgba(226,168,28,.45),rgba(226,168,28,.08))}
.why>div:nth-child(4) .ico{background:linear-gradient(135deg,rgba(168,85,247,.4),rgba(168,85,247,.08))}
.ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.why h3{font-size:2rem}
.nums>div{padding:28px 26px;background:var(--kaca);border:1px solid var(--garis-kaca);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.nums b{background:var(--grad-emas);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-size:clamp(3.6rem,8vw,6.4rem)}
.steps b{background:var(--grad-emas);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-size:5rem}
.steps>div{padding:26px}
.steps>div:nth-child(1) b{background:linear-gradient(120deg,#a9c9ff,#7fb0ff);-webkit-background-clip:text;background-clip:text}
.steps>div:nth-child(2) b{background:var(--grad-emas);-webkit-background-clip:text;background-clip:text}
.steps>div:nth-child(3) b{background:linear-gradient(120deg,#5eead4,#10b981);-webkit-background-clip:text;background-clip:text}
.steps>div:nth-child(4) b{background:linear-gradient(120deg,#d8b4fe,#a855f7);-webkit-background-clip:text;background-clip:text}
.steps>div:not(:last-child):after{content:"";position:absolute;top:44px;right:-24px;width:24px;height:2px;background:linear-gradient(90deg,var(--emas),var(--merah-terang),var(--nilam-soft),transparent);z-index:2}
.film{border-radius:var(--radius);border:1px solid var(--garis-kaca);box-shadow:0 0 0 1px rgba(255,255,255,.05),0 40px 90px rgba(0,0,0,.55),0 0 80px rgba(127,176,255,.12)}
.film button{transition:background .2s,transform .2s var(--ease)}
@media (hover:hover) and (pointer:fine){.film button:hover{background:rgba(255,255,255,.34);transform:scale(1.08)}}
.rw,.rw:first-child{border-radius:var(--radius-s)}
.rw .tg{display:inline-block;justify-self:start;padding:4px 10px;border-radius:999px;background:rgba(127,176,255,.14);border:1px solid rgba(127,176,255,.3);color:var(--langit2);font-size:.8rem;letter-spacing:.02em}
.rw .act a{transition:color .2s}
@media (hover:hover) and (pointer:fine){.rw .act a:hover{color:#fff}}
.faq details{border-radius:var(--radius-s);transition:border-color .3s,background .3s}
.faq details[open]{border-color:rgba(255,255,255,.34);background:var(--kaca2)}
.faq summary{min-height:44px;align-items:center}
.faq summary:after{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:rgba(255,90,104,.14);transition:transform .3s var(--ease)}
.faq details[open] summary:after{transform:rotate(180deg)}
.cta-band{overflow:hidden;text-align:center;padding:120px 0}
.cta-band:before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(50% 70% at 50% 100%,rgba(200,32,47,.4),transparent 70%),radial-gradient(40% 50% at 15% 10%,rgba(127,176,255,.22),transparent 70%),radial-gradient(40% 50% at 85% 10%,rgba(226,168,28,.16),transparent 70%)}
.cta-band .w{position:relative}
.cta-band h2{font-size:clamp(3.4rem,10vw,9rem)}
.cta-band h2:before{margin-inline:auto}
.cta-band p{margin:0 auto 4px}
.pagehead{isolation:isolate}
.pagehead:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 90% at 85% 0,rgba(127,176,255,.28),transparent 70%),
    radial-gradient(45% 80% at 0 100%,rgba(200,32,47,.22),transparent 70%),
    radial-gradient(35% 60% at 50% 50%,rgba(168,85,247,.12),transparent 70%)}
.pagehead:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.55;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(80% 100% at 50% 0,#000,transparent 80%);mask-image:radial-gradient(80% 100% at 50% 0,#000,transparent 80%)}
.pagehead h1{background:var(--grad-judul);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.pagehead>.w{position:relative}
.pagehead>.w:before{content:"";display:block;width:80px;height:5px;border-radius:999px;margin-bottom:22px;
  background:linear-gradient(90deg,var(--emas) 0%,var(--merah-terang) 30%,var(--ungu-soft) 60%,var(--nilam-soft) 100%);box-shadow:0 0 24px rgba(226,168,28,.4)}
input,select{transition:border-color .25s,background .25s;border-radius:8px 8px 0 0}
input:focus,select:focus{background:rgba(255,255,255,.06)}
.opt{transition:background .2s,border-color .2s,transform .2s var(--ease)}
@media (hover:hover) and (pointer:fine){.opt:hover{transform:translateX(3px);border-color:rgba(255,255,255,.34)}}
.opt:has(input:checked){border-color:var(--langit);background:rgba(127,176,255,.16)}
footer{margin-top:0;position:relative}
footer:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--emas),var(--merah-terang),var(--ungu-soft),var(--nilam-soft),var(--zamrud-soft));opacity:.6}
footer img{border:1px solid rgba(255,255,255,.18)}
.glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(circle,rgba(127,176,255,.16),transparent 62%);will-change:transform}
.glow.on{opacity:1}
.totop{position:fixed;right:20px;bottom:20px;z-index:40;width:48px;height:48px;border-radius:50%;border:1px solid var(--garis-kaca);color:#fff;cursor:pointer;
  display:grid;place-items:center;background:rgba(9,20,52,.75);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--bayang);
  opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s var(--ease),visibility .3s,background .2s}
.totop.show{opacity:1;visibility:visible;transform:none}
@media (hover:hover) and (pointer:fine){.totop:hover{background:var(--segel)}}
.totop svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:900px){.steps>div:not(:last-child):after{display:none}
.cta-row .ghost{padding:12px 18px}
.chips{margin-top:18px}
.js .burger{display:inline-flex;margin-left:auto;width:46px;height:46px;border-radius:14px;border:1px solid var(--garis-kaca);background:var(--kaca);color:#fff;
    align-items:center;justify-content:center;cursor:pointer;transition:background .2s}
.burger svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.burger .x{display:none}
header.open .burger .x{display:block}
header.open .burger .m{display:none}
.js header nav{position:absolute;top:100%;left:0;right:0;margin:0;flex-direction:column;align-items:stretch;gap:0;overflow:visible;
    padding:10px 24px 22px;background:rgba(9,20,52,.97);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--garis-kaca);
    box-shadow:0 24px 40px rgba(2,8,28,.5);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s,transform .3s var(--ease),visibility .3s}
.js header.open nav{opacity:1;visibility:visible;transform:none}
.js header nav a:not(.cta){padding:15px 4px;font-size:17px;border-bottom:1px solid rgba(255,255,255,.09)}
.js header nav a:not(.cta):after{display:none}
.js header nav a.cta{margin-top:14px;text-align:center;padding:14px 18px;font-size:16px}
.marquee{padding:12px 0}}
@media (max-width:480px){.totop{right:14px;bottom:14px}}
@media (prefers-reduced-motion:reduce){.stamp:after,.marquee .track{animation:none!important}
.marquee .track{transform:none;flex-wrap:wrap;width:auto;justify-content:center;padding:0 24px}
.glow{display:none}}
@media (min-width:901px){.beats{height:calc(100% - 78px);align-self:start}
.beat h1{font-size:clamp(2.8rem,6vw,5.6rem)}
.beat h2{font-size:clamp(3.6rem,9vw,8rem)}
.chips{margin-top:20px}
.chips li{padding:7px 12px;font-size:12.5px}
.cta-row{margin-top:22px}}
@media (min-width:901px) and (max-height:760px){.beat h1{font-size:clamp(2.4rem,5vw,4.4rem)}
.beat p{margin-top:12px}
.chips{display:none}}
@media (max-width:900px){.chips,.cta-row .ghost{display:none}
.beat h1{font-size:clamp(2.4rem,10.5vw,3.6rem)}}
@media (max-width:520px){.rail span{display:none}}
.pagehead h1{padding-bottom:.14em;margin-bottom:-.14em}
.sec h2{padding-bottom:.14em}
.beat h2,.beat h1 .gl{padding-bottom:.08em}
.prog{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px}
.prog button{all:unset;box-sizing:border-box;cursor:pointer;display:block;padding:16px 18px;border:1px solid var(--garis-kaca);border-radius:14px;background:var(--kaca);color:#dbe4ff;transition:background .2s,border-color .2s,transform .2s var(--ease)}
.prog button b{display:block;font:800 1.5rem/1.1 "Big Shoulders Display",sans-serif;color:#fff;margin-bottom:4px}
.prog button span{display:block;font:14px/1.4 system-ui,sans-serif}
@media (hover:hover) and (pointer:fine){.prog button:hover{background:var(--kaca2);transform:translateY(-2px)}}
.prog button:focus-visible{outline:2px solid var(--langit);outline-offset:2px}
.prog button.on{border-color:var(--langit);background:rgba(127,176,255,.16)}
.pj{margin:18px 0 0;font:15px system-ui,sans-serif;color:#dbe4ff}
.pj b{color:#fff}
.steps[hidden],#xl[hidden]{display:none}
@media (max-width:640px){.prog{grid-template-columns:1fr}}
.dx{margin-top:26px;border:1px solid var(--garis-kaca);border-radius:14px;padding:14px 18px;background:var(--kaca)}
.dx summary{cursor:pointer;font:700 16px system-ui,sans-serif;color:#fff}
.dx[open] summary{margin-bottom:4px}
.kode{font:800 1.8rem/1 "Big Shoulders Display",sans-serif;letter-spacing:.12em;margin-left:8px}
#jd[hidden],#dx[hidden],#res3[hidden]{display:none}
.rw .nf{display:block;width:100%;max-width:520px;aspect-ratio:16/9;object-fit:cover;border-radius:10px;margin:0 0 12px}
.rw .nb{display:flex;gap:18px;align-items:flex-start}
.rw .nb>div{min-width:0}
.rw .nf{width:200px;max-width:none;aspect-ratio:4/3;object-fit:cover;border-radius:10px;margin:0;flex:none}
.rw.hf{align-items:start}
.rw .nl{color:inherit;text-decoration:none}
@media (hover:hover) and (pointer:fine){.rw .nl:hover{text-decoration:underline}}
.rw .nl::after{content:"";position:absolute;inset:0;z-index:1}
.rw:has(.nl){cursor:pointer}
@media (max-width:700px){.rw .nb{flex-direction:column}
.rw .nf{width:100%}}
.baca{max-width:760px;margin:0 auto;color:#e8edff}
.baca .nf{display:block;width:100%;max-width:none;aspect-ratio:16/9;object-fit:cover;border-radius:14px;margin:0 0 18px}
.baca h2{font-size:2rem;line-height:1.2;margin:.2em 0 .6em}
.baca p{font-size:1.1rem;line-height:1.75}
.baca .meta{display:flex;gap:14px;align-items:center}
.baca a{color:#9cc2ff}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cb{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font:15px/1.4 system-ui,sans-serif}
.cb input{width:auto;margin-top:3px}
.cb a{color:#9cc2ff}
.prosa{max-width:760px;margin:0 auto;color:#e8edff}
.prosa h2{margin:1.6em 0 .4em;font-size:1.4rem}
.prosa p,.prosa li{font-size:1.05rem;line-height:1.7}
.prosa a{color:#9cc2ff}
#fk textarea{width:100%;min-height:120px}
html.lite *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html.lite body:after{display:none}
:root{--sukses:#10b981;       /* hijau zambrud - status berhasil, online, terverifikasi */
  --sukses-soft:#34d399;  /* hover/ring */
  --info:#3b82f6;         /* biru elektrik - info, badge kategori */
  --info-soft:#60a5fa;
  --grad-sukses:linear-gradient(135deg,#10b981 0,#059669 100%);
  --grad-info:linear-gradient(135deg,#3b82f6 0,#1d4ed8 100%);
  --focus-ring:0 0 0 3px rgba(127,176,255,.55);
  --shadow-sm:0 4px 12px rgba(2,8,28,.35);
  --shadow-md:0 10px 24px rgba(2,8,28,.45);
  --shadow-lg:0 24px 60px rgba(2,8,28,.55);}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:700 12px/1 system-ui,sans-serif;letter-spacing:.02em;border:1px solid transparent}
.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;flex:none}
.pill.ok{background:rgba(16,185,129,.14);color:var(--sukses-soft);border-color:rgba(16,185,129,.35)}
.pill.info{background:rgba(59,130,246,.14);color:var(--info-soft);border-color:rgba(59,130,246,.35)}
.pill.warn{background:rgba(226,168,28,.14);color:var(--emas2);border-color:rgba(226,168,28,.35)}
.pill.zamrud{background:rgba(16,185,129,.16);color:var(--zamrud-soft);border-color:rgba(16,185,129,.4)}
.msg.ok{border-left:3px solid var(--sukses);background:linear-gradient(135deg,rgba(16,185,129,.14),rgba(16,185,129,.04));color:#a7f3d0}
.msg.info{border-left:3px solid var(--info);background:linear-gradient(135deg,rgba(59,130,246,.14),rgba(59,130,246,.04));color:#bfdbfe}
.msg.er{border-left:3px solid var(--segel);background:linear-gradient(135deg,rgba(200,32,47,.16),rgba(200,32,47,.04));color:#fecdd3}
.msg.demo{border-left:3px solid var(--emas);background:linear-gradient(135deg,rgba(226,168,28,.16),rgba(226,168,28,.04));color:#fde68a}
.msg.zamrud{border-left:3px solid var(--zamrud-soft);background:linear-gradient(135deg,rgba(16,185,129,.18),rgba(16,185,129,.04));color:#a7f3d0}
input:focus-visible,select:focus-visible,textarea:focus-visible,.opt:focus-visible,button:focus-visible,.ghost:focus-visible,a.stamp:focus-visible,nav a:focus-visible{outline:3px solid var(--langit);outline-offset:3px;border-radius:8px}
.crumb{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font:600 13px system-ui,sans-serif;color:var(--teks-redup);margin-bottom:14px}
.crumb a{color:inherit;text-decoration:none;opacity:.7;transition:opacity .2s}
@media (hover:hover) and (pointer:fine){.crumb a:hover{opacity:1;color:#fff}}
.crumb span[aria-hidden]{opacity:.5}
.crumb [aria-current="page"]{color:#fff;opacity:1}
.empty{padding:48px 24px;text-align:center;border:1px dashed var(--garis-kaca);border-radius:var(--radius);background:rgba(255,255,255,.025)}
.empty svg{width:44px;height:44px;fill:none;stroke:var(--langit2);stroke-width:1.6;margin-bottom:14px;opacity:.7}
.empty h3{margin:0 0 6px;font-size:1.2rem}
.empty p{margin:0;color:var(--teks-redup);font:15px system-ui,sans-serif}
.empty.nila svg{stroke:var(--nilam-soft)}
.empty.emas svg{stroke:var(--emas2)}
.empty.zamrud svg{stroke:var(--zamrud-soft)}
.empty.merah svg{stroke:var(--merah2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:999px;font:700 15px system-ui,sans-serif;text-decoration:none;cursor:pointer;min-height:46px;border:0;transition:transform .2s var(--ease),box-shadow .2s,background .2s,border-color .2s,color .2s}
.btn.emas{background:var(--grad-emas);color:#1a1200;box-shadow:0 6px 18px rgba(226,168,28,.4)}
@media (hover:hover) and (pointer:fine){.btn.emas:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(226,168,28,.55);filter:brightness(1.05)}}
.btn.zamrud{background:linear-gradient(135deg,#34d399,#047857);color:#022c1f;box-shadow:0 6px 18px rgba(16,185,129,.4)}
@media (hover:hover) and (pointer:fine){.btn.zamrud:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(16,185,129,.55)}}
.btn.ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.3)}
@media (hover:hover) and (pointer:fine){.btn.ghost:hover{background:rgba(255,255,255,.14);border-color:#fff}}
button,input,select,textarea{transition:border-color .2s,background .2s,box-shadow .2s,transform .15s var(--ease)}
button{cursor:pointer}
button:active:not(:disabled),.stamp:active,.btn:active{transform:translateY(1px)}
button:disabled{cursor:not-allowed;opacity:.55}
.tag{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font:700 11.5px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent;transition:transform .2s var(--ease),box-shadow .2s}
@media (hover:hover) and (pointer:fine){.tag:hover{transform:translateY(-1px)}}
.note{position:relative;padding:18px 22px 18px 56px;border-radius:var(--radius-s);background:var(--kaca);border:1px solid var(--garis-kaca);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.note:before{content:"";position:absolute;left:18px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%}
.note b{color:#fff;display:block;font:700 .95rem/1.3 system-ui,sans-serif;letter-spacing:.02em;text-transform:uppercase;margin-bottom:6px}
.note p{margin:0;color:var(--teks-redup);font:.95rem/1.55 system-ui,sans-serif}
@keyframes shineSweep{0%,65%{left:-100%}100%{left:200%}}
.rw .tg{display:inline-block;justify-self:start;padding:4px 10px;border-radius:999px;background:rgba(127,176,255,.14);border:1px solid rgba(127,176,255,.3);color:var(--langit2);font-size:.8rem;letter-spacing:.02em}
.rw .tg.emas{background:rgba(226,168,28,.14);border-color:rgba(226,168,28,.4);color:var(--emas2)}
.rw .tg.zamrud{background:rgba(16,185,129,.14);border-color:rgba(16,185,129,.4);color:var(--zamrud-soft)}
.rw .tg.merah{background:rgba(255,90,104,.14);border-color:rgba(255,90,104,.4);color:var(--merah2)}
@media (prefers-contrast:more){:root{--garis-kaca:rgba(255,255,255,.45);--kaca:rgba(255,255,255,.12);--kaca2:rgba(255,255,255,.18)}
body{color:#fff}
.stamp{outline:2px solid #fff;outline-offset:2px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media (max-width:700px){.sec{padding:64px 0}
.head{margin-bottom:32px;gap:18px}
.btn{padding:13px 18px;min-height:44px;font-size:14px}}


/* ===== src/a11y.css ===== */
:root{--focus-ring: 0 0 0 3px var(--emas), 0 0 0 5px rgba(11, 26, 70, 0.6);}
:focus{outline: none;}
:focus-visible{outline: 3px solid var(--emas);
  outline-offset: 3px;
  border-radius: 2px;}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline: 3px solid var(--emas);
  outline-offset: 3px;
  box-shadow: var(--focus-ring);}
header.scrolled :focus-visible{outline-color: #ffd36b;}
.skip-link{position: fixed; top: -100px; left: 12px; z-index: 200;
  background: var(--emas); color: #091434;
  padding: 12px 20px; font: 700 14px system-ui, sans-serif;
  text-decoration: none; border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,.4);
  transition: top .2s ease;}
.skip-link:focus,.skip-link:focus-visible{top: 12px; outline: 3px solid #091434; outline-offset: 2px;}
.skip-3d{position: absolute; top: 14px; right: 14px; z-index: 5;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; font: 700 13px system-ui, sans-serif;
  color: #e8eefc; text-decoration: none; border-radius: 999px;
  background: rgba(9, 20, 52, .55); border: 1px solid rgba(255, 255, 255, .25);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: opacity .25s, background .25s, border-color .25s, transform .25s;}
@media (hover:hover) and (pointer:fine){.skip-3d:hover{background: rgba(9, 20, 52, .82); border-color: #fff; transform: translateY(-1px);}}
.skip-3d:focus-visible{outline: 3px solid var(--emas); outline-offset: 3px;
  opacity: 1; background: rgba(9, 20, 52, .92);}
@media (max-width: 900px){.skip-3d{top: 10px; right: 10px; font-size: 12px; padding: 8px 12px;}}
.sec.dark .lead,.sec.dark .nums span,.sec.dark .rw p,.sec.dark .rw .tg,.sec.dark .rw time,.sec.dark .cta-band p,.beat p,.beat ul li,.chips li,.cta-row .ghost{color: rgba(255, 255, 255, 0.96) !important;}
footer,footer a,footer span{color: #e6ecff;}
@media (hover:hover) and (pointer:fine){footer a:hover{color: var(--emas);}}
.stamp{background: var(--segel); color: #ffffff;}
@media (hover:hover) and (pointer:fine){.stamp:hover{background: #d11b29;}}
input,select,textarea{border: 2px solid var(--garis);
  border-radius: 6px;
  padding: 10px 12px;
  background: #ffffff;
  transition: border-color .15s, box-shadow .15s;}
input:focus,select:focus,textarea:focus{border-color: var(--segel);
  box-shadow: 0 0 0 3px rgba(200, 32, 47, 0.25);
  outline: none;}
.sec.dark input,.sec.dark textarea{background: rgba(255,255,255,0.08); color: #ffffff; border-color: rgba(255,255,255,0.4);}
.msg{border-radius: 6px; padding: 14px 18px;}
.msg:focus-visible{outline: 3px solid var(--emas);
  outline-offset: 3px;}
.msg.ok{background: #d4edda; color: #0a4a2a; border-left: 4px solid #1e7e3a;}
.msg.er{background: #fde8ea; color: #7a0d1c; border-left: 4px solid var(--segel);}
.msg.demo{background: #fff4d6; color: #6b4a00; border-left: 4px solid #d59b18;}
[aria-invalid="true"]{border-color: var(--segel) !important;
  box-shadow: 0 0 0 3px rgba(200, 32, 47, .25);}
[aria-invalid="true"]:focus-visible{outline: 3px solid var(--segel);
  outline-offset: 2px;}
@keyframes a11y-spin{ to { transform: rotate(360deg); } }
button,.stamp,.ghost,.cta,.opt,summary,nav a.cta{min-height: 44px;}
nav a:not(.cta){padding: 10px 0;}
.film button{min-width: 44px; min-height: 44px;}
.rw time,.rw .tg,.rw .act a{color: var(--abu);}
.sec.dark .rw time,.sec.dark .rw .tg{color: #b8c2dc;}
@media print{header,footer,#pre,.stage canvas,.film,.progress,.stamp,.ghost,.cta-row,nav,.marquee{display: none !important;}
body{background: #fff !important; color: #000 !important; font-size: 12pt;}
.sec{padding: 24px 0 !important;}
a{color: #000 !important; text-decoration: underline !important;}
.rw{border-top: 1px solid #999 !important;}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;}
.stage canvas{display: none;}
#glx img{display: block;}}
.sr-only{position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}
@media (prefers-contrast: more){:root{--tinta: #000814; --segel: #ff0033; --emas: #ffd000;}
.beat p,.chips li{color: #fff !important;}
.lead{color: rgba(255,255,255,0.95) !important;}
footer{background: #000;}}


/* ===== src/motion.css ===== */
:root{--spring:linear(0,.18 5%,.55 11%,.9 17%,1.07 23%,1.1 28%,1.05 35%,.99 43%,.98 52%,1.005 64%,1.002 78%,1)}
@media (prefers-reduced-motion:no-preference){html:not(.lite) .stamp,html:not(.lite) .ghost,html:not(.lite) nav a.cta{transition-timing-function:var(--spring);transition-duration:.5s}
html:not(.lite) .stamp:active,html:not(.lite) .ghost:active,html:not(.lite) nav a.cta:active{transform:scale(.96);transition-duration:.12s}
html:not(.lite) form:not([hidden]),html:not(.lite) #res:not([hidden]),html:not(.lite) #res2:not([hidden]),html:not(.lite) #res3:not([hidden]){animation:panelIn .5s cubic-bezier(.2,.7,.2,1) both}
html:not(.lite) .msg:not([hidden]){animation:msgIn .4s cubic-bezier(.2,.7,.2,1) both}
html:not(.lite) .msg.er:not([hidden]){animation:msgIn .4s cubic-bezier(.2,.7,.2,1) both,shake .45s .1s}
html:not(.lite) .opt:has(input:checked){border-color:#e0b24a;background:rgba(224,178,74,.14);animation:pop .4s var(--spring)}
@supports (animation-timeline:view()){html:not(.lite) .pagehead>.w{animation:headY linear both;animation-timeline:scroll(root);animation-range:0 55vh}
html:not(.lite) .baca .nf,html:not(.lite) .rw .nf{animation:imgIn linear both;animation-timeline:view();animation-range:entry 0% entry 70%}}
.rv{opacity:0;transform:translateY(24px)}
.rv.in{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.sk{animation:skel 1.3s linear infinite}}
@keyframes panelIn{from{opacity:0;transform:translateY(16px)}}
@keyframes msgIn{from{opacity:0;transform:translateY(-8px) scale(.98)}}
@keyframes shake{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@keyframes pop{0%{transform:scale(.97)}60%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes headY{to{transform:translateY(46px);opacity:.25}}
@keyframes imgIn{from{clip-path:inset(0 0 100% 0 round 12px);transform:scale(1.06)}to{clip-path:inset(0 round 12px)}}
@keyframes skel{to{background-position:-200% 0}}
@keyframes spin2{to{transform:rotate(360deg)}}
.sk{height:96px;border-radius:16px;margin-bottom:14px;background:linear-gradient(100deg,rgba(255,255,255,.06) 30%,rgba(255,255,255,.16) 50%,rgba(255,255,255,.06) 70%);background-size:200% 100%}
.stamp[disabled]{pointer-events:none;opacity:.85}
.stamp[disabled]::after{content:"";display:inline-block;width:14px;height:14px;margin-left:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin2 .7s linear infinite;vertical-align:-2px}
html.lite .stamp[disabled]::after{animation:none}


/* ===== src/vt.css ===== */
/* Transisi antarhalaman (halaman dalam saja; beranda punya animasi selam sendiri). Peramban tanpa dukungan tetap pindah halaman biasa. */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
header{view-transition-name:site-header}
::view-transition-old(root){animation:vtOut .22s ease both}
::view-transition-new(root){animation:vtIn .45s cubic-bezier(.2,.7,.2,1) both}
@keyframes vtOut{to{opacity:0;transform:translateY(-8px)}}
@keyframes vtIn{from{opacity:0;transform:translateY(14px)}}
html.lite ::view-transition-group(*),html.lite ::view-transition-old(*),html.lite ::view-transition-new(*){animation:none}


/* ===== src/world-ui.css ===== */
.story{background:radial-gradient(90% 70% at 72% 30%,var(--m1,#16307a) 0,var(--m2,#091434) 68%)}
.stage canvas{touch-action:pan-y;cursor:grab;-webkit-tap-highlight-color:transparent}
.stage canvas.hot{cursor:pointer}
.stage canvas.drag{cursor:grabbing}
.beats,.beat,.beat.on{pointer-events:none}
.beat.on a{pointer-events:auto}
.story.flying .beat{opacity:0!important;transition:opacity .2s}
.rail{z-index:4}
.rail i{position:relative;cursor:pointer;transition:background .4s,height .2s}
.rail i:before{content:"";position:absolute;inset:-16px -4px}
@media (hover:hover) and (pointer:fine){.rail i:hover{height:6px;background:var(--emas)}}
.rail i:focus-visible{outline:2px solid #fff;outline-offset:4px}
.hotspots{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.hs{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;color:#fff;
  font:700 13px/1 system-ui,sans-serif;pointer-events:auto;opacity:0;visibility:hidden;will-change:transform,opacity;transition:opacity .25s}
.hs:focus-within,.hs.open{z-index:2000!important}
@media (hover:hover) and (pointer:fine){.hs:hover{z-index:2000!important}}
.hb{position:relative;display:flex;flex-direction:column;align-items:center;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hb:before{content:"";position:absolute;inset:-6px -10px}
.hs .pill{display:flex;gap:8px;align-items:center;padding:9px 14px 9px 10px;border-radius:999px;white-space:nowrap;
  background:rgba(14,31,77,.62);border:1px solid rgba(127,176,255,.55);box-shadow:0 8px 24px rgba(5,12,36,.45);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:transform .25s var(--ease,ease),background .25s,border-color .25s}
.hs .pill b{display:grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:rgba(127,176,255,.25);color:#cfe0ff;font-size:11px}
.hs.seen .pill b{background:rgba(127,176,255,.5);color:#fff}
.hs .stem{width:2px;height:14px;background:linear-gradient(rgba(127,176,255,.85),rgba(127,176,255,.15))}
.hs .dot{position:relative;width:10px;height:10px;border-radius:50%;background:var(--langit,#7fb0ff);box-shadow:0 0 0 3px rgba(127,176,255,.25)}
.hs .dot:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--langit,#7fb0ff);animation:hsPing 2s ease-out infinite}
@keyframes hsPing{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.hs.on .pill{border-color:var(--emas);background:rgba(58,40,6,.62)}
.hs.on .pill b{background:var(--emas);color:#1a1200}
.hs.on .dot{background:var(--emas);box-shadow:0 0 0 3px rgba(226,168,28,.28)}
.hs.on .dot:after{border-color:var(--emas)}
.hs.hov .pill{transform:translateY(-3px);border-color:#fff;background:rgba(22,48,122,.88)}
@media (hover:hover) and (pointer:fine){.hs:hover .pill{transform:translateY(-3px);border-color:#fff;background:rgba(22,48,122,.88)}}
.hs.on.hov .pill{background:rgba(88,60,8,.85)}
@media (hover:hover) and (pointer:fine){.hs.on:hover .pill{background:rgba(88,60,8,.85)}}
.hb:focus-visible{outline:none}
.hb:focus-visible .pill{outline:2px solid #fff;outline-offset:3px}
.hs .card{position:absolute;top:100%;left:50%;width:236px;margin-top:10px;padding:14px 16px;border-radius:16px;
  transform:translateX(calc(-50% + var(--cs,0px))) translateY(6px);opacity:0;pointer-events:none;
  background:rgba(9,20,52,.88);border:1px solid rgba(127,176,255,.45);box-shadow:0 14px 40px rgba(5,12,36,.55);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .25s,transform .25s var(--ease,ease);font:500 14px/1.45 system-ui,sans-serif;text-align:left}
.hs .card:before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.hs:focus-within .card,.hs.open .card{opacity:1;pointer-events:auto;transform:translateX(calc(-50% + var(--cs,0px)))}
@media (hover:hover) and (pointer:fine){.hs:hover .card{opacity:1;pointer-events:auto;transform:translateX(calc(-50% + var(--cs,0px)))}}
.hs .card p{margin:0 0 10px;color:#dbe5ff}
.hs .card .go{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--emas);color:#1a1200;font-weight:800;text-decoration:none}
.hs .card .go:after{content:"\2192"}
@media (hover:hover) and (pointer:fine){.hs .card .go:hover{filter:brightness(1.1)}}
.explore{position:absolute;left:max(24px,calc((100vw - 1180px)/2 + 24px));top:16px;z-index:4;display:flex;align-items:center;gap:10px;
  padding:8px 14px;border-radius:999px;background:rgba(14,31,77,.55);border:1px solid rgba(127,176,255,.35);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#cbd5f4;font:600 13px/1 system-ui,sans-serif}
.ex-n{color:#fff;font-weight:800}
.ex-dots{display:flex;gap:4px}
.ex-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.22);transition:background .3s}
.ex-dots i.on{background:var(--langit,#7fb0ff)}
.ex-cta{display:none;margin-left:4px;padding:7px 12px;border-radius:999px;background:var(--emas);color:#1a1200;text-decoration:none;font-weight:800}
.explore.done{border-color:var(--emas)}
.explore.done .ex-dots i.on{background:var(--emas)}
.explore.done .ex-cta{display:inline-block;animation:exPop .6s var(--ease,ease)}
@keyframes exPop{from{transform:scale(.7);opacity:0}to{transform:none;opacity:1}}
.ctl{position:absolute;right:max(16px,calc((100vw - 1180px)/2 + 24px));top:12px;z-index:4;display:flex;gap:8px}
button.cb{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;padding:0;cursor:pointer;color:#cfe0ff;
  background:rgba(14,31,77,.55);border:1px solid rgba(127,176,255,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent}
button.cb svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
button.cb[aria-pressed=true]{background:var(--emas);color:#1a1200;border-color:var(--emas)}
button.cb .w{display:none}
button.cb[aria-pressed=true] .w{display:block}
button.cb .x{display:block}
button.cb[aria-pressed=true] .x{display:none}
button.cb:focus-visible{outline:2px solid #fff;outline-offset:3px}
.warp{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;transition:opacity .55s ease .5s;
  background:radial-gradient(circle at 50% 55%,#fff 0,#ffd9dc 18%,#c8202f 55%,#4a0c16 100%)}
.warp.on{opacity:1}
.diving .hotspots,.diving .explore,.diving .ctl,.diving .beats,.diving .rail{opacity:0;transition:opacity .3s}
@media (max-width:900px){.hs{font-size:12px}
.hs .pill{padding:7px 11px 7px 8px}
.hs .stem{height:10px}
.hs .card{width:210px}
.explore{left:12px;top:10px;padding:7px 11px;font-size:12px;gap:8px}
.ctl{right:10px;top:8px}}
@media (max-width:520px){.explore:not(.done) .ex-t{display:none}
.explore.done .ex-t{display:none}}
@media (prefers-reduced-motion:reduce){.hs .dot:after{animation:none}
.hs,.hs .pill,.hs .card{transition:none}
.explore.done .ex-cta{animation:none}}
.hs .pill,.hs .stem,.hs .card{display:none}
.hb:before{inset:-20px}
.hs .dot{width:16px;height:16px;border:2px solid rgba(255,255,255,.9);transition:transform .25s var(--ease,ease)}
.hs .dot:after{inset:-5px}
.hs.hov .dot{transform:scale(1.35)}
@media (hover:hover) and (pointer:fine){.hs:hover .dot{transform:scale(1.35)}}
.hs.seen .dot{box-shadow:0 0 0 5px rgba(127,176,255,.3)}
.hs.on .dot{box-shadow:0 0 0 5px rgba(226,168,28,.35)}
.hb:focus-visible .dot{outline:2px solid #fff;outline-offset:5px}
.toast{position:absolute;left:50%;bottom:64px;z-index:5;transform:translate(-50%,10px);max-width:min(440px,calc(100% - 28px));padding:11px 18px;border-radius:16px;
  background:rgba(9,20,52,.9);border:1px solid rgba(127,176,255,.45);box-shadow:0 14px 40px rgba(5,12,36,.55);color:#e8eefc;text-align:center;
  font:500 14px/1.4 system-ui,sans-serif;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--ease,ease);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast b{color:#fff;font-weight:800}
.toast span{display:block;color:#b5c3ea;font-size:13px}
.toast em{display:block;margin-top:2px;color:#ffb870;font-size:12px;font-style:normal}
.quiz{position:absolute;left:50%;bottom:72px;z-index:5;transform:translateX(-50%);width:min(540px,calc(100% - 24px));padding:16px 18px 18px;border-radius:20px;
  background:rgba(9,20,52,.92);border:1px solid rgba(226,168,28,.7);box-shadow:0 20px 60px rgba(5,12,36,.65);color:#e8eefc;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font:500 15px/1.45 system-ui,sans-serif;animation:qzIn .35s var(--ease,ease)}
@keyframes qzIn{from{opacity:0;transform:translateX(-50%) translateY(14px)}to{opacity:1;transform:translateX(-50%)}}
.qz-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.qz-h b{font:800 13px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--emas)}
.qz-s{margin-left:auto;font-size:12px;color:#b5c3ea}
.qz-x{width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.qz-q{margin:0 0 12px;font-size:16px;font-weight:700;color:#fff}
.qz-o{display:grid;gap:8px}
.qz-o button{padding:11px 14px;border-radius:12px;border:1px solid rgba(127,176,255,.45);background:rgba(22,48,122,.55);color:#fff;text-align:left;font:inherit;cursor:pointer;transition:background .2s,border-color .2s}
@media (hover:hover) and (pointer:fine){.qz-o button:hover:not(:disabled){background:rgba(22,48,122,.95);border-color:#fff}}
.qz-o button:disabled{cursor:default;opacity:.75}
.qz-o button.ok{background:rgba(24,130,80,.8);border-color:#6ee7a0;opacity:1}
.qz-o button.no{background:rgba(160,30,45,.8);border-color:#ff7a85;opacity:1}
.qz-f p{margin:12px 0 10px;color:#dbe5ff}
.qz-f b{color:#fff}
.qz-a{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.qz-n{padding:9px 16px;border-radius:999px;border:0;background:var(--emas);color:#1a1200;font:800 14px system-ui,sans-serif;cursor:pointer}
.qz-a a{color:var(--langit,#7fb0ff);font-weight:700;text-decoration:underline}
.qz-x:focus-visible,.qz-o button:focus-visible,.qz-n:focus-visible,.qz-a a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:900px){.toast{bottom:auto;top:62px}
.quiz{bottom:auto;top:58px}}
@media (prefers-reduced-motion:reduce){.quiz{animation:none}
.toast{transition:none}}
.story{height:500vh}
@media (max-width:900px){.ctl{top:54px;right:10px}
.ctl .cb{width:40px;height:40px}}


/* ===== src/refresh.css ===== */
/* =====================================================================
   PERKAPI — sistem desain "Navy & Emas" v2 (dimuat PALING AKHIR di semua halaman)
   Arah: lembaga profesi hukum yang modern — tenang, tegas, editorial.
   Huruf : Plus Jakarta Sans (UI, judul) + Instrument Serif miring (kata sorotan).
   Warna : biru dongker + emas; biru langit untuk info; merah hanya untuk galat.
   Tata  : grid bento, dua kolom (judul lekat + isi), kartu bersudut 24px.
   Hapus <link> refresh.css untuk kembali ke tampilan sebelumnya.
   ===================================================================== */
:root{
  --f-sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-serif:"Instrument Serif",Georgia,"Times New Roman",serif;

  --bg:#060f29;--bg-alt:#091634;
  --surface:rgba(255,255,255,.04);--surface-2:rgba(255,255,255,.07);--surface-solid:#0d1c42;
  --line:rgba(255,255,255,.1);--line-2:rgba(255,255,255,.2);
  --text:#f1f4fb;--muted:#a3b0d2;--subtle:#7d8bb3;
  --gold:#e8b53a;--gold-hi:#f6cf6f;--gold-ink:#1b1300;--gold-soft:rgba(232,181,58,.12);
  --royal:#2348a8;--sky:#8fbaff;
  --success:#5fd4a0;--danger:#ff6b78;

  --r-xl:28px;--r-lg:22px;--r-md:16px;--r-sm:12px;
  --s-1:8px;--s-2:12px;--s-3:16px;--s-4:24px;--s-5:32px;--s-6:48px;--s-7:72px;--s-8:120px;
  --sh-1:inset 0 1px 0 rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.2);
  --sh-2:inset 0 1px 0 rgba(255,255,255,.08),0 24px 60px -20px rgba(0,0,0,.6);
  --ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);

  /* token lama dialihkan agar komponen lama ikut seragam */
  --emas:var(--gold);--langit:var(--sky);--garis-kaca:var(--line);--kaca:var(--surface);--kaca2:var(--surface-2);
  --teks-terang:var(--text);--teks-redup:var(--muted);--merah-terang:var(--gold);--merah2:var(--danger);
  --ungu-soft:var(--sky);--nilam-soft:var(--sky);--zamrud-soft:var(--success);
  --grad-emas:linear-gradient(180deg,#f8d983 0,#e2a81c 100%);
  --grad-judul:linear-gradient(#fff,#fff);
  --focus-ring:0 0 0 3px rgba(232,181,58,.6);
}

/* ================= dasar ================= */
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{background:var(--bg);color:var(--text);font:400 17px/1.65 var(--f-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body:before{background:var(--bg)}
body:after{display:none}
.glow{display:none}
h1,h2,h3,h4{font-family:var(--f-sans);font-weight:800;letter-spacing:-.035em;line-height:1.04;text-wrap:balance}
h1 em,h2 em,h3 em,.beat h1 .gl{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--gold);
  background:none;-webkit-text-fill-color:currentColor;padding-right:.04em}
p{text-wrap:pretty}
::selection{background:var(--gold);color:var(--gold-ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.w{max-width:1200px;padding:0 var(--s-4)}
.progress{background:var(--gold);box-shadow:none;height:2px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 var(--s-3);color:var(--gold);font:700 12.5px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase}
.eyebrow:before{content:"";width:18px;height:1.5px;background:currentColor;border-radius:2px}

/* ================= header ================= */
header{background:rgba(6,15,41,.55);border-bottom:1px solid transparent;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%)}
header.scrolled{background:rgba(6,15,41,.86);border-bottom-color:var(--line);box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}
header.scrolled:after{display:none}
.lg{border-radius:12px;padding:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.lg img{height:42px}
@media (hover:hover) and (pointer:fine){.logo:hover .lg{transform:none}}
.lt b{font:800 21px/1 var(--f-sans);letter-spacing:.02em}
.lt small{font:500 11px/1.25 var(--f-sans);color:var(--muted);opacity:1}
@media (min-width:901px){
  header nav{gap:4px;padding:5px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid var(--line);overflow:visible}
  header nav a:not(.cta){padding:9px 16px!important;border-radius:999px;color:#c9d2ec;font:600 14.5px/1 var(--f-sans);transition:background .2s,color .2s}
  header nav a:not(.cta):after{display:none}
  @media (hover:hover) and (pointer:fine){header nav a:not(.cta):hover{background:rgba(255,255,255,.07);color:#fff}}
  header nav a.on{background:rgba(255,255,255,.1);color:#fff}
  header nav a.cta{margin-left:6px}
}
nav a.cta{display:inline-flex;align-items:center;min-height:40px;padding:0 20px;border-radius:999px;background:var(--gold);color:var(--gold-ink);font:700 14.5px/1 var(--f-sans);box-shadow:none;transform:none}
@media (hover:hover) and (pointer:fine){nav a.cta:hover{background:var(--gold-hi);transform:none;box-shadow:0 8px 22px -6px rgba(232,181,58,.55)}}
.burger{border-radius:12px}

/* ================= tombol ================= */
.stamp,a.stamp,.btn.primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;margin-top:0;border:0;border-radius:999px;
  background:var(--gold);color:var(--gold-ink);font:700 16px/1 var(--f-sans);letter-spacing:0;text-decoration:none;
  transform:none;box-shadow:0 12px 30px -10px rgba(232,181,58,.6);transition:background .2s,transform .25s var(--ease-out),box-shadow .25s}
.stamp:after{display:none}
@media (hover:hover) and (pointer:fine){.stamp:hover,a.stamp:hover,.btn.primary:hover{background:var(--gold-hi);transform:translateY(-2px);box-shadow:0 16px 36px -10px rgba(232,181,58,.7)}}
.stamp:active,.btn.primary:active{transform:translateY(0);box-shadow:0 6px 16px -8px rgba(232,181,58,.6)}
.stamp:disabled{opacity:.55;transform:none;cursor:not-allowed}
.ghost{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;border:1px solid var(--line-2);background:transparent;
  color:#fff;font:600 15.5px/1 var(--f-sans);text-decoration:none;-webkit-backdrop-filter:none;backdrop-filter:none;transition:background .2s,border-color .2s,transform .25s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.45);transform:none}}
.ghost svg{width:16px;height:16px;transition:transform .25s var(--ease-out)}@media (hover:hover) and (pointer:fine){.ghost:hover svg{transform:translateX(3px)}}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center;margin-top:var(--s-5)}

/* ================= hero 3D ================= */
.story{background:radial-gradient(90% 70% at 70% 32%,var(--m1,#16307a) 0,var(--m2,#081434) 70%)}
.stage:before{background:linear-gradient(90deg,rgba(6,15,41,.94) 0,rgba(6,15,41,.66) 30%,rgba(6,15,41,0) 58%),linear-gradient(0deg,rgba(6,15,41,.7) 0,rgba(6,15,41,0) 24%)}
.stage:after{opacity:.28}
.beat h1{font-size:clamp(2.9rem,5.6vw,5.5rem);line-height:1;letter-spacing:-.045em;max-width:12ch;filter:none;text-shadow:0 2px 30px rgba(6,15,41,.6)}
.beat h1 .gl{font-size:1.08em;line-height:.9}
.beat h2{font-size:clamp(3.2rem,7.5vw,6.8rem);letter-spacing:-.05em;background:none;color:#fff;-webkit-text-fill-color:#fff;filter:none;text-shadow:0 2px 30px rgba(6,15,41,.6)}
.beat p{font:400 clamp(1.02rem,1.35vw,1.2rem)/1.6 var(--f-sans);color:#cfd8f0!important;max-width:31em;margin-top:var(--s-4)}
.beat:before{content:attr(data-nama);display:inline-flex;align-items:center;gap:10px;margin-bottom:var(--s-4);padding:7px 14px 7px 10px;border-radius:999px;
  background:rgba(232,181,58,.1);border:1px solid rgba(232,181,58,.3);color:var(--gold-hi);font:700 12px/1 var(--f-sans);letter-spacing:.1em;text-transform:uppercase}
.beat:first-child:before{content:"Organisasi profesi resmi"}
.chips{gap:8px;margin-top:var(--s-4)}
.chips li{padding:8px 13px;background:rgba(255,255,255,.05);border:1px solid var(--line-2);color:#dfe6f7!important;font:600 13px/1 var(--f-sans);-webkit-backdrop-filter:none;backdrop-filter:none}
.chips li:before,.chips li.c-emas:before,.chips li.c-nilam:before{width:6px;height:6px;background:var(--gold);box-shadow:none}
.chips li.c-emas,.chips li.c-nilam,.chips li.c-zamrud{background:rgba(255,255,255,.05);border-color:var(--line-2)}
.chips li.c-zamrud:before{display:none}
.pill.zamrud{background:rgba(95,212,160,.14);color:#86e4b9;border-color:rgba(95,212,160,.4);font-family:var(--f-sans)}
.rail{gap:6px;font:600 13px var(--f-sans)}
.rail i{width:36px;height:3px;border-radius:3px;background:rgba(255,255,255,.18)}
.rail i.on,.rail i:last-of-type.on{background:var(--gold)}
.rail span{color:var(--muted)}
.skip-3d{border-radius:999px;font-family:var(--f-sans)}
#glx img{border-radius:var(--r-xl)}
.explore{background:rgba(6,15,41,.6);border-color:var(--line-2);font-family:var(--f-sans)}
.ex-dots i.on{background:var(--sky)}
.explore.done,.explore.done .ex-dots i.on{border-color:var(--gold)}
.ctl .cb{background:rgba(6,15,41,.6);border-color:var(--line-2)}
.ctl .cb[aria-pressed=true]{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.hs .dot{background:var(--sky);border-color:#fff}
.hs.on .dot{background:var(--gold);box-shadow:0 0 0 5px rgba(232,181,58,.3)}
.hs.on .dot:after{border-color:var(--gold)}
.toast,.quiz{font-family:var(--f-sans)}
.warp{background:radial-gradient(circle at 50% 55%,#fff 0,#e7efff 16%,#5f8de6 50%,#081434 100%)}

/* ================= pita kepercayaan ================= */
.trust{border-block:1px solid var(--line);background:var(--bg)}
.trust .w{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3) var(--s-5);padding-block:22px}
.trust span{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font:600 14px/1.2 var(--f-sans)}
.trust svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--gold);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ================= bagian ================= */
.sec,.sec.white,.sec.dark{padding:var(--s-8) 0;background:var(--bg)}
.sec.alt{background:var(--bg-alt)}
.sec h2{font-size:clamp(2.1rem,4vw,3.5rem);margin:0;background:none;color:#fff;-webkit-text-fill-color:#fff;padding-bottom:.04em}
.head{display:block;max-width:44rem;margin:0 0 var(--s-6)}
.head h2:before{display:none}
.head .lead{margin-top:var(--s-3)}
.head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);max-width:none}
.lead{font:400 1.12rem/1.65 var(--f-sans);color:var(--muted);max-width:38em}
.lead b{color:#fff;font-weight:600}
.divider-warn{display:none}
.more{color:var(--gold-hi);font:600 15px/1 var(--f-sans);text-decoration:none;white-space:nowrap;padding:10px 0}
@media (hover:hover) and (pointer:fine){.more:hover{color:#fff}}

/* kartu dasar (dipakai bento, rujukan, berita, faq) */
.why>div,.rw,.rw:first-child,.faq details,.nums>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  -webkit-backdrop-filter:none;backdrop-filter:none}
.rw:before,.why>div:before,.steps>div:before,.nums>div:before,.faq details:before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(143,186,255,.09),transparent 60%)}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(180px,auto);gap:var(--s-3)}
.bento>div,.bento>div:nth-child(n){position:relative;display:flex;flex-direction:column;padding:var(--s-5);border-top:1px solid var(--line);grid-column:span 2;transition:border-color .2s ease,transform .2s var(--ease-out),box-shadow .2s ease}
@media (hover:hover) and (pointer:fine){.bento>div:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:var(--sh-2)}}
.bento>div.b-feature{grid-column:span 4;grid-row:span 2;padding:var(--s-6) var(--s-5) var(--s-5);overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0,rgba(35,72,168,.55),transparent 60%),linear-gradient(180deg,#0f2152,#0b1940);border-color:rgba(143,186,255,.2)}
.bento>div.b-stat{grid-column:span 2;justify-content:flex-end}
.bento .b-meta div{border:0;border-radius:0;background:none;padding:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.bento h3{font-size:1.4rem;letter-spacing:-.025em;line-height:1.2;margin:0 0 10px;color:#fff}
.bento .b-feature h3{font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-.04em;line-height:1.05;max-width:12ch;margin-bottom:var(--s-3)}
.bento p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6}
.bento .b-feature p{font-size:1.08rem;max-width:30em}
.bento .ico,.bento>div:nth-child(n) .ico{width:46px;height:46px;border-radius:14px;margin-bottom:auto;color:var(--gold);background:var(--gold-soft);border:1px solid rgba(232,181,58,.28);box-shadow:none}
.bento>div:not(.b-feature) .ico{margin-bottom:var(--s-5)}
.bento .b-feature .ico{margin-bottom:var(--s-6)}
@media (hover:hover) and (pointer:fine){.ico:hover{transform:none;box-shadow:none}}
.ico svg{width:22px;height:22px}
.b-emblem{position:absolute;top:var(--s-5);right:var(--s-5);width:84px;height:84px;object-fit:contain;background:#fff;border-radius:20px;padding:6px;box-shadow:0 20px 40px -12px rgba(0,0,0,.6);transform:rotate(4deg)}
.b-meta{display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-6);margin:var(--s-5) 0 0;padding-top:var(--s-4);border-top:1px solid var(--line)}
.b-meta dt{color:var(--subtle);font:600 12px/1.3 var(--f-sans);letter-spacing:.08em;text-transform:uppercase}
.b-meta dd{margin:6px 0 0;color:#fff;font:600 15px/1.4 var(--f-sans)}
.b-link{display:inline-flex;align-items:center;gap:8px;margin-top:var(--s-4);color:var(--gold-hi);font:600 15px/1 var(--f-sans);text-decoration:none;align-self:flex-start}
.b-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.b-link:hover{color:#fff}}@media (hover:hover) and (pointer:fine){.b-link:hover svg{transform:translateX(3px)}}
.b-stat b{display:block;font:800 clamp(3.4rem,6vw,5rem)/1 var(--f-sans);letter-spacing:-.05em;color:#fff;background:none;-webkit-text-fill-color:#fff;font-variant-numeric:tabular-nums}
.b-stat>span:not(.b-live){margin-top:8px;color:var(--muted);font:500 15px/1.4 var(--f-sans)}
.b-live{position:absolute;top:var(--s-4);left:var(--s-5);display:inline-flex;align-items:center;gap:8px;color:var(--success);font:600 12.5px/1 var(--f-sans)}
.b-live i{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px rgba(95,212,160,.18)}
.b-num{font:inherit;color:var(--gold)}

/* ---------- film ---------- */
.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:var(--s-6);align-items:center}
.split .head{margin:0}
.film{border-radius:var(--r-xl);border:1px solid var(--line);box-shadow:0 50px 100px -30px rgba(0,0,0,.7)}

/* ---------- alur: judul lekat + isi ---------- */
.flow{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s-7);align-items:start}
.flow-side{position:sticky;top:110px}
.flow-side h2{margin-bottom:var(--s-3)}
ol.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;grid-template-columns:1fr;counter-reset:none}
ol.steps li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:var(--s-4);padding:0 0 var(--s-5)}
ol.steps li:not(:last-child):after{content:"";position:absolute;left:27px;top:60px;bottom:6px;width:1.5px;background:linear-gradient(var(--line-2),var(--line))}
ol.steps b{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--surface-solid);border:1.5px solid rgba(232,181,58,.55);
  color:var(--gold);-webkit-text-fill-color:var(--gold);font:800 1.25rem/1 var(--f-sans)}
ol.steps li>div{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);transition:border-color .3s,background .3s}
@media (hover:hover) and (pointer:fine){ol.steps li:hover>div{border-color:var(--line-2);background:var(--surface-2)}}
ol.steps h3{font-size:1.25rem;letter-spacing:-.02em;margin:0 0 6px;color:#fff}
ol.steps p{margin:0;color:var(--muted);font-size:15.5px}

/* ---------- rujukan hukum ---------- */
.laws{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
.rw.law{display:flex;flex-direction:column;align-items:stretch;gap:var(--s-3);padding:var(--s-5);margin:0}
.rw.law>div{flex:1}
.rw.law b{font:700 1.2rem/1.3 var(--f-sans);letter-spacing:-.02em}
.rw.law p{margin-top:8px;font-size:15px;line-height:1.6}
.rw.law .act{padding-top:var(--s-3);border-top:1px solid var(--line);gap:var(--s-4)}

/* ---------- baris (berita, agenda, halaman dalam) ---------- */
.rw,.rw:first-child{padding:var(--s-4);margin-bottom:var(--s-2);transition:background .2s ease,border-color .2s ease,transform .2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.rw:hover{background:var(--surface-2);border-color:var(--line-2);transform:translateY(-2px)}}
.rw b{color:#fff;font:700 1.08rem/1.35 var(--f-sans);letter-spacing:-.01em}
.rw p{color:var(--muted);font:400 15px/1.6 var(--f-sans)}
.rw time{color:var(--subtle);font:600 13px/1.2 var(--f-sans);letter-spacing:.02em}
.rw .tg,.rw .tg.emas,.rw .tg.zamrud,.rw .tg.nilam{display:inline-flex;align-self:flex-start;justify-self:start;padding:6px 11px;border-radius:999px;background:rgba(143,186,255,.08);border:1px solid rgba(143,186,255,.24);color:#c4d8ff;font:600 12px/1 var(--f-sans);letter-spacing:.02em}
.rw .tg.emas{background:var(--gold-soft);border-color:rgba(232,181,58,.32);color:var(--gold-hi)}
.rw .act{font-family:var(--f-sans)}
.rw .act a,.sec.dark .rw .act a{color:var(--gold-hi);font:600 14.5px/1 var(--f-sans);text-decoration:none;position:relative;z-index:2}
.rw .act a:after{content:" \2197";font-size:.9em}
@media (hover:hover) and (pointer:fine){.rw .act a:hover{color:#fff}}
.rw .nf{border-radius:var(--r-sm)}
.feeds{grid-template-columns:1.5fr 1fr;gap:var(--s-6)}
.feeds .head{margin-bottom:var(--s-4)}
.feeds .head h2{font-size:clamp(1.8rem,2.8vw,2.4rem)}
.feeds .head .eyebrow{margin-bottom:10px}
.feeds .rw{display:grid;grid-template-columns:1fr;gap:10px}
.feeds .rw .tg{order:-1}
#ev .rw{grid-template-columns:auto 1fr;align-items:center;gap:var(--s-3)}
#ev .rw time{order:0;display:grid;place-items:center;min-width:76px;padding:12px 10px;border-radius:var(--r-sm);background:var(--gold-soft);border:1px solid rgba(232,181,58,.28);color:var(--gold-hi);text-align:center;line-height:1.35}
.sk{height:96px;border-radius:var(--r-lg);margin-bottom:var(--s-2);background:linear-gradient(100deg,var(--surface) 30%,var(--surface-2) 50%,var(--surface) 70%);background-size:300% 100%;animation:skel 1.4s ease-in-out infinite}
@keyframes skel{from{background-position:100% 0}to{background-position:0 0}}

/* ---------- faq ---------- */
.faq{display:grid;gap:var(--s-2)}
.faq details,.faq details:last-child{margin:0;padding:0 var(--s-4);border:1px solid var(--line);border-radius:var(--r-md)}
.faq details[open]{background:var(--surface-2);border-color:var(--line-2)}
.faq summary{min-height:64px;padding:18px 0;color:#fff;font:600 1.06rem/1.4 var(--f-sans);letter-spacing:-.01em}
.faq summary:after{width:32px;height:32px;border-radius:50%;background:var(--gold-soft);color:var(--gold);font:500 1.3rem/1 var(--f-sans)}
.faq details p{margin:0;padding:0 0 var(--s-4);color:var(--muted);font:400 15.5px/1.7 var(--f-sans);max-width:none}
.ask{margin-top:var(--s-5);padding:var(--s-4);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)}
.ask b{display:block;color:#fff;font:700 1.05rem/1.3 var(--f-sans)}
.ask p{margin:6px 0 var(--s-3);color:var(--muted);font-size:15px}
.ask .ghost{min-height:44px;padding:0 18px;font-size:14.5px}

/* ---------- ajakan akhir ---------- */
.cta-wrap{padding-top:0}
.cta-band{position:relative;overflow:hidden;isolation:isolate;padding:var(--s-7) var(--s-5);border-radius:var(--r-xl);text-align:center;
  background:radial-gradient(70% 120% at 50% 120%,rgba(232,181,58,.22),transparent 60%),radial-gradient(60% 100% at 50% -20%,rgba(63,110,214,.45),transparent 65%),#0c1b46;
  border:1px solid rgba(143,186,255,.2)}
.cta-band:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;
  -webkit-mask-image:radial-gradient(60% 80% at 50% 50%,#000,transparent);mask-image:radial-gradient(60% 80% at 50% 50%,#000,transparent)}
.cta-band h2{font-size:clamp(2.6rem,6.4vw,5.2rem);letter-spacing:-.05em}
.cta-band h2:before{display:none}
.cta-band p{margin:var(--s-3) auto 0;max-width:32em;color:#c7d1ee;font:400 1.1rem/1.6 var(--f-sans)}
.cta-band .eyebrow{justify-content:center}
.cta-band .cta-row{justify-content:center}
.cta-logo{display:block;width:72px;height:72px;margin:0 auto var(--s-4);background:#fff;border-radius:20px;padding:5px;box-shadow:0 20px 40px -12px rgba(0,0,0,.6)}

/* ================= halaman dalam ================= */
.pagehead{padding:var(--s-7) 0 var(--s-6);background:linear-gradient(180deg,#0b1a44,var(--bg))}
.pagehead:before{background:radial-gradient(60% 100% at 85% 0,rgba(63,110,214,.32),transparent 70%)}
.pagehead>.w:before{display:none}
.pagehead h1{font-size:clamp(2.8rem,6vw,4.8rem);letter-spacing:-.05em;background:none;color:#fff;-webkit-text-fill-color:#fff}
.pagehead p{color:var(--muted);font:400 1.15rem/1.6 var(--f-sans)}
.crumb{font-family:var(--f-sans)}
.coin img{border-radius:22px}
.facts dt{font-family:var(--f-sans);color:var(--subtle)}.facts dd{font-family:var(--f-sans)}
.why:not(.bento)>div{border-radius:var(--r-lg);padding:var(--s-5)}
.steps:not(ol)>div{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)}
.steps:not(ol) b{background:none;color:var(--gold);-webkit-text-fill-color:var(--gold);font-family:var(--f-sans);font-size:3rem;letter-spacing:-.04em}
.steps:not(ol) h3{font-size:1.25rem;letter-spacing:-.02em}
.steps:not(ol)>div:not(:last-child):after{display:none}
.person{border-radius:var(--r-lg);background:var(--surface);border-color:var(--line)}
.person b{font-family:var(--f-sans)}
.ph{font-family:var(--f-sans)}
.todo{border-radius:var(--r-lg);font-family:var(--f-sans)}
.timeline:before{background:linear-gradient(180deg,var(--gold),rgba(143,186,255,.3))}
.timeline>li:nth-child(n):before{border-color:var(--gold);box-shadow:0 0 0 4px rgba(232,181,58,.12)}
.note{border-radius:var(--r-md);background:var(--surface);border-color:var(--line);font-family:var(--f-sans)}
.note-zamrud{border-color:rgba(232,181,58,.32)}
.note-zamrud:before{content:"i";color:var(--gold);background:var(--gold-soft);border-radius:50%}
.baca,.prosa{font-family:var(--f-sans)}

/* ================= formulir ================= */
.form{border-radius:var(--r-xl);border:1px solid var(--line);background:var(--surface);box-shadow:var(--sh-2)}
label{font:600 14.5px/1.3 var(--f-sans);color:#dbe3f7}
input,select,textarea{min-height:50px;padding:12px 16px;background:rgba(255,255,255,.04);color:#fff;border:1px solid var(--line-2);border-radius:var(--r-sm);font:400 16px/1.4 var(--f-sans)}
textarea{min-height:120px}
input::placeholder,textarea::placeholder{color:var(--subtle)}
@media (hover:hover) and (pointer:fine){input:hover,select:hover,textarea:hover{border-color:rgba(255,255,255,.32)}}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(232,181,58,.18);background:rgba(255,255,255,.06);outline:none}
input[type=checkbox],input[type=radio]{min-height:0;width:18px;height:18px;accent-color:var(--gold)}
select option{background:#0d1c42;color:#fff}
.opt{border-radius:var(--r-sm);font-family:var(--f-sans)}
.opt:has(input:checked),.prog button.on{border-color:var(--gold);background:var(--gold-soft)}
.prog button{border-radius:var(--r-md)}
.prog button b{font-family:var(--f-sans);letter-spacing:-.02em;font-size:1.2rem}
.msg{border-radius:var(--r-sm);font-family:var(--f-sans)}
.msg.er{background:rgba(255,107,120,.1);color:#ffd2d7;border-left:3px solid var(--danger)}
.msg.ok{background:rgba(95,212,160,.1);color:#c9f3df;border-left:3px solid var(--success)}
.msg.demo{background:var(--gold-soft);color:#fbe3a6;border-left:3px solid var(--gold)}
.score{color:var(--gold);font-family:var(--f-sans);letter-spacing:-.05em}
.kode{font-family:var(--f-sans)}
[aria-invalid="true"]{border-color:var(--danger)!important;box-shadow:0 0 0 4px rgba(255,107,120,.18)}
.dx{border-radius:var(--r-md)}

/* ================= footer ================= */
footer{padding:var(--s-7) 0 var(--s-5);background:#040b20;border-top:1px solid var(--line);font:400 15px/1.6 var(--f-sans)}
footer:before{display:none}
footer .w{display:block}
footer img{height:auto;border:0;background:#fff;padding:0}
.f-top{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:var(--s-5)}
.f-brand p{margin:var(--s-3) 0 var(--s-3);max-width:28rem;color:var(--muted);font-size:14.5px}
.f-brand .lg img{height:40px}
.f-col{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;background:none;border:0;border-radius:0;overflow:visible;position:static;opacity:1;visibility:visible;transform:none;box-shadow:none}
.f-col b{color:#fff;font:700 13px/1 var(--f-sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
footer .f-col a{color:var(--muted)!important;text-decoration:none;font-weight:500;padding:2px 0!important;min-height:0;border:0}
@media (hover:hover) and (pointer:fine){footer .f-col a:hover{color:var(--gold-hi)!important}}
footer .f-col a:after{display:none}
.soc{margin:0;gap:10px;flex-wrap:wrap}.soc a{color:var(--muted);text-decoration:none;font-weight:600;font-size:14px}@media (hover:hover) and (pointer:fine){.soc a:hover{color:var(--gold-hi)}}
.f-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line);color:var(--subtle);font-size:13.5px}
.totop{background:rgba(6,15,41,.85);border-color:var(--line-2)}
#toTop{background:var(--gold);color:var(--gold-ink)}
@media (hover:hover) and (pointer:fine){.totop:hover{background:var(--gold);color:var(--gold-ink)}}

/* ================= responsif ================= */
@media (max-width:1100px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .bento>div.b-feature{grid-column:span 2;grid-row:auto}
  .bento>div:nth-child(n),.bento>div.b-stat{grid-column:span 1}
  .bento>div:last-child{grid-column:span 2}
  .laws{grid-template-columns:1fr 1fr}
  .flow{gap:var(--s-6)}
  .split{grid-template-columns:1fr}
}
@media (max-width:900px){
  .sec,.sec.white,.sec.dark{padding:var(--s-7) 0}
  .head{margin-bottom:var(--s-5)}
  .head.row{flex-direction:column;align-items:flex-start}
  .flow{grid-template-columns:1fr;gap:var(--s-5)}
  .flow-side{position:static}
  .feeds{grid-template-columns:1fr;gap:var(--s-6)}
  .laws{grid-template-columns:1fr}
  .trust .w{justify-content:flex-start;gap:14px 22px}
  .trust span{font-size:13px}
  .beat:before{margin-bottom:var(--s-3);font-size:11px;padding:6px 11px 6px 9px}
  .stage:before{background:linear-gradient(0deg,rgba(6,15,41,.96) 0,rgba(6,15,41,.74) 38%,rgba(6,15,41,0) 66%)}
  .js header nav{border-radius:0}
  .js header nav a.cta{justify-content:center;min-height:50px}
  .f-top{grid-template-columns:1fr 1fr}
  .f-brand{grid-column:span 2}
  .cta-band{padding:var(--s-6) var(--s-4)}
  .sec .cta-row .ghost{display:inline-flex}
  .js header nav a:not(.cta){font-family:var(--f-sans)}
}
@media (max-width:560px){
  .bento{grid-template-columns:1fr}
  .bento>div:nth-child(n),.bento>div.b-feature,.bento>div.b-stat,.bento>div:last-child{grid-column:auto}
  .bento>div:nth-child(n){padding:var(--s-4)}
  .bento>div.b-feature{padding:var(--s-5) var(--s-4) var(--s-4)}
  .b-emblem{width:64px;height:64px;top:var(--s-4);right:var(--s-4);border-radius:16px}
  .bento>div.b-stat{min-height:160px}
  .b-live{left:var(--s-4)}
  ol.steps li{grid-template-columns:44px 1fr;gap:var(--s-3)}
  ol.steps b{width:44px;height:44px;font-size:1.05rem}
  ol.steps li:not(:last-child):after{left:21px;top:48px}
  .cta-row .stamp,.cta-row .ghost{flex:1 1 100%}
  .f-top{grid-template-columns:1fr 1fr;gap:var(--s-4)}
  .f-bot{flex-direction:column}
  .w{padding:0 var(--s-3)}
}
@media (min-width:901px) and (max-height:760px){.beat:before{margin-bottom:var(--s-2)}}
@media (prefers-reduced-motion:reduce){
  @media (hover:hover) and (pointer:fine){.bento>div:hover,.rw:hover,.stamp:hover,ol.steps li:hover>div{transform:none}}
  .sk{animation:none}
}
.laws .rw.law{margin:0}
@media (max-width:900px){#glx{height:42%}#glx img{max-height:78%}}
footer .f-col{align-items:flex-start;margin-left:0}


/* ===== src/fx.css ===== */
/* =====================================================================
   PERKAPI — warna aksen & animasi modern (dimuat setelah refresh.css)
   Warna aksen pendukung (emas tetap warna utama):
     langit  #8fbaff  – info, data
     violet  #a99bff  – sorotan
     teal    #5ad6c8  – proses, status
   Semua animasi memakai transform/opacity dan mati saat prefers-reduced-motion.
   Hapus <link> fx.css + <script> fx.js untuk mematikan seluruh lapisan ini.
   ===================================================================== */
:root{
  --violet:#a99bff;--violet-d:#6c5ce7;--teal:#5ad6c8;--teal-d:#1f9e92;--sky-d:#3f6ed6;
  --g-gold:linear-gradient(120deg,#ffe29a 0,#e8b53a 45%,#f59e0b 100%);
  --g-sky:linear-gradient(120deg,#c8dcff 0,#8fbaff 45%,#6c8dff 100%);
  --g-violet:linear-gradient(120deg,#ddd6ff 0,#a99bff 50%,#7c6cf0 100%);
  --g-brand:linear-gradient(100deg,#e8b53a 0,#f6cf6f 25%,#8fbaff 60%,#a99bff 100%);
}
@property --fx-a{syntax:"<angle>";inherits:false;initial-value:0deg}

/* ---------- kata sorotan: gradien emas hangat ---------- */
h1 em,h2 em,.beat h1 .gl{background:var(--g-gold);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;background-size:200% 100%}
.cta-band h2 em{background:var(--g-brand);-webkit-background-clip:text;background-clip:text;background-size:200% 100%}

/* ---------- bilah progres gulir berwarna ---------- */
.progress{background:var(--g-brand);height:3px}

/* ---------- cahaya latar berwarna yang bergerak pelan ---------- */
.sec{overflow:clip}
.sec>.w{position:relative;z-index:1}
.sec:after{content:"";position:absolute;z-index:0;pointer-events:none;width:720px;height:720px;border-radius:50%;filter:blur(90px);opacity:.62;animation:fxDrift 18s ease-in-out infinite alternate}
@keyframes fxDrift{to{transform:translate3d(80px,-60px,0) scale(1.15)}}
#beranda-stat:after{left:-260px;top:-120px;background:radial-gradient(circle,rgba(63,110,214,.55),transparent 65%)}
.sec.alt:after{right:-280px;top:10%;background:radial-gradient(circle,rgba(108,92,231,.42),transparent 65%)}
#cara:after{left:-300px;bottom:-200px;background:radial-gradient(circle,rgba(31,158,146,.35),transparent 65%)}
.feeds-sec:after,.sec:not(.alt):not(#beranda-stat):not(#cara):not(.cta-wrap):after{right:-300px;bottom:-240px;background:radial-gradient(circle,rgba(232,181,58,.18),transparent 65%)}
.cta-wrap:after{display:none}
.pagehead:after{opacity:.4}
.trust{position:relative;background:linear-gradient(90deg,rgba(63,110,214,.08),rgba(108,92,231,.06) 50%,rgba(232,181,58,.06)),var(--bg)}

/* ---------- warna aksen per kartu bento ---------- */
.bento>div{--acc:var(--gold);--acc-bg:rgba(232,181,58,.12);--acc-line:rgba(232,181,58,.3)}
.bento>div:nth-child(4){--acc:var(--sky);--acc-bg:rgba(143,186,255,.12);--acc-line:rgba(143,186,255,.32)}
.bento>div:nth-child(5){--acc:var(--violet);--acc-bg:rgba(169,155,255,.13);--acc-line:rgba(169,155,255,.34)}
.bento>div:nth-child(6){--acc:var(--teal);--acc-bg:rgba(90,214,200,.12);--acc-line:rgba(90,214,200,.32)}
.bento>div:nth-child(n) .ico{color:var(--acc);background:var(--acc-bg);border-color:var(--acc-line)}
.bento>div:nth-child(5) .b-num{color:var(--violet)}
.bento>div:not(.b-feature):not(.b-stat){background:linear-gradient(160deg,var(--acc-bg),transparent 55%),var(--surface)}
/* angka statistik bergradien */
.b-stat:nth-child(2) b{background:var(--g-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.b-stat:nth-child(3) b{background:var(--g-sky);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.b-stat:nth-child(2){background:radial-gradient(100% 80% at 100% 100%,rgba(232,181,58,.14),transparent 60%),var(--surface)}
.b-stat:nth-child(3){background:radial-gradient(100% 80% at 100% 100%,rgba(143,186,255,.16),transparent 60%),var(--surface)}

/* ---------- bingkai gradien berputar (kartu unggulan & panel ajakan) ---------- */
.b-feature,.cta-band{border-color:transparent!important}
.b-feature:after,.cta-band:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:2;
  background:conic-gradient(from var(--fx-a),rgba(232,181,58,.9),rgba(143,186,255,.25) 25%,rgba(169,155,255,.85) 50%,rgba(90,214,200,.25) 75%,rgba(232,181,58,.9));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:fxSpin 8s linear infinite}
@keyframes fxSpin{to{--fx-a:360deg}}

/* ---------- langkah: nomor berwarna, garis terisi saat digulir ---------- */
ol.steps li:nth-child(1){--acc:var(--gold)}
ol.steps li:nth-child(2){--acc:var(--sky)}
ol.steps li:nth-child(3){--acc:var(--violet)}
ol.steps li:nth-child(4){--acc:var(--teal)}
ol.steps b{color:var(--acc);-webkit-text-fill-color:var(--acc);border-color:var(--acc);box-shadow:0 0 0 6px color-mix(in srgb,var(--acc) 12%,transparent),0 0 24px -4px color-mix(in srgb,var(--acc) 60%,transparent)}
ol.steps li:not(:last-child):after{background:linear-gradient(var(--acc),color-mix(in srgb,var(--acc) 15%,transparent));transform-origin:top}
@media (hover:hover) and (pointer:fine){ol.steps li:hover>div{border-color:color-mix(in srgb,var(--acc) 45%,transparent)}}

/* ---------- rujukan hukum: garis atas berwarna ---------- */
.laws .rw.law{position:relative;overflow:hidden}
.laws .rw.law:after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--g-gold)}
.laws .rw.law:nth-child(2):after{background:var(--g-sky)}
.laws .rw.law:nth-child(3):after{background:var(--g-violet)}
.laws .rw.law:nth-child(2) .tg{background:rgba(143,186,255,.1);border-color:rgba(143,186,255,.3);color:#c4d8ff}
.laws .rw.law:nth-child(3) .tg{background:rgba(169,155,255,.12);border-color:rgba(169,155,255,.34);color:#d3cbff}

/* ---------- pita kepercayaan: ikon berwarna ---------- */
.trust span:nth-child(2) svg{stroke:var(--sky)}
.trust span:nth-child(3) svg{stroke:var(--violet)}
.trust span:nth-child(4) svg{stroke:var(--teal)}

/* ---------- FAQ & lainnya ---------- */
.faq details[open]{border-color:rgba(169,155,255,.35);background:linear-gradient(160deg,rgba(169,155,255,.08),transparent 60%),var(--surface-2)}
.faq summary:after{transition:transform .35s var(--ease-out),background .3s}
.faq details[open] summary:after{background:rgba(169,155,255,.18);color:var(--violet)}
.ask{background:linear-gradient(160deg,rgba(90,214,200,.1),transparent 60%),var(--surface);border-color:rgba(90,214,200,.25)}
#ev .rw time{background:linear-gradient(160deg,rgba(143,186,255,.16),rgba(169,155,255,.1));border-color:rgba(143,186,255,.3);color:#d6e4ff}
.feeds .rw .tg{background:rgba(169,155,255,.12);border-color:rgba(169,155,255,.32);color:#d3cbff}
.eyebrow{background:var(--g-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.eyebrow:before{background:var(--g-gold)}
.pagehead:before{background:radial-gradient(55% 100% at 85% 0,rgba(63,110,214,.4),transparent 70%),radial-gradient(40% 90% at 10% 100%,rgba(108,92,231,.22),transparent 70%)}

/* ---------- tombol: kilau saat disorot ---------- */
.stamp,a.stamp{position:relative;overflow:hidden;isolation:isolate}
.stamp:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.stamp:hover:before{transform:translateX(120%)}}
.ghost{position:relative}
@media (hover:hover) and (pointer:fine){.ghost:hover{border-color:rgba(169,155,255,.6);box-shadow:0 0 0 4px rgba(169,155,255,.1)}}

/* ---------- cahaya tepi kartu mengikuti kursor (diatur fx.js) ---------- */
.fx-glow{position:relative}
.fx-glow>.fx-ring{position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;z-index:3;padding:1px;
  background:radial-gradient(260px circle at var(--gx,50%) var(--gy,50%),rgba(246,207,111,.9),rgba(169,155,255,.5) 40%,transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
@media (hover:hover) and (pointer:fine){.fx-glow:hover>.fx-ring{opacity:1}}

/* ---------- elemen melayang & berdenyut ---------- */
.b-emblem{animation:fxFloat 6s ease-in-out infinite}
.cta-logo{animation:fxFloat 7s ease-in-out infinite}
@keyframes fxFloat{0%,100%{transform:translateY(0) rotate(4deg)}50%{transform:translateY(-10px) rotate(-2deg)}}
.b-live i{animation:fxPulse 2s ease-out infinite}
@keyframes fxPulse{0%{box-shadow:0 0 0 0 rgba(95,212,160,.55)}100%{box-shadow:0 0 0 10px rgba(95,212,160,0)}}
.beat:before{animation:fxPop .7s var(--ease-out) both}
@keyframes fxPop{from{opacity:0;transform:translateY(8px) scale(.96)}}
h1 em,h2 em,.beat h1 .gl{animation:fxSheen 6s ease-in-out infinite}
@keyframes fxSheen{0%,100%{background-position:0 0}50%{background-position:100% 0}}

/* ---------- muncul saat digulir (kelas dipasang fx.js; tanpa JS semua tetap terlihat) ---------- */
.fx-rv{opacity:0;transform:translate3d(0,16px,0);
  transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);transition-delay:var(--fx-d,0ms)}
.fx-rv.fx-in{opacity:1;transform:none}
.fx-rv.fx-left{transform:translate3d(-20px,0,0)}
.fx-rv.fx-scale{transform:scale(.94)}
.fx-rv.fx-in.fx-left,.fx-rv.fx-in.fx-scale{transform:none}
/* garis langkah tumbuh saat masuk layar */
ol.steps li.fx-rv:after{transform:scaleY(0);transition:transform 1s var(--ease-out) .35s}
ol.steps li.fx-in:after{transform:scaleY(1)}
/* judul: kata muncul bergantian */
.fx-words .fx-w{display:inline-block;opacity:0;transform:translateY(.45em);transition:opacity .6s var(--ease-out),transform .7s var(--ease-out);transition-delay:calc(var(--i)*55ms)}
.fx-words.fx-in .fx-w{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .sec:after,.b-feature:after,.cta-band:after,.b-emblem,.cta-logo,.b-live i,.beat:before,h1 em,h2 em,.beat h1 .gl{animation:none!important}
  .fx-rv,.fx-words .fx-w{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  ol.steps li:after{transform:none!important}
  .stamp:before{display:none}
}
@media (max-width:900px){.sec:after{width:440px;height:440px;filter:blur(70px)}}
html.lite .sec:after{display:none}
html.lite .b-feature:after,html.lite .cta-band:after{animation:none}


/* ===== src/pages.css ===== */
/* =====================================================================
   PERKAPI — komponen halaman dalam (dimuat setelah fx.css di semua halaman)
   Direktori anggota, kode etik, kontak, pendaftaran, 404, tombol WhatsApp.
   Memakai token dari refresh.css (warna, radius, jarak) dan fx.css (aksen).
   ===================================================================== */

/* ---------- kepala halaman dalam ---------- */
.pagehead{padding:var(--s-7) 0 var(--s-6);border-bottom:1px solid var(--line)}
.pagehead .eyebrow{margin-top:var(--s-3)}
.pagehead h1{max-width:16ch}
.pagehead p:not(.eyebrow){max-width:40rem}
.ph-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--s-6);align-items:end}
.coin{display:none}

/* ---------- direktori anggota ---------- */
.dsearch{padding:var(--s-4);border-radius:var(--r-xl);background:linear-gradient(160deg,rgba(143,186,255,.1),transparent 60%),var(--surface-solid);border:1px solid rgba(143,186,255,.22);box-shadow:var(--sh-2)}
.dsearch-in{position:relative}
.dsearch-in svg{position:absolute;left:18px;top:50%;width:22px;height:22px;transform:translateY(-50%);fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;pointer-events:none}
.dsearch input{min-height:60px;padding-left:52px;font-size:17px;border-radius:var(--r-md);background:rgba(6,15,41,.6)}
.seg{display:flex;gap:6px;margin-top:var(--s-3);padding:5px;border-radius:999px;background:rgba(6,15,41,.5);border:1px solid var(--line)}
.seg button{flex:1;min-height:42px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:600 14.5px/1 var(--f-sans);transition:background .25s var(--ease-out),color .2s}
@media (hover:hover) and (pointer:fine){.seg button:hover{color:#fff}}
.seg button[aria-pressed=true]{background:var(--gold);color:var(--gold-ink)}
.dhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);min-height:28px;margin-bottom:var(--s-4)}
.dcount{margin:0;color:var(--muted);font:600 14.5px/1 var(--f-sans)}
.ddemo{margin:0;padding:8px 14px;border-radius:999px;background:var(--gold-soft);border:1px solid rgba(232,181,58,.32);color:var(--gold-hi);font:600 13px/1.2 var(--f-sans)}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:var(--s-3)}
.dgrid>.empty{grid-column:1/-1}
.sk.mk{height:132px;margin:0}
.mcard{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);
  transition:border-color .25s,background .25s,transform .4s var(--ease-out);animation:mIn .55s var(--ease-out) both}
.mcard:nth-child(2){animation-delay:40ms}.mcard:nth-child(3){animation-delay:80ms}.mcard:nth-child(4){animation-delay:120ms}.mcard:nth-child(5){animation-delay:160ms}.mcard:nth-child(n+6){animation-delay:200ms}
@keyframes mIn{from{opacity:0;transform:translateY(14px)}}
@media (hover:hover) and (pointer:fine){.mcard:hover{border-color:var(--line-2);background:var(--surface-2);transform:translateY(-2px)}}
.mav{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:linear-gradient(140deg,#2a4fb3,#15265a);border:1px solid rgba(143,186,255,.3);color:#fff;font:800 17px/1 var(--f-sans);letter-spacing:.02em}
.mbody{min-width:0;padding-right:96px}
.mbody b{display:block;color:#fff;font:700 1.05rem/1.35 var(--f-sans);letter-spacing:-.01em;overflow-wrap:anywhere}
.mprof{display:block;margin-top:4px;color:var(--sky);font:600 13.5px/1.3 var(--f-sans)}
.mmeta{display:flex;flex-wrap:wrap;gap:6px var(--s-4);margin:var(--s-2) 0 0}
.mmeta dt{color:var(--subtle);font:600 11.5px/1.3 var(--f-sans);letter-spacing:.06em;text-transform:uppercase}
.mmeta dd{margin:2px 0 0;color:#e3e9f8;font:500 14px/1.4 ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;overflow-wrap:anywhere}
.mst{position:absolute;top:var(--s-4);right:var(--s-4);display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font:700 12px/1 var(--f-sans);border:1px solid}
.mst svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.st-aktif{color:#86e4b9;background:rgba(95,212,160,.12);border-color:rgba(95,212,160,.35)}
.st-nonaktif{color:#c3cbe0;background:rgba(255,255,255,.06);border-color:var(--line-2)}
.st-diberhentikan{color:#ffb3ba;background:rgba(255,107,120,.12);border-color:rgba(255,107,120,.38)}
.mdemo{position:absolute;bottom:var(--s-3);right:var(--s-4);color:var(--gold);font:700 11px/1 var(--f-sans);letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.dmore-wrap{text-align:center;margin:var(--s-5) 0 0}
.dnote{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);margin-top:var(--s-6);padding:var(--s-5);border-radius:var(--r-lg);
  background:linear-gradient(160deg,rgba(90,214,200,.1),transparent 60%),var(--surface);border:1px solid rgba(90,214,200,.25)}
.dnote>div{flex:1 1 420px}
.dnote b{color:#fff;font:700 1.05rem/1.3 var(--f-sans)}
.dnote p{margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.65}
.dnote p b{font-size:inherit;color:#86e4b9}
.empty{padding:var(--s-6) var(--s-4);border-radius:var(--r-lg);border:1px dashed var(--line-2);background:rgba(255,255,255,.02);text-align:center}
.empty svg{width:44px;height:44px;fill:none;stroke:var(--sky);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:var(--s-3);opacity:.85}
.empty h3{margin:0 0 8px;color:#fff;font:700 1.15rem/1.3 var(--f-sans);letter-spacing:-.01em}
.empty p{margin:0 auto;max-width:34rem;color:var(--muted);font:400 15px/1.6 var(--f-sans)}

/* ---------- kode etik ---------- */
.kmeta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-4)}
.kmeta svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.kmeta .ghost,.kmeta .stamp{min-height:46px;padding:0 20px;font-size:15px}
.kchip{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px;background:rgba(169,155,255,.12);border:1px solid rgba(169,155,255,.32);color:#d3cbff;font:600 13px/1 var(--f-sans)}
.kchip:empty{display:none}
.ethics{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--s-6);align-items:start}
.ethics aside{position:sticky;top:100px}
.toc-h{margin:0 0 var(--s-2);color:var(--subtle);font:700 12px/1 var(--f-sans);letter-spacing:.14em;text-transform:uppercase}
.toc{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.toc a{display:flex;gap:10px;padding:9px 0 9px 16px;margin-left:-1px;border-left:2px solid transparent;color:var(--muted);text-decoration:none;font:500 14.5px/1.4 var(--f-sans);transition:color .2s,border-color .2s}
.toc a span{color:var(--subtle);font-variant-numeric:tabular-nums}
@media (hover:hover) and (pointer:fine){.toc a:hover{color:#fff}}
.toc a.on{color:#fff;border-left-color:var(--gold)}.toc a.on span{color:var(--gold)}
.ethics-body{max-width:46rem}
.bab{position:relative;padding:0 0 var(--s-6);margin-bottom:var(--s-6);border-bottom:1px solid var(--line);scroll-margin-top:100px}
.bab:last-child{border-bottom:0}
.bab-n{display:block;margin-bottom:10px;font:800 13px/1 var(--f-sans);letter-spacing:.14em;background:var(--g-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.bab h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:0 0 var(--s-3);color:#fff}
.bab p{margin:0 0 var(--s-2);color:#d3dbef;font:400 17px/1.8 var(--f-sans)}
.bab p.psl{margin-top:var(--s-4);color:#fff;font-weight:700}
@media print{.ethics{display:block}.ethics aside,.kmeta,.wa{display:none!important}.bab p,.bab h2{color:#000!important}}

/* ---------- kontak ---------- */
.contact{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s-6);align-items:start}
.cinfo{display:grid;gap:var(--s-2)}
.ccard{display:grid;grid-template-columns:46px minmax(0,1fr);gap:var(--s-3);align-items:center;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
.ccard .ico{width:46px;height:46px;margin:0;border-radius:14px;display:grid;place-items:center;color:var(--gold);background:var(--gold-soft);border:1px solid rgba(232,181,58,.28)}
.ccard:nth-child(2) .ico{color:var(--sky);background:rgba(143,186,255,.12);border-color:rgba(143,186,255,.3)}
.ccard:nth-child(3) .ico{color:var(--violet);background:rgba(169,155,255,.12);border-color:rgba(169,155,255,.32)}
.ccard.cwa .ico{color:#5fd4a0;background:rgba(95,212,160,.12);border-color:rgba(95,212,160,.32)}
.ccard .ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ccard b{display:block;color:var(--subtle);font:700 12px/1 var(--f-sans);letter-spacing:.1em;text-transform:uppercase}
.ccard p{margin:6px 0 0;color:#fff;font:500 15.5px/1.5 var(--f-sans);overflow-wrap:anywhere}
.ccard a{color:var(--gold-hi)}
.cform{padding:var(--s-5);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-2)}
.cform h2{font-size:1.8rem;margin:0}
.cform .lead{margin:8px 0 var(--s-3);font-size:15.5px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.cform label:not(.cb){margin-top:var(--s-3)}

/* ---------- pendaftaran: alur di samping formulir ---------- */
.reg{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s-6);align-items:start}
.reg-side{position:sticky;top:100px}
.reg-side h2{margin:0 0 var(--s-3)}
.reg .steps{display:grid;grid-template-columns:1fr;gap:0;margin-top:var(--s-5)}
.reg .steps>div{position:relative;display:grid;grid-template-columns:44px 1fr;column-gap:var(--s-3);padding:0 0 var(--s-4);border:0;background:none;border-radius:0;box-shadow:none}
@media (hover:hover) and (pointer:fine){.reg .steps>div:hover{transform:none;box-shadow:none}}
.reg .steps>div:not(:last-child):before{content:"";position:absolute;inset:auto;left:21px;top:48px;bottom:6px;width:1.5px;opacity:1;z-index:0;background:linear-gradient(var(--line-2),var(--line))}
.reg .steps b{grid-row:span 2;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface-solid);border:1.5px solid var(--acc,var(--gold));
  color:var(--acc,var(--gold));-webkit-text-fill-color:var(--acc,var(--gold));font:800 1rem/1 var(--f-sans);position:relative;z-index:1}
.reg .steps>div:nth-child(2){--acc:var(--sky)}.reg .steps>div:nth-child(3){--acc:var(--violet)}.reg .steps>div:nth-child(4){--acc:var(--teal)}
.reg .steps h3{margin:10px 0 4px;font-size:1.08rem;color:#fff}
.reg .steps p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55}
.reg .form{max-width:none;padding:var(--s-5)}
.reg-help{margin-top:var(--s-3);padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
.reg-help b{color:#fff;font:700 1rem/1.3 var(--f-sans)}
.reg-help p{margin:6px 0 4px;color:var(--muted);font-size:14.5px}

/* ---------- 404 ---------- */
.nf404{position:relative;overflow:hidden;min-height:calc(100vh - 68px - 260px);display:grid;place-items:center;padding:var(--s-8) 0;text-align:center}
.nf404 .w{position:relative}
.nf-code{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-58%);z-index:-1;font:800 clamp(10rem,30vw,22rem)/1 var(--f-sans);letter-spacing:-.06em;
  color:transparent;-webkit-text-stroke:1.5px rgba(143,186,255,.18);pointer-events:none;user-select:none}
.nf404 h1{font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:-.05em;margin:0 auto;max-width:14ch}
.nf404 p:not(.eyebrow):not(.nf-code){margin:var(--s-3) auto 0;max-width:30rem;color:var(--muted);font-size:1.08rem}
.nf404 .eyebrow{justify-content:center}
.nf404 .cta-row{justify-content:center}

/* ---------- tombol WhatsApp mengambang ---------- */
.wa{position:fixed;right:20px;bottom:20px;z-index:45;display:inline-flex;align-items:center;gap:0;height:56px;padding:0 16px;border-radius:999px;
  background:#1fa855;color:#fff;text-decoration:none;font:700 15px/1 var(--f-sans);box-shadow:0 14px 34px -10px rgba(31,168,85,.7),inset 0 1px 0 rgba(255,255,255,.25);
  transition:gap .35s var(--ease-out),transform .3s var(--ease-out),background .2s;animation:waIn .7s var(--ease-out) 1.2s both}
.wa svg{width:24px;height:24px;flex:none;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.wa span{max-width:0;overflow:hidden;white-space:nowrap;transition:max-width .4s var(--ease-out)}
.wa:focus-visible{gap:10px;background:#1b9a4d;transform:translateY(-2px)}
@media (hover:hover) and (pointer:fine){.wa:hover{gap:10px;background:#1b9a4d;transform:translateY(-2px)}}
.wa:focus-visible span{max-width:180px}
@media (hover:hover) and (pointer:fine){.wa:hover span{max-width:180px}}
.wa:focus-visible{outline:3px solid #fff;outline-offset:3px}
@keyframes waIn{from{opacity:0;transform:translateY(20px) scale(.8)}}
.has-wa .totop{bottom:88px}
@media (min-width:901px){.wa{gap:10px}.wa span{max-width:180px}}

/* ---------- responsif ---------- */
@media (max-width:1000px){
  .ph-grid,.reg,.contact{grid-template-columns:1fr}
  .reg-side{position:static}
  .ethics{grid-template-columns:1fr}
  .ethics aside{position:static;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
}
@media (max-width:560px){
  .dgrid{grid-template-columns:1fr}
  .mbody{padding-right:0;padding-top:30px}
  .mst{top:var(--s-3);right:var(--s-3)}
  .frow{grid-template-columns:1fr;gap:0}
  .cform,.reg .form{padding:var(--s-4)}
  .wa{right:14px;bottom:14px;height:52px;padding:0 14px}
  .has-wa .totop{bottom:76px}
  .seg button{font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){.mcard,.wa{animation:none}@media (hover:hover) and (pointer:fine){.mcard:hover,.wa:hover{transform:none}}.wa,.wa span{transition:none}}
@media (max-width:900px){.nf404 .cta-row .ghost,.dmore-wrap .ghost,.kmeta .ghost,.dnote .ghost{display:inline-flex}}
.ethics:has(aside[hidden]){grid-template-columns:1fr}.ethics:has(aside[hidden]) .ethics-body{max-width:none}
.dgrid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}
.mbody{padding-right:132px}
.mmeta>div{min-width:0}
@media (max-width:560px){.dgrid{grid-template-columns:1fr}.mbody{padding-right:0}}


/* ===== src/inner.css ===== */
/* =====================================================================
   Halaman dalam v2: Tentang, Berita, Agenda, Peraturan, mode baca (kertas),
   aturan "tenang" (efek berat hanya di beranda), keadaan kosong.
   ===================================================================== */

/* ---------- halaman dalam lebih tenang ---------- */
.pg .sec:after{animation:none;opacity:.22}
.pg .sec.alt:after{opacity:.18}
.pg .fx-rv{filter:none;transform:translate3d(0,16px,0);transition:opacity .6s var(--ease-out),transform .7s var(--ease-out);transition-delay:var(--fx-d,0ms)}
.pg .fx-rv.fx-in{transform:none}
.pg .b-emblem,.pg .cta-logo{animation:none}
.pg h1 em,.pg h2 em{animation:none;background-position:0 0}
.pg .mcard{animation-duration:.4s}

/* ---------- Tentang ---------- */
.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:var(--s-5);align-items:start}
.seal{position:relative;overflow:hidden;padding:var(--s-6) var(--s-5);border-radius:var(--r-xl);text-align:center;
  background:radial-gradient(100% 80% at 50% 0,rgba(35,72,168,.6),transparent 70%),linear-gradient(180deg,#10224f,#0b1940);border:1px solid rgba(232,181,58,.3)}
.seal:before{content:"";position:absolute;inset:-40%;background:repeating-conic-gradient(from 0deg,rgba(246,207,111,.07) 0 6deg,transparent 6deg 18deg);-webkit-mask-image:radial-gradient(circle,#000,transparent 60%);mask-image:radial-gradient(circle,#000,transparent 60%)}
.seal>*{position:relative}
.seal img{width:120px;height:120px;border-radius:28px;background:#fff;padding:6px;box-shadow:0 24px 50px -16px rgba(0,0,0,.7)}
.seal-k{margin:var(--s-4) 0 0;color:var(--gold);font:700 12.5px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase}
.seal-d{margin:10px 0 0;color:#fff;font:800 2rem/1.1 var(--f-sans);letter-spacing:-.03em}
.seal-n{margin:var(--s-3) 0 0;color:var(--muted);font-size:14px;line-height:1.6}
.seal-n code{display:inline-block;margin-top:6px;padding:6px 10px;border-radius:8px;background:rgba(6,15,41,.6);border:1px solid var(--line);color:#e7edfb;font:600 12.5px/1.3 ui-monospace,Menlo,Consolas,monospace;overflow-wrap:anywhere}
.facts.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);margin:0}
.fgrid>div{padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
.fgrid dt,.fgrid dd{border:0!important;padding:0!important}
.fgrid dt{color:var(--subtle);font:700 12px/1 var(--f-sans);letter-spacing:.12em;text-transform:uppercase}
.fgrid dd{margin:10px 0 0;color:#fff;font:500 16px/1.55 var(--f-sans)}
.fgrid .fwide{grid-column:1/-1;background:linear-gradient(160deg,rgba(232,181,58,.1),transparent 60%),var(--surface);border-color:rgba(232,181,58,.28)}
.flinks{display:flex;flex-wrap:wrap;gap:10px var(--s-4)}
.flinks a{display:inline-flex;align-items:center;gap:6px;color:var(--gold-hi);font-weight:700;text-decoration:none}
@media (hover:hover) and (pointer:fine){.flinks a:hover{color:#fff}}
.flinks svg,.portal-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.vm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-4)}
.vm>.empty{grid-column:1/-1}
.visi{margin:0;padding:var(--s-5);border-radius:var(--r-xl);background:radial-gradient(90% 90% at 0 0,rgba(232,181,58,.16),transparent 60%),var(--surface);border:1px solid rgba(232,181,58,.3)}
.visi span,.misi span{display:block;margin-bottom:var(--s-3);color:var(--gold);font:700 12.5px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase}
.visi p{margin:0;color:#fff;font:400 clamp(1.5rem,2.4vw,2rem)/1.35 var(--f-serif);font-style:italic}
.misi{padding:var(--s-5);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line)}
.misi ol{margin:0;padding:0;list-style:none;counter-reset:m;display:grid;gap:var(--s-3)}
.misi li{counter-increment:m;display:grid;grid-template-columns:36px 1fr;gap:var(--s-2);color:#dfe6f7;font-size:16px;line-height:1.6}
.misi li:before{content:counter(m);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(143,186,255,.12);border:1px solid rgba(143,186,255,.32);color:var(--sky);font:800 14px/1 var(--f-sans)}
.ppl{display:block}
.pgroup+.pgroup{margin-top:var(--s-6)}
.pgroup-h{display:flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-4);color:#fff;font:700 1.2rem/1.2 var(--f-sans);letter-spacing:-.01em}
.pgroup-h:after{content:"";flex:1;height:1px;background:var(--line)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--s-3)}
.person{margin:0;padding:10px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);transition:transform .2s var(--ease-out),border-color .2s ease}
.person.lead{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:var(--s-3);border-color:rgba(232,181,58,.35);background:linear-gradient(160deg,rgba(232,181,58,.1),transparent 60%),var(--surface)}
.pimg{border-radius:14px;background:linear-gradient(160deg,#1b3478,#0d1c42)}
.pimg:after{display:none}
.pimg img,.pimg .ph{filter:none;aspect-ratio:4/5}
.ph{font:800 3.2rem/1 var(--f-sans);letter-spacing:-.03em;color:rgba(255,255,255,.85)}
.person figcaption{padding:var(--s-2) 6px 6px}
.person b{font:700 1.02rem/1.3 var(--f-sans);color:#fff}
.person span{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:999px;background:rgba(143,186,255,.1);color:#c8d9ff;font:600 12.5px/1.3 var(--f-sans)}
.person.lead span{background:var(--gold-soft);color:var(--gold-hi)}

/* ---------- Berita: grid kartu ---------- */
.filterbar{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-5);padding:var(--s-2);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}
.fsearch{position:relative;flex:1 1 320px;margin:0}
.fsearch svg{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;pointer-events:none}
.fsearch input{padding-left:46px;border-color:transparent;background:rgba(6,15,41,.5)}
.fsel{flex:0 1 220px;margin:0}
.fsel select{border-color:transparent;background:rgba(6,15,41,.5)}
.newsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:var(--s-3)}
.newsgrid>.sk{height:300px;margin:0}
.newsgrid>.rw,.newsgrid>.rw:first-child{position:relative;display:flex;flex-direction:column;gap:12px;margin:0;padding:var(--s-4);border-radius:var(--r-lg)}
.newsgrid .rw time{order:1;color:var(--subtle)}
.newsgrid .rw .tg{order:0;align-self:flex-start}
.newsgrid .rw .nb{order:2;display:flex;flex-direction:column;gap:var(--s-2)}
.newsgrid .rw .nf{width:100%;aspect-ratio:16/9;border-radius:var(--r-md)}
.newsgrid .rw b{font-size:1.18rem;line-height:1.35}
.newsgrid .rw.hf .nb{flex-direction:column}
.newsgrid>.rw:first-child.hf{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;column-gap:var(--s-5);align-items:start}
.newsgrid>.rw:first-child.hf .nb{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s-5);align-items:center}
.newsgrid>.rw:first-child.hf b{font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.03em}
.newsgrid>.rw:not(.hf):before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:22px 22px 0 0;background:var(--g-gold)}

/* ---------- Agenda: garis waktu ---------- */
.agenda-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);gap:var(--s-6);align-items:start}
.timeline-ev{position:relative;padding-left:28px}
.timeline-ev:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;border-radius:2px;background:linear-gradient(var(--gold),rgba(143,186,255,.25))}
.timeline-ev>.rw{position:relative;display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:var(--s-3);margin-bottom:var(--s-2)}
.timeline-ev>.rw:before{content:"";position:absolute;left:-27px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--bg);border:2px solid var(--gold);box-shadow:0 0 0 4px rgba(232,181,58,.15);opacity:1;right:auto;bottom:auto;z-index:1}
#ev.timeline-ev .rw time{display:grid;place-items:center;min-width:120px;padding:14px 12px;border-radius:var(--r-sm);background:linear-gradient(160deg,rgba(232,181,58,.16),rgba(232,181,58,.05));border:1px solid rgba(232,181,58,.32);color:var(--gold-hi);font:700 14px/1.35 var(--f-sans);text-align:center}
.timeline-ev .rw b{font-size:1.15rem}
.timeline-ev>.sk{height:90px}
.ag-side{display:grid;gap:var(--s-3);position:sticky;top:100px}
.ask-2{background:linear-gradient(160deg,rgba(169,155,255,.12),transparent 60%),var(--surface);border-color:rgba(169,155,255,.28)}

/* ---------- Peraturan ---------- */
.seg-wide{flex-wrap:wrap;justify-content:flex-start;max-width:max-content;margin:0 0 var(--s-5)}
.seg-wide button{flex:0 0 auto;padding:0 18px}
.lawgrid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
.lawgrid .rw.law[hidden]{display:none}
.lawgrid .rw.law:after{background:var(--g-gold)}
.lawgrid .rw.law[data-type=pm]:after{background:var(--g-sky)}
.lawgrid .rw.law[data-type=mk]:after{background:var(--g-violet)}
.lawgrid .rw.law[data-type=ruu]:after{background:linear-gradient(120deg,#a7f0e6,#5ad6c8)}
.rw .tg.t-uu{background:var(--gold-soft);border-color:rgba(232,181,58,.34);color:var(--gold-hi)}
.rw .tg.t-pm{background:rgba(143,186,255,.1);border-color:rgba(143,186,255,.3);color:#c4d8ff}
.rw .tg.t-mk{background:rgba(169,155,255,.12);border-color:rgba(169,155,255,.34);color:#d3cbff}
.rw .tg.t-ruu{background:rgba(90,214,200,.12);border-color:rgba(90,214,200,.34);color:#a7f0e6}
.law-note{margin-top:var(--s-5);padding-left:var(--s-5)}
.law-note:before{display:none}
.portals{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
.portal{position:relative;display:flex;flex-direction:column;gap:10px;padding:var(--s-5) var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);color:inherit;text-decoration:none;transition:border-color .2s ease,transform .2s var(--ease-out),background .2s ease}
@media (hover:hover) and (pointer:fine){.portal:hover{border-color:rgba(232,181,58,.45);background:var(--surface-2);transform:translateY(-3px)}}
.portal .tg{align-self:flex-start;padding:6px 11px;border-radius:999px;background:rgba(90,214,200,.1);border:1px solid rgba(90,214,200,.3);color:#a7f0e6;font:600 12px/1 var(--f-sans)}
.portal b{color:#fff;font:700 1.3rem/1.2 var(--f-sans);letter-spacing:-.02em}
.portal p{margin:0;color:var(--muted);font-size:15px}
.portal-go{position:absolute;top:var(--s-4);right:var(--s-4);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);color:var(--gold-hi);transition:transform .3s var(--ease-out),background .25s}
@media (hover:hover) and (pointer:fine){.portal:hover .portal-go{transform:translate(2px,-2px);background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}}

/* ---------- mode baca: permukaan kertas terang ---------- */
.paper{--ink:#1c2233;--ink-2:#4a536b;--ink-line:rgba(18,26,51,.12);max-width:46rem;margin:0 auto;padding:clamp(28px,5vw,64px);border-radius:var(--r-xl);
  background:#fbf8f1;color:var(--ink);box-shadow:0 40px 90px -40px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.06)}
.paper h2,.paper h3,.paper .bab h2{color:#0e1f4d}
.paper p,.paper li,.paper .bab p,.prosa.paper p,.prosa.paper li,.baca.paper p{color:var(--ink);font:400 18px/1.8 var(--f-sans)}
.paper a{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}
.prosa.paper h2{margin:1.6em 0 .5em;font-size:1.45rem;letter-spacing:-.02em}
.prosa.paper h2:first-child{margin-top:0}
.paper .bab{border-bottom-color:var(--ink-line)}
.paper .bab p.psl{color:#0e1f4d}
.paper .bab-n{background:linear-gradient(120deg,#b8860b,#d39a17);-webkit-background-clip:text;background-clip:text}
.paper .empty{background:transparent;border-color:var(--ink-line)}
.paper .empty h3{color:#0e1f4d}.paper .empty p{color:var(--ink-2)}
.paper .sk{background:linear-gradient(100deg,#efe9dc 30%,#f7f2e8 50%,#efe9dc 70%);background-size:300% 100%}
.baca.paper .nf{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-md);margin:0 0 var(--s-4)}
.baca.paper .share{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--ink-line);display:flex;flex-wrap:wrap;gap:10px}
.baca.paper .ghost{color:#0e1f4d;border-color:rgba(14,31,77,.3);text-decoration:none}
@media (hover:hover) and (pointer:fine){.baca.paper .ghost:hover{background:rgba(14,31,77,.06)}}
.ethics .paper{max-width:none}
/* tampilan gelap (pilihan pengunjung) */
.read-dark .paper{--ink:#dfe6f7;--ink-2:#a3b0d2;--ink-line:rgba(255,255,255,.1);background:var(--surface-solid);box-shadow:none;border:1px solid var(--line)}
.read-dark .paper h2,.read-dark .paper h3,.read-dark .paper .bab h2,.read-dark .paper .bab p.psl{color:#fff}
.read-dark .paper a{color:var(--gold-hi)}
.read-dark .baca.paper .ghost{color:#fff;border-color:var(--line-2)}
.read-dark .paper .sk{background:linear-gradient(100deg,var(--surface) 30%,var(--surface-2) 50%,var(--surface) 70%);background-size:300% 100%}
.readmode{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:#fff;font:600 14.5px/1 var(--f-sans);cursor:pointer}
.readmode:before{content:"";width:16px;height:16px;border-radius:50%;background:linear-gradient(90deg,#fbf8f1 50%,#0d1c42 50%);border:1px solid rgba(255,255,255,.5)}
@media (hover:hover) and (pointer:fine){.readmode:hover{background:rgba(255,255,255,.06)}}
.readmode .rm-l{display:none}
.read-dark .readmode .rm-l{display:inline}.read-dark .readmode .rm-d{display:none}
.baca-t{max-width:22ch;font-size:clamp(2.2rem,4.6vw,3.8rem)!important}
.baca-m{margin-top:var(--s-2)!important;color:var(--muted)!important;font:600 15px/1.4 var(--f-sans)!important}
.baca-back{max-width:46rem;margin:var(--s-5) auto 0}

/* ---------- keadaan kosong ---------- */
.b-stat.is-empty b{opacity:.45}
.b-stat.is-empty>span:not(.b-live):after{content:" · data menyusul";color:var(--subtle)}
.b-stat.is-empty .b-live{display:none}
.soc[hidden]{display:none!important}

/* ---------- responsif ---------- */
@media (max-width:1000px){
  .about,.agenda-wrap,.vm{grid-template-columns:1fr}
  .ag-side{position:static}
  .portals{grid-template-columns:1fr}
  .newsgrid>.rw:first-child.hf .nb{grid-template-columns:1fr}
}
@media (max-width:560px){
  .facts.fgrid{grid-template-columns:1fr}
  .person.lead{grid-column:auto;grid-template-columns:1fr}
  .pgrid{grid-template-columns:1fr 1fr}
  .newsgrid{grid-template-columns:1fr}
  .timeline-ev>.rw{grid-template-columns:1fr}
  #ev.timeline-ev .rw time{justify-self:start;min-width:0}
  .paper p,.paper li,.paper .bab p,.prosa.paper p,.baca.paper p{font-size:17px}
  .seg-wide{max-width:none}
}
@media print{.paper{box-shadow:none;background:#fff;padding:0}.readmode{display:none}}
.pimg .ph{display:flex;align-items:center;justify-content:center}
.newsgrid>.rw:not(.hf):before{opacity:1;right:0;bottom:auto;z-index:1}
.sec .paper h2,.sec .paper h3{color:#0e1f4d;-webkit-text-fill-color:#0e1f4d;background:none}
.read-dark .sec .paper h2,.read-dark .sec .paper h3{color:#fff;-webkit-text-fill-color:#fff}
.timeline-ev>.rw{overflow:visible}
.ethics .paper{margin:0;width:100%}
.paper .bab p.psl{font-weight:700}

/* ---------- terhubung dengan aplikasi ---------- */
.mver{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 10px 5px 7px;border-radius:999px;background:rgba(95,212,160,.12);border:1px solid rgba(95,212,160,.35);color:#86e4b9;font:700 12px/1 var(--f-sans)}
.mver svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:-8px 0 var(--s-4)}
.bgal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm);display:block;transition:transform .3s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.bgal a:hover img{transform:scale(1.03)}}


/* ===== src/obj3d.css ===== */
/* =====================================================================
   PERKAPI — objek 3D kepala halaman dalam (pasangan js/obj3d.js)
   CSS 3D murni: transform + preserve-3d, tanpa WebGL. Satu objek per halaman.
   Gerak: masuk 1,2 s (putar ke depan), melayang 7 s (hanya saat terlihat), miring kursor (JS).
   "Kurangi gerak"/mode hemat: pose diam (.still). Layar < 860 px: disembunyikan.
   ===================================================================== */

/* ---------- tata letak kepala halaman dengan objek ---------- */
.pagehead .w.has3d{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,460px);column-gap:var(--s-6);align-items:center}
.pagehead .w.has3d>*{grid-column:1}
.pagehead .w.has3d>.ph3d{grid-column:2;grid-row:1/span 8}
.pagehead+.sec,.pagehead+section{padding-top:var(--s-6)}

/* ---------- panggung ---------- */
.ph3d{position:relative;height:400px;perspective:1100px;perspective-origin:50% 40%;pointer-events:none;
  opacity:0;transition:opacity .9s var(--ease-out)}
.ph3d.in{opacity:1}
.ph3d .o3d-in,.ph3d .o3d-float,.ph3d .o3d{position:absolute;inset:0;transform-style:preserve-3d;display:grid;place-items:center}
.ph3d .o3d-in{transform:translateY(34px) rotateY(-48deg) scale(.86);transition:transform 1.25s var(--ease-out)}
.ph3d.in .o3d-in{transform:none}
.ph3d.run .o3d-float{animation:o3dFloat 7s ease-in-out infinite}
@keyframes o3dFloat{0%,100%{transform:translateY(0) rotateZ(0)}50%{transform:translateY(-12px) rotateZ(.6deg)}}
.ph3d .o3d{--rx:0deg;--ry:0deg;transform:rotateX(calc(9deg + var(--rx))) rotateY(calc(-20deg + var(--ry)));will-change:transform}
.o3d-shadow{position:absolute;left:50%;bottom:14px;width:62%;height:34px;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent);filter:blur(6px)}
.ph3d.run .o3d-shadow{animation:o3dShadow 7s ease-in-out infinite}
@keyframes o3dShadow{0%,100%{transform:translateX(-50%) scale(1);opacity:1}50%{transform:translateX(-50%) scale(.88);opacity:.7}}
/* kilau mengikuti kursor (dipakai di permukaan utama tiap objek) */
.o3d .gl:after,.o3d .face:after,.o3d .s1:after,.o3d .front:after,.o3d .face3:after,.o3d .main:after,.o3d .letter:after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at var(--gx,35%) var(--gy,25%),rgba(255,255,255,.42),transparent 46%);mix-blend-mode:soft-light}
.ph3d .ln{display:block;height:6px;border-radius:3px;background:rgba(28,34,51,.16);margin:7px 0;width:var(--w,80%)}

/* ---------- Tentang: medali segel ---------- */
.k-tentang .medal{position:relative;width:250px;height:250px;transform-style:preserve-3d}
.k-tentang .edge{position:absolute;inset:0;border-radius:50%;background:linear-gradient(90deg,#7a5a08,#b8860b 50%,#7a5a08);transform:translateZ(var(--z))}
.k-tentang .face{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;overflow:hidden;transform:translateZ(1px);
  background:radial-gradient(circle at 34% 28%,#fff3c4 0,#f6cf6f 20%,#e8b53a 46%,#b8860b 78%,#7a5a08 100%);
  box-shadow:inset 0 0 0 9px rgba(122,90,8,.38),inset 0 0 0 11px rgba(255,236,170,.6),inset 0 -14px 30px rgba(80,55,0,.45)}
.k-tentang .ring{position:absolute;inset:0;width:100%;height:100%}
.k-tentang .ring text{font:800 10.5px/1 var(--f-sans);letter-spacing:2.6px;fill:rgba(84,58,0,.78)}
.k-tentang .mseal{width:112px;height:112px;border-radius:50%;background:#fff;display:grid;place-items:center;
  box-shadow:0 0 0 5px rgba(122,90,8,.35),0 10px 22px rgba(80,55,0,.45),inset 0 -6px 12px rgba(0,0,0,.08)}
.k-tentang .mseal img{width:74px;height:74px;object-fit:contain}
.k-tentang .plaque{position:absolute;left:50%;bottom:22px;transform:translateX(-50%) translateZ(70px);padding:10px 16px;border-radius:14px;text-align:center;white-space:nowrap;
  background:rgba(9,22,52,.86);border:1px solid rgba(232,181,58,.45);box-shadow:0 18px 30px rgba(2,8,28,.5)}
.k-tentang .plaque b{display:block;color:var(--gold-hi);font:800 12px/1.2 var(--f-sans);letter-spacing:.14em;text-transform:uppercase}
.k-tentang .plaque span{display:block;margin-top:3px;color:#c9d3ee;font:600 12px/1.2 var(--f-sans)}

/* ---------- Berita: tumpukan koran ---------- */
.k-berita .sheet{position:absolute;left:50%;top:50%;width:250px;height:316px;margin:-158px 0 0 -125px;padding:16px 16px 14px;border-radius:6px;
  background:linear-gradient(180deg,#fbf8ef,#f1ead9);color:#1c2233;box-shadow:0 22px 44px rgba(2,8,28,.45);overflow:hidden}
.k-berita .s3{transform:translateX(-58px) translateZ(-60px) rotateZ(-10deg);filter:brightness(.82)}
.k-berita .s2{transform:translateX(52px) translateZ(-30px) rotateZ(7deg);filter:brightness(.9)}
.k-berita .s1{transform:translateZ(0)}
.k-berita .mast{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:8px;margin-bottom:10px;border-bottom:3px double rgba(28,34,51,.6)}
.k-berita .mast b{font:400 24px/1 var(--f-serif);font-style:italic;letter-spacing:.01em;color:#0e1f4d}
.k-berita .mast span{font:700 9px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:#9a6b0a}
.k-berita h4{margin:0 0 6px;font:800 17px/1.22 var(--f-sans);letter-spacing:-.02em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.k-berita .nmeta{margin:0 0 8px;font:600 11px/1.3 var(--f-sans);color:#6b7286}
.k-berita .hl{display:block;height:12px;border-radius:3px;background:rgba(28,34,51,.32);margin:6px 0}
.k-berita .hl.short{width:62%;margin-bottom:12px}
.k-berita .cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.k-berita .nstamp{position:absolute;left:50%;top:50%;margin:-150px 0 0 40px;transform:translateZ(46px) rotate(12deg);padding:5px 12px;border-radius:6px;
  border:2px solid #c8202f;color:#c8202f;background:rgba(251,248,239,.92);font:800 13px/1 var(--f-sans);letter-spacing:.24em}

/* ---------- Agenda: kalender meja ---------- */
.k-agenda .cal{position:relative;width:250px;height:292px;transform-style:preserve-3d}
.k-agenda .page{position:absolute;inset:0;border-radius:18px;background:#fbfaf6;box-shadow:0 22px 46px rgba(2,8,28,.45)}
.k-agenda .back{background:#ece6d6;transform:translateZ(-9px) translateY(7px)}
.k-agenda .b2{background:#dcd4bf;transform:translateZ(-18px) translateY(14px)}
.k-agenda .front{display:flex;flex-direction:column;align-items:center;overflow:hidden;color:#121a33;transform-origin:50% 0}
.k-agenda .front.flip{animation:calFlip .95s cubic-bezier(.2,.85,.25,1)}
@keyframes calFlip{0%{transform:rotateX(-96deg)}70%{transform:rotateX(8deg)}100%{transform:rotateX(0)}}
.k-agenda .mon{width:100%;padding:24px 0 12px;text-align:center;background:linear-gradient(180deg,#d62a39,#b01c2a);color:#fff;font:800 12px/1 var(--f-sans);letter-spacing:.2em;text-transform:uppercase}
.k-agenda .day{margin-top:8px;font:800 112px/1 var(--f-sans);letter-spacing:-.06em;color:#0e1f4d}
.k-agenda .wd{margin-top:-2px;font:400 23px/1.1 var(--f-serif);font-style:italic;color:#9a6b0a}
.k-agenda .ev{margin-top:auto;width:100%;padding:12px 16px 16px;border-top:1px dashed #d9d2c0;text-align:center}
.k-agenda .ev b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:800 13px/1.3 var(--f-sans);color:#121a33}
.k-agenda .ev span{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:99px;background:rgba(232,181,58,.2);color:#7a5408;font:800 11px/1.4 var(--f-sans)}
.k-agenda .ev span:empty{display:none}
.k-agenda .bind{position:absolute;left:0;right:0;top:-12px;display:flex;justify-content:center;gap:118px;transform:translateZ(4px)}
.k-agenda .bind i{width:14px;height:32px;border-radius:7px;background:linear-gradient(90deg,#8792ad,#e6ebf5 45%,#8792ad);box-shadow:0 4px 8px rgba(0,0,0,.35)}

/* ---------- Peraturan: deretan kitab ---------- */
.k-peraturan .shelf{position:relative;width:290px;height:300px;transform-style:preserve-3d}
.k-peraturan .book{--t:52px;--dp:180px;position:absolute;bottom:0;left:calc(18px + var(--i) * 60px);width:var(--t);height:var(--h);transform-style:preserve-3d}
.k-peraturan .b1{--h:276px;--c:#16307a;--c2:#0e1f4d}
.k-peraturan .b2{--h:252px;--c:#7a1d27;--c2:#561219}
.k-peraturan .b3{--h:264px;--c:#0f5c56;--c2:#0a3f3b}
.k-peraturan .b4{--h:240px;--c:#2b2f45;--c2:#1b1e2e}
.k-peraturan .spine,.k-peraturan .side,.k-peraturan .top{position:absolute;backface-visibility:hidden}
.k-peraturan .spine{inset:0;overflow:hidden;border-radius:4px;transform:translateZ(calc(var(--dp) / 2));display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:18px 0;
  background:linear-gradient(90deg,var(--c2),var(--c) 30%,var(--c) 70%,var(--c2));box-shadow:inset 0 14px 0 -10px rgba(232,181,58,.9),inset 0 -14px 0 -10px rgba(232,181,58,.9)}
.k-peraturan .spine b,.k-peraturan .spine span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.k-peraturan .spine b{color:#f6cf6f;font:800 12.5px/1 var(--f-sans);letter-spacing:.1em}
.k-peraturan .spine span{color:rgba(255,255,255,.7);font:600 10px/1 var(--f-sans);letter-spacing:.06em}
.k-peraturan .side{top:0;height:100%;width:var(--dp);left:calc(50% - var(--dp) / 2);border-radius:3px;background:linear-gradient(90deg,var(--c2),var(--c))}
.k-peraturan .side.l{transform:rotateY(-90deg) translateZ(calc(var(--t) / 2))}
.k-peraturan .side.r{transform:rotateY(90deg) translateZ(calc(var(--t) / 2))}
.k-peraturan .top{left:0;width:100%;height:var(--dp);top:calc(var(--dp) / -2);transform:rotateX(90deg);
  background:repeating-linear-gradient(90deg,#efe7d2 0 2px,#e2d7bd 2px 3px);border:2px solid var(--c)}
.k-peraturan .gavel{position:absolute;right:-8px;bottom:-14px;width:150px;height:40px;transform:translateZ(120px) rotateZ(-18deg);transform-style:preserve-3d}
.k-peraturan .gavel .handle{position:absolute;left:0;top:15px;width:118px;height:10px;border-radius:5px;background:linear-gradient(180deg,#a26a32,#5e3610)}
.k-peraturan .gavel .ghead{position:absolute;right:0;top:0;width:44px;height:40px;border-radius:9px;background:linear-gradient(90deg,#5e3610,#b07a3c 45%,#5e3610);box-shadow:inset 6px 0 0 #e8b53a,inset -6px 0 0 #e8b53a,0 10px 18px rgba(0,0,0,.45)}

/* ---------- Anggota: kartu anggota ---------- */
.k-anggota .mcard3{position:relative;width:340px;height:214px;transform-style:preserve-3d}
.k-anggota .edge3{position:absolute;inset:0;border-radius:18px;background:#050d22;transform:translateZ(-5px)}
.k-anggota .face3{position:absolute;inset:0;border-radius:18px;overflow:hidden;padding:18px 20px;color:#fff;
  background:linear-gradient(135deg,#0a1735 0,#0f2b5b 55%,#1b3f9a 100%);box-shadow:0 34px 60px rgba(2,8,28,.6),inset 0 1px 0 rgba(232,181,58,.7)}
.k-anggota .face3:before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(232,181,58,.22) 45%,rgba(143,186,255,.2) 55%,transparent 70%);background-size:260% 100%;background-position:var(--gx,40%) 0;mix-blend-mode:screen}
.k-anggota .guil{position:absolute;inset:0;width:100%;height:100%}
.k-anggota .guil path{fill:none;stroke:rgba(255,255,255,.07);stroke-width:.8}
.k-anggota .top3{position:relative;display:flex;align-items:center;gap:10px}
.k-anggota .lg3{width:36px;height:36px;border-radius:10px;background:#fff;display:grid;place-items:center}
.k-anggota .lg3 img{width:28px;height:28px;object-fit:contain}
.k-anggota .top3 b{display:block;font:800 15px/1 var(--f-sans);letter-spacing:.14em}
.k-anggota .top3 span{display:block;margin-top:4px;color:var(--gold);font:800 9.5px/1 var(--f-sans);letter-spacing:.18em}
.k-anggota .chip3{margin-left:auto;width:42px;height:31px;border-radius:7px;background:linear-gradient(135deg,#f6cf6f,#e8b53a 50%,#b8860b);
  box-shadow:inset 0 0 0 1px rgba(122,90,8,.5),0 3px 6px rgba(0,0,0,.35);position:relative}
.k-anggota .chip3:after{content:"";position:absolute;inset:8px 13px;border:1px solid rgba(122,90,8,.6);border-radius:3px}
.k-anggota .nm3{position:relative;margin-top:34px}
.k-anggota .ln.name{height:15px;width:72%;background:rgba(255,255,255,.88)}
.k-anggota .ln.num{height:9px;width:44%;background:rgba(232,181,58,.85);margin-top:10px}
.k-anggota .bot3{position:absolute;left:20px;right:20px;bottom:16px;display:flex;align-items:center;gap:6px}
.k-anggota .st3{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);font:700 11px/1 var(--f-sans)}
.k-anggota .st3 i{width:7px;height:7px;border-radius:50%;background:#5ce08a}
.k-anggota .st3 svg{width:12px;height:12px;fill:none;stroke:var(--gold);stroke-width:3}
.k-anggota .qr3{margin-left:auto;width:42px;height:42px;border-radius:9px;background:
  linear-gradient(90deg,#fff 6px,transparent 6px) 0 0/12px 12px,linear-gradient(#fff 6px,transparent 6px) 0 0/12px 12px,#0e1f4d;
  box-shadow:0 0 0 4px #fff}
.k-anggota .badge3{position:absolute;left:50%;top:50%;margin:-150px 0 0 108px;width:98px;height:98px;border-radius:50%;transform:translateZ(80px);
  display:grid;place-items:center;align-content:center;gap:2px;color:#0e1f4d;
  background:radial-gradient(circle at 35% 30%,#fff3c4,#f6cf6f 30%,#e8b53a 60%,#b8860b);box-shadow:0 18px 30px rgba(2,8,28,.55),inset 0 0 0 4px rgba(122,90,8,.35)}
.k-anggota .badge3 svg{width:34px;height:34px;fill:none;stroke:#0e1f4d;stroke-width:1.8;stroke-linejoin:round}
.k-anggota .badge3 b{font:800 10px/1 var(--f-sans);letter-spacing:.14em;text-transform:uppercase}

/* ---------- Pendaftaran: tiket pra-ujian ---------- */
.k-daftar .ticket{position:relative;display:flex;width:370px;height:190px;transform-style:preserve-3d}
.k-daftar .main{position:relative;flex:1;padding:18px 18px 16px;color:#121a33;border-radius:16px 0 0 16px;box-shadow:0 26px 50px rgba(2,8,28,.5);
  background:radial-gradient(circle at 100% 0,transparent 11px,#fbfaf6 11.5px) top/100% 51% no-repeat,radial-gradient(circle at 100% 100%,transparent 11px,#fbfaf6 11.5px) bottom/100% 51% no-repeat}
.k-daftar .stub{position:relative;width:112px;padding:18px 14px 16px;display:flex;flex-direction:column;gap:8px;color:#1b1300;border-radius:0 16px 16px 0;transform-origin:0 50%;
  transform:translateZ(6px) rotateY(-10deg);box-shadow:0 26px 50px rgba(2,8,28,.45);
  background:radial-gradient(circle at 0 0,transparent 11px,#e8b53a 11.5px) top/100% 51% no-repeat,radial-gradient(circle at 0 100%,transparent 11px,#d9a326 11.5px) bottom/100% 51% no-repeat}
.k-daftar .stub:before{content:"";position:absolute;left:0;top:14px;bottom:14px;border-left:2px dashed rgba(27,19,0,.35)}
.k-daftar .tk{font:800 10px/1 var(--f-sans);letter-spacing:.22em;color:#c8202f}
.k-daftar .stub .tk{color:#1b1300}
.k-daftar .main>b{display:block;margin-top:8px;font:800 17px/1.2 var(--f-sans);letter-spacing:-.02em}
.k-daftar .tsteps{display:flex;gap:0;margin:16px 0 0;padding:0;list-style:none;counter-reset:t}
.k-daftar .tsteps li{position:relative;flex:1;padding-top:22px;font:700 10px/1 var(--f-sans);color:#6b7286;counter-increment:t}
.k-daftar .tsteps li:before{content:counter(t);position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;
  background:#e7e3d6;color:#6b7286;font:800 10px/1 var(--f-sans);transition:background .4s,color .4s}
.k-daftar .tsteps li:after{content:"";position:absolute;left:20px;right:4px;top:8px;height:2px;background:#e7e3d6}
.k-daftar .tsteps li:last-child:after{display:none}
.ph3d.in.k-daftar .tsteps li:before{animation:tStep .5s var(--ease-out) both}
.ph3d.in.k-daftar .tsteps li:nth-child(1):before{animation-delay:.9s}
.ph3d.in.k-daftar .tsteps li:nth-child(2):before{animation-delay:1.15s}
.ph3d.in.k-daftar .tsteps li:nth-child(3):before{animation-delay:1.4s}
.ph3d.in.k-daftar .tsteps li:nth-child(4):before{animation-delay:1.65s}
@keyframes tStep{to{background:#0e1f4d;color:#fff}}
.ph3d.still.k-daftar .tsteps li:before{background:#0e1f4d;color:#fff;animation:none}
.k-daftar .tmeta{display:flex;gap:24px;margin-top:16px;font:800 13px/1.2 var(--f-sans)}
.k-daftar .tmeta small{display:block;margin-bottom:3px;font:700 9px/1 var(--f-sans);letter-spacing:.16em;color:#9a6b0a}
.k-daftar .bcode{display:flex;align-items:stretch;gap:2px;height:78px;margin-top:4px}
.k-daftar .bcode i{width:calc(var(--b) * 1.4px);background:#1b1300}
.k-daftar .code{font:800 10px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em}

/* ---------- Kontak: amplop ---------- */
.k-kontak .env{position:relative;width:320px;height:208px;transform-style:preserve-3d}
.k-kontak .back{position:absolute;inset:0;border-radius:10px;background:#cdbf9f;box-shadow:0 26px 50px rgba(2,8,28,.5)}
.k-kontak .letter{position:absolute;left:18px;right:18px;top:14px;height:178px;padding:16px 18px;border-radius:8px;background:#fff;color:#121a33;
  transform:translateZ(3px);transition:transform 1.3s var(--ease-out) .75s}
.ph3d.in.k-kontak .letter{transform:translateZ(3px) translateY(-96px)}
.k-kontak .letter b{display:block;margin-bottom:8px;font:400 20px/1 var(--f-serif);font-style:italic;color:#0e1f4d}
.k-kontak .letter .sign{display:block;margin-top:10px;font:600 11px/1 var(--f-sans);color:#9a6b0a}
.k-kontak .front{position:absolute;inset:0;border-radius:10px;transform:translateZ(5px);
  background:linear-gradient(160deg,#efe6cf,#e2d5b4);clip-path:polygon(0 34%,50% 64%,100% 34%,100% 100%,0 100%)}
.k-kontak .flap{position:absolute;left:0;right:0;top:0;height:62%;transform-origin:50% 0;transform:translateZ(7px) rotateX(0);
  background:linear-gradient(180deg,#d8cba9,#c5b58e);clip-path:polygon(0 0,100% 0,50% 100%);transition:transform 1s cubic-bezier(.5,0,.2,1) .25s}
.ph3d.in.k-kontak .flap{transform:translateZ(1px) rotateX(186deg)}
.k-kontak .wax{position:absolute;left:50%;bottom:4px;width:34px;height:34px;margin-left:-17px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#e8505c,#c8202f 55%,#8e121e);box-shadow:0 3px 6px rgba(0,0,0,.35)}

/* ---------- pose diam & layar sempit ---------- */
.ph3d.still .o3d-in{transform:none;transition:none}
.ph3d.still{opacity:1;transition:none}
@media (max-width:1100px){.pagehead .w.has3d{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}.ph3d{transform:scale(.86);transform-origin:50% 50%}}
@media (max-width:860px){.pagehead .w.has3d{display:block}.ph3d{display:none}}
@media (prefers-reduced-motion:reduce){.ph3d .o3d-in,.ph3d,.k-kontak .letter,.k-kontak .flap{transition:none!important}.ph3d .o3d-float,.o3d-shadow{animation:none!important}}


/* ===== src/v3.css ===== */
/* =====================================================================
   PERKAPI — lapisan 3.0 (selaras aplikasi): blok tanggal agenda, sampul otomatis berita.
   Lapisan terakhir: menimpa gaya lama #ev / .newsgrid tanpa mengubah berkas sebelumnya.
   ===================================================================== */

/* ---------- Agenda: blok tanggal ---------- */
#ev .rw.ev3{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--s-3)}
#ev .rw.ev3 time.evd{display:grid;grid-template-rows:auto auto auto;place-items:center;align-content:center;min-width:84px;min-height:92px;padding:10px 12px;
  border-radius:var(--r-md);text-align:center;color:var(--gold-hi);
  background:linear-gradient(165deg,rgba(232,181,58,.2),rgba(232,181,58,.05));border:1px solid rgba(232,181,58,.34);
  box-shadow:inset 0 1px 0 rgba(255,236,170,.25)}
#ev .rw.ev3 .evd b{display:block;color:var(--gold-hi);font:800 40px/1 var(--f-sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
#ev .rw.ev3 .evd span{display:block;margin-top:4px;color:#fff;font:800 12px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase}
#ev .rw.ev3 .evd i{display:block;margin-top:4px;color:var(--subtle);font:600 11px/1 var(--f-sans);font-style:normal}
#ev .rw.ev3 .evb{min-width:0;display:flex;flex-direction:column;gap:6px}
#ev .rw.ev3 .evb>b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#ev .rw.ev3 .evr{align-self:flex-start;padding:4px 10px;border-radius:99px;background:rgba(143,186,255,.12);border:1px solid rgba(143,186,255,.3);color:#d6e4ff;font:700 11.5px/1.2 var(--f-sans)}
#ev .rw.ev3 .evr.now{background:rgba(200,32,47,.18);border-color:rgba(255,122,133,.45);color:#ffd2d6}
#ev .rw.ev3 .evm{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;color:var(--muted);font:500 14px/1.45 var(--f-sans)}
#ev .rw.ev3 .evm span{display:inline-flex;align-items:center;gap:6px}
#ev .rw.ev3 .evm span:before{content:"";width:14px;height:14px;flex:none;background:currentColor;opacity:.75;
  -webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
#ev .rw.ev3 .evt{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
#ev .rw.ev3 .evl{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E")}
/* garis waktu halaman Agenda: titik sejajar blok tanggal */
.timeline-ev>.rw.ev3{padding:var(--s-3) var(--s-4) var(--s-3) var(--s-3)}
@media (hover:hover) and (pointer:fine){.timeline-ev>.rw.ev3:hover time.evd{border-color:rgba(232,181,58,.6)}}
/* beranda: kolom agenda lebih ringkas */
.feeds #ev .rw.ev3 time.evd{min-width:70px;min-height:80px;padding:8px 10px}
.feeds #ev .rw.ev3 .evd b{font-size:32px}

/* ---------- Berita: sampul otomatis (tanpa foto) ---------- */
.rw .nf.ngen{position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;isolation:isolate;
  background:linear-gradient(135deg,#0a1735,#16307a 60%,var(--t2,#3f6ed6))}
.rw .nf.ngen.t-gold{--t2:#9a6b0a;--t3:rgba(246,207,111,.55)}
.rw .nf.ngen.t-sky{--t2:#3f6ed6;--t3:rgba(143,186,255,.55)}
.rw .nf.ngen.t-violet{--t2:#5b4bd1;--t3:rgba(169,155,255,.55)}
.rw .nf.ngen.t-teal{--t2:#0f766e;--t3:rgba(94,234,212,.5)}
/* pola garis halus + cahaya warna kategori */
.rw .nf.ngen:before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(60% 80% at 85% 10%,var(--t3,rgba(143,186,255,.5)),transparent 70%),
    repeating-linear-gradient(-28deg,rgba(255,255,255,.05) 0 1px,transparent 1px 14px)}
.rw .nf.ngen .ngl{width:28%;max-width:96px;aspect-ratio:1;border-radius:24%;background:#fff;display:grid;place-items:center;
  box-shadow:0 14px 30px rgba(2,8,28,.45);transition:transform .6s var(--ease-out)}
.rw .nf.ngen .ngl img{width:72%;height:72%;object-fit:contain}
.rw .nf.ngen .ngc{position:absolute;left:14px;top:12px;padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);font:700 11px/1 var(--f-sans);letter-spacing:.08em;text-transform:uppercase}
.rw .nf.ngen .ngd{position:absolute;right:14px;bottom:12px;color:rgba(255,255,255,.8);font:600 12px/1 var(--f-sans)}
@media (hover:hover) and (pointer:fine){.newsgrid .rw:hover .nf.ngen .ngl{transform:translateY(-4px) rotate(-4deg) scale(1.05)}}
.newsgrid .rw .nf{transition:transform .6s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.newsgrid .rw:hover img.nf{transform:scale(1.03)}}
/* kartu pertama dengan sampul = berita utama (sudah diatur inner.css); kartu lain tak perlu garis emas ganda */
.newsgrid>.rw.hf:before{display:none}
@media (prefers-reduced-motion:reduce){@media (hover:hover) and (pointer:fine){.newsgrid .rw:hover .nf.ngen .ngl,.newsgrid .rw:hover img.nf{transform:none}}}
@media (max-width:600px){#ev .rw.ev3 time.evd{min-width:68px;min-height:78px;padding:8px}#ev .rw.ev3 .evd b{font-size:30px}.timeline-ev>.rw.ev3{grid-template-columns:auto minmax(0,1fr)!important}}

/* =====================================================================
   Gerak terikat gulir (js/gsap-fx.js) — aktif hanya bila html.gsap-on
   ===================================================================== */
/* GSAP mengambil alih efek kepala halaman (CSS animation-timeline hanya jalan di Chrome) */
html.gsap-on .pagehead>.w{animation:none!important}
/* langkah: garis penghubung terisi mengikuti gulir (--fill dari GSAP), langkah yang dilewati menyala */
html.gsap-on ol.steps li:not(:last-child):after{transform:scaleY(var(--fill,0))!important;transition:none!important}
html.gsap-on ol.steps li>b{transition:opacity .45s cubic-bezier(.2,0,0,1),filter .45s cubic-bezier(.2,0,0,1),box-shadow .45s cubic-bezier(.2,0,0,1)}
html.gsap-on ol.steps li>div{transition:opacity .45s cubic-bezier(.2,0,0,1),border-color .3s,background .3s}
html.gsap-on ol.steps li:not(.on)>b{opacity:.5;filter:saturate(.25);box-shadow:none}
html.gsap-on ol.steps li:not(.on)>div{opacity:.72}

/* =====================================================================
   Interaksi (ui-interactions / ui-motion)
   ===================================================================== */
/* ikon menu seluler: silang-pudar, kedua ikon tetap terpasang (bisa disela, tidak beranimasi saat halaman dibuka) */
.burger .m,.burger .x,header.open .burger .m,header.open .burger .x{display:block}
.burger svg{overflow:visible}
.burger svg path{transform-box:view-box;transform-origin:12px 12px;
  transition:opacity .3s cubic-bezier(.2,0,0,1),scale .3s cubic-bezier(.2,0,0,1)}
.burger .x{opacity:0;scale:.25}
header.open .burger .x{opacity:1;scale:1}
header.open .burger .m{opacity:0;scale:.25}
/* tanya-jawab: "+" berputar menjadi "×" (satu ikon, bisa disela) */
.faq details[open] summary:after{content:"+";transform:rotate(45deg)}
.faq summary:after{transition:transform .3s cubic-bezier(.2,0,0,1),background .2s}
/* tampilan baca: ikon setengah lingkaran berputar saat beralih */
.readmode:before{transition:rotate .45s cubic-bezier(.2,0,0,1)}
.readmode[aria-pressed="true"]:before{rotate:180deg}
/* umpan balik tekan 0,96 untuk kontrol yang belum punya (stamp/ghost/cta sudah) */
:is(.readmode,.totop,.burger,.more,#lawf button,.seg button,[data-prof],.prog button,.fsel,.soc a,.wa):active:not(:disabled){scale:.96}
:is(.readmode,.totop,.burger,.more,#lawf button,.seg button,[data-prof],.prog button,.soc a){transition-property:background,border-color,color,box-shadow,opacity,transform,scale;transition-duration:.2s,.2s,.2s,.2s,.3s,.35s,.15s;transition-timing-function:ease-out}
/* tombol sedang memproses: pemutar di tengah, teks disembunyikan tanpa mengubah lebar */
.stamp[disabled]:not([aria-busy="true"])::after{display:none}
.stamp[aria-busy="true"]{position:relative;color:transparent!important;-webkit-text-fill-color:transparent;pointer-events:none}
.stamp[aria-busy="true"]>*{visibility:hidden}
.stamp[aria-busy="true"]::after{content:"";display:block!important;position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;
  border:2.5px solid rgba(27,19,0,.28);border-top-color:#1b1300;border-radius:50%;animation:spin2 .7s linear infinite}
@keyframes spin2{to{transform:rotate(360deg)}}
html.lite .stamp[aria-busy="true"]::after{animation-duration:1.4s}
/* area sentuh minimal 44 px di layar sentuh (tautan kecil di jejak navigasi & kaki halaman) */
@media (pointer:coarse){
  .f-col a,.crumb a,.f-bot a{display:inline-flex;align-items:center;min-height:44px}
  .f-col{gap:0!important}
}


/* ===== src/gerak.css ===== */
/* =====================================================================
   Gestur & animasi tata letak (js/gerak.js) — pola Reanimated versi web
   ===================================================================== */
/* B) pil emas meluncur di tombol saring (Direktori anggota, Peraturan) */
.seg.has-thumb{position:relative;isolation:isolate}
.seg-thumb{position:absolute;left:0;top:0;z-index:-1;border-radius:999px;background:var(--gold);pointer-events:none;opacity:0;
  box-shadow:0 6px 16px rgba(232,181,58,.28),inset 0 1px 0 rgba(255,236,170,.45);
  transition:transform .32s cubic-bezier(.2,0,0,1),width .32s cubic-bezier(.2,0,0,1),height .32s cubic-bezier(.2,0,0,1),opacity .2s}
.seg.has-thumb button,.seg.has-thumb button[aria-pressed=true]{background:transparent}
.seg.has-thumb button[aria-pressed=true]{color:var(--gold-ink)}
@media (hover:hover) and (pointer:fine){.seg.has-thumb button:not([aria-pressed=true]):hover{background:rgba(255,255,255,.06)}}

/* A) Direktori: kartu lama tetap tampil (meredup) selama hasil saringan baru dimuat */
.dgrid.is-stale>.mcard{opacity:.5;transition:opacity .2s}

/* C) menu seluler: pegangan tarik di bawah panel */
@media (max-width:900px){
  .js header.open nav{touch-action:pinch-zoom}
  .js header nav:after{content:"";align-self:center;width:40px;height:4px;margin-top:16px;border-radius:2px;background:rgba(255,255,255,.28)}
  .js header nav.dragging{cursor:grabbing}
}

/* D) objek 3D kepala halaman bisa diseret (geser vertikal tetap menggulir halaman di layar sentuh) */
.ph3d.grab{pointer-events:auto;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.ph3d.grab.dragging{cursor:grabbing}
.ph3d.grab .o3d{transform:rotateX(calc(9deg + var(--rx))) rotateY(calc(-20deg + var(--ry) + var(--sy,0deg)))}

@media (prefers-reduced-motion:reduce){.seg-thumb{transition:none}}


/* ===== src/dokumen.css ===== */
/* =====================================================================
   Kelengkapan dokumen pendaftar (js/dokumen.js) — halaman Pendaftaran
   ===================================================================== */
/* pratinjau di formulir */
.prep{margin:12px 0 4px;padding:14px 16px;border-radius:var(--r-md);background:linear-gradient(160deg,rgba(143,186,255,.08),transparent 60%),var(--surface);border:1px dashed rgba(143,186,255,.3)}
.prep:empty{display:none}
.prep-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 8px;font:600 13.5px/1.3 var(--f-sans);color:var(--muted)}
.prep-h svg{width:18px;height:18px;fill:none;stroke:#8fbaff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prep-h b{color:#fff;font-weight:700}
.prep ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px;margin:0;padding:0;list-style:none}
.prep li{position:relative;padding-left:18px;color:#dfe6f7;font:500 14px/1.45 var(--f-sans)}
.prep li:before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--gold);transform:rotate(45deg)}
.prep li.is-opt{color:var(--muted)}
.prep li.is-opt:before{background:transparent;border:1.5px solid var(--muted)}
.prep li small{color:var(--subtle)}
.prep-warn{margin:10px 0 0;padding:8px 12px;border-radius:10px;background:rgba(232,181,58,.12);border:1px solid rgba(232,181,58,.3);color:#ffe3a3;font:500 13.5px/1.45 var(--f-sans)}

/* panel unggah */
.dok{margin-top:var(--s-4);padding:var(--s-5) var(--s-4) var(--s-4);border-radius:var(--r-xl);background:radial-gradient(90% 70% at 100% 0,rgba(232,181,58,.10),transparent 60%),var(--surface);border:1px solid rgba(232,181,58,.28)}
.dok-head .eyebrow{margin:0 0 4px}
.dok-head h3{margin:0;font:800 clamp(1.35rem,2.4vw,1.7rem)/1.15 var(--f-sans);letter-spacing:-.02em;color:#fff}
.dok-head h3 em{font-family:var(--f-serif,"Instrument Serif",serif);font-style:italic;font-weight:400;color:var(--gold-hi)}
.dok-head>p{margin:6px 0 0;color:var(--muted);font-size:14px}
.dok-bar{height:8px;margin:14px 0 6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.dok-bar i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#f6cf6f);transition:transform .45s var(--ease-out)}
.dok-count{margin:0;color:var(--muted);font:500 13.5px/1.4 var(--f-sans)}
.dok-count b{color:#fff}
.dok-count b.is-ok{color:#8ee6b1}
.dok-fmt{margin:var(--s-3) 0 var(--s-2);color:var(--subtle);font:500 13px/1.4 var(--f-sans)}
.dok-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.dok-it{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px;border-radius:var(--r-md);background:rgba(6,15,41,.45);border:1px solid var(--line);transition:border-color .25s,background .25s}
.dok-it.on{border-color:rgba(94,214,150,.4);background:linear-gradient(160deg,rgba(94,214,150,.08),transparent 60%),rgba(6,15,41,.45)}
.dok-it.err{border-color:rgba(255,122,133,.5)}
.dok-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(143,186,255,.12);color:#8fbaff}
.dok-it.on .dok-ic{background:rgba(94,214,150,.16);color:#8ee6b1}
.dok-ic svg,.dok-btn svg,.dok-tpl svg,.dok-fisik>svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dok-tx{min-width:0}
.dok-tx b{display:block;color:#fff;font:700 15px/1.3 var(--f-sans)}
.dok-tx b small{margin-left:6px;padding:2px 8px;border-radius:99px;background:rgba(255,255,255,.08);color:var(--muted);font:600 11px/1 var(--f-sans);vertical-align:2px}
.dok-tx p{margin:3px 0 0;color:var(--muted);font:400 13.5px/1.45 var(--f-sans)}
.dok-tpl{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dok-tpl svg{width:16px;height:16px;color:var(--gold-hi)}
.dok-tpl a{color:var(--gold-hi);font-weight:700;text-underline-offset:3px}
.dok-st{min-height:0;padding:0!important;background:none!important;font-weight:600!important}
.dok-st:empty{display:none}
.dok-st.is-ok{color:#8ee6b1!important}
.dok-st.is-er{color:#ffb3ba!important}
.dok-pg{height:4px;margin-top:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.dok-pg i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--gold);transition:transform .2s linear}
.dok-btn{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;background:var(--gold);color:var(--gold-ink);font:700 14px/1 var(--f-sans);cursor:pointer;white-space:nowrap;transition:background .2s,transform .15s ease-out}
@media (hover:hover) and (pointer:fine){.dok-btn:hover{background:#f6cf6f}}
.dok-btn:active{transform:scale(.96)}
.dok-it.on .dok-btn{background:transparent;color:#dfe6f7;box-shadow:inset 0 0 0 1px var(--line-2)}
.dok-btn input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.dok-btn:focus-within{outline:3px solid var(--gold-hi);outline-offset:2px}
.dok-btn.busy{pointer-events:none;opacity:.6}
.dok-fisik{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-top:var(--s-4);padding:16px;border-radius:var(--r-md);background:rgba(232,181,58,.10);border:1px solid rgba(232,181,58,.32)}
.dok-fisik>svg{width:26px;height:26px;color:var(--gold-hi)}
.dok-fisik b{color:#ffe3a3;font:800 15px/1.3 var(--f-sans)}
.dok-fisik p{margin:4px 0 0;color:#f3ead2;font:400 14px/1.55 var(--f-sans)}
.dok-fisik strong{color:#fff}
.dok-later{margin:var(--s-3) 0 0;color:var(--muted);font-size:14px;line-height:1.55}
.dok-later b{color:#dfe6f7}
.dok-kode{font-family:ui-monospace,Consolas,monospace;font-size:1em!important;letter-spacing:.08em;color:var(--gold-hi)!important}
.dok .msg{margin-top:var(--s-3)}
@media (max-width:600px){
  .dok{padding:var(--s-4) 14px}
  .dok-it{grid-template-columns:34px minmax(0,1fr);gap:10px}
  .dok-ic{width:34px;height:34px;border-radius:10px}
  .dok-btn{grid-column:1/-1;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.dok-bar i,.dok-pg i{transition:none}}


/* ===== src/kartu3d.css ===== */
/* =====================================================================
   kartu3d.css — kartu pengurus 3D (tentang.html). Gerak oleh js/kartu3d.js.
   Semua kartu seragam: kartu di atas, nama + jabatan di bawahnya.
   ===================================================================== */
.ppl .pgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:28px 22px}
.ppl .person,.ppl .person.lead{grid-column:auto;display:block;padding:0;background:none;border:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none}
.ppl .person figcaption{padding:14px 2px 0;text-align:center}
.ppl .person figcaption b{display:block;font:700 1.02rem/1.3 var(--f-sans);color:#fff;text-wrap:balance}
.ppl .person figcaption span{margin-top:8px}

.p3d{position:relative;perspective:1000px;touch-action:pan-y;cursor:grab;border-radius:20px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;outline:none}
.p3d.grab{cursor:grabbing}
.p3d:focus-visible{outline:3px solid var(--gold-hi,#f6cf6f);outline-offset:4px}
.p3d-card{--gx:50%;--gy:40%;--lift:0;position:relative;aspect-ratio:4/5;transform-style:preserve-3d;will-change:transform;border-radius:20px}
.p3d-face{position:absolute;inset:0;border-radius:20px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1px solid rgba(143,186,255,.18);
  box-shadow:0 calc(14px + 18px*var(--lift)) calc(30px + 26px*var(--lift)) rgba(2,8,28,calc(.45 + .2*var(--lift))),inset 0 1px 0 rgba(255,255,255,.12)}
.p3d-front{background:linear-gradient(160deg,#1b3478,#0d1c42)}
.p3d-front .pimg{height:100%;border-radius:0;background:none}
.p3d-front .pimg img,.p3d-front .pimg .ph{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;display:flex;align-items:center;justify-content:center;filter:none}
.p3d-front .pimg .ph{font:800 clamp(2.4rem,5vw,3.4rem)/1 var(--f-sans);letter-spacing:-.03em;color:#fff;
  background:radial-gradient(120% 90% at 30% 15%,#2a4ea8 0%,#16306f 45%,#0b1838 100%)}
.p3d-back{transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:22px 18px;text-align:center;
  background:radial-gradient(110% 80% at 50% 0%,rgba(232,181,58,.18),transparent 60%),linear-gradient(165deg,#132a66,#081430)}
.p3d-logo{width:58px;height:58px;object-fit:contain;margin-bottom:6px;border-radius:14px;background:#fff;padding:4px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.4))}
.p3d-back small{font:600 11.5px/1.35 var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:#9fb6e8;text-wrap:balance}
.p3d-back b{font:800 1.12rem/1.25 var(--f-sans);color:#fff;text-wrap:balance}
.p3d-back span{margin-top:6px;white-space:nowrap;font:600 12px/1.3 var(--f-sans);color:var(--gold-hi,#f6cf6f);font-variant-numeric:tabular-nums}
/* kilau: sorotan lembut yang bergeser saat kartu diputar */
.p3d-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;mix-blend-mode:screen;
  background:radial-gradient(70% 55% at var(--gx) var(--gy),rgba(255,255,255,.22),rgba(255,255,255,.05) 45%,transparent 70%),
  linear-gradient(115deg,transparent 30%,rgba(255,255,255,.07) 48%,transparent 62%)}
/* pimpinan: bingkai emas */
.person.lead .p3d-face{border-color:rgba(232,181,58,.5);box-shadow:0 calc(14px + 18px*var(--lift)) calc(30px + 26px*var(--lift)) rgba(2,8,28,calc(.45 + .2*var(--lift))),0 0 0 1px rgba(232,181,58,.18),inset 0 1px 0 rgba(255,236,190,.25)}
.person.lead .p3d-front .pimg .ph{background:radial-gradient(120% 90% at 30% 15%,#3a5bb5 0%,#1a3577 45%,#0b1838 100%)}
.person.lead figcaption span{background:var(--gold-soft);color:var(--gold-hi)}
@media (max-width:560px){
  .ppl .pgrid{grid-template-columns:1fr 1fr;gap:22px 14px}
  .p3d-back{padding:16px 12px}.p3d-back b{font-size:1rem}.p3d-back span{font-size:11px}.p3d-logo{width:46px;height:46px;border-radius:12px}
}
@media (prefers-contrast:more){.p3d-face{border-color:rgba(255,255,255,.7)}}

/* Warna seragam biru untuk semua (tanpa emas), dan baris kartu sejajar rapi:
   nama rata atas, badge jabatan selalu sejajar di dasar baris walau nama 2–3 baris. */
.ppl .pgrid{align-items:stretch}
.ppl .person{display:flex!important;flex-direction:column;align-items:stretch!important;gap:0!important}
.ppl .person .p3d{width:100%}
.ppl .person figcaption{flex:1;display:flex;flex-direction:column;align-items:center}
.ppl .person figcaption span,.person.lead figcaption span{margin-top:auto;background:rgba(143,186,255,.12);color:#c8d9ff}
.ppl .person figcaption b{margin-bottom:8px}
.person.lead .p3d-face{border-color:rgba(143,186,255,.18);box-shadow:0 calc(14px + 18px*var(--lift)) calc(30px + 26px*var(--lift)) rgba(2,8,28,calc(.45 + .2*var(--lift))),inset 0 1px 0 rgba(255,255,255,.12)}
.ppl .person .p3d-back span{color:#c8d9ff;margin-top:6px;background:rgba(143,186,255,.12);padding:4px 10px;border-radius:999px}


/* ===== src/struktur.css ===== */
/* =====================================================================
   struktur.css — bagan struktur organisasi 3D (tentang.html, js/struktur.js)
   Menyatu dengan latar situs (navy --bg) dan aksen emas:
   - Ketua Umum: cincin emas + cahaya lembut (satu titik fokus)
   - Sekjen/Bendum & wakil: cincin biru langit (--sky), wakil lebih redup
   - Dewan: kartu mendatar berfoto (ketua dewan), aksen emas tipis, garis putus-putus
   - Bidang: kartu nama bidang saja, ikon biru langit
   Semua kotak memakai permukaan & garis yang sama dengan kartu lain di situs.
   ===================================================================== */
.orgtree{
  --ot-surface:#0d1c42;--ot-surface-2:#132a63;--ot-border:rgba(143,186,255,.18);
  --ot-line:rgba(143,186,255,.38);--ot-dash:rgba(232,181,58,.5);
  --ot-gold:var(--gold,#e8b53a);--ot-gold-hi:var(--gold-hi,#f6cf6f);--ot-sky:var(--sky,#8fbaff);
  --ot-text:var(--text,#f1f4fb);--ot-muted:var(--muted,#a3b0d2);
  position:relative}
.ot-scene{perspective:1500px;perspective-origin:50% 0;padding:8px 0 4px}
.ot-scene{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.ot-stage{position:relative;transform-style:preserve-3d;transform-origin:50% 18%;will-change:transform;padding:6px 0 10px}
.ot-lines{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;transform:translateZ(-1px)}
.ot-ln{fill:none;stroke:var(--ot-line);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ot-dash{stroke:var(--ot-dash);stroke-dasharray:5 6}

.ot-row{position:relative;display:flex;justify-content:center;align-items:flex-start;gap:28px}
.ot-r1{align-items:center;gap:52px}
.ot-side{display:flex;flex-direction:column;gap:14px;width:264px}
.ot-r2{margin-top:46px;gap:clamp(120px,22vw,300px)}
.ot-col{display:flex;flex-direction:column;align-items:center;gap:42px}
.ot-cap{position:relative;z-index:2;width:fit-content;margin:48px auto 30px;padding:6px 14px;border-radius:999px;background:var(--ot-surface);border:1px solid var(--ot-border);
  font:700 11.5px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ot-muted)}
.ot-r4{display:grid;grid-template-columns:repeat(6,minmax(0,172px));justify-content:center;gap:40px 14px}
.ot-dewan-wrap{display:none}
/* rantai 3D: tiap pembungkus meneruskan kedalaman, jadi tingkat-tingkat benar-benar berlapis saat bagan dimiringkan */
.ot-row,.ot-col,.ot-side,.ot-dewan-wrap,.ot-dewan-grid{transform-style:preserve-3d}
.ot-cap{transform:translateZ(22px)}
.ot-node,.ot-cap{transform-origin:50% 0;backface-visibility:hidden}
.ot-ln:not(.ot-dash){stroke-dasharray:1}

/* ---- orang: foto bundar bercincin + papan nama ---- */
.ot-person{--acc:var(--ot-sky);position:relative;display:flex;flex-direction:column;align-items:center;width:224px;outline:none;transform-style:preserve-3d}
.ot-ring{position:relative;z-index:1;width:108px;height:108px;border-radius:50%;padding:3px;
  background:conic-gradient(from 210deg,var(--acc),color-mix(in srgb,var(--acc) 35%,transparent),var(--acc));
  box-shadow:0 14px 28px rgba(2,8,28,.55)}
.ot-ph{width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(120% 100% at 30% 15%,#1f3d8a,#0b1838);border:3px solid var(--bg,#060f29);
  display:flex;align-items:center;justify-content:center}
.ot-ph img{width:100%;height:100%;object-fit:cover}
.ot-ini{font:800 1.9rem/1 var(--f-sans);letter-spacing:-.02em;color:var(--ot-text)}
.ot-stem{width:2px;height:12px;background:var(--acc);opacity:.7}
.ot-tag{position:relative;width:100%;padding:11px 12px 12px;border-radius:14px;text-align:center;overflow:hidden;
  background:linear-gradient(180deg,var(--ot-surface-2),var(--ot-surface));border:1px solid var(--ot-border);
  box-shadow:0 18px 30px -14px rgba(2,8,28,.75)}
.ot-tag:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--acc)}
.ot-tag b{display:block;font:700 .92rem/1.28 var(--f-sans);color:var(--ot-text);text-wrap:balance}
.ot-tag span{display:block;margin-top:4px;font:700 .68rem/1.3 var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--acc)}

.ot-l1{--acc:var(--ot-gold-hi);width:252px}
.ot-l1 .ot-ring{width:132px;height:132px;padding:4px;box-shadow:0 0 0 6px rgba(232,181,58,.08),0 0 38px rgba(232,181,58,.28),0 16px 30px rgba(2,8,28,.55)}
.ot-l1 .ot-tag{background:linear-gradient(180deg,#1a2f6b,var(--ot-surface));border-color:rgba(232,181,58,.35)}
.ot-l1 .ot-tag b{font-size:1rem}
.ot-l2{--acc:var(--ot-sky)}
.ot-l3{--acc:#7f9fd6}
.ot-l3 .ot-ring{width:92px;height:92px}

/* ---- dewan: kartu mendatar berfoto ---- */
.ot-dewan{--acc:var(--ot-gold);position:relative;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:14px;outline:none;
  background:linear-gradient(180deg,var(--ot-surface-2),var(--ot-surface));border:1px solid rgba(232,181,58,.22);
  box-shadow:0 16px 28px -14px rgba(2,8,28,.75)}
.ot-dewan .ot-ring{flex:0 0 auto;width:58px;height:58px;padding:2px;box-shadow:none}
.ot-dewan .ot-ph{border-width:2px}
.ot-dewan .ot-ini{font-size:1.05rem}
.ot-dewan .ot-dt{min-width:0;text-align:left}
.ot-dewan small{display:block;font:700 .66rem/1.3 var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ot-gold-hi)}
.ot-dewan b{display:block;margin-top:2px;font:700 .86rem/1.28 var(--f-sans);color:var(--ot-text);text-wrap:balance}
.ot-dewan em{display:block;margin-top:1px;font:500 .72rem/1.3 var(--f-sans);font-style:normal;color:var(--ot-muted)}

/* ---- bidang: nama bidang saja ---- */
.ot-bidang{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:104px;padding:14px 12px;border-radius:14px;text-align:center;outline:none;
  background:linear-gradient(180deg,var(--ot-surface-2),var(--ot-surface));border:1px solid var(--ot-border);box-shadow:0 16px 28px -14px rgba(2,8,28,.75)}
.ot-bidang .ot-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(143,186,255,.12);border:1px solid rgba(143,186,255,.3)}
.ot-ic svg{width:18px;height:18px;fill:none;stroke:var(--ot-sky);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ot-bidang b{font:700 .82rem/1.3 var(--f-sans);color:var(--ot-text);text-wrap:balance}

/* ---- 3D: tiap tingkat pada kedalaman berbeda; terangkat saat disorot ---- */
.ot-l1{transform:translateZ(70px)}
.ot-l2{transform:translateZ(46px)}
.ot-l3{transform:translateZ(28px)}
.ot-dewan{transform:translateZ(38px)}
.ot-bidang{transform:translateZ(16px)}
.ot-node{transition:transform .35s var(--ease-out,cubic-bezier(.23,1,.32,1)),scale .18s var(--ease-out,ease),border-color .2s ease}
.ot-node[data-tog]:active,.ot-capbtn:active{scale:.96}
.ot-node:focus-visible{outline:3px solid var(--ot-gold-hi);outline-offset:4px;border-radius:16px}
@media (hover:hover) and (pointer:fine){
  .ot-person:hover{transform:translateZ(88px) translateY(-4px)}
  .ot-dewan:hover,.ot-bidang:hover{transform:translateZ(58px) translateY(-3px);border-color:rgba(143,186,255,.4)}
}

/* ---- muncul berjenjang dari atas ke bawah ---- */
.orgtree.ot-in .ot-node,.orgtree.ot-in .ot-cap{animation:otIn .6s var(--ease-out,cubic-bezier(.23,1,.32,1)) both}
.orgtree.ot-in .ot-lines{animation:otFade .6s ease .2s both}
.orgtree.ot-in .ot-r1 .ot-node{animation-delay:.05s}
.orgtree.ot-in .ot-l2{animation-delay:.16s}
.orgtree.ot-in .ot-l3{animation-delay:.26s}
.orgtree.ot-in .ot-cap{animation-delay:.32s}
.orgtree.ot-in .ot-r4 .ot-node,.orgtree.ot-in .ot-dewan-wrap .ot-node{animation-delay:.38s}
@keyframes otIn{from{opacity:0;translate:0 14px}}
@keyframes otFade{from{opacity:0}}

.ot-note{position:relative;z-index:3;margin:44px auto 0;max-width:640px;text-align:center;font:500 .8rem/1.5 var(--f-sans);color:var(--subtle,#7d8bb3)}

/* ---- tablet & HP: dewan tetap di samping Ketua Umum, kartu ringkas tegak (foto, nama dewan, nama ketua) ---- */
.ot-dw{font-style:normal}
@media (max-width:1100px){
  .ot-r1{gap:18px}
  .ot-side{width:128px;gap:12px}
  .ot-dewan{flex-direction:column;gap:6px;padding:10px 6px 9px;text-align:center}
  .ot-dewan .ot-dt{text-align:center}
  .ot-dewan .ot-ring{width:56px;height:56px}
  .ot-dewan em{display:none}
  .ot-r4{grid-template-columns:repeat(2,minmax(0,250px));gap:36px 40px}
}
@media (max-width:760px){
  .ot-scene{perspective:1100px;perspective-origin:50% 22%;touch-action:pan-y}
  .ot-r2{gap:14px;margin-top:36px}
  .ot-col{flex:1;gap:34px;min-width:0}
  .ot-person,.ot-l1{width:100%;max-width:230px}
  .ot-ring{width:84px;height:84px}
  .ot-l1 .ot-ring{width:108px;height:108px}
  .ot-l3 .ot-ring{width:72px;height:72px}
  .ot-ini{font-size:1.45rem}
  .ot-tag{padding:9px 8px 10px}
  .ot-tag b,.ot-l1 .ot-tag b{font-size:.8rem}
  .ot-tag span{font-size:.6rem}
  .ot-r4{grid-template-columns:1fr 1fr;gap:30px 18px}
  .ot-bidang{min-height:96px}
  .ot-r1{gap:6px}
  .ot-side{width:86px;flex:0 0 86px;gap:10px}
  .ot-r1 .ot-l1{flex:1 1 auto;min-width:0;max-width:170px}
  .ot-dewan{padding:8px 4px 8px;border-radius:12px}
  .ot-dewan .ot-ring{width:46px;height:46px}
  .ot-dewan .ot-ini{font-size:.9rem}
  .ot-dewan .ot-dw{display:none}
  .ot-dewan small{font-size:.58rem;letter-spacing:.06em}
  .ot-dewan b{font-size:.66rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ot-l1,.ot-l2,.ot-l3,.ot-dewan,.ot-bidang{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .ot-stage{transform:none!important}
  .orgtree.ot-in .ot-node,.orgtree.ot-in .ot-lines,.orgtree.ot-in .ot-cap{animation:none}
  .ot-node{transition:none}
}
@media (prefers-contrast:more){.ot-tag,.ot-dewan,.ot-bidang{border-color:rgba(255,255,255,.7)}}

/* ---- buka/tutup cabang (ketuk Ketua Umum → turun ke bawah) ---- */
.ot-off{display:none!important}
.ot-node[data-tog],.ot-capbtn{cursor:pointer}
.ot-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin:0 0 18px}
.ot-hint{margin:0;font:500 .9rem/1.4 var(--f-sans);color:var(--muted,#a3b0d2)}
.ot-hint b{color:var(--gold-hi,#f6cf6f)}
.orgtree.ot-started .ot-hint{display:none}
.ot-all{min-height:40px;padding:0 16px;border-radius:999px;border:1px solid rgba(143,186,255,.3);background:rgba(143,186,255,.08);color:var(--text,#f1f4fb);font:600 .85rem/1 var(--f-sans);cursor:pointer;transition:background .2s ease,transform .12s var(--ease-out,ease)}
.ot-all:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.ot-all:hover{background:rgba(143,186,255,.16)}}
.ot-all:focus-visible,.ot-capbtn:focus-visible{outline:3px solid var(--gold-hi,#f6cf6f);outline-offset:3px}

/* tombol kecil buka/tutup di bawah papan nama */
.ot-tag{overflow:visible}
.ot-tag:before{border-radius:14px 14px 0 0}
.ot-tg{position:absolute;left:50%;bottom:-13px;width:26px;height:26px;margin-left:-13px;border-radius:50%;
  background:var(--ot-surface-2);border:1px solid var(--acc,var(--ot-sky));box-shadow:0 6px 14px rgba(2,8,28,.5)}
.ot-tg:after{content:"";position:absolute;left:50%;top:45%;width:7px;height:7px;margin:-5px 0 0 -4px;border-right:2px solid var(--acc,var(--ot-sky));border-bottom:2px solid var(--acc,var(--ot-sky));
  transform:rotate(45deg);transition:transform .25s var(--ease-out,ease)}
.ot-open .ot-tg:after,.ot-tg.ot-open:after,.ot-capbtn.ot-open .ot-tg:after{transform:translateY(3px) rotate(-135deg)}
.ot-capbtn{display:block;position:relative;z-index:2;color:var(--ot-muted);padding:7px 16px 7px 14px}
.ot-capbtn span{color:var(--subtle,#7d8bb3);letter-spacing:0}
.ot-capbtn .ot-tg{--acc:var(--ot-sky);position:relative;display:inline-block;left:auto;bottom:auto;margin:0 0 0 8px;width:18px;height:18px;vertical-align:middle;box-shadow:none}
.ot-capbtn .ot-tg:after{width:5px;height:5px;margin:-4px 0 0 -3px}

/* ajakan mengetuk: denyut lembut di Ketua Umum sebelum dibuka */
.orgtree:not(.ot-started) .ot-l1 .ot-ring:before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(246,207,111,.55);animation:otPulse 1.8s var(--ease-out,ease) infinite;pointer-events:none}
@keyframes otPulse{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.28)}}

/* animasi buka/tutup cabang digerakkan JS (Web Animations + pegas) — lihat js/struktur.js */
@media (prefers-reduced-motion:reduce){
  .ot-drop,.ot-grow,.ot-fade{animation:none!important;stroke-dashoffset:0}
  .orgtree .ot-l1 .ot-ring:before{animation:none;display:none}
  .ot-tg:after{transition:none}
}


/* ===== src/native.css ===== */
/* =====================================================================
   native.css — terasa seperti aplikasi di HP (skill mobile-native) +
   umpan balik tekan (skill emil-design-eng). Lapisan PALING AKHIR.
   Hover sudah dibatasi otomatis ke perangkat ber-mouse oleh css/build.mjs.
   ===================================================================== */
:root{
  --ease-out:cubic-bezier(.23,1,.32,1);      /* masuk/keluar & umpan balik UI */
  --ease-in-out:cubic-bezier(.77,0,.175,1);  /* gerak di layar */
  --ease-drawer:cubic-bezier(.32,.72,0,1);   /* laci/menu ala iOS */
  --dur-press:120ms;
  --dur-ui:200ms;
  --sa-t:env(safe-area-inset-top,0px);
  --sa-b:env(safe-area-inset-bottom,0px);
  --sa-l:env(safe-area-inset-left,0px);
  --sa-r:env(safe-area-inset-right,0px);
}

/* §2 kilatan abu-abu saat diketuk + teks membesar sendiri di lanskap */
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* §5 ketukan tanpa jeda 300 ms; §8 teks tombol tidak tersorot saat ditekan lama */
a,button,[role=button],summary,label[for],.btn,.stamp,.ghost,.chip,.tag,.seg button,.dok-btn,.opt,.totop,.wa{touch-action:manipulation}
button,[role=button],summary,.btn,.stamp,.ghost,.chip,.tag,.seg button,.dok-btn,nav a,.totop,.wa,.more,.b-link{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* Umpan balik tekan: muncul saat jari/mouse MENYENTUH, bukan saat dilepas (100–160 ms, ease-out) */
.btn:active,.stamp:active,a.stamp:active,.ghost:active,nav a.cta:active,.dok-btn:active,.totop:active,.wa:active,.film button:active,.prog button:active,.seg button:active,.qz-o button:active:not(:disabled),.opt:active,.chip:active,.tag:active,.hs .card .go:active,.readmode:active,.soc a:active{
  transform:scale(.97)!important;transition:transform var(--dur-press) var(--ease-out)!important;
}
/* kartu besar cukup sedikit mengecil */
.portal:active,.mcard:active,.rw:active,.bento>div:active{transform:scale(.985)!important;transition:transform var(--dur-press) var(--ease-out)!important}

/* §7 layar berponi / home indicator (butuh viewport-fit=cover di <meta viewport>) */
header{padding-top:var(--sa-t)}
footer{padding-bottom:calc(var(--sa-b) + 8px)}
.totop,#toTop,.wa{margin-bottom:var(--sa-b);margin-right:var(--sa-r)}

/* §3 tinggi layar: dvh untuk panel yang mengikuti area terlihat, svh untuk layar pertama */
@supports (height:100dvh){
  .stage{height:calc(100dvh - 68px)}
  .nf404{min-height:calc(100svh - 68px - 260px)}
}

/* §6 gulir di dalam panel tidak ikut menggulir halaman di belakangnya */
.modal,.modal-bg,.tb,.toc,.dok-list{overscroll-behavior:contain}

/* Fokus keyboard tetap jelas (tidak ikut hilang karena tap-highlight dimatikan) */
:focus-visible{outline:3px solid var(--gold-hi,#f6cf6f);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
  .btn:active,.stamp:active,a.stamp:active,.ghost:active,nav a.cta:active,.dok-btn:active,.totop:active,.wa:active,.film button:active,.prog button:active,.seg button:active,.opt:active,.chip:active,.tag:active,
  .portal:active,.mcard:active,.rw:active,.bento>div:active{transform:none!important}
}

/* Rencana 006 — menu HP: buka 260 ms kurva laci, tutup 160 ms (asimetris; transisi bisa dibalik di tengah jalan) */
@media (max-width:900px){
  .js header nav{transition:opacity .16s var(--ease-out),transform .16s var(--ease-out),visibility 0s linear .16s}
  .js header.open nav{transition:opacity .26s var(--ease-drawer),transform .26s var(--ease-drawer),visibility 0s}
}

/* Rencana 007 — jawaban FAQ muncul halus (tanpa menganimasikan tinggi) */
.faq details[open]>:not(summary){animation:faqIn .22s var(--ease-out)}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.faq details[open]>:not(summary){animation:none}}

/* ---------- skill apple-design: tipografi, material, aksesibilitas ---------- */
/* §15 judul seimbang (tanpa satu kata menggantung), paragraf rapi; angka sejajar */
h1,h2,h3,.beat h1,.pagehead h1{text-wrap:balance}
p,li,.lead,dd{text-wrap:pretty}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.b-num,.nums b,time,.evd,.dok-count,.dok-kode,.code,[data-o3d=evt],.rw small,.crumb{font-variant-numeric:tabular-nums}

/* §12 transparansi dikurangi: material jadi padat, tanpa blur */
@media (prefers-reduced-transparency:reduce){
  header,.js header nav,.modal,.hs .card,.prep,.dok{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  header{background:#0a1840!important}
  .js header nav{background:#0a1840!important}
}
/* §14 kontras tinggi: batas tegas, latar hampir padat */
@media (prefers-contrast:more){
  .rw,.bento>div,.mcard,.portal,.person,ol.steps li>div,.faq details,input,select,textarea{border-color:rgba(255,255,255,.6)!important}
  header{background:#06102a!important;border-bottom:1px solid rgba(255,255,255,.5)!important}
}
