* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* 1. PERBAIKAN: Kunci tinggi layar mutlak & matikan fungsi scroll */
html, body {
  height: 100vh; /* Paksa tepat 1 layar */
  overflow: hidden !important; /* BUNUH scroll siluman sepenuhnya */
  margin: 0;
  padding: 0;
}

body {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background-color: #0b0d14;
  color: #e0e0e0;
  perspective: 1000px;
}

/* 2. PERBAIKAN: Ganti min-height jadi height agar wadah tidak bisa melar */
.container {
  max-width: 1200px;
  height: 100vh; /* Kunci tinggi wadah agar pas 1 layar */
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}

header {
  background: linear-gradient(to right, rgba(0, 61, 130, 0.95) 0%, rgba(0, 84, 122, 0.95) 100%);
  padding: 15px 20px; /* Sedikit dirampingkan agar lebih pas */
  margin-bottom: 0 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
  position: relative;
  z-index: 2;
  border-radius: 10px;
}

.header-content {
  max-width: 1200px;
  margin: 0 auto;
}

.header-logos {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.logo-politeknik {
  width: 80px;
  height: auto;
  flex-shrink: 0;
}

.logo-bli {
  width: 80px;
  height: auto;
  flex-shrink: 0;
}

.header-text {
  flex: 1;
  text-align: center;
  color: white;
}

/* 3. PERBAIKAN: Hapus margin siluman pada teks yang mendorong layar ke bawah */
header h1 {
  font-size: 2.2rem;
  margin: 0 0 5px 0 !important; /* Hapus margin atas dan kurangi margin bawah */
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.subtitle {
  font-size: 1.1rem;
  margin: 0 !important; /* Hapus jarak tak terlihat */
  opacity: 0.9;
}

.program-studi {
  font-size: 1rem;
  margin: 0 !important; /* Hapus jarak tak terlihat */
  opacity: 0.95;
  font-weight: 600;
  color: #a0aec0;
}

/* 2. TOMBOL LOGIN KUNING INTERAKTIF (MEMBAL) */
.btn-login {
  background-color: #ffc107; 
  color: #212529;
  padding: 10px 25px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  flex-shrink: 0;
  border: none;
}

.btn-login:hover {
  background-color: #ffca2c;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(255, 193, 7, 0.4); /* Glow Kuning */
}

.btn-login:active {
  transform: scale(0.92); /* Efek membal saat diklik */
}

/* 3. UBAH OVERLAY BACKGROUND MENJADI GELAP */
/* 3. UBAH OVERLAY BACKGROUND MENJADI GELAP */
.profiles-grid {
  flex-grow: 1; /* Memaksa profil untuk menempati seluruh sisa ruang kosong di tengah layar */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  align-content: center; /* Menengahkan profil secara vertikal */
  align-items: start; /* Mencegah kartu saling memanjang saat laci dibuka */
  gap: 50px;
  margin: 0 !important;
  padding: 20px 0 !important;
  position: relative;
  z-index: 2;
}

/* 4. KARTU PROFIL (VERSI FLOATING TANPA KOTAK BACKGROUND) */
.profile-card {
  background: transparent !important;
  backdrop-filter: none; /* Hilangkan efek blur dari kartu utama */
  -webkit-backdrop-filter: none;
  border: none !important; /* Hilangkan semua garis tepi */
  box-shadow: none !important; /* Hilangkan bayangan kotak */
  transition: transform 0.3s ease;
  animation: fadeInUp 0.6s ease-out;
  position: relative;
  z-index: 2;
}

/* Tetap bisa melayang naik saat disentuh */
.profile-card:hover {
  transform: translateY(-10px);
}

.profile-header {
  background: transparent !important;
  padding: 10px 20px;
  text-align: center;
}

.avatar {
  width: 120px; 
  height: 120px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.6); 
  object-fit: cover;
  border: 3px solid #0d6efd; 
  background-color: #12151c;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.profile-card:hover .avatar {
  transform: scale(1.05); 
  box-shadow: 0 10px 25px rgba(13, 110, 253, 0.4); 
}

.profile-info {
  padding: 15px 20px;
  text-align: center; 
}

.profile-info h2 {
  color: #ffffff; 
  margin-bottom: 15px;
  font-size: 1.6rem;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); 
}

/* --- EFEK 3D BACKGROUND (CYBER GRID) KITA KEMBALIKAN DI SINI --- */
body {
  perspective: 1000px; 
  background-color: #0b0d14; 
}

