@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700&display=swap');

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
    border: none;
    outline: none;
    font-family: 'Poppins', sans-serif;
}

html{
    font-size: 62.5%;
    scroll-behavior: smooth;
}

body{
    width: 100%;
    min-height: 100vh;
    overflow-x: hidden;
    background-color: #000;
    color: #fff;
}

/* Header */
header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1rem 6%;
    background: rgba(0,0,0,0.85);
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 200;
    transition: background 0.3s ease;
}

/* === Drawer / Hamburger Menu === */
.menu-toggle {
  display: none;
  font-size: 2.6rem;
  color: #2196F3;
  cursor: pointer;
  z-index: 300;
}

@media (max-width: 900px) {
  .menu-toggle {
    display: block;
  }

  nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 70%;
    height: 100vh;
    background: rgba(0,0,0,0.95);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    transition: right 0.3s ease;
    z-index: 250;
  }

  nav a {
    font-size: 2rem;
    margin: 1rem 0;
  }

  nav.show {
    right: 0;
  }
}


.logo{
    font-size: 2.8rem;
    color: #2196F3;
    font-weight: 800;
    cursor: pointer;
}

nav a{
    font-size: 1.6rem;
    color: #ddd;
    margin-left: 2.4rem;
    font-weight: 500;
    transition: 0.3s ease;
    border-bottom: 3px solid transparent;
}

nav a.active {
    color: #2196F3;
    border-bottom: 3px solid #2196F3;
}

