/* CSS design by Imtas W */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500&display=swap');

body { font-family: 'Montserrat', sans-serif; font-size: 14px ; color:#333; line-height:27px; font-weight: 500; }
th   { font-weight: bold; background-color: #D3DCE3;}
td   { font-size: 14px;}
form   { font-size: 14px}
h1   { font-size: 40px; font-weight: bold}
h3   { font-size: 18px; font-weight: bold}
a:link    { text-decoration: none; color: #1E5877;}
a:visited { text-decoration: none; color:#1E5877;}
a:hover   { text-decoration: none; color: #003366;}
A:link.nav { color: #000000}
A:visited.nav { color: #000000}
A:hover.nav { color: red;}
.nav { color: #000000}

body {
background:url(../pics/subtle_grunge.png);
    margin: 0;
    padding: 0;
}

#container
{
width: auto; height:100%; display:block; border:0px solid #FF0000; position:relative; overflow:hidden;
}

#footer
{
width: auto; height: auto; display:block;
background-image: linear-gradient(to bottom, #662D91 , #1B1464);
clear:both;
}

#footer-spot
{
width: auto; padding-top:100px; padding-bottom:80px; padding-left:15px; padding-right:15px; background-image: linear-gradient(to right, #662D91 , #1B1464); overflow:hidden; position:relative;
}

#footer-spot-col
{
width:23%; float:left; height: auto; border: #fff 0px dashed; margin-right: 18px;
padding:0px; text-align: left; border-radius:5px; color:#ccc;
}

#footer-spot-col2
{
width:24%; float:left; height: 100%; border: #fff 1px dashed;
padding:0px; text-align: justify; border-radius:5px; color:#ccc;
}

#footer-spot-col3
{
width:24%; float:right; height: auto; border: #fff 1px dashed;
padding:0px; text-align: justify; border-radius:5px; color:#ccc;
}


.page-header
{
position:fixed;top:0px;left:0px; right:0px; z-index:99999; background-image: none; 
  background: transparent;
  transition: all 0.8s ease; 

}

.page-header.off-canvas { 
top: 0px;
 }
 
 .page-header::before {
    content: "";
	position:absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(135deg, #662d91, #1b1464);
    z-index: -1;
    transition: opacity 0.8s ease; /* Kunci smooth fade-in di sini */
	opacity: 0;
    /* Gradasi ungu-biru dengan transparansi rendah (0.7) */
    background: linear-gradient(135deg, rgba(102, 45, 145, 0.9), rgba(27, 20, 100, 0.9));
    
    /* KUNCI EFEK KACA: Memberikan blur pada apa pun di belakang menu */
    -webkit-backdrop-filter: blur(10px); /* Untuk Safari */
    backdrop-filter: blur(10px); 
    
    /* Opsional: Border tipis di bagian bawah agar lebih tegas */
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Class ini akan ditambahkan oleh JavaScript saat scroll kebawah */
.page-header.scrolled {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* Muncul bayangan tipis */
}

/* Saat class .scrolled aktif, munculkan gradasinya perlahan */
.page-header.scrolled::before {
    opacity: 1; /* Fade-in smooth ke 100% */
}


.page-header.fixed {
  top: 0;
  z-index: 99999;
}

#header
{
width:1280px;
}

#menu-top
{
border:#FF0000 0px solid; margin-bottom:0px;  margin-top:0px; background: #3D0856;
}

#menu-res
{
width:1280px; display:block;
}

#kiri-header
{
width:15%; padding:0px; float:left; height:90px; text-align:center; border:green 0px solid;
display:flex;
align-items:center;
}

#kanan-header
{
width:78%; float:right; height:90px; text-align:center; border:red 0px solid; padding-right:0px;
display:flex;
align-items:center;
}

#full-header
{
width:100%; padding:0px; height:90px; text-align:right; border:#FF0000 0px solid;
display:flex;
background-image:url(../pics/upb_header.png);
align-items:center;
}

#header-mobile
{
display:none;
}

#spot-slide
{
width: auto; height:auto;
}

#spot-no-bg
{
width: auto; padding-top:100px; padding-bottom:100px; padding-left:15px; padding-right:15px; border:0px solid red; position:relative; overflow:hidden;
}

#spot-purple-bg
{
width: auto; padding-top:100px; padding-bottom:100px; padding-left:15px; padding-right:15px; background-image: linear-gradient(to right, #662D91 , #1B1464); color:#FFFFFF; position:relative; overflow:hidden;
}

#spot-purple2-bg
{
width: auto; padding-top:120px; padding-bottom:120px; padding-left:15px; padding-right:15px; background-image: linear-gradient(to right, #662D91 , #1B1464); position:relative; overflow:hidden;
}

#spot-space-bg
{
width: auto; padding-top:100px; padding-bottom:100px; padding-left:15px; padding-right:15px; color:#FFFFFF; position:relative; overflow:hidden;
background: url(../pics/2835568-ZZ-01.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;

}

#spot-space2-bg
{
width: auto; padding-top:100px; padding-bottom:100px; padding-left:15px; padding-right:15px; color:#FFFFFF; position:relative; overflow:hidden;
background: url(../pics/bg_header_website-01.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;

}

#header-bg-all-menu
{
width: auto; padding-top:30px; padding-bottom:30px; color:#ddd; position:relative; overflow:hidden;
background: url(../pics/bg_header_website-02.jpg) no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;

}

#header-bg-all-menu::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(102, 45, 145, 0.4), rgba(27, 20, 100, 0.4))!important;
    z-index: 1;
	
}



#spot-white-bg
{
width: auto; padding-top:35px; padding-bottom:35px; padding-left:15px; padding-right:15px; background:#F7EAFD;
}

#spot-blue-strip-bg
{
width: auto; padding-top:40px; padding-bottom:40px; padding-left:15px; padding-right:15px; background: url(../pics/purple_strip.jpg);
}

#spot-row
{
width:1280px; display:inline-block; border:red 0px solid; padding:0px; overflow: visible !important;
}


#col-prodi-grid
{
width: auto; padding:0px; float:none; border:#FF6600 0px solid;
display: inline-block;
align-items:center;
padding:10px; text-align: center;
border-radius:0px;
margin-top:15px;
margin-left: auto;
margin-right: 20px;
}

#col-prodi-grid-break
{
width: auto; padding:0px; float:none; border:#FF6600 0px solid;
display:inline-block;
align-items:center;
padding:10px; text-align: center;
border-radius:0px;
margin-top:15px;
margin-left: auto;
margin-right: auto;
clear:both;
}

#col4-grid
{
width:23.4%; float:left; height: auto; border:#FF6600 0px solid;
display:flex;
align-items:center;
padding:10px; text-align: left;
margin-right:0px;
border-radius:0px;
margin-top:15px;
}

#col4-grid-break
{
width:23.4%; float:left; height: auto; border:#FF6600 0px solid;
display:flex;
align-items:center;
padding:10px; text-align: left;
margin-right:0px;
border-radius:10px;
margin-top:15px;
clear:both;
}


#col3-grid
{
width:31.5%; float:left; height: auto; border:#FF6600 0px solid;
display:flex;
align-items:center;
padding:10px; text-align: left;
margin-right:0px;
border-radius:0px;
margin-top:15px;
}

#col3-grid-break
{
width:31.5%; float:left; height: auto; border:#FF6600 0px solid;
display:flex;
align-items:center;
padding:10px; text-align: left;
margin-right:0px;
border-radius:10px;
margin-top:15px;
clear:both;
}

#col2-grid
{
width:47.9%; padding:0px; float:left; height: auto; border:#FF6600 0px solid;
display:flex;
align-items:center;
padding:0px; text-align: justify;
padding-left:15px;
border-radius:0px;
margin-top:15px;
}

#col2-grid-break
{
width:47.9%; padding:0px; float:left; height: auto; border:#FF6600 0px solid;
display:flex;
align-items:center;
padding:0px; text-align: justify;
padding-left:15px;
border-radius:0px;
margin-top:15px;
clear:both;
}

#col2-pg-main
{
width: auto; padding:0px; border-bottom:red 0px solid;
display: inline-block;
padding:0px; text-align: justify;
padding-left:0px;
border-radius:0px;
margin-bottom:20px;
}

#col2-left-pg
{
width:36%; padding:0px; float:left; height: auto; border:#FF6600 0px solid;
display:block;
padding:0px; text-align: justify;
padding-left:0px;
border-radius:0px;
margin-top:10px;
}

#col2-right-pg
{
width:60%; float:right; height: auto; border:#FF6600 0px solid;
display: block;
padding:0px; text-align: left;
padding-left:0px;
border-radius:0px;
margin-top:10px;
}

#news-tick-container
{
width: auto; padding:0px;
background-image: linear-gradient(to right, #2275bb , #922b8b);

}

#news-tick-spot
{
width:1280px; padding:5px;
}

#nt-title {
padding-left:10px; padding-right:10px;
}

#nt-title li {
font-size:14px; font-weight:bold; color:#fff; 
text-shadow: 0 2px 0 #fff;
	white-space: nowrap;
	list-style: none;
	overflow: hidden;
	text-overflow: ellipsis;
	padding:0px; 
}

#map-upb
{
width: auto; background:#fff; height:220px;
border-top:1px #ccc dashed; border-bottom:1px #333 dashed;
}


/* Base robot */
.robot {
  position: absolute;
  opacity: 0;
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: transform, opacity;
  z-index: 999;
}

/* Saat kena scroll reveal */
.robot.active {
  opacity: 1;
  transform: translateY(0);
}

/* Floating animation (jalan terus setelah muncul) */
.robot.floating {
  animation-name: float;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

/* Floating keyframes */
@keyframes float {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-18px); }
  100% { transform: translateY(0); }
}


.robot-1 {
  top: 10%;
  right: -20%;
  width: 165px;
  transform: translateX(20px);

}

.robot-2 {
  top: 10%;
  left: -10%;
  transform: translateX(-20px);
}

.robot-3 {
  bottom: 10%;
  left: -2%;
  width: 90px;
  transform: translateY(20px);

}

.robot-4 {
  transform: translateX(20px);

}

.robot-5 {
  transform: translateX(-20px);

}

.robot-1.floating { animation-duration: 4s; }
.robot-2.floating { animation-duration: 5.5s; }
.robot-3.floating { animation-duration: 3s; }
.robot-4.floating { animation-duration: 3.5s; }
.robot-5.floating { animation-duration: 4s; }



#big-font-title
{
font-size:65px; line-height:60px; font-weight: 900;
}

#big2-font-title
{
font-size:45px; line-height:60px; font-weight: 900;
}

#big3-font-title
{
font-size:35px; line-height:60px; font-weight: 900;
}

#bg-inside-header {
background-image: linear-gradient(to right, #662D91 , #1B1464);
height:90px;
overflow: hidden;
position: relative; /* Wajib agar video & konten bisa ditumpuk */

}



#bg-headline-banner_home {
    height: 100vh;
    width: 100%;
    overflow: hidden;
    position: relative; /* Wajib agar video & konten bisa ditumpuk */
/* JURUS TENGAH: Membuat container utama menjadi Flexbox */
    display: flex;
    justify-content: center; /* Menengah secara Horizontal (Kiri-Kanan) */
    align-items: center;     /* Menengah secara Vertikal (Atas-Bawah) */
    text-align: center;      /* Memastikan teks di dalamnya juga center */
	border:0px solid red;
	background-image: linear-gradient(to right, #662D91 , #1B1464);
	}

#video-headline {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 0; /* Supaya video ada di belakang teks */
    transform: translateX(-50%) translateY(-50%);
    object-fit: cover; /* Agar video tidak gepeng */
}

/* Tambahkan Overlay jika teks sulit dibaca */
#bg-headline-banner_home::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(102, 45, 145, 0.5), rgba(27, 20, 100, 0.5))!important;
    z-index: 1;
	
}

.content-header {
    position: relative;
    z-index: 2; /* Supaya teks ada di atas video & overlay */
    width: 100%;
    /* Atur padding atau margin teks kamu di sini */
    padding: 0 0px;   /* Jaga jarak aman di layar HP */
}

#bg-headline-banner_home > div { /* Contoh jika konten ada di dalam div */
  display: flex;
  justify-content: flex-start;
  align-items: center;
  height:100vh; /* Sesuaikan tinggi div konten */
}


#col-left-head-banner
{
width:48%; float:left; height: auto; border: red 0px dashed; margin-right: 15px; margin-top: 70px; color:#FFFFFF;
text-align: left;
}

#col-right-head-banner
{
width:48%; float:right; height: auto; border: yellow 0px dashed; color:#FFFFFF; margin-top: 70px;
text-align: center;
}

#col-right-home-reg
{
width:47%; float:right; height: auto; border: #333333 0px dashed; color:#333;
text-align: left;
}

#col-left-home-reg
{
width:47%; float:left; height: auto; border: #663399 0px solid; color:#333;
text-align: center; border-radius:30px;
    -moz-box-shadow: 5px 5px 20px #999;
    -webkit-box-shadow: 5px 5px 20px #999;
    box-shadow: 5px 5px 20px #999;
}

#col-left-faq
{
width:51%; float:left; height: auto; border: #333333 0px dashed; margin-right: 15px;
padding:40px; text-align: left; border-radius:20px; background: url(../pics/subtle_grunge.png); padding-bottom:60px;
    -moz-box-shadow: 5px 5px 20px #222;
    -webkit-box-shadow: 5px 5px 20px #222;
    box-shadow: 5px 5px 20px #222;
}

#col-right-faq
{
width:35%; float:right; height: auto; border: #333333 0px dashed;
padding:30px; text-align: justify; border-radius:20px; background: url(../pics/subtle_grunge.png); padding-bottom:20px;
    -moz-box-shadow: 5px 5px 20px #222;
    -webkit-box-shadow: 5px 5px 20px #222;
    box-shadow: 5px 5px 20px #222;

}


#col-left-rektor-home
{
width:25%; float:left; height: auto; border: #333333 0px dashed; color:#fff;
text-align: left;
}

#col-right-rektor-home
{
width:70%; float:right; height: auto; border: #663399 0px solid; color:#fff;
text-align: left;
}


#main-container
{
width:1280px; display: inline-block;
padding:0px;
border: red 0px dashed;
height: 100%;
margin-top:50px;
margin-bottom:60px;
text-align:left;
}

#main-content
{
width:71%; float:left; height: auto; border: orange 0px dashed; margin-right:0px;
padding:0px; text-align: justify; border-radius:0px;
height: 98%;
}

#rightside-menu
{
width:25%; float:right; height: auto; border: blue 0px dashed;
padding:2px; text-align: left; border-radius:0px;
height: 98%;
}

#rightside-white-box
{
border:dashed 0px #0099FF; padding:10px; border-radius:0px;
margin-bottom:20px; background:#fff; border:1px dashed #E0AFF8;

}


#title-box-widget
{
padding:5px; background: #3D0856;
}


.btn {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; color: #fff; border: #fff; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; background-color: #990000; padding:6px; border-radius:10px;}

.style30 {padding:8px; border:#666; border-style: solid; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; background-color: #ddd; color:#111; width:95%; border-radius:5px;}

.style31 {padding:8px; border:#666; border-style: solid; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; background-color: #ddd; color:#333333;border-radius:5px;}

.catform {font-size: 12px; padding:4px; font-style: normal; border:#666; border-style: solid; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; background-color: #ddd; font-family: Verdana, Arial, Helvetica, sans-serif; color:#333333;border-radius:5px; width:200px;}

.link1 a:link {text-decoration : none;color:#660000; text-shadow: 1px 1px lightblue;}
.link1 a:visited {text-decoration : none;color:#660000; text-shadow: 1px 1px lightblue}
.link1 a:hover {text-decoration: none;color:#003366; text-shadow: 1px 1px lightblue}

.link2 a:link {text-decoration :none;color: #003366; font-size:13px;}
.link2 a:visited {text-decoration : none;color:#003366; font-size:13px;}
.link2 a:hover {text-decoration: underline;color: #990000; font-size:13px;}

.link3 a:link {text-decoration :none;color: #990000;}
.link3 a:visited {text-decoration : none;color:990000;}
.link3 a:hover {text-decoration: underline;color:#003366;}

.link_light a:link {text-decoration :none;color:#FECA44;}
.link_light a:visited {text-decoration : none;color:#FECA44;}
.link_light a:hover {text-decoration: none;color:lightblue;}

.link4 {text-decoration :none;color:#003366;}
.link4:hover {
text-decoration: none;
color: #990000; 
-moz-box-shadow: 0px 1px 3px #333;
-webkit-box-shadow: 0px 1px 3px #333;
box-shadow: 0px 1px 3px #333;
border-radius:0px;
}


.center-cropped-4col {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 100%;
  height: 180px;
  }
  
.center-cropped-3col {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 100%;
  height: 250px;
  }
  
.center-cropped-2col {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 100%;
  height: 200px;
  }
  
.center-cropped-2col-pg {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 100%;
  height: auto;
  border:2px solid white; border-radius:30px;
  box-shadow:  11px 11px 22px #bababa, -11px -11px 22px #ffffff;
  }
  
.center-cropped-bulet {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 120px;
  height: 120px; background: none; padding:10px; border-radius:50%;
  
/* Gradasi Ungu: Dari Ungu Tua ke Ungu Cerah/Violet */
  background-image: linear-gradient(#2e1065, #9400d3), 
                    linear-gradient(45deg, #4b0082, #662d91, #fff);

background-origin: border-box;
  background-clip: content-box, border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 4px solid transparent;
  box-shadow: 0 0 15px rgba(0, 212, 255, 0.3);
  }
  
.center-cropped-gallery {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 100%;
  height: 180px;
  border-radius:0px;
  }
  
.center-cropped-gallery-terbaru {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 275px;
  height: 195px;
  border-radius:5px;
  }
  
.center-cropped-gallery-leftside {
  object-fit: cover; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 100%;
  height: 100%;
  border-bottom-left-radius: 8px 8px; border-bottom-right-radius: 8px 8px;
  }
  
.center-cropped-dis {
  object-fit: contain; /* Do not scale the image (cover / contain) */
  object-position: center; /* Center the image within the element */
  width: 120px;
  height: 90px;
  }

#boxshadow_photo {
    -moz-box-shadow: 0px 3px 5px #333;
    -webkit-box-shadow: 0px 3px 5px #333;
    box-shadow: 0px 3px 5px #333;
	margin:auto;
}

.shadow_text {
text-shadow: 1px 1px #eee;
}

.shadow_text_black {
text-shadow: 1px 1px #000;
}

.btn2 {}
.btn2:hover {
text-decoration: none;
color: #990000; 
-moz-box-shadow: 0px 1px 3px #333;
-webkit-box-shadow: 0px 1px 3px #333;
box-shadow: 0px 1px 3px #333;
border-radius:10px;
}

.button1 {
  border-radius: 10px;
  background-color: #FECA44;
  border: none;
  color: #333;
  text-align: center;
  font-size: 15px;
  padding: 20px;
  width: auto;
  transition: all 0.5s;
  cursor: pointer;
  margin: 5px;
font-family: 'Montserrat', sans-serif; font-weight:600;
}

.button1 span {
  cursor: pointer;
  display: inline-block;
  position: relative;
  transition: 0.5s;
}

.button1 span:after {
  content: '\00bb';
  position: absolute;
  opacity: 0;
  top: 0;
  right: -20px;
  transition: 0.5s;
}

.button1:hover span {
  padding-right: 25px;
}

.button1:hover span:after {
  opacity: 1;
  right: 0;
}

.button2 {
  border-radius: 5px;
  background-color: #FECA44;
  border: none;
  color: #333;
  text-align: center;
  font-size: 14px;
  padding: 9px;
  width: auto;
  transition: all 0.5s;
  cursor: pointer;
  margin-left: 10px;
font-family: 'Montserrat', sans-serif; font-weight:600;
}

.button2 span {
  cursor: pointer;
  display: inline-block;
  position: relative;
  transition: 0.5s;
}

.button2 span:after {
  content: '\00bb';
  position: absolute;
  opacity: 0;
  top: 0;
  right: -20px;
  transition: 0.5s;
}

.button2:hover span {
  padding-right: 15px;
}

.button2:hover span:after {
  opacity: 1;
  right: 0;
}

.button3 {
  border-radius: 5px;
  background-color: #FECA44;
  border: none;
  color: #333;
  text-align: center;
  font-size: 12px;
  padding: 7px;
  width: auto;
font-family: 'Montserrat', sans-serif; font-weight:600;
}

.button4 {
  border-radius: 5px;
  background-color: #FECA44;
  border: none;
  color: #333;
  text-align: center;
  font-size: 14px;
  padding: 9px;
  width: auto;
  transition: all 0.5s;
  cursor: pointer;
  margin-left: 10px;
font-family: 'Montserrat', sans-serif; font-weight:600;
}

.button4 span {
  cursor: pointer;
  display: inline-block;
  position: relative;
  transition: 0.5s;
}

.button4 span:after {
  content: '\00bb';
  position: absolute;
  opacity: 0;
  top: 0;
  right: -20px;
  transition: 0.5s;
}

.button4:hover span {
  padding-right: 15px;
}

.button4:hover span:after {
  opacity: 1;
  right: 0;
}


#title-product
{
text-align:left;
font-size:24px;
padding-top:10px;
}

.scrollToTop{
	width:54px; 
	height:54px;
	margin-right:20px;
	margin-bottom:20px;
	text-align:center; 
	font-weight: bold;
	color: #444;
	text-decoration: none;
	position:fixed;
	bottom:0;
	right:0;
	display:none;
	background: url(../pics/arrow_top.png) no-repeat 0px;
	border: 0px #FF0000 solid;
}
.scrollToTop:hover{
	text-decoration:none;
}

#sticky-menu
{
width:250px; height:100%;
}

.hover01 {
	margin:0;
	padding:0;
	overflow: hidden;
	background:#fff;
	border-radius:20px;
	border:0px solid red;
    height: 100%; width: auto;
}

/* Zoom In #1 */
.hover01 img {
	-webkit-transform: scale(1.1);
	transform: scale(1.1);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}
.hover01:hover img {
	-webkit-transform: scale(1.3);
	transform: scale(1.3);
}

.hover02 {
	margin:0;
	padding:0;
	overflow: hidden;
	background:#fff;
	border:0px solid red;
	height: auto;
	width: auto;
}

/* Zoom In #1 */
.hover02 img {
	-webkit-transform: scale(1);
	transform: scale(1);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}
.hover02:hover img {
	-webkit-transform: scale(1.3);
	transform: scale(1.3);
}

/* Slide */
.hover05 {
	margin:0;
	padding:0;
	overflow: hidden;
	background:#fff;
	border:0px solid red;
	height: auto;
	width: auto;
}

.hover05 img {
	margin-left: 30px;
	-webkit-transform: scale(1.5);
	transform: scale(1.5);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}
.hover05:hover img {
	margin-left: 0;
}

.hover14 {
	margin:0;
	padding:0;
	overflow: hidden;
	background:rgba(255, 255, 255, 0.0);
    height: auto; width: auto;
	position: relative;
}

/* Shine */
.hover14::before {
	position: absolute;
	top: 0;
	left: -85%;
	z-index: 2;
	display: block;
	content: '';
	width: 50%;
	height: 100%;
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
	-webkit-transform: skewX(-25deg);
	transform: skewX(-25deg);
}
.hover14:hover::before {
	-webkit-animation: shine .75s;
	animation: shine .75s;
}
@-webkit-keyframes shine {
	100% {
		left: 125%;
	}
}
@keyframes shine {
	100% {
		left: 125%;
	}
}

.gallery-desktop {
	display:block;
}

.gallery-mobile {
	display:none;
}

/* Push */
@-webkit-keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
.hvr-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-push:hover, .hvr-push:focus, .hvr-push:active {
  -webkit-animation-name: hvr-push;
  animation-name: hvr-push;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}

/* Buzz Out */
@-webkit-keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}
@keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}
.hvr-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-buzz-out:hover, .hvr-buzz-out:focus, .hvr-buzz-out:active {
  -webkit-animation-name: hvr-buzz-out;
  animation-name: hvr-buzz-out;
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}

/* Bounce To Right */
.hvr-bounce-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  padding:5px;
  width: 98%;
}
.hvr-bounce-to-right:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #C293FD;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
  transform-origin: 0 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-bounce-to-right:hover, .hvr-bounce-to-right:focus, .hvr-bounce-to-right:active {
  color: white;
}
.hvr-bounce-to-right:hover:before, .hvr-bounce-to-right:focus:before, .hvr-bounce-to-right:active:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
  -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

/* Underline From Left */
.hvr-underline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
  padding-bottom:8px;
}
.hvr-underline-from-left:before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 100%;
  bottom: 0px;
  background: #2098D1;
  height: 2px;
  -webkit-transition-property: right;
  transition-property: right;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-underline-from-left:hover:before, .hvr-underline-from-left:focus:before, .hvr-underline-from-left:active:before {
  right: 0;
}

.shape {
  position: absolute;
  z-index: 1;
}

/* Koordinat Posisi Persis Mockup */
.tri-top    { top: 15%; left: 5%;  width: 40px; }
.circ-left  { top: 55%; left: 4%;  width: 30px; animation-delay: 1s; }
.plus-left  { bottom: 10%; left: 8%; width: 15px; animation-delay: 0.5s; }
.ring-right { top: 15%; right: 7%; width: 35px; animation-duration: 8s; }
.tri-bottom { bottom: 35%; right: 7%; width: 40px; animation-delay: 1.5s; }
.pbbot-bottom { bottom: 15%; right: 5%; width: 130px; animation-delay: 1.5s; }

/* Class Dasar: Mengatur transisi halus saat masuk DAN keluar */
.scroll-reveal {
  opacity: 0 !important;
  transform: translateY(40px) scale(0.9); /* Start dari bawah & agak kecil */
  transition: opacity 2s ease, transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
  visibility: hidden;
  position: absolute;
  z-index: 0;
}

/* Class Aktif: Saat elemen terlihat di layar */
.scroll-reveal.active {
  opacity: 1 !important;
  transform: translateY(0) scale(1);
  visibility: visible;
}

/* Animasi Mengambang (Hanya jalan setelah Reveal selesai) */
.floating-animation {
  animation: floatAndRotate 6s ease-in-out infinite;
}

@keyframes floatAndRotate {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(10deg); }
}

/* Wobble Vertical */
@-webkit-keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
.hvr-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-wobble-vertical:hover, .hvr-wobble-vertical:focus, .hvr-wobble-vertical:active {
  -webkit-animation-name: hvr-wobble-vertical;
  animation-name: hvr-wobble-vertical;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}

#robot-pointer {
    position: fixed;
    top: 0;
    left: 0;
    width: 90px;
    z-index: 999;
    pointer-events: none;
    opacity: 0; 
    visibility: hidden;
    will-change: transform, opacity;
    transition: opacity 0.5s ease, transform 0.2s ease-out;
}

#robot-pointer.active {
    opacity: 1;
    visibility: visible;
}

/* PEMBUNGKUS: Tempat animasi melayang (floating) */
.robot-wrapper {
    position: relative;
    width: 100%;
    animation: floating 3s ease-in-out infinite;
}

/* CAHAYA MESIN: Nempel di kaki, ikut melayang */
.robot-wrapper::before {
    content: '';
    position: absolute;
    /* Posisikan tepat di area asap/kaki robot */
    bottom: -5px; 
    left: 90%;
    transform: translateX(-50%);
    width: 40px; 
    height: 40px;
    /* Cahaya hanya di satu titik (area asap) */
    background: radial-gradient(circle, rgba(0, 212, 255, 0.9) 0%, rgba(0, 212, 255, 0) 70%);
    filter: blur(8px);
    z-index: 999; /* Supaya cahaya berada DI BELAKANG gambar robot */
    animation: enginePulse 0.2s infinite alternate;
}

#robot-pointer img {
    width: 100%;
    display: block;
    position: relative;
    z-index: 2; /* Robot di depan cahaya */
}

/* Animasi Floating (Induknya yang bergerak) */
@keyframes floating {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

/* Animasi Getaran Cahaya Mesin */
@keyframes enginePulse {
    from { opacity: 0.6; transform: translateX(-50%) scale(0.8); }
    to { opacity: 1; transform: translateX(-50%) scale(1.2); }
}

/* Saat menyentuh link: Robot sedikit bercahaya secara keseluruhan */
.robot-kaget img {
    filter: brightness(1.2) drop-shadow(0 0 15px rgba(0, 212, 255, 0.9));
    transition: filter 0.3s ease;
}

.search-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(6px);
  z-index: 999999999;

  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* aktif */
.search-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.search-form {
  display: flex;
  gap: 10px;
  animation: scaleIn 0.4s ease;
}

.search-form input {
  width: 320px;
  padding: 14px 18px;
  font-size: 18px;
  border-radius: 30px;
  border: none;
  outline: none;
}

.search-form button {
  padding: 14px 22px;
  border-radius: 30px;
  border: none;
  background: #ffcc00;
  font-weight: 600;
  cursor: pointer;
}

.close-btn {
  position: absolute;
  top: 30px;
  right: 40px;
  font-size: 28px;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.search-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  color: #fff;
  margin-left:10px;
  position:absolute; z-index:999;
  right:-45px; top:12px;
}

.tombol-daftar-mobile {
display:none;
 
}

.search-btn i {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.search-btn:hover i {
  transform: scale(1.3);
  opacity: 0.85;
}

/* ===== Scroll Reveal Animation (Lightweight) ===== */
.reveal {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
  will-change: opacity, transform;
}

.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

/* Optional: delay variasi */
.reveal.delay-1 { transition-delay: .1s; }
.reveal.delay-2 { transition-delay: .2s; }
.reveal.delay-3 { transition-delay: .3s; }
.reveal.delay-4 { transition-delay: .4s; }

.pb-bot {
  display: inline-block;
  line-height:17px;
  position: static;
}

.pb-tooltip {
  position: absolute;
  transform: translateX(-50%) scale(0.9);
  background: rgba(255, 255, 255, 0.8);
  color: #333;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 13px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  will-change: transform, opacity;
  transition: all 0.25s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
  z-index:9999999;
}

.pb-tooltip.pbbot2 {
  top: 4%;
  left: 15%;
}

.pb-tooltip.pbbot1 {
  top: 2%;
  right: -30%;
  transform: translateX(-50%) scale(1);
  opacity: 1;
}

.pb-tooltip.pbbot3 {
  bottom: 37%;
  left: 8%;
}


/* segitiga balon */
.pb-tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: rgba(255, 255, 255, 0.8);
}
/* muncul saat hover */
.pb-bot:hover .pb-tooltip {
  opacity: 1;
  transform: translateX(-50%) scale(1);
}

/* Tombol WhatsApp Floating */
.whatsapp-float {
  position: fixed;
  left: 20px;          /* ubah ke left:20px kalau mau kiri */
  bottom: 20px;
  width: 56px;
  height: 56px;
  background-color: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  z-index: 9999;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.whatsapp-float img {
  width: 28px;
  height: 28px;
}

.whatsapp-float:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

/* Animasi pulse */
.whatsapp-float::after {
  content: "";
  position: absolute;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(37, 211, 102, 0.25);
  animation: pulse 1.8s infinite;
  z-index: -1;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 0.9;
  }
  70% {
    transform: scale(1.9);
    opacity: 0;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

.sosmed {
    display: flex;
    gap: 7px;
}

.sosmed a {
    width: 35px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;;
    color: #fff;
    font-size: 17px;
    text-decoration: none;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.sosmed a:hover {
    transform: translateY(-3px);
    opacity: 0.85;
}

/* Warna masing-masing */
.sosmed a:nth-child(1) { background: #1877f2; } /* FB */
.sosmed a:nth-child(2) { background: #e1306c; } /* IG */
.sosmed a:nth-child(3) { background: #ff0000; } /* YouTube */
.sosmed a:nth-child(4) { background: #000000; } /* Wikipedia */
.sosmed a:nth-child(5) { background: #000000; } /* TikTok */
.sosmed a:nth-child(6) { background: #0a66c2; } /* LinkedIn */
.sosmed a:nth-child(7) { background: #25d366; } /* WhatsApp */
.sosmed a:nth-child(8) { background: #FF6600; } /* Email */