body::before {
  content: '';
  position: fixed;
  bottom: -50%;
  left: -50%;
  width: 200%;
  height: 150%;
  background-image: 
    linear-gradient(rgba(13, 110, 253, 0.25) 2px, transparent 2px),
    linear-gradient(90deg, rgba(13, 110, 253, 0.25) 2px, transparent 2px);
  background-size: 50px 50px;
  transform: rotateX(75deg); 
  z-index: 0;
  animation: gridMove 4s linear infinite; 
  pointer-events: none;
}

body::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: 
    linear-gradient(to bottom, #0b0d14 30%, transparent 100%),
    radial-gradient(circle at 50% 30%, rgba(13, 110, 253, 0.20) 0%, transparent 60%);
  z-index: 0;
  pointer-events: none;
}

@keyframes gridMove {
  0% { transform: rotateX(75deg) translateY(0); }
  100% { transform: rotateX(75deg) translateY(50px); }
}

/* --- 5. DESAIN TOMBOL PROFIL & ANIMASI BUKA-TUTUP --- */
.btn-profil {
  background-color: transparent; 
  color: #ffc107; 
  border: 1px solid #ffc107; 
  padding: 8px 25px;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  width: auto; 
  display: inline-block;
  font-family: inherit;
}

.btn-profil:hover, .btn-profil:focus {
  background-color: #ffc107; 
  color: #212529; 
  box-shadow: 0 4px 15px rgba(255, 193, 7, 0.4); 
}

.btn-profil:active {
  transform: scale(0.95);
}

/* EFEK KACA (GLASSMORPHISM) HANYA DI KOTAK DETAIL */
/* EFEK KACA (GLASSMORPHISM) DIPINDAHKAN KE KOTAK DETAIL */
.detail-info {
  position: absolute; /* KUNCI PERBAIKAN: Membuat laci melayang di luar layar agar tidak mendorong foto ke atas */
  left: 5%; /* Menengahkan posisi laci */
  width: 90%; /* Mengatur lebar laci kaca */
  z-index: 100; /* Memastikan laci selalu berada paling depan */
  
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.5s ease, opacity 0.5s ease, margin-top 0.5s ease, padding 0.5s ease;
  
  /* Desain kaca tipis */
  background: rgba(255, 255, 255, 0.03); 
  backdrop-filter: blur(10px); 
  -webkit-backdrop-filter: blur(10px);
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1); 
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  text-align: left;
}

/* Saat tombol diklik, laci memanjang dan padding muncul */
.detail-info.show {
  max-height: 800px; 
  opacity: 1;
  margin-top: 20px; /* Jarak kaca dari tombol */
  padding: 25px 20px; /* Memberikan ruang lega di dalam kaca */
}
.info-row {
  display: flex;
  margin-bottom: 12px;
  align-items: flex-start;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1); 
  padding-bottom: 10px;
}
.info-row:last-child {
  border-bottom: none; 
  margin-bottom: 0;
  padding-bottom: 0;
}

.label {
  font-weight: 600;
  color: #8da2b5; 
  min-width: 120px;
  font-size: 0.95rem;
}

.value {
  color: #e2e8f0; 
  flex: 1;
  word-break: break-word;
  font-size: 0.95rem;
}
/* --- DESAIN FOOTER --- */
footer {
  text-align: center;
  color: white;
  padding: 15px 20px; /* Dibuat lebih tipis agar tidak makan tempat */
  margin-top: auto; 
  margin-bottom: 0;
  background: linear-gradient(to right, rgba(0, 61, 130, 0.95) 0%, rgba(0, 84, 122, 0.95) 100%); /* Warna Biru Khas Polines */
  border-radius: 15px;
  position: relative;
  z-index: 2;
  box-shadow: 0 -4px 15px rgba(0, 0, 0, 0.5); /* Bayangan mengarah ke atas */
}

footer p {
  font-size: 0.9rem;
  margin: 0; /* Menghilangkan jarak kosong bawaan tag <p> agar tidak tumpah */
}
/* --- TWEAK UKURAN AGAR PAS DI LAPTOP (PROFIL DIPERBESAR) --- */

/* 1. Header Tetap Ramping */
header { padding: 12px 20px; }
header h1 { font-size: 2.2rem; margin-bottom: 2px; }
.subtitle { font-size: 0.95rem; }
.program-studi { font-size: 0.85rem; margin-top: 2px; }