nav a:hover { color: #2196F3; }

/* Sections base */
section{
    min-height: 100vh;
    padding: 8rem 6% 5rem;
}

.heading {
    text-align: center;
    font-size: 3.6rem;
    margin-bottom: 3rem;
}

.heading span { color: #2196F3; }

/* Home */
.home{
    display: flex;
    align-items: center;
    gap: 4rem;
    padding-top: 10rem;
}

.home-img {
    width: 34rem;
    display:flex;
    justify-content:center;
    align-items:center;
}

/* Flip card */
.flip-card{
    perspective: 1000px;
    width: 28rem;
    height: 28rem;
}

.flip-card-inner{
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform 0.8s;
}

.flip-card:hover .flip-card-inner{
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back{
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 50%;
    overflow: hidden;
    display:flex;
    justify-content:center;
    align-items:center;
}

.flip-card-front img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display:block;
}

.flip-card-back{
    background: linear-gradient(180deg, rgba(33,150,243,0.12), rgba(33,150,243,0.05));
    transform: rotateY(180deg);
    color: #fff;
    padding: 2rem;
}

.flip-text { text-align:center }
.flip-text h3{ font-size: 2.4rem; color:#fff; margin-bottom:.5rem; }
.flip-text p{ color:#bfe3ff; font-size:1.4rem; }

/* Home content */
.home-content h1{
    font-size: 4.8rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.home-content h1 span{ color: #2196F3; }

.typing-line{
    font-size: 2.6rem;
    margin-bottom: 1.2rem;
    font-weight:600;
    display:flex;
    align-items:center;
    gap:.6rem;
}

.cursor { color:#2196F3; font-weight:700; }

.student-info {
  font-size: 1.6rem;
  color: #bfe3ff;
  margin-bottom: 1.6rem;
  line-height: 1.5;
}

.student-info strong {
  color: #2196F3;
}


/* Actions */
.home-actions { margin: 1.6rem 0; display:flex; gap:1rem; align-items:center; }

.btn{
    display: inline-block;
    padding: 1rem 2.2rem;
    background-color: transparent;
    border-radius: 4rem;
    font-size: 1.6rem;
    color: #2196F3;
    letter-spacing: 0.2rem;
    font-weight: 600;
    border: 2px solid #2196F3;
    transition: 0.25s ease;
    cursor: pointer;
}

.view-btn {
  margin-top: .6rem;
  display: inline-block;
  background: transparent;
  border: 2px solid #2196F3;
  color: #2196F3;
  padding: .6rem 1.2rem;
  border-radius: 8px;
  transition: all .3s ease;
}

.view-btn:hover {
  background: #2196F3;
  color: #000;
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 0 10px rgba(33,150,243,0.3),
              0 0 10px rgba(33,150,243,0.3),
              0 0 10px rgba(33,150,243,0.3);
}

.btn:hover{
    background:#2196F3;
    color:#000;
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 0 20px rgba(33,150,243,0.3);
}

/* Social icons */
.social-icons { margin-top:1.6rem; display:flex; gap:1rem; }
.social-icons a{
    display:inline-flex; justify-content:center; align-items:center;
    width:3.8rem; height:3.8rem; border-radius:50%; border:2px solid #2196F3; color:#2196F3;
}

/* Social icons hover same as button */
.social-icons a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 3.8rem;
  height: 3.8rem;
  border-radius: 50%;
  border: 2px solid #2196F3;
  color: #2196F3;
  font-size: 1.6rem;
  transition: 0.25s ease;
}

.social-icons a:hover {
  background: #2196F3;
  color: #000; /* sama kayak Download CV */
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 0 20px rgba(33,150,243,0.3);
}


/* About */
.about-content{
    display:flex;
    gap:3.2rem;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
}

.about-photo img{
    width:28rem;
    height:28rem;
    object-fit:cover;
    border-radius:1.2rem;
    box-shadow: 0 0 25px rgba(33,150,243,0.15);
}

.about-desc{ max-width:60rem; font-size:1.6rem; line-height:1.6; }

/* Skills */
.skills-grid{
    display:flex;
    flex-wrap:wrap;
    gap:1.2rem;
    justify-content:center;
}

.skill-item{
    background:#0e0e0e;
    padding:1.4rem 2rem;
    min-width:12rem;
    border-radius:1rem;
    display:flex;
    gap:1rem;
    align-items:center;
    cursor:pointer;
    transition: transform .18s ease, box-shadow .18s ease;
    border:2px solid rgba(33,150,243,0.06);
}

.skill-item:hover{
    transform: translateY(-6px);
    box-shadow: 0 10px 30px rgba(33,150,243,0.06);
}

.skill-item i{ color:#2196F3; font-size:1.8rem; }
.skill-item span{ font-size:1.6rem; color:#ddd; }

/* Modal */
.modal{
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 400;
    padding: 2rem;
    overflow:auto;
}

.modal.open{ display: flex; }

.modal .modal-content{
    background: #0b0b0b;
    border-radius: 1rem;
    max-width: 1000px;
    width: 100%;
    padding: 1.6rem;
    box-shadow: 0 20px 60px rgba(0,0,0,0.6);
    border: 1px solid rgba(33,150,243,0.07);
}

.modal .modal-content.small { max-width: 800px; }

.modal-close{
    position:absolute;
    right: 2.4rem;
    top: 2.4rem;
    background: transparent;
    color:#fff;
    font-size:3rem;
    cursor:pointer;
}

.modal-body{
    display:flex;
    gap:2rem;
    align-items:flex-start;
    padding: 2rem 1rem;
}

.modal-body.horizontal{ flex-direction: row; }
.modal-img img{
    width: 24rem;
    height: 16rem;
    object-fit: cover;
    border-radius: .8rem;
    box-shadow: 0 10px 40px rgba(0,0,0,0.6);
}
.modal-text h3{ font-size:2rem; margin-bottom:0.8rem; color:#fff; }
.modal-text p{ font-size:1.5rem; color:#ddd; line-height:1.6; }
.modal-text ul { margin-top:1rem; list-style: disc; padding-left:1.4rem; color:#ddd; }

/* Overlay */
.overlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index:350;
    opacity: 0;
    pointer-events:none;
    transition: opacity .25s;
}
.overlay.show{ opacity:1; pointer-events:auto; }

/* Education carousel */
.education-content{
    display:flex;
    gap:2.4rem;
    align-items:center;
    flex-wrap:wrap;
    justify-content:center;
}

.education-left{
    max-width:42rem;
    font-size:1.6rem;
}

.education-carousel{
    width: 36rem;
}

.carousel-window{
    width: 100%;
    overflow: hidden;
    border-radius: .8rem;
    background:#080808;
    padding:1rem;
    border: 1px solid rgba(33,150,243,0.04);
}

.carousel-track{
    display:flex;
    gap:1rem;
    transition: transform .35s ease;
    align-items:center;
}

.carousel-item{
    width: 22rem;
    height: 14rem;
    object-fit: cover;
    border-radius: .6rem;
    border: 3px solid #111;
}

/* carousel controls */
.carousel-controls{ display:flex; gap:1rem; justify-content:center; margin-top:.8rem; }
.icon-btn{
    background:transparent;
    border:2px solid rgba(33,150,243,0.12);
    padding:.8rem 1rem;
    border-radius:.6rem;
    cursor:pointer;
    color:#fff;
}

/* Experience */
.experience-grid {
    display: flex;
    gap: 1.6rem;
    flex-wrap: wrap;
    justify-content: center;
}

.exp-card {
    width: 28rem;
    background: #0e0e0e;
    padding: 1.2rem;
    border-radius: 1rem;
    text-align: center;
    cursor: pointer;
    transition: transform .2s, box-shadow .2s;
    border: 1px solid rgba(33,150,243,0.08);
}

.exp-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}

.exp-img {
    width: 100%;
    height: 16rem;
    object-fit: cover;
    border-radius: .6rem;
    margin-bottom: 1rem;
}

.exp-card h3 {
    font-size: 1.8rem;
    margin: .4rem 0;
}

.exp-card p {
    font-size: 1.4rem;
    color: #aaa;
    margin-bottom: .8rem;
}

.exp-card a.btn {
    margin-top: .6rem;
    display: inline-block;
}

/* Certificates */
.cert-grid{
    display:flex;
    gap:1.6rem;
    flex-wrap:wrap;
    justify-content:center;
}

.cert-card{
    width: 26rem;
    background:#0b0b0b;
    border-radius: .8rem;
    padding: .8rem;
    text-align:center;
    cursor:pointer;
    border:1px solid rgba(33,150,243,0.04);
}
.cert-card img{ width:100%; height:14rem; object-fit:cover; border-radius:.6rem; margin-bottom:.6rem; }

/* Reflection Section */
.reflection-content {
  max-width: 850px;
  margin: 0 auto;
  font-size: 1.6rem;
  line-height: 1.8;
  color: #ddd;
  text-align: justify;
  background: #0b0b0b;
  padding: 3rem 2.4rem;
  border-radius: 1rem;
  box-shadow: 0 0 20px rgba(33,150,243,0.08);
}

/* Contact: form left, text right */
.contact-content{
    display:flex;
    gap:2.4rem;
    align-items:flex-start;
    flex-wrap:wrap;
    justify-content:center;
}

.contact-form {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    max-width: 48rem;
    width:100%;
}

.contact-form input,
.contact-form textarea {
    padding: 1rem;
    border: 2px solid #2196F3;
    border-radius: 0.6rem;
    background-color: transparent;
    color: white;
    font-size: 1.6rem;
}

.contact-info{
    max-width:36rem;
    font-size:1.6rem;
    line-height:1.6;
}

/* Responsive */
@media (max-width: 900px){
    .home{ flex-direction: column; gap:2.5rem; padding-top:8rem; }
    .home-img{ width: 70%; }
    .flip-card{ width: 22rem; height:22rem; }
    .about-content{ flex-direction: column; align-items:center; }
    .education-content{ flex-direction: column; }
    .modal .modal-content{ padding:1rem; }
    .modal-img img{ width: 100%; height: auto; }
    nav a{ display:inline-block; margin-left:1rem; font-size:1.4rem; }
}

@media (max-width: 520px){
    header{ padding: .8rem 3%; }
    .logo{ font-size:2.2rem; }
    .heading{ font-size:2.6rem; }
    .home-content h1{ font-size:2.6rem; }
    .typing-line{ font-size:1.8rem; }
}

/* Footer */
.footer {
  width: 100%;
  text-align: center;
  padding: 1.6rem;
  background: #0a0a14; /* warna gelap seperti contoh */
  font-size: 1.4rem;
  color: #ccc;
  margin-top: 4rem;
}

/* Scroll-to-top button */
.scroll-top {
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, #6a11cb, #2575fc);
  color: #fff;
  font-size: 1.8rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.scroll-top.show {
  opacity: 1;
  pointer-events: auto;
}

.carousel-window {
  overflow: hidden;
  width: 100%;
  border-radius: 10px;
}

.carousel-track {
  display: flex;
  transition: transform 0.6s ease-in-out;
}

.carousel-item {
  min-width: 100%;
  height: auto;
  border-radius: 10px;
}

/* Notifikasi download */
.download-notif {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background: #2196F3;
  color: #000;
  font-weight: 600;
  padding: 1rem 2rem;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(33,150,243,0.4);
  animation: fadeInOut 3s ease forwards;
  z-index: 500;
}

@keyframes fadeInOut {
  0% { opacity: 0; transform: translateY(20px); }
  10%, 80% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(20px); }
}
