:root{
--primary: #89D4FF;
--color: #F3F4F4;
--home:#48A111;
--cv:#4A90E2;
--portfolio:#7A5FFF;
--game:#44A194;
--contact:#F63049;

--sidebar-bg:#F3F4F4;  

--theme-color : #7AAACE;

}

html{
scroll-behavior: smooth;
}

*{
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
}

/* BODY */
body{
background-color: var(--primary);
font-family: Arial, Helvetica, sans-serif;
}

/* SIDEBAR */
nav{
position: fixed;
left: 0;
top: 0;
width: 240px;
height: 100vh;
background-color: var(--sidebar-bg);
display: flex;
flex-direction: column;
box-shadow: 8px 0 30px rgba(0,0,0,0.08);
transform: translateX(-80px);
opacity: 0;
animation: sidebarReveal 0.9s forwards cubic-bezier(.22, .61, .36, 1);
}

/* ANIMATION */
@keyframes sidebarReveal{
0%{
transform: translateX(-120px);
opacity:0;
}
100%{
transform: translateX(0);
opacity:1;
}
}

/* BAGIAN FOTO */
nav .container-for-nav{
height: 30%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
border-bottom:1px solid rgba(0,0,0,0.06);
}

nav .container-for-nav .foto-part-nav{
width: 55%;
height: 70%;
border-radius: 50%;
overflow: hidden;
background-image: url(/asset/arisNav.png);
background-size: cover;
background-position: center;
border: 2px solid var(--theme-color);
box-shadow:0 8px 20px rgba(0,0,0,0.15);
transition:0.3s;
transform: scale(0.6);  
opacity: 0;  
animation: profileReveal 0.8s ease forwards, profileGlow 2s ease;  
animation-delay: 0.4s;
}

@keyframes profileReveal{
0%{
transform:scale(0.5);
opacity:0;
}
100%{
transform:scale(1);
opacity:1;
}
}

@keyframes profileGlow{
0%{
box-shadow:0 0 0 0 var(--theme-color);
}
50%{
box-shadow:0 0 20px 6px var(--theme-color);
}
100%{
box-shadow:0 8px 20px rgba(0,0,0,0.15);
}
}

nav .container-for-nav p{
margin-top: 10px;
font-weight: 600;
}

nav .container-for-nav .foto-part-nav:hover{
transform:scale(1.08) rotate(2deg);
}

nav .container-for-nav .foto-part-nav:hover{
transform: scale(1.05);
box-shadow: 0 0 0 4px rgba(255,255,255,0.5), 0 10px 25px rgba(0,0,0,0.5)
}

/* MENU */
nav .menu-navigation{
flex: 1;
display: flex;
flex-direction: column;
padding-top: 1rem;
gap: 6px;
}

/* LINK MENU */
nav .menu-navigation a{
display: flex;
align-items: center;
gap: 12px;
padding: 14px 16px;
border-radius: 12px;
color: #333;
font-weight: 500;
transition: 0.25s;
cursor: pointer;
position: relative;
overflow: hidden;
opacity: 0;
transform: translateX(-20px);
animation: menuReveal 0.5 ease forwards;
}

/* delay bertahap */
nav .menu-navigation a:nth-child(1){ animation-delay:0.6s; }
nav .menu-navigation a:nth-child(2){ animation-delay:0.7s; }
nav .menu-navigation a:nth-child(3){ animation-delay:0.8s; }
nav .menu-navigation a:nth-child(4){ animation-delay:0.9s; }
nav .menu-navigation a:nth-child(5){ animation-delay:1s; }

@keyframes menuReveal{
0%{
opacity:0;
transform:translateX(-20px);
}
100%{
opacity:1;
transform:translateX(0);
}
}

nav .menu-navigation a::before{
content:"";
position:absolute;
left:0;
top:0;
width:4px;
height:100%;
border-radius:4px;
opacity:0;
transition:0.25s;
}

/* ICON */
nav .menu-navigation a i{
font-size: 1.2rem;
width: 30px;
min-width: 30px;
text-align: center;
cursor:pointer;
font-size: 1.2rem;
transition: 0.25s;
display: flex;
justify-content: center;
align-items: center;
}

nav .menu-navigation a:hover{
transform: scale(1.15);
}

/* HOME */
nav .menu-navigation a[data-page="home"]:hover{
background:rgba(72,161,17,0.12);
color:var(--home);
transform:translateX(6px);
}
nav .menu-navigation a[data-page="home"]:hover::before{
background:var(--home);
opacity:1;
}