/* 2. Ukuran Foto dan Profil Dikembalikan Menjadi Besar */
.profiles-grid { padding: 5px 0 !important; gap: 40px; }
.avatar { width: 130px; height: 130px; } /* Foto diperbesar kembali ke 130px */
.profile-info { padding: 15px 20px; }
.profile-info h2 { font-size: 1.6rem; margin-bottom: 15px; } /* Teks nama diperbesar */
.btn-profil { padding: 8px 25px; font-size: 1rem; } /* Tombol dikembalikan lebih tebal */

/* 3. Laci Kaca Detail */
.detail-info.show {
  margin-top: 18px;
  padding: 18px 20px;
}
.info-row {
  margin-bottom: 8px;
  padding-bottom: 8px;
}
.label, .value { font-size: 0.9rem; }

/* 4. Footer Tetap Tipis */
footer { padding: 10px 20px; }
/* --- 6. EFEK POP-UP FOTO ALA INSTAGRAM --- */

/* Ubah kursor jadi tangan saat menyorot foto kecil */
.avatar {
  cursor: pointer; 
}

/* Wadah gelap di latar belakang saat foto terbuka */
.modal-foto {
  display: none; /* Disembunyikan awalnya */
  position: fixed;
  z-index: 9999; /* Berada paling depan menutupi segalanya */
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.85); /* Hitam transparan */
  backdrop-filter: blur(8px); /* Efek blur di belakangnya */
  -webkit-backdrop-filter: blur(8px);
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

/* Kelas tambahan untuk memunculkan modal pakai Flexbox */
.modal-foto.tampil {
  display: flex;
  opacity: 1;
}

/* Foto yang membesar di tengah */
.modal-content-foto {
  width: 85vw; /* Lebar relatif terhadap layar HP */
  height: 85vw;
  max-width: 400px; /* Maksimal besar di laptop */
  max-height: 400px;
  object-fit: cover; /* Memastikan foto tidak gepeng */
  border-radius: 50%; /* Membuat fotonya bulat sempurna */
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8), 0 0 30px rgba(13, 110, 253, 0.5); /* Glow biru */
  border: 4px solid #0d6efd;
  
  /* Animasi membal (bounce) dari kecil ke besar */
  transform: scale(0.5);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
}

.modal-foto.tampil .modal-content-foto {
  transform: scale(1);
}

/* Tombol Tutup (X) di pojok kanan atas */
.tutup-btn {
  position: absolute;
  top: 25px;
  right: 40px;
  color: #a0aec0;
  font-size: 45px;
  font-weight: bold;
  cursor: pointer;
  transition: color 0.3s;
}

.tutup-btn:hover, .tutup-btn:focus {
  color: #ffc107; /* Menyala kuning saat disorot */
}
/* --- RESPONSIVE UNTUK HP & TABLET (MEDIA QUERIES) --- */

@media (max-width: 768px) {
  /* 1. Buka kembali kunci scroll khusus untuk HP karena layarnya pendek */
  html, body {
    height: auto !important;
    overflow-y: auto !important; 
  }
  .container {
    height: auto !important;
    min-height: 100vh;
  }
  
  /* 2. Sesuaikan ukuran Header */
  .header-logos { gap: 15px; }
  .logo-politeknik, .logo-bli { width: 60px; }
  header h1 { font-size: 1.8rem; }
  .subtitle { font-size: 0.9rem; }
  
  /* 3. Susun Grid jadi 1 baris ke bawah */
  .profiles-grid { 
    grid-template-columns: 1fr; 
    padding: 20px 0 !important;
  }
  .profile-info h2 { font-size: 1.4rem; }
  
  /* 4. Kembalikan posisi laci kaca agar tidak tumpang tindih di HP */
  .detail-info { 
    left: 0; 
    width: 100%; 
    position: relative; 
  }
}

@media (max-width: 480px) {
  /* Penyesuaian ekstra untuk layar HP yang sangat kecil */
  .header-logos { flex-direction: column; gap: 10px; align-items: center; }
  header h1 { font-size: 1.4rem; margin-bottom: 5px; }
  .btn-login { width: 100%; text-align: center; }
  
  /* Perkecil foto agar tidak memakan tempat */
  .avatar { width: 100px; height: 100px; }
  
  /* Sesuaikan ukuran pop-up Instagram */
  .modal-content-foto { max-width: 300px; max-height: 300px; }
}