
:root{
  --bg:#02020b;
  --muted:#bdbdbd;
  --accent1:#8e61ff;
  --accent2:#00eaff;
  --glass: rgba(255,255,255,0.03);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:'Poppins',sans-serif;-webkit-font-smoothing:antialiased}
body{
  background:var(--bg);color:#fff;overflow-x:hidden;position:relative;
  /* CYBER CURSOR */
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="%2300EAFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L12 6M20 12L16 12M4 12L8 12M12 22L12 18M18.36 5.64L15.53 8.47M5.64 5.64L8.47 8.47M18.36 18.36L15.53 15.53M5.64 18.36L8.47 15.53"/></svg>') 12 12, crosshair;
}
a, button, .toggle, .card, #aiFace, .term-input input {
  /* CYBER POINTER */
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="%238E61FF" stroke="%2300EAFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 2v20M2 12h20"/></svg>') 12 12, pointer;
}


/* PARTICLES & PARALLAX */
#particles { position:fixed; inset:0; z-index:-8; display:block; }
.parallax-layers{ position:fixed; inset:0; pointer-events:none; z-index:-7 }
.layer-nebula{ position:absolute; inset:0; background:
  radial-gradient(circle at 20% 20%, rgba(142,97,255,0.14), transparent 22%),
  radial-gradient(circle at 80% 80%, rgba(0,234,255,0.11), transparent 28%);
  filter:blur(70px); opacity:0.95 }
.layer-grid{ position:absolute; inset:0; background-image:
  linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
  linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size:40px 40px; opacity:0.12; mix-blend-mode:screen; animation:gridMove 16s linear infinite; filter:blur(.6px)}
@keyframes gridMove{0%{transform:translateY(0)}100%{transform:translateY(48px)}}

/* CRT / scanline */
.crt { position:fixed; inset:0; pointer-events:none; z-index:9998;
  background-image: linear-gradient(transparent 50%, rgba(0,0,0,0.02) 51%);
  background-size:100% 3px; mix-blend-mode:overlay; opacity:0.06; animation: crtJitter 8s infinite; }
@keyframes crtJitter {0%{transform:translateY(0)}50%{transform:translateY(.6px)}100%{transform:translateY(0)}}

