/* ---------------------- */
/* VARIABEL WARNA */
/* ---------------------- */

:root {
--primary-color: #2d5016;
--secondary-color: #8B4513;
--accent-red: #8B0000;
--accent-gold: #DAA520;
--background-dark: #1a1a1a;
--background-light: #f4f1e8;
--text-dark: #f1f1f1;
--text-light: #fff;
--text-muted: #ccc;
--border-color: #444;
--shadow-color: rgba(255, 255, 255, 0.1);
--forest-green: #2d5016;
--earth-brown: #8B4513;
}

/* Mode Profesional */
body.mode-profesional {
--primary-color: #3A8AB0;
--secondary-color: #256d8f;
--background-light: #9ad7f3;
--text-dark: #333;
--text-light: #fff;
--text-muted: #666;
--border-color: #ddd;
--shadow-color: rgba(0, 0, 0, 0.1);
background-color: var(--background-light);
color: var(--text-dark);
font-family: 'Arial', sans-serif;
}

/* ---------------------- */
/* RESET & BODY */
/* ---------------------- */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: 'Georgia', serif;
line-height: 1.6;
background-color: var(--background-light);
color: #222;
min-height: 100vh;
position: relative;
overflow-x: hidden;
transition: background 0.5s ease, color 0.5s ease;
}

