/* BLAST VPN — globe 3D & terminal. Tampilan tenang. */
main{position:relative}
.worldwrap{position:absolute;left:0;right:0;top:0;z-index:0;pointer-events:none;overflow:hidden}
.worldwrap canvas{display:block}
.tip{position:absolute;left:0;top:0;z-index:2;padding:6px 11px;border:1px solid rgba(120,230,255,.5);border-radius:9px;background:rgba(6,14,28,.92);color:#f4f8ff;font:600 13px 'Space Grotesk',sans-serif;white-space:nowrap;pointer-events:none}
.tip[hidden]{display:none}
#home{position:relative;z-index:1}
.visual{background:none!important;border-color:transparent!important;box-shadow:none!important;cursor:grab;overflow:visible}
.visual .stat{background:rgba(6,14,28,.78)}
body.grabbing,body.grabbing .visual{cursor:grabbing;user-select:none}

/* logo di depan globe: lebih kecil, tanpa cincin & bayangan */
.scene{--s:150px}
@media(min-width:1200px){.scene{--s:170px}}
@media(max-width:560px){.scene{--s:120px}}
.logo3d{top:15%}
.ring,.halo,.shadow3d{display:none}

/* terminal ilustrasi */
.term{margin-top:26px;max-width:520px;border:1px solid rgba(120,200,255,.22);border-radius:14px;background:rgba(6,14,28,.72);backdrop-filter:blur(8px);overflow:hidden}
.term-bar{display:flex;align-items:center;gap:6px;padding:9px 13px;border-bottom:1px solid rgba(120,200,255,.14);font-size:11.5px;color:#9db4d1}
.term-bar i{width:9px;height:9px;border-radius:50%;background:rgba(150,200,255,.3)}
.term-bar span{margin-left:auto}
.term pre{margin:0;padding:14px 16px;min-height:104px;font:500 13px/1.7 ui-monospace,'Cascadia Mono',Consolas,monospace;color:#9be7ff;white-space:pre-wrap}
@media(max-width:850px){.term{max-width:none}}

/* cahaya latar bergerak sangat pelan */
body:before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(40% 36% at 22% 30%,rgba(34,160,255,.10),transparent 70%),radial-gradient(36% 34% at 80% 68%,rgba(130,90,255,.10),transparent 70%),radial-gradient(30% 30% at 55% 95%,rgba(34,230,200,.07),transparent 70%);animation:drift 48s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.08)}}
.btn.primary{animation:breathe 4.5s ease-in-out infinite}
@keyframes breathe{0%,100%{box-shadow:0 0 22px rgba(34,200,255,.22)}50%{box-shadow:0 0 38px rgba(34,200,255,.42)}}
@media(prefers-reduced-motion:reduce){body:before,.btn.primary{animation:none}}