/* NAV */
nav{position:fixed; top:16px; left:16px; right:16px; display:flex; justify-content:space-between; align-items:center; z-index:40; padding:10px 14px; background:linear-gradient(180deg, rgba(2,2,11,0.3), rgba(2,2,11,0.12)); border-radius:12px; backdrop-filter: blur(8px)}
.logo{font-weight:800; color:var(--accent1); letter-spacing:2px}
.navlinks{display:flex; gap:12px; align-items:center}
.navlinks a{color:#cfcfcf; text-decoration:none; font-weight:600; padding:8px 10px; border-radius:8px}
.controls{display:flex; gap:8px; align-items:center}
.toggle{background:transparent; border:1px solid rgba(255,255,255,0.06); padding:8px 10px; border-radius:10px; color:#ddd; font-weight:600}
.toggle.active{box-shadow:0 0 18px rgba(0,234,255,0.06); border-color: rgba(0,234,255,0.18); color:var(--accent2)}
.sound-toggle{padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,0.06);color:#ddd;background:transparent}
/* Hamburger menu toggle (Hidden by default on desktop) */
.menu-toggle{display:none;font-size:20px;line-height:1}

/* LAYOUT (DESKTOP/LAPTOP) */
.container{
  max-width:1200px;
  margin:0 auto;
  /* PERBAIKAN 1: MENGURANGI PADDING ATAS & BAWAH (agar tidak terpotong) */
  padding:80px 24px 40px; 
  display:flex;
  gap:36px;
  align-items:center
}
.left{flex:0 0 460px}
.right{
  flex:1;
  min-width:280px;
  /* PERBAIKAN 2: Menambahkan Flex untuk kontrol alignment vertikal */
  display: flex; 
  flex-direction: column;
}
.panel{
  width:100%;
  /* PERBAIKAN 3: FOTO TIDAK TERPOTONG (responsif terhadap tinggi layar) */
  height: min(560px, 80vh); 
  max-height: 560px; /* Batas maksimum tinggi panel */

  border-radius:18px;
  padding:14px;
  position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border:1px solid rgba(255,255,255,0.04);
  box-shadow:0 30px 80px rgba(142,97,255,0.04);
  backdrop-filter: blur(6px)
}
.holo{width:100%;height:100%;border-radius:12px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#06060a 0%, rgba(8,6,12,0.6) 100%)}
.holo img{width:100%;height:100%;object-fit:cover;opacity:0.95;transition:transform .35s ease, filter .35s ease;border-radius:8px}
.holo .scanline{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg, rgba(0,234,255,0.02), transparent 40%, rgba(142,97,255,0.03)); mix-blend-mode:screen}
.shape {position:absolute;width:120px;height:120px;border-radius:12px;background:linear-gradient(135deg,var(--accent1),var(--accent2)); opacity:0.08; transform-origin:center; box-shadow:0 20px 60px rgba(142,97,255,0.02);}

/* GLITCH EFFECT FOR HOLO PANEL (STATIC AESTHETIC ONLY, NO ANIMATION) */
.holo.glitching {
  /* HANYA EFEK STATIS/HIGHLIGHT NEON, TANPA ANIMASI */
  box-shadow: 0 0 15px rgba(0, 234, 255, 0.6), 0 0 5px rgba(142, 97, 255, 0.4); 
  border: 1px solid rgba(0, 234, 255, 0.8); /* Highlight border */
  filter: contrast(120%) brightness(110%); /* Slight static contrast change */
  transform: none; /* Pastikan tidak ada transform yang tersisa */
}

/* Hapus semua pseudo-element yang menyebabkan flicker atau animasi */
.holo.glitching::before,
.holo.glitching::after {
  content: none; 
}


/* CONTENT */
.title{font-size:44px;font-weight:800;margin:0}
.title span{background:linear-gradient(90deg,var(--accent1),var(--accent2)); -webkit-background-clip:text;color:transparent;padding-left:6px}
.lead{margin-top:14px;color:var(--muted);font-size:17px;line-height:1.6}
.typing{display:inline-block;border-right:3px solid rgba(0,234,255,0.9);padding-right:8px;margin-left:8px;font-weight:700}
.cursor{display:inline-block;width:10px;height:18px;background:var(--accent2);margin-left:6px;vertical-align:middle;animation:blink 900ms steps(1) infinite}
@keyframes blink{0%{opacity:1}50%{opacity:0}100%{opacity:1}}
.cta{margin-top:22px;display:flex;gap:12px;align-items:center}
.btn{padding:12px 20px;border-radius:12px;color:#fff;font-weight:700;border:none}
.btn.primary{background:linear-gradient(90deg,var(--accent1),var(--accent2));box-shadow:0 14px 40px rgba(142,97,255,0.06)}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.06);color:#ddd}
.bio{
  /* PERBAIKAN 4A: MENYEMBUNYIKAN BIO agar proyek naik (Alignment) */
  display: none !important;
  margin-top:22px;padding:14px;border-radius:12px;background:linear-gradient(90deg, rgba(14,10,20,0.45), rgba(6,6,10,0.35));border:1px solid rgba(255,255,255,0.03);font-size:15px;color:var(--muted);min-height:64px;position:relative;overflow:hidden
}

/* MULTI-SECTIONS */
.section{padding:64px 24px; max-width:1200px; margin:0 auto}
.h-title{font-size:28px;color:transparent;background:linear-gradient(90deg,var(--accent1),var(--accent2));-webkit-background-clip:text;margin-bottom:12px}

/* projects */
.projects{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  /* PERBAIKAN 4B: MENGURANGI MARGIN agar proyek naik (Alignment) */
  margin-top:10px;
}
.card{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius:12px;padding:16px;border:1px solid rgba(255,255,255,0.04);transition:transform .35s, box-shadow .35s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-12px);box-shadow:0 30px 60px rgba(142,97,255,0.06)}

/* FIX: Mengurangi margin pada elemen AI Companion (jika ada inline style margin-top:16px) */
div[style*="display:flex;gap:16px;align-items:center;margin-top:16px"] {
    margin-top: 10px !important; 
}


/* about, skills */
.columns{display:flex;gap:18px}
.col{flex:1;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius:12px;padding:16px;border:1px solid rgba(255,255,255,0.04)}

/* terminal mini (RESPONSIVITAS ANDROID/MOBILE) */
.terminal-mini{
  position:fixed;right:18px;bottom:18px;width:420px;max-width:calc(100vw - 36px); 
  height:280px;
  background:linear-gradient(180deg, rgba(2,2,6,0.95), rgba(2,2,6,0.85)); 
  border-radius:12px;
  border:2px solid rgba(0,234,255,0.4); 
  box-shadow:0 0 10px rgba(0,234,255,0.4), 0 0 30px rgba(0,234,255,0.15); 
  animation: neonFlicker 4s infinite alternate; 
  z-index:60;display:none;flex-direction:column;overflow:hidden
}

@keyframes neonFlicker {
  0%, 19%, 21%, 50%, 60%, 100% { 
    border-color: rgba(0,234,255,0.4); 
    box-shadow: 0 0 8px rgba(0,234,255,0.4), 0 0 25px rgba(0,234,255,0.1); 
  }
  20%, 55%, 70% { 
    border-color: rgba(0,234,255,0.8); 
    box-shadow: 0 0 12px rgba(0,234,255,0.8), 0 0 40px rgba(0,234,255,0.25); 
  }
}

.terminal-mini.open{display:flex}
.term-head{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(0,234,255,0.1)}
.term-body{
  flex:1;padding:10px;font-family:monospace;
  color:#9ff;
  text-shadow: 0 0 4px rgba(0,255,255,0.4); /* Neon Glow */
  overflow:auto
}
/* Menghilangkan scrollbar di term-body */
.term-body::-webkit-scrollbar {
    display: none; 
}
.term-body {
    -ms-overflow-style: none; 
    scrollbar-width: none;  
}

.term-input{display:flex;padding:8px;gap:8px;border-top:1px solid rgba(0,234,255,0.1)}
.term-input input{
  flex:1;padding:8px;border-radius:8px;
  border:1px solid rgba(0,234,255,0.2); 
  background:rgba(255,255,255,0.02);
  color:#fff;
  box-shadow: inset 0 0 5px rgba(0,234,255,0.1);
}

/* secret modal */
#secretModal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:120;background:linear-gradient(rgba(2,2,8,0.6),rgba(2,2,8,0.6))}

/* footer */
footer{padding:28px 24px;text-align:center;color:#cfcfcf;font-size:14px;margin-top:40px}

/* responsive */
@media (max-width:980px){ 
  .container{flex-direction:column;padding:80px 20px} 
  .left,.right{flex-basis:100%} 
  /* PERBAIKAN: Ganti height 440px agar responsif */
  .panel{height: min(440px, 65vh); max-height: 440px;} 
  .projects{grid-template-columns:repeat(2,1fr)} 
  .terminal-mini{width:92vw;right:4%;left:4%; bottom:10px} 
  nav { top: 10px; left: 10px; right: 10px; padding: 8px 10px; }


  /* Layout Spacing (Media Query kedua) */
  .container {
      padding-top: 70px; 
      padding-bottom: 50px;
      padding-left: 16px;
      padding-right: 16px;
  }
  .section {
      padding: 50px 20px; 
  }
  
  /* Hero & Teks */
  .title{font-size:32px} 
  .lead{font-size:16px} 
  .h-title{text-align: center;} 
  
  /* Hero Image Panel */
  /* PERBAIKAN: Ganti height 340px agar responsif */
  .panel{height: min(340px, 50vh); max-height: 340px;} 
  
  /* Rata Tengah pada Hero Section */
  .right {
      text-align: left; /* DIBIARKAN DEFAULT */
  }
  .title span{ padding-left: 0; }
  .cta{
      flex-direction:column;
      align-items:flex-start; /* DIBIARKAN DEFAULT */
      justify-content: flex-start; /* DIBIARKAN DEFAULT */
      margin-top: 20px; 
      gap: 10px; 
  }
  
  /* Card/Columns Styling (Hanya untuk jaga-jaga jika ada elemen lain yang terpengaruh) */
  .projects{grid-template-columns:1fr; gap: 16px;}
  .columns {flex-direction: column; gap: 16px;}
  .projects, .columns {justify-content: center; margin-left: auto; margin-right: auto;}
  .col, .card {padding: 16px; text-align: left;}
  
  /* Center the AI Companion group */
  div[style*="display:flex;gap:16px;align-items:center;margin-top:16px"] {
      justify-content: flex-start; /* DIBIARKAN DEFAULT */
  }
  
  /* Center the contact form itself */
  #contactForm {
      margin-left: auto;
      margin-right: auto;
  }
  
  /* --- NAV HAMBURGER MENU & LINK HIDING (PENTING) --- */
  nav { 
    top: 10px; left: 10px; right: 10px; 
    padding: 8px 10px;
  }
  .menu-toggle { display: block; order: 3; }
  .navlinks { display: none; flex-basis: 100%; order: 4; } 
  .navlinks.open { display: flex; align-items: center; }
  .controls { margin-left: auto; order: 2; }

  /* 2. SEMBUNYIKAN TAUTAN NAVIGASI KE SEKSI YANG DIHILANGKAN */
  .navlinks a[href="#projects"],
  .navlinks a[href="#services"],
  .navlinks a[href="#about"],
  .navlinks a[href="#skills"] {
      display: none;
  }
}

.terminal-mini {
    position: fixed;
    bottom: 80px;
    right: 20px;
    width: 350px;
    background: rgba(12, 10, 16, 0.95);
    border: 1px solid var(--accent1);
    box-shadow: 0 0 20px rgba(142, 97, 255, 0.3);
    border-radius: 8px;
    z-index: 999;
    overflow: hidden;
    backdrop-filter: blur(10px);
}

@media (max-width: 600px) {
    .terminal-mini {
        width: 90%;
        left: 5%;
        right: 5%;
    }
}

/* untuk halaman projek
.project-card-v2 {
    backdrop-filter: blur(10px);
}

.project-card-v2:hover {
    border-color: var(--accent1);
    background: rgba(142, 97, 255, 0.05);
    transform: scale(1.02);
}

/* Memastikan button primary kamu punya efek glow */
.btn.primary {
    background: var(--accent1); /* Sesuaikan variabel warna hijau/biru neon kamu */
    color: #000;
    border: none;
    border-radius: 12px;
    transition: 0.3s;
    cursor: pointer;
}

.btn.primary:hover {
    box-shadow: 0 0 20px var(--accent1);
    transform: translateY(-2px);
}

/*instagram

.creative-contact {
    background: #000;
    color: #fff;
    padding: 80px 5%;
}

.creative-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    align-items: flex-start;
    justify-content: center;
}

/* Kolom HP */
.phone-mockup {
    width: 320px;
    height: 640px;
    background: #111;
    border: 10px solid #222;
    border-radius: 40px;
    overflow: hidden;
    box-shadow: 0 0 50px rgba(255, 215, 0, 0.1);
}

.phone-screen-creative {
    padding: 20px;
    background: linear-gradient(to bottom, #1a1a1a, #000);
    height: 100%;
}

.insta-header { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; }
.insta-pfp { width: 70px; height: 70px; border-radius: 50%; border: 2px solid #ffd700; }
.insta-stats { display: flex; gap: 15px; font-size: 10px; text-align: center; }

.insta-buttons { display: flex; gap: 5px; margin: 15px 0; }
.btn-i { flex: 1; background: #333; border: none; color: #fff; padding: 8px; border-radius: 5px; font-size: 11px; }

.link-pill {
    display: block;
    background: rgba(255, 215, 0, 0.1);
    color: #ffd700;
    padding: 10px;
    border-radius: 8px;
    margin-bottom: 8px;
    text-decoration: none;
    font-size: 12px;
    border: 1px solid rgba(255, 215, 0, 0.2);
}

/* Kolom Kanan */
.right-content { flex: 1; min-width: 350px; }

.fake-url-bar {
    background: #111;
    border: 1px solid #333;
    padding: 12px 20px;
    border-radius: 50px;
    display: flex;
    align-items: center;
    margin-bottom: 40px;
}
.fake-url-bar input { background: none; border: none; color: #aaa; width: 100%; margin-left: 10px; }

.work-header h2 { font-size: 40px; margin-bottom: 5px; }
.badge { font-size: 14px; background: #ffd700; color: #000; padding: 5px 15px; border-radius: 10px; vertical-align: middle; }

.mini-gallery { display: flex; gap: 15px; margin: 30px 0; }
.g-item { flex: 1; aspect-ratio: 1/1; background: #222; border-radius: 10px; overflow: hidden; }
.g-item img { width: 100%; height: 100%; object-fit: cover; }

.tags { display: flex; gap: 10px; margin: 20px 0; }
.tags span { border: 1px solid #fff; padding: 5px 20px; border-radius: 50px; font-size: 12px; }
.tags span.active { background: #e91e63; border-color: #e91e63; }

.big-text { font-size: 50px; line-height: 1; margin: 30px 0 10px; }