body.mode-fantasi {
background: linear-gradient(135deg, #2d5016 0%, #8B4513 50%, #2d5016 100%);
}

/* ---------------------- */
/* FALLING LEAVES */
/* ---------------------- */
.falling-leaves {
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
pointer-events: none;
z-index: 9999;
}
.leaf {
position: absolute;
font-size: 20px;
opacity: 0.7;
animation: fall linear infinite;
}
.leaf:nth-child(1) { left: 10%; animation-duration: 8s; animation-delay: 0s; }
.leaf:nth-child(2) { left: 30%; animation-duration: 10s; animation-delay: 2s; }
.leaf:nth-child(3) { left: 50%; animation-duration: 12s; animation-delay: 4s; }
.leaf:nth-child(4) { left: 70%; animation-duration: 9s; animation-delay: 6s; }
.leaf:nth-child(5) { left: 90%; animation-duration: 11s; animation-delay: 1s; }
@keyframes fall {
0% { transform: translateY(-100px) rotateZ(0deg); opacity: 0; }
10%, 90% { opacity: 0.7; }
100% { transform: translateY(calc(100vh + 100px)) rotateZ(360deg); opacity: 0; }
}

/* ---------------------- */
/* HEADER & NAVIGATION */
/* ---------------------- */
header {
display: flex;
justify-content: flex-start;
align-items: center;
padding: 15px;
background-color: var(--primary-color);
color: var(--text-light);
box-shadow: 0 2px 4px var(--shadow-color);
border-bottom: 3px solid var(--accent-gold);
}
.left-section {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.left-section img {
height: 30px;
margin-right: 5px;
flex-shrink: 0;
}
.logo-and-name {
display: flex;
align-items: center;
}
.website-name {
font-size: 1rem;
font-weight: bold;
margin-right: 20px;
color: var(--accent-gold);
}
.main-navigation {
flex-grow: 1;
display: flex;
justify-content: flex-end;
gap: 15px; /* Tambahkan baris ini */
}
.main-navigation ul {
display: flex;
list-style: none;
gap: 20px;
font-weight: bold;
align-items: center;
}
.main-navigation a {
text-decoration: none;
color: var(--text-light);
padding: 10px 15px;
border-radius: 5px;
transition: all 0.3s ease;
}
.main-navigation a:hover,
.main-navigation a.active {
color: var(--accent-gold);
background-color: rgba(218, 165, 32, 0.1);
}

/* ---------------------- */
/* KONTEN UTAMA & KARTU */
/* ---------------------- */
.container {
max-width: 1200px;
margin: 20px auto;
padding: 20px;
background-color: var(--background-light);
border-radius: 15px;
box-shadow: 0 8px 32px var(--shadow-color);
border: 3px solid var(--accent-gold);
position: relative;
}
.container::before {
content: '';
position: absolute;
top: -10px;
left: -10px;
right: -10px;
bottom: -10px;
background: linear-gradient(45deg, var(--forest-green), var(--earth-brown), var(--forest-green));
border-radius: 20px;
z-index: -1;
}
.profile-section {
text-align: center;
padding: 30px;
background: linear-gradient(135deg, rgba(45, 80, 22, 0.1), rgba(139, 69, 19, 0.1));
border-radius: 15px;
border: 2px solid var(--forest-green);
margin-bottom: 40px;
}
.profile-frame {
width: 200px; height: 200px;
margin: 0 auto 20px;
border: 8px solid var(--accent-gold);
border-radius: 50%;
overflow: hidden;
box-shadow: 0 0 30px rgba(218, 165, 32, 0.5);
background: linear-gradient(45deg, var(--forest-green), var(--earth-brown));
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.profile-frame::before {
content: '';
position: absolute;
inset: -4px;
border-radius: 50%;
background: linear-gradient(45deg, var(--accent-gold), var(--forest-green), var(--accent-gold));
z-index: -1;
}
.profile-frame img {
width: 100%;
height: 100%;
object-fit: cover;
}
.profile-name {
color: var(--primary-color);
font-size: 2rem;
font-weight: bold;
margin-top: 1rem;
}
.profile-title {
font-size: 1.3rem;
color: var(--accent-red);
font-style: italic;
margin-bottom: 20px;
}
.biography-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
margin-bottom: 30px;
}
.bio-section {
background: rgba(255, 255, 255, 0.9);
padding: 25px;
border-radius: 10px;
border-left: 5px solid var(--forest-green);
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.bio-section h3 {
color: var(--primary-color);
margin-bottom: 15px;
font-size: 1.4rem;
font-weight: bold;
}
.bio-section h3::before {
font-size: 1.2rem;
}
.skills-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 30px;
}
.skill-card {
background: linear-gradient(135deg, rgba(34, 139, 34, 0.1), rgba(139, 69, 19, 0.1));
border: 2px solid var(--accent-gold);
box-shadow: 0 4px 8px var(--shadow-color);
padding: 20px;
border-radius: 8px;
text-align: center;
transition: transform 0.3s ease;
}
.skill-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}
.skill-card h4 {
color: var(--accent-red);
margin-bottom: 10px;
font-size: 1.2rem;
font-weight: bold;
}

/* ---------------------- */
/* FOOTER */
/* ---------------------- */
footer {
padding: 20px 50px;
background-color: var(--primary-color);
color: var(--text-light);
text-align: center;
border-top: 3px solid var(--accent-gold);
}
.footer-container {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
}
.footer-left, .footer-right {
flex: 1;
}
.footer-center {
color: var(--accent-gold);
font-weight: bold;
}

/* ---------------------- */
/* PORTFOLIO / KARYA SECTION */
/* ---------------------- */
.portfolio-section {
margin-top: 60px;
padding: 40px 20px;
background: linear-gradient(135deg, var(--background-light), #fff);
border-radius: 15px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
.portfolio-section h2 {
text-align: center;
font-size: 2rem;
color: var(--primary-color);
font-weight: bold;
}
.portfolio-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 30px;
}
.portfolio-card {
background: #fff;
border: 2px solid var(--accent-gold);
border-radius: 10px;
padding: 20px;
text-align: center;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.portfolio-card img {
width: 100%;
height: 200px;
object-fit: contain;
border-radius: 8px;
background-color: #fff;
}
.portfolio-card h4 {
color: var(--accent-red);
}
.portfolio-buttons {
display: flex;
justify-content: center;
gap: 10px;
flex-wrap: wrap;
margin-top: 10px;
}
.portfolio-button {
background-color: var(--accent-gold);
color: var(--text-light);
border: 1px solid var(--border-color);
padding: 0.6rem 1.2rem;
border-radius: 5px;
font-weight: bold;
cursor: pointer;
}
.portfolio-button:hover {
background-color: var(--secondary-color);
}

/* ---------------------- */
/* SAKLAR MODE (SWITCH) */
/* ---------------------- */
.mode-toggle {
display: flex;
justify-content: center;
align-items: center;
margin: 20px auto;
gap: 15px;
text-align: center;
flex-wrap: nowrap;
}
.mode-toggle p {
margin: 0;
font-size: 1rem;
max-width: 400px;
}
.mode-switch, .switch {
position: relative;
display: inline-block;
width: 50px;
height: 24px;
}
.mode-switch input, .switch input {
opacity: 0;
width: 0;
height: 0;
}
.mode-switch .slider, .switch .slider {
position: absolute;
cursor: pointer;
top: 0; left: 0; right: 0; bottom: 0;
background-color: #ccc;
transition: 0.4s;
border-radius: 34px;
}
.mode-switch .slider:before, .switch .slider:before {
position: absolute;
content: "";
height: 18px;
width: 18px;
left: 3px;
bottom: 3px;
background-color: white;
transition: 0.4s;
border-radius: 50%;
}
.mode-switch input:checked + .slider, .switch input:checked + .slider {
background-color: var(--primary-color);
}
.mode-switch input:checked + .slider:before, .switch input:checked + .slider:before {
transform: translateX(26px);
}
body.mode-profesional .switch input:checked + .slider,
body.mode-profesional .mode-switch input:checked + .slider {
background-color: var(--primary-color);
}
.mode-profesional .mode-fantasi-only {
display: none;
}
.mode-fantasi .mode-profesional-only {
display: none;
}

/* ---------------------- */
/* RESPONSIVE DESIGN */
/* ---------------------- */
@media (max-width: 768px) {
.biography-content {
grid-template-columns: 1fr;
}
.container {
margin: 10px;
padding: 15px;
}
.profile-name {
font-size: 2rem;
}
.skills-grid {
grid-template-columns: 1fr;
}
.main-navigation ul {
gap: 10px;
}
.main-navigation a {
padding: 8px 12px;
font-size: 0.9rem;
}
}
@media (max-width: 600px) {
.mode-toggle {
flex-direction: column;
gap: 10px;
}
.mode-toggle p {
font-size: 0.9rem;
max-width: 90%;
}
.mode-switch, .switch {
width: 40px;
height: 20px;
}
.mode-switch .slider:before, .switch .slider:before {
height: 16px;
width: 16px;
left: 2px;
bottom: 2px;
}
.mode-switch input:checked + .slider:before, .switch input:checked + .slider:before {
transform: translateX(20px);
}
.mode-toggle span {
font-size: 0.8rem;
}
}

/* ---------------------- */
/* DROPDOWN */
/* ---------------------- */
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
right: 0;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
border-radius: 8px;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
border-radius: 8px;
}
.dropdown-content a:hover {
background-color: #f1f1f1;
}
.dropdown:hover .dropdown-content {
display: block;
}
.dropdown-bio {
margin-right: 1rem;
}
.custom-navbar {
color: white;
}
.w3-bar-item:hover, .w3-dropdown-content a:hover {
background-color: #c1771c !important;
color: white !important;
}
.w3-dropdown-content {
background-color: white;
border: 1px solid #ccc;
min-width: 160px;
z-index: 1000;
}
.w3-dropdown-content a {
color: #000;
}
.custom-gradient-bg {
background-image: linear-gradient(to right, #4CAF50, #8BC34A);
color: white;
}
.custom-gradient-bg:hover {
opacity: 0.9;
}
.dropdown-content-green {
background-color: white;
border: 1px solid #e0e0e0;
}
.dropdown-content-green a {
color: #305414;
}
.dropdown-content-green a:hover {
background-color: #f1f1f1;
}
.custom-navbar .w3-dropdown-hover {
position: static;
}
.w3-dropdown-content.dropdown-full-width {
position: absolute;
left: 0;
right: 0;
width: 100%;
background-color: #2d5016;
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
z-index: 100;
text-align: right;
}
.dropdown-full-width a {
color: white;
padding-right: 20px;
display: block;
width: 100%;
}

/* ----------------------------- */
/* PROFESSIONAL MODE STYLES */
/* ----------------------------- */
body.mode-profesional .dropdown-content {
background-color: #fff;
box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.1);
border: 1px solid var(--border-color);
}
body.mode-profesional .dropdown-content a {
color: #555;
transition: background-color 0.3s ease;
}
body.mode-profesional .dropdown-content a:hover {
background-color: #f0f8ff;
color: var(--primary-color);
}
body.mode-profesional .w3-dropdown-content.dropdown-full-width {
background-color: var(--primary-color);
box-shadow: 0 4px 10px 0 rgba(0,0,0,0.1);
}
body.mode-profesional .dropdown-full-width a {
color: var(--text-light);
}
body.mode-profesional .dropdown-full-width a:hover {
background-color: var(--secondary-color);
color: var(--text-light);
}
body.mode-profesional .custom-gradient-bg {
background-image: linear-gradient(to right, var(--primary-color), var(--secondary-color));
color: var(--text-light);
border: none;
transition: background-image 0.5s ease;
}
body.mode-profesional .custom-gradient-bg:hover {
opacity: 0.9;
background-image: linear-gradient(to left, var(--primary-color), var(--secondary-color));
}
body.mode-profesional .w3-dropdown-hover .custom-gradient-bg:hover,
body.mode-profesional .w3-dropdown-hover .w3-hover-orange:hover,
body.mode-profesional .w3-button.w3-hover-orange:hover {
background-color: var(--secondary-color) !important;
color: white !important;
}
body.mode-profesional .container {
background-color: #e6f4fb;
border-color: var(--primary-color);
border-radius: 15px;
box-shadow: 0 8px 32px var(--shadow-color);
border: 3px solid var(--background-light);
}
body.mode-profesional .container::before {
content: '';
position: absolute;
top: -10px;
left: -10px;
right: -10px;
bottom: -10px;
background: linear-gradient(45deg, var(--primary-color), var(--primary-color), var(--primary-color));
border-radius: 20px;
z-index: -1;
}
body.mode-profesional .profile-frame {
background: linear-gradient(45deg, var(--primary-color), var(--text-light));
border-color: var(--primary-color);
box-shadow: 0 0 30px rgb(133, 187, 240);
}
body.mode-profesional .profile-title {
color: #555;
font-style: normal;
transition: background 0.5s ease, color 0.5s ease;
}
body.mode-profesional .portfolio-card {
background: #fff;
border-color: var(--primary-color);
}
body.mode-profesional .bio-section {
border-left: 5px solid #444;
background-color: #f9f9f9;
transition: background 0.5s ease, color 0.5s ease;
}
body.mode-profesional header {
background-color: var(--primary-color);
color: white;
border-bottom: 3px solid var(--background-light);
transition: background 0.5s ease, color 0.5s ease;
}
body.mode-profesional footer {
padding: 20px 50px;
background-color: var(--primary-color);
color: var(--text-light);
text-align: center;
border-top: 3px solid var(--background-light);
}
body.mode-profesional .website-name {
color: #fff;
transition: background 0.5s ease, color 0.5s ease;
}
body.mode-profesional .portfolio-section {
background: #f0f0f0;
transition: background 0.5s ease, color 0.5s ease;
}
body.mode-profesional .portfolio-button {
background-color: var(--primary-color);
color: var(--text-light);
border: 1px solid var(--border-color);
}
body.mode-profesional .skill-card {
background: #f9f9f9;
border: 2px solid var(--primary-color);
box-shadow: 0 4px 8px var(--shadow-color);
padding: 20px;
border-radius: 8px;
text-align: center;
transition: transform 0.3s ease;
}
body.mode-profesional .portfolio-card h4,
body.mode-profesional .skill-card h4 {
color: #1a1a1a;
transition: background 0.5s ease, color 0.5s ease;
font-weight: bold;
}
body.mode-profesional .falling-leaves {
display: none;
transition: background 0.5s ease, color 0.5s ease;
}