:root{--bg:#0e0e10;--card:#18181b;--line:#3f3f46;--red:#c9c9d1;--red2:#71717a;--text:#ededee;--mute:#8b8b93;--blue:#2fa8e8;--ok:#22c55e;box-sizing:border-box;color-scheme:dark}
*,*::before,*::after{box-sizing:inherit;margin:0;padding:0}
html,body{height:100%}
body{background:radial-gradient(ellipse at 50% -10%,#2c2c31 0,var(--bg) 65%);color:var(--text);font-family:Outfit,system-ui,sans-serif;line-height:1.55;display:flex;flex-direction:column;overflow:hidden}
h1,h2,h3,.disp{font-family:Rajdhani,sans-serif;font-weight:700;letter-spacing:.04em}
#rain{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
#app{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;opacity:0;transition:opacity 1.2s ease .3s}
body.ready #app{opacity:1}
header{padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:rgba(14,14,16,.7);backdrop-filter:blur(8px)}
header span{font-family:Rajdhani;font-size:1.05rem;color:var(--red);letter-spacing:.14em}
.hl,.hr{display:flex;align-items:center}.hl{gap:8px}.hr{gap:6px}
main{flex:1;overflow-y:auto;padding:22px 16px 120px;max-width:640px;width:100%;margin:0 auto;transform:translateY(16px);transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .3s}
body.ready main{transform:none}
.view{display:none}.view.on{display:block;animation:in .45s ease}
@keyframes in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sec{display:flex;align-items:center;gap:12px;margin:22px 0 16px}
.sec .bar1{width:4px;height:26px;background:var(--red);border-radius:2px}
.sec h2{font-size:1.15rem}
.card{background:linear-gradient(160deg,#222226,var(--card));border:1px solid var(--line);border-radius:26px;padding:22px 18px;box-shadow:0 0 40px rgba(113,113,122,.12)}
.who{display:flex;gap:16px;align-items:center}
.ava{position:relative;flex:none;width:104px;height:104px}
.ava img,.ava .ph{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--red);background:#2a2a2e;box-shadow:0 0 22px rgba(200,200,210,.3);display:grid;place-items:center;font-size:2.4rem;color:var(--red)}
.ava b{position:absolute;right:2px;bottom:2px;width:26px;height:26px;border-radius:50%;background:var(--ok);border:2px solid var(--card);display:grid;place-items:center;font-size:.75rem}
.name{display:flex;align-items:center;gap:8px;font-size:1.7rem;line-height:1.1}
.tick{width:20px;height:20px;border-radius:50%;background:var(--blue);display:inline-grid;place-items:center;font-size:.65rem;color:#fff}
.role{display:inline-block;margin:8px 0;padding:3px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(113,113,122,.15);color:var(--red);font-size:.85rem;font-weight:500}
.quote{font-size:.85rem;color:var(--mute);font-style:italic}
.bio{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(0,0,0,.35);font-size:.92rem;color:#d4d4d8}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stat{border:1px solid var(--line);border-radius:16px;padding:12px 4px;text-align:center;background:rgba(0,0,0,.25)}
.stat b{display:block;font-family:Rajdhani;font-size:1.25rem}
.stat span{font-size:.72rem;color:var(--mute)}
.exp{margin-top:22px}
.exp h3{font-size:.9rem;color:var(--mute);margin-bottom:12px;border-bottom:1px solid var(--line);padding-bottom:6px}
.bar{display:grid;grid-template-columns:110px 1fr 40px;gap:10px;align-items:center;margin:12px 0;font-size:.88rem}
.bar div{height:8px;border-radius:5px;background:#2a2a2e;overflow:hidden}
.bar div i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red2),var(--red));border-radius:5px;transition:width 1s ease}
.bar em{font-style:normal;color:var(--red);text-align:right;font-size:.8rem}
.street{margin-top:18px;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:16px;border:1px dashed var(--red2);font-size:.9rem}
.street strong{color:var(--red);font-family:Rajdhani;font-size:1.05rem}
.hero{text-align:center;padding:20px 0 8px}
.hero h1{font-size:clamp(2.4rem,11vw,3.6rem);line-height:1;text-shadow:0 0 24px rgba(200,200,210,.4)}
.hero p{color:var(--mute);margin:12px auto 22px;max-width:30ch}
.btn,.cta{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 24px;border-radius:14px;background:var(--red);color:#0e0e10;font:inherit;font-weight:600;border:0;cursor:pointer;text-decoration:none}
.hero .btn{display:inline-flex}
.cta{margin-top:18px}
.grid{display:grid;gap:12px}
.proj{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.ic{width:44px;height:44px;border-radius:12px;background:rgba(113,113,122,.25);display:grid;place-items:center;font-size:1.2rem;flex:none;color:var(--red)}
.proj h3{font-size:1.05rem}.proj p{font-size:.85rem;color:var(--mute)}
.price{margin-left:auto;text-align:right;font-family:Rajdhani;font-weight:700;color:var(--red);white-space:nowrap}
.price a{display:block;margin-top:4px;font:500 .78rem Outfit;color:var(--text);text-decoration:underline}
.vid{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#000;aspect-ratio:16/9}
.vid video{width:100%;height:100%;object-fit:cover;display:block}
.vc{position:absolute;left:12px;bottom:12px;display:flex;gap:8px}
.vc button{padding:8px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(14,14,16,.8);color:var(--text);font:500 .85rem Outfit;cursor:pointer;display:flex;gap:6px;align-items:center}
.vc button.on{background:var(--red);color:#0e0e10}
.ben{list-style:none;display:grid;gap:10px;font-size:.92rem}
.ben li{display:flex;gap:10px;align-items:flex-start}.ben i{color:var(--ok);margin-top:5px}
.big{font-size:1.9rem;text-align:center;margin:18px 0 14px}
nav{position:fixed;left:0;right:0;bottom:0;z-index:5;padding:10px 6px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(18,18,20,.95);border-top:1px solid var(--line);display:flex;justify-content:space-around;align-items:flex-end}
nav button{background:none;border:0;color:var(--mute);font:inherit;font-size:.7rem;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;padding:6px 6px;min-width:54px}
nav .i{font-size:1.25rem}
nav button.on{color:var(--red)}
nav button.mid{width:72px;height:72px;margin-top:-32px;border-radius:50%;background:radial-gradient(circle,var(--red),var(--red2));color:#0e0e10;justify-content:center;box-shadow:0 0 24px rgba(200,200,210,.35);border:4px solid var(--bg)}
button:focus-visible,a:focus-visible{outline:2px solid #fff;outline-offset:2px}
header{position:relative}
.hb{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:rgba(24,24,27,.9);color:var(--text);font:600 .95rem Rajdhani;cursor:pointer;display:grid;place-items:center;text-decoration:none}
#langBtn{font-size:.75rem}
#musicBtn.on{background:var(--red);color:#0e0e10}
#mm{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.65);padding:20px}
#mm.on{display:flex}
#mm .box{width:min(92vw,360px);background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px}
#mm .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
#mm .top h3{font-size:1.2rem}#mm .top button{background:none;border:0;color:var(--mute);font-size:1.2rem;cursor:pointer}
.song{display:flex;align-items:center;gap:12px;width:100%;padding:12px;margin-top:8px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.3);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.song.on{border-color:var(--red)}.song:disabled{opacity:.5;cursor:not-allowed}
.song span{flex:1}.song small{display:block;color:var(--mute)}
.tm{padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.tm p{font-size:.95rem}.tm small{display:block;margin-top:8px;color:var(--mute)}.tm i{color:var(--red2);margin-right:6px}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.chip{padding:14px 6px;border:1px solid var(--line);border-radius:16px;background:var(--card);text-align:center;font-size:.8rem}
.chip i{display:block;font-size:1.5rem;color:var(--red);margin-bottom:6px}
.typed{font:700 1.15rem Rajdhani;letter-spacing:.08em;color:var(--red);min-height:1.6em;margin:10px 0 0}
.cur{display:inline-block;width:2px;height:1.1em;background:var(--red);margin-left:3px;vertical-align:-.15em;animation:bl 1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
.note{font-size:.82rem;color:var(--mute);margin-top:10px;text-align:center}
#loader{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px;transition:opacity 1s ease,transform 1s ease,filter 1s ease}
#loader.out{opacity:0;transform:scale(1.06);filter:blur(8px);pointer-events:none}
#loader .lv{width:min(72vw,300px);aspect-ratio:1/1;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#000;box-shadow:0 0 50px rgba(113,113,122,.3)}
#loader video{width:100%;height:100%;object-fit:cover;display:block}
#loader .lt{width:min(72vw,300px)}
.lh{display:flex;justify-content:space-between;font-family:Rajdhani;letter-spacing:.1em;margin-bottom:8px;color:var(--mute)}
.lh b{color:var(--text)}
.lb{height:10px;border-radius:6px;background:#2a2a2e;overflow:hidden}
.lb i{display:block;height:100%;width:1%;background:linear-gradient(90deg,var(--red2),var(--red));border-radius:6px}
@media(max-width:400px){.who{flex-direction:column;text-align:center}.bar{grid-template-columns:92px 1fr 36px}.stat b{font-size:1.05rem}nav button{min-width:46px;font-size:.66rem}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01s!important;animation:none!important}}
#route-root{position:fixed;left:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 92px);z-index:4;pointer-events:none}
.rb{display:inline-flex;gap:8px;align-items:center;font:500 .72rem ui-monospace,Menlo,monospace;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:rgba(14,14,16,.88);color:var(--mute);transition:opacity .5s ease}
.rb.hide{opacity:0}.rb b{color:var(--ok)}.rb.err b{color:#ef4444}
.rb button{pointer-events:auto;border:0;background:var(--red);color:#0e0e10;border-radius:8px;padding:2px 8px;font:inherit;cursor:pointer}
.rank{display:grid;gap:8px}
.rk{position:relative;overflow:hidden;display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.rk.on{border-color:var(--red)}
.rk .fill{position:absolute;left:0;top:0;bottom:0;background:rgba(113,113,122,.22)}
.rk .no{position:relative;font:700 1rem Rajdhani;color:var(--red)}
.rk .nm{position:relative;font-size:.9rem}
.rk .ct{position:relative;font:700 .92rem Rajdhani}
.chart{margin-top:12px;padding:14px 12px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.chart h3{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:1.05rem;margin-bottom:6px}
.chart h3 small{font:400 .72rem Outfit;color:var(--mute)}
.chart svg{width:100%;height:auto;display:block;touch-action:manipulation}
.cinfo{font:500 .78rem ui-monospace,Menlo,monospace;color:var(--mute);margin-top:8px;min-height:1.3em}
.sec{margin:30px 0 14px;scroll-margin-top:12px}
.big{margin:18px 0 6px}
.tag{text-align:center;color:var(--mute);font-size:.9rem;margin-bottom:16px}
.jump{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:2px 16px 4px;scrollbar-width:none}
.jump::-webkit-scrollbar{display:none}
.jump button{flex:none;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:500 .82rem Outfit;cursor:pointer}
.proj>div:nth-child(2){flex:1;min-width:0}.proj p{line-height:1.4}
.price{flex:none}
.price a{display:inline-block;margin-top:6px;padding:5px 14px;border-radius:9px;background:var(--red);color:#0e0e10;font:600 .78rem Outfit;text-decoration:none}
.steps{list-style:none;counter-reset:st}
.steps li{counter-increment:st;position:relative;padding:0 0 20px 46px}
.steps li:last-child{padding-bottom:0}
.steps li::before{content:counter(st);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--red);color:#0e0e10;font:700 .95rem Rajdhani;display:grid;place-items:center}
.steps li::after{content:"";position:absolute;left:15px;top:36px;bottom:4px;width:2px;background:var(--line)}
.steps li:last-child::after{display:none}
.steps b{display:block;font:700 1.05rem Rajdhani;letter-spacing:.03em}
.steps span{display:block;font-size:.88rem;color:var(--mute);line-height:1.45}
.cta.alt{background:transparent;color:var(--text);border:1px solid var(--line)}
.song.err small{color:#ef4444}

/* ===== Tambahan revisi besar ===== */
.bs{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:8px;background:#f59e0b22;color:#f59e0b;font:600 .68rem Outfit;vertical-align:middle}
.infoRow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.chip2{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:.8rem;color:var(--mute)}
.visitorbar{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font:500 .78rem ui-monospace,Menlo,monospace;color:var(--mute);margin:-4px 0 20px;text-align:center}
.modalx{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.7);padding:20px}
.modalx.on{display:flex}
.mbox{width:min(92vw,340px);background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px 20px;text-align:center}
.mtitle{font-family:Rajdhani;font-weight:700;font-size:1.15rem;letter-spacing:.04em;margin-bottom:6px}
.msub{color:var(--mute);font-size:.85rem;margin-bottom:16px}
.mticon{width:56px;height:56px;margin:0 auto 14px;border-radius:16px;background:rgba(113,113,122,.2);display:grid;place-items:center;font-size:1.5rem;color:var(--red)}
.mbox .btn{width:100%;margin-top:14px}
.mbox #shareBack{margin-top:18px}
.qrwrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:14px}
.qrwrap img{width:140px;height:140px;border-radius:12px;background:#fff;padding:8px}
.shared-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;color:var(--ok);margin-left:8px}
#page404{position:fixed;inset:0;z-index:80;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px;
  background:linear-gradient(180deg,#1c2733,#0e0e10 60%);overflow:hidden}
#page404.on{display:flex}
#page404 h1{font-size:2.2rem;letter-spacing:.3em;text-shadow:0 0 20px rgba(200,200,210,.4)}
#page404 p{color:var(--mute);max-width:26ch}

.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);z-index:70;background:var(--card);border:1px solid var(--line);color:var(--text);
  padding:10px 18px;border-radius:12px;font:500 .82rem Outfit;opacity:0;transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.toast.on{opacity:1;transform:translate(-50%,0)}
#rain404{position:absolute;inset:0;width:100%;height:100%}

/* ===== Revisi lanjutan: header sosial, loading, project, benefit ===== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.loadlabel{font:700 1rem Rajdhani;letter-spacing:.14em;color:var(--mute)}
.loadlabel .dots{display:inline-block;animation:dots 1.2s steps(1) infinite}
@keyframes dots{0%,100%{opacity:1}50%{opacity:.25}}
#miniLoader{position:fixed;inset:0;z-index:99;display:none;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:var(--bg)}
#miniLoader.on{display:flex}
#miniLoader .lv{width:min(60vw,220px)}
#miniLoader .lt{width:min(60vw,220px)}
.proj[data-benefit]{cursor:pointer}
.proj[data-benefit]:active{transform:scale(.99)}
@media(max-width:400px){
  .hr{gap:4px}
  .hb{width:32px;height:32px;font-size:.85rem}
}
