/* 
=====================================================
GLOBAL RESET
- Menghapus margin & padding default
- Mengatur box sizing agar padding tidak merusak layout
=====================================================
*/
* {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: arial, sans-serif;
}

body {
      overflow-x: hidden;  /* cegah scroll horizontal */
      background-color: blueviolet; /* fallback jika particles gagal load */
      padding-top: 80px;
      min-width: 100%;
      
}

html, body {
      overscroll-behavior-y: none;  /* Mencegah bounce scroll vertical */
}

/* 
=====================================================
HEADER (NAVIGATION)
- Fixed di atas, selalu terlihat saat scroll
- Menggunakan backdrop blur agar semi transparan & modern
=====================================================
*/
header{
      width: 100%;
      padding: 20px 40px;
      position: fixed;
      top: 0;
      left: 0;
      height: 80px;

      display: flex;
      justify-content: space-between;
      align-items: center;

      background: rgba(255, 255, 255, 0.7); /* sedikit transparan */
      backdrop-filter: blur(10px);
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);

      font-weight: bold;
      z-index: 10; /* harus di depan hero & particles */
}

header h1 {
      font-size: 22px;
      font-weight: bold;
}

/* Link navigasi */
header nav a {
      margin-left: 20px;
      text-decoration: none;
      color: blue;
      font-weight: 600;
}

header nav a:hover {
      color: #ff6600;
}

/* =====================================================
      HERO SECTION
===================================================== */

.hero {
      position: relative;
      height: 100vh;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
      color: white;
      width: 100%;
      padding: 0 20px;
}
#particles-js {
      position: absolute;
      top: 0; left: 0;
      width: 100%; height: 100%;
      z-index: 0;
}

.hero-content {
      position: relative;
      z-index: 10;
      text-align: center;
      padding: 20px;
}

.hero-btn {
      margin-top: 20px;
      display: inline-block;
      padding: 12px 28px;
      background: #ff6600;
      color: #fff;
      border-radius: 30px;
      font-size: 16px;
      text-decoration: none;
      transition: .3s;
}

.hero-btn:hover {
      background: #ff4500;
      transform: translateY(-3px);
}

/* ================================================
   PROFILE SECTION
=================================================== */

.profile {
      padding: 100px 20px;
      background: #15172c;
      color: #fff;
}

.profile-container {
      display: flex;
      flex-direction: row;
      justify-content: center;
      align-items: center;
      gap: 50px;
      max-width: 1100px;
      margin: 0 auto;
      flex-wrap: wrap;
}

.profile-image img {
      width: 280px;
      height: 280px;
      object-fit: cover;
      border-radius: 20px;
      box-shadow: 0 5px 25px rgba(0,0,0,0.3);
}

.profile-text {
      max-width: 550px;
}

.profile-text h2 {
      font-size: 32px;
      margin-bottom: 20px;
}

.profile-text p {
      line-height: 1.6;
      margin-bottom: 18px;
      font-size: 17px;
      opacity: 0.9;
}

.profile-btn {
      display: inline-block;
      margin-top: 10px;
      padding: 12px 28px;
      background: #ff6600;
      color: #fff;
      border-radius: 30px;
      text-decoration: none;
      font-weight: bold;
      transition: .3s;
}

.profile-btn:hover {
      background: #ff4500;
      transform: translateY(-3px);
}




/* =====================================================
      GALLERY SECTION
===================================================== */

.gallery {
      padding: 100px 20px;
      background: #1a1a2e;
      color: white;
      text-align: center;
}

.gallery p {
      max-width: 850px;
      margin: 0 auto 40px;
      line-height: 1.6;
}

/* Aspect Ratio Box */
.aspect-box {
      max-width: 1000px;
      width: 100%;
      aspect-ratio: 16/9;
      overflow: hidden;
      border-radius: 12px;
}

.aspect-box img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      cursor: pointer;
      transition: transform .3s;
}

.aspect-box img:hover {
      transform: scale(1.05);
}


/* =====================================================
      SWIPER STYLING
===================================================== */

.swiper {
      width: 100%;
      max-width: 1000px;
      margin: 0 auto;
}

.swiper-button-prev,
.swiper-button-next {
      color: white;
      background: rgba(0,0,0,0.35);
      padding: 25px;
      border-radius: 50%;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
      background: rgba(0,0,0,0.55);
}

/* Tooltip */
.swiper-button-prev:hover::before,
.swiper-button-next:hover::before {
      content: attr(data-tooltip);
      position: absolute;
      bottom: -40px;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(0,0,0,0.7);
      padding: 6px 12px;
      font-size: 12px;
      border-radius: 8px;
      color: #fff;
}


/* =====================================================
      LIGHTBOX
===================================================== */

#lightbox {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.85);
      display: none;
      justify-content: center;
      align-items: center;
      z-index: 2000;
}

#lightbox img {
      max-width: 90%;
      max-height: 90%;
      border-radius: 10px;
      animation: zoom .25s ease;
}

@keyframes zoom {
      from { transform: scale(.5); opacity: 0; }
      to { transform: scale(1); opacity: 1; }
}

.lightbox-close {
      position: absolute;
      top: 20px; right: 30px;
      font-size: 40px;
      color: #fff;
      cursor: pointer;
}


/* 
=====================================================
SERVICES SECTION
=====================================================
*/
.services {
      padding: 80px 40px;
      text-align: center;
      color: white;
}

.services h2 {
      font-size: 32px;
      margin-bottom: 10px;
}

.services p {
      max-width: 700px;
      margin: 0 auto 40px;
      font-size: 18px;
      line-height: 1.6;
}

.service-list {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 25px;
      margin-top: 40px;
}

.service-item {
      background: rgba(255,255,255,0.1);
      padding: 25px;
      border-radius: 16px;
      backdrop-filter: blur(5px);
      transition: 0.3s;
      border: 1px solid rgba(255,255,255,0.15);
      -webkit-border-radius: 16px;
      -moz-border-radius: 16px;
      -ms-border-radius: 16px;
      -o-border-radius: 16px;
}

.service-item:hover {
      transform: translateY(-5px);
      background: rgba(255,255,255,0.2);
}

.service-item h3 {
      margin-bottom: 10px;
      font-size: 20px;
}

/* ================================
FOOTER
=================================== */
.footer {
      text-align: center;
      padding: 40px 20px;
      background: #111326;
      color: #ddd;
      margin-top: 80px;
}

.footer .small {
      font-size: 14px;
      opacity: 0.8;
      margin-top: 6px;
}

/* ======================================================
SCROLL ANIMATION
====================================================== */

/* Section mulai INAKTIF (keluar) */
.reveal {
      opacity: 0;
      transform: translateY(50px);
      transition: opacity .8s ease, transform .8s ease;
}

/* Section AKTIF (masuk) */
.reveal.active {
      opacity: 1;
      transform: translateY(0);
}

/* Section KELUAR (saat scroll ke atas) */
.reveal.hide {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity .6s ease, transform .6s ease;
}

/* Responsive */
@media (max-width: 820px) {
      .profile-container {
            flex-direction: column;
            text-align: center;
      }

      .profile-image img {
            width: 230px;
            height: 230px;
            margin-bottom: 25px;
      }
}