/* CV */
nav .menu-navigation a[data-page="cv"]:hover{
background:rgba(74,144,226,0.12);
color:var(--cv);
transform:translateX(6px);
}
nav .menu-navigation a[data-page="cv"]:hover::before{
background:var(--cv);
opacity:1;
}

/* PORTFOLIO */
nav .menu-navigation a[data-page="portfolio"]:hover{
background:rgba(122,95,255,0.12);
color:var(--portfolio);
transform:translateX(6px);
}
nav .menu-navigation a[data-page="portfolio"]:hover::before{
background:var(--portfolio);
opacity:1;
}

/* GAME */
nav .menu-navigation a[data-page="game"]:hover{
background:rgba(255,159,28,0.12);
color:var(--game);
transform:translateX(6px);
}
nav .menu-navigation a[data-page="game"]:hover::before{
background:var(--game);
opacity:1;
}

/* CONTACT */
nav .menu-navigation a[data-page="contact"]:hover{
background:rgba(246,48,73,0.12);
color:var(--contact);
transform:translateX(6px);
}
nav .menu-navigation a[data-page="contact"]:hover::before{
background:var(--contact);
opacity:1;
}

nav .menu-navigation a.active{
font-weight: 600;
transform: translateX(8px);
}

/* KONTEN KANAN */
main{
margin-left:240px;
height:100vh;
overflow-y:auto;
}

/* PAGE ROUTER */
main section{
display:none;
min-height:100vh;
}
main section.active{
display:flex;
flex-direction:column;
}

/* =========================
HEADER CV
========================= */
.header-container{
display:flex;
justify-content:space-between;
align-items:center;
padding:20px 40px;
background:white;
border-bottom:1px solid #eaeaea;
position:sticky;  
top:0;  
z-index:100;  
box-shadow:0 4px 12px rgba(0,0,0,0.05);
}

.nav-cv-right p{
font-size:1.6rem;
font-weight:700;
color:#222;
}
.nav-cv-right span{
color:#89D4FF;
}

.nav-cv-left{
display:flex;
gap:25px;
}
.nav-cv-left a{
font-size:0.95rem;
color:#444;
font-weight:500;
position:relative;
transition:0.3s;
}
.nav-cv-left a::after{
content:"";
position:absolute;
left:0;
bottom:-4px;
width:0%;
height:2px;
background:#89D4FF;
transition:0.3s;
}
.nav-cv-left a:hover{
color:#89D4FF;
}
.nav-cv-left a:hover::after{
width:100%;
}

/* =========================
HERO CV
========================= */
#cv{
width: 100%;
background: white;
}

.main-cv{
width: 100%;
display: flex;
flex-direction: column;
}

.cv-one{
display:flex;
justify-content:space-between;
align-items:center;
gap:60px;
padding:80px 60px;
max-width:1100px;
margin:auto;
border-radius:30px;
background:linear-gradient(135deg, #89D4FF 0%, #89D4FF 45%, #F7F6E5 45%, #F7F6E5 100%);
box-shadow:0 20px 60px rgba(0,0,0,0.15);
position:relative;
overflow:hidden;
}

.cv-one::before{
content:"";
position:absolute;
width:300px;
height:300px;
background:#89D4FF;
opacity:0.4;
filter:blur(120px);
top:-120px;
left:-120px;
}

.cv-hero{
flex:1;
}

.cv-hero h2{
font-size:2.7rem;
margin-bottom:20px;
color:#1a1a1a;
opacity:0;
transform:translateY(30px);
animation:heroTitle 1s ease forwards;
}

@keyframes heroTitle{
0%{opacity:0;transform:translateY(40px);}
100%{opacity:1;transform:translateY(0);}
}

.cv-hero p{
font-size:1rem;
line-height:1.7;
color:#555;
margin-bottom:10px;
}

.cv-hero a{
display:inline-block;
margin-top:15px;
padding:12px 28px;
background:#89D4FF;
color:white;
border-radius:30px;
font-weight:600;
transition:0.3s;
box-shadow:0 10px 25px rgba(0,0,0,0.15);
}
.cv-hero a:hover{
background:#59bdf7;
transform:translateY(-4px);
box-shadow:0 15px 35px rgba(0,0,0,0.25);
}

.sosmed-cv{
display:flex;
gap:15px;
margin-top:20px;
}
.sosmed-cv i{
font-size:1.2rem;
padding:12px;
background:white;
border-radius:50%;
transition:0.3s;
cursor:pointer;
box-shadow:0 5px 15px rgba(0,0,0,0.15);
}
.sosmed-cv i:hover{
background:#89D4FF;
color:white;
transform:translateY(-6px) scale(1.1);
}

.img-cv-one{
flex:1;
display:flex;
justify-content:center;
}
.img-cv-one img{
width:300px;
border-radius:20px;
object-fit:cover;
box-shadow:0 20px 60px rgba(0,0,0,0.25);
animation:floating 5s ease-in-out infinite;
}

@keyframes floating{
0%{transform:translateY(0px);}
50%{transform:translateY(-18px);}
100%{transform:translateY(0px);}
}

/* =========================
RESPONSIVE
========================= */
@media (max-width:900px){
.header-container{
flex-direction:column;
gap:15px;
}
.nav-cv-left{
flex-wrap:wrap;
justify-content:center;
}
.cv-one{
flex-direction:column-reverse;
text-align:center;
}
.sosmed-cv{
justify-content:center;
}
.img-cv-one img{
width:220px;
}
}

/* =========================
ABOUT SECTION
========================= */
.about{
padding:80px 40px;
background:#f8fbff;
}
.about h2{
text-align:center;
font-size:2.2rem;
margin-bottom:50px;
color:#222;
position:relative;
}
.about h2::after{
content:"";
width:70px;
height:3px;
background:#89D4FF;
display:block;
margin:10px auto 0;
border-radius:3px;
}
.about-content{
max-width:1100px;
margin:auto;
display:flex;
align-items:flex-start;
gap:60px;
}
.about-photo{
flex:0 0 250px;
}
.about-photo img{
width:100%;
border-radius:20px;
object-fit:cover;
box-shadow:0 15px 35px rgba(0,0,0,0.15);
}
.about-text{
flex:1;
font-size:0.95rem;
line-height:1.8;
color:#444;
}
.about-text hr{
border:none;
border-top:1px solid #ddd;
margin:25px 0;
}
.about-text h3{
font-size:1.2rem;
margin-bottom:10px;
color:#222;
}
.about-text ul{
list-style:none;
padding-left:0;
}
.about-text ul li{
margin-bottom:8px;
position:relative;
padding-left:18px;
}
.about-text ul li::before{
content:"•";
position:absolute;
left:0;
color:#89D4FF;
font-weight:bold;
}
.about-info li strong{
color:#222;
}

@media (max-width:900px){
.about-content{
flex-direction:column;
align-items:center;
text-align:center;
}
.about-photo{
width:200px;
}
.about-text ul li{
padding-left:0;
}
.about-text ul li::before{
display:none;
}
}

/* =========================
SKILLS SECTION
========================= */
.skill{
padding:80px 40px;
background:#ffffff;
}
.skill h2{
text-align:center;
font-size:2rem;
margin-bottom:60px;
position:relative;
}
.skill h2::after{
content:"";
width:70px;
height:3px;
background:#89D4FF;
display:block;
margin:10px auto;
}
.skill-category{
max-width:1000px;
margin:0 auto 50px auto;
}
.skill-category h3{
font-size:1.2rem;
margin-bottom:20px;
border-bottom:1px solid #e4e4e4;
padding-bottom:10px;
color:#333;
}
.skill-grid{
display:flex;
flex-wrap:wrap;
gap:15px;
}
.skill-item{
padding:10px 20px;
background:#f4f8ff;
border-radius:8px;
font-size:0.9rem;
font-weight:500;
transition:0.25s;
cursor:pointer;
border:1px solid transparent;
}
.skill-item:hover{
background:#89D4FF;
color:white;
transform:translateY(-3px);
box-shadow:0 8px 18px rgba(0,0,0,0.15);
}

/* =========================
EXPERIENCE SECTION
========================= */
.cv-pengalaman{
padding:80px 40px;
background:#f8fbff;
}
.cv-pengalaman h2{
text-align:center;
font-size:2rem;
margin-bottom:60px;
position:relative;
}
.cv-pengalaman h2::after{
content:"";
width:70px;
height:3px;
background:#89D4FF;
display:block;
margin:10px auto;
}
.timeline{
max-width:900px;
margin:auto;
position:relative;
padding-left:40px;
}
.timeline::before{
content:"";
position:absolute;
left:12px;
top:0;
width:3px;
height:100%;
background:#89D4FF;
}
.timeline-item{
position:relative;
margin-bottom:50px;
padding-left:40px;
}
.timeline-dot{
position:absolute;
left:-4px;
top:5px;
width:18px;
height:18px;
background:#89D4FF;
border-radius:50%;
box-shadow:0 0 0 5px rgba(137,212,255,0.25);
}
.timeline-content{
background:white;
padding:20px 25px;
border-radius:10px;
box-shadow:0 8px 20px rgba(0,0,0,0.08);
transition:transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.timeline-content:hover{
transform:translateY(-5px);
box-shadow:0 12px 30px rgba(0,0,0,0.15);
}
.timeline-date{
font-size:0.85rem;
color:#89D4FF;
font-weight:600;
}
.timeline-content h3{
margin:5px 0 10px 0;
font-size:1.1rem;
}
.timeline-content p{
font-size:0.9rem;
color:#555;
line-height:1.6;
}

/* =========================
HOBBY SECTION
========================= */
.cv-hoby{
padding:80px 40px;
background:#ffffff;
}
.cv-hoby h2{
text-align:center;
font-size:2rem;
margin-bottom:60px;
position:relative;
}
.cv-hoby h2::after{
content:"";
width:70px;
height:3px;
background:#89D4FF;
display:block;
margin:10px auto;
}
.hobby-grid{
max-width:800px;
margin:auto;
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:20px;
}
.hobby-item{
display:flex;
align-items:center;
gap:10px;
padding:12px 22px;
background:#f4f8ff;
border-radius:10px;
font-size:0.95rem;
font-weight:500;
transition:transform 0.2s ease, background 0.2s ease, color 0.2s ease;
cursor:pointer;
}
.hobby-item span{
font-size:1.2rem;
}
.hobby-item:hover{
background:#89D4FF;
color:white;
transform:translateY(-4px);
box-shadow:0 8px 20px rgba(0,0,0,0.15);
}

/* =========================
FOOTER CV
========================= */
.cv-footer{
background:#2C2C2C;
color:white;
padding:60px 40px 30px 40px;
}
.footer-container{
max-width:900px;
margin:auto;
text-align:center;
}
.footer-container h2{
font-size:1.8rem;
margin-bottom:15px;
font-weight:600;
}
.footer-tagline{
color:#bdbdbd;
margin-bottom:30px;
font-size:0.95rem;
}
.footer-social{
display:flex;
justify-content:center;
flex-wrap:wrap;
gap:25px;
margin-bottom:40px;
}
.footer-social a{
display:flex;
align-items:center;
gap:8px;
text-decoration:none;
color:#dcdcdc;
font-size:0.9rem;
transition:0.25s;
}
.footer-social i{
font-size:1.1rem;
}
.footer-social a:hover{
color:#89D4FF;
transform:translateY(-2px);
}
.footer-bottom{
border-top:1px solid #444;
padding-top:20px;
font-size:0.8rem;
color:#aaa;
}

/* =========================
SCROLL ANIMATION CV
========================= */
.reveal{
opacity:0;
transform:translateY(60px);
transition:opacity 0.8s ease, transform 0.8s ease;
}
.reveal.active{
opacity:1;
transform:translateY(0);
}
.delay-1{ transition-delay:0.1s; }
.delay-2{ transition-delay:0.2s; }
.delay-3{ transition-delay:0.3s; }
.delay-4{ transition-delay:0.4s; }
.delay-5{ transition-delay:0.5s; }

/* =========================
MENU TOGGLE BUTTON
========================= */
.menu-toggle{
position:fixed;
top:15px;
left:15px;
background:#89D4FF;
color:white;
border:none;
border-radius:8px;
width:45px;
height:45px;
font-size:22px;
display:none;
align-items:center;
justify-content:center;
cursor:pointer;
z-index:2000;
box-shadow:0 5px 15px rgba(0,0,0,0.2);
}

/* =========================
TABLET/MOBILE RESPONSIVE - SIDEBAR (FIXED)
========================= */
@media (max-width:900px){

.menu-toggle{
display:flex;
}

nav{
position:fixed;
top:0;
left:0;
width:50%;
height:100vh;
transform:translateX(-100%) !important;
transition:transform 0.35s ease !important;
z-index:1500;
opacity: 1 !important;
animation: none !important;
}

nav.active{
transform:translateX(0) !important;
}

nav .menu-navigation a{
display:flex;
align-items:center;
gap:12px;
padding:16px;
}

nav .menu-navigation a span{
display:inline;
}

main{
margin-left:0;
}

}

/* MOBILE - Bottom nav */

@media (max-width:600px){

nav{
    width: 80%;
}

}
