*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{

font-family:'Segoe UI',sans-serif;

background:
linear-gradient(
180deg,
#f8fafc,
#e2e8f0
);

}

.hero{
padding:80px 20px;
text-align:center;

background:
linear-gradient(
135deg,
#4F46E5,
#06B6D4
);

color:white;
}

.hero h1{
font-size:42px;
}

.hero p{
font-size:20px;
margin:20px;
}

.start-btn{
padding:18px 35px;
background:#F59E0B;
color:white;
font-size:20px;
border:none;
border-radius:15px;
cursor:pointer;
}

nav{
display:flex;
justify-content:center;
gap:20px;
background:white;
padding:15px;
box-shadow:
0 2px 10px rgba(0,0,0,.1);
}

nav a{
text-decoration:none;
font-weight:bold;
color:#333;
}

.main-nav{
display:flex;
justify-content:center;
align-items:center;
gap:30px;
padding:22px 30px;
background:white;
box-shadow:0 3px 15px rgba(0,0,0,.1);
position:sticky;
top:0;
z-index:999;
}

.main-nav a{
text-decoration:none;
font-weight:700;
font-size:18px;
color:#333;
padding:14px 22px;
border-radius:14px;
transition:.3s;
}

.main-nav a:hover{
background:#4F46E5;
color:white;
}

section{
padding:30px;
}

section h2{
font-size:32px;
margin-bottom:25px;
color:#111827;
}

.heroes{
display:grid;
grid-template-columns:
repeat(auto-fit,minmax(260px,1fr));
gap:25px;
width:100%;
max-width:1400px;
margin:auto;
}

.hero-card{
background:white;
padding:25px;
border-radius:25px;
text-align:center;
box-shadow:
0 10px 20px rgba(0,0,0,.08);
transition:.3s;
cursor:pointer;
text-decoration:none;
color:#111827;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
min-height:320px;
}

.hero-card:hover{
transform:
translateY(-10px);
box-shadow:
0 15px 30px rgba(79,70,229,.25);
}

.hero-card img{
width:140px;
height:140px;
object-fit:cover;
border-radius:50%;
border:4px solid #4F46E5;
padding:5px;
background:white;
margin-bottom:15px;
}

.hero-card h2,
.hero-card h3{
margin-bottom:10px;
}

.hero-card p{
font-size:15px;
color:#555;
}

.hero-card:hover{
transform:
translateY(-10px) scale(1.03);
box-shadow:
0 12px 25px rgba(79,70,229,.25);
}

.hero-card img{
width:120px;
height:120px;
object-fit:cover;
border-radius:50%;
display:block;
margin:0 auto 15px auto;
border:4px solid #4F46E5;
background:white;
padding:5px;
}

.page-container{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
padding:40px;
min-height:100vh;
}

.content-card{
background:white;
padding:40px;
border-radius:25px;
max-width:900px;
width:100%;
text-align:center;
box-shadow:
0 10px 30px rgba(0,0,0,.15);
}

.about-logo{
width:150px;
margin:20px;
}

.info-box{
margin-top:20px;
background:#f4f7fc;
padding:20px;
border-radius:15px;
}

.progress-box{
background:white;
margin:30px;
padding:25px;
border-radius:20px;
box-shadow:
0 5px 15px rgba(0,0,0,.1);
}

.menu-btn{
margin-top:20px;
padding:15px 30px;
border:none;
border-radius:15px;
background:#4F46E5;
color:white;
font-size:18px;
cursor:pointer;
}

.menu-btn:hover{
background:#06B6D4;
}

.step-card{
background:#f4f7fc;
padding:20px;
margin:15px;
border-radius:15px;
}

.page-title{
margin-bottom:30px;
text-align:center;
}

.quiz-container{
display:flex;
justify-content:center;
align-items:center;
min-height:100vh;
padding:20px;
background:
linear-gradient(
135deg,
#4F46E5,
#06B6D4
);
}

.quiz-card{
background:white;
padding:40px;
border-radius:25px;
max-width:800px;
width:100%;
text-align:center;
box-shadow:
0 10px 30px rgba(0,0,0,.2);
}

.quiz-card h1{
margin-bottom:30px;
color:#4F46E5;
}

.quiz-option{
background:#f4f7fc;
padding:20px;
margin:15px;
border-radius:15px;
cursor:pointer;
font-size:20px;
font-weight:bold;
transition:.3s;
}

.quiz-option:hover{
background:#06B6D4;
color:white;
transform:scale(1.05);
}

.selected{
background:#4F46E5;
color:white;
}

#cekBtn{
margin-top:20px;
padding:15px 30px;
font-size:18px;
border:none;
border-radius:15px;
background:#F59E0B;
color:white;
cursor:pointer;
transition:.3s;

display:block;
margin-left:auto;
margin-right:auto;
}

#cekBtn:hover{
transform:scale(1.05);
background:#f97316;
}

#hasil{
margin-top:25px;
font-size:24px;
font-weight:bold;
padding:15px;
border-radius:15px;
}

#badge{
margin-top:20px;
padding:20px;
background:#fff7cc;
border-radius:15px;
font-size:24px;
font-weight:bold;
color:#d97706;
}

.progress{
height:25px;
background:#ddd;
border-radius:20px;
overflow:hidden;
margin-bottom:20px;
}

.progress-fill{
height:100%;
width:0%;
background:#22C55E;
color:white;
text-align:center;
line-height:25px;
transition:.5s;
}

.quiz-card{
animation:fadeIn .6s ease;
}
@keyframes fadeIn{
from{
opacity:0;
transform:translateY(20px);
}

to{
opacity:1;
transform:translateY(0);
}
}

@media(max-width:768px){
.hero h1{
font-size:30px;
}

.quiz-card{
padding:20px;
}

.quiz-option{
font-size:18px;
padding:15px;
}

nav{
flex-wrap:wrap;
}
}

.hasil-akhir{
padding:20px;
animation:fadeIn .5s ease;
}

.hasil-akhir h1{
margin:15px 0;
color:#4F46E5;
}

.hasil-akhir h2{
margin:10px 0;
}

@keyframes fadeIn{
from{
opacity:0;
transform:translateY(20px);
}

to{
opacity:1;
transform:translateY(0);
}
}

@media(max-width:768px){
.heroes{
grid-template-columns:
repeat(2,1fr);
gap:15px;
}

.hero-card{
padding:15px;
min-height:250px;
}

.hero-card img{
width:100px;
height:100px;
}

.hero h1{
font-size:28px;
}

.hero p{
font-size:16px;
}

.start-btn{
font-size:16px;
padding:12px 20px;
}
}

@media(max-width:480px){
.heroes{
grid-template-columns:
1fr;
}

.hero-card{
min-height:220px;
}

.hero-card img{
width:90px;
height:90px;
}
}

.hero-card{
text-decoration:none;
color:black;
}

.hero-card h2,
.hero-card h3{
margin-top:10px;
}

.detail-desc{
text-align:justify;
line-height:1.8;
margin-top:20px;
}

.fakta-box{
background:#fff7cc;
padding:20px;
border-radius:15px;
margin-top:20px;
}

.nilai-box{
background:#eef2ff;
padding:20px;
border-radius:15px;
margin-top:20px;
}

.video-frame{
    width:100%;
    max-width:900px;
    aspect-ratio:16/9;
    height:auto;
    border:none;
    border-radius:20px;
    display:block;
    margin:20px auto;
    background:#000;
}

.detail-img{
width:250px;
height:250px;
object-fit:cover;
border-radius:20px;
border:4px solid #4F46E5;
margin-bottom:20px;
}

.detail-desc{
text-align:justify;
line-height:1.8;
margin-top:20px;
font-size:18px;
}

.fakta-box{
background:#FFF7CC;
padding:20px;
border-radius:15px;
margin-top:20px;
text-align:left;
}

.nilai-box{
background:#EEF2FF;
padding:20px;
border-radius:15px;
margin-top:20px;
text-align:left;
}

.page-title{
font-size:42px;
font-weight:bold;
text-align:center;
margin-bottom:35px;
}

.content-card{
background:white;
padding:40px;
border-radius:25px;
max-width:1000px;
width:100%;
box-shadow:
0 10px 30px rgba(0,0,0,.15);
}

/* =========================
   BERANDA PAHLAWAN
========================= */

.hero-section{
max-width:1400px;
margin:auto;
padding:40px 20px;
}

.hero-title{
text-align:center;
font-size:52px;
font-weight:800;
color:#111827;
margin-bottom:50px;
}

.hero-title::after{
content:"";
display:block;
width:120px;
height:5px;
background:#4F46E5;
margin:15px auto;
border-radius:10px;
}

.heroes{
display:grid;
grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));
gap:30px;
width:100%;
max-width:1400px;
margin:auto;
}

.hero-card{
background:white;
border-radius:25px;
padding:25px;
text-align:center;
box-shadow:
0 10px 25px rgba(0,0,0,.08);
transition:.3s;
min-height:280px;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
}

.hero-card:hover{
transform:
translateY(-10px);
box-shadow:
0 15px 30px rgba(79,70,229,.25);
}

.hero-card img{
width:140px;
height:140px;
object-fit:cover;
border-radius:50%;
border:4px solid #4F46E5;
padding:5px;
background:white;
margin-bottom:20px;
}

.hero-card h3{
font-size:28px;
font-weight:700;
margin-top:10px;
}

@media(max-width:768px){
.hero-title{
font-size:34px;
}


.hero-card{
min-height:220px;
padding:15px;
}

.hero-card img{
width:90px;
height:90px;
}

.hero-card h3{
font-size:18px;
}
}

@media(max-width:480px){
.heroes{
grid-template-columns:
1fr;
}
}

@media(max-width:768px){

.page-container{
padding:10px;
}

.content-card{
width:100%;
padding:15px;
border-radius:20px;
}

.video-frame{
width:100%;
height:200px;
max-width:none;
border-radius:15px;
}


.detail-img{
width:180px;
height:180px;
}

.detail-desc{
font-size:16px;
line-height:1.7;
}

.fakta-box,
.nilai-box{
padding:15px;
}

}

iframe{
max-width:100%;
}

.video-frame{
display:block;
}

#fullscreenBtn{
width:100%;
max-width:300px;
margin:20px auto 0;
display:block;
}

.video-title{
text-align:center;
font-size:32px;
font-weight:700;
margin:30px 0 20px;
}

@media(max-width:768px){

.video-title{
font-size:26px;
}

}

/* =========================
   NAVBAR MOBILE
========================= */

@media (max-width:768px){

.main-nav{

display:grid;

grid-template-columns:
repeat(3,1fr);

gap:10px;

padding:15px 10px;

background:#fff;

box-shadow:
0 3px 10px rgba(0,0,0,.08);

}

.main-nav a{

display:flex;

justify-content:center;

align-items:center;

height:45px;

font-size:14px;

font-weight:600;

padding:0;

border-radius:12px;

background:#f8fafc;

text-align:center;

}

.main-nav a:hover{

background:#4F46E5;

color:white;

}

}

@media (max-width:768px){

.main-nav a{

flex-direction:column;

height:60px;

gap:3px;

font-size:12px;

}

.main-nav a span:first-child{

font-size:18px;

}

}

.hero-card{
transition:.3s;
}

.hero-card:hover{
transform:translateY(-8px) scale(1.03);
}

/* ======================================
   WEBAR OVERLAY
====================================== */

#overlay{

position:fixed;

left:0;

right:0;

bottom:0;

display:flex;

justify-content:center;

pointer-events:none;

z-index:999;

}

#heroPanel{

width:95%;

max-width:500px;

background:white;

border-radius:25px 25px 0 0;

padding:20px;

box-shadow:0 -10px 30px rgba(0,0,0,.25);

transform:translateY(110%);

transition:.45s;

pointer-events:auto;

overflow-y:auto;

max-height:85vh;

}

#heroPanel.show{

transform:translateY(0);

}

#heroPhoto{

width:150px;

height:150px;

display:block;

margin:auto;

border-radius:20px;

object-fit:cover;

border:4px solid #4F46E5;

}

#heroName{

margin-top:15px;

text-align:center;

font-size:30px;

color:#4F46E5;

}

#heroDesc{

margin-top:15px;

font-size:16px;

line-height:1.8;

text-align:justify;

}

.infoBox{

margin-top:20px;

padding:15px;

border-radius:15px;

background:#EEF2FF;

}

.infoBox h3{

margin-bottom:10px;

color:#4F46E5;

}

#heroVideo{

margin-top:20px;

width:100%;

aspect-ratio:16/9;

border:none;

border-radius:15px;

background:black;

}

#detailBtn{

margin-top:20px;

width:100%;

padding:16px;

font-size:18px;

background:#4F46E5;

color:white;

border:none;

border-radius:15px;

cursor:pointer;

transition:.3s;

}

#detailBtn:hover{

background:#06B6D4;

}

@media(max-width:768px){

#heroPanel{

width:100%;

max-width:none;

padding:15px;

border-radius:20px 20px 0 0;

}

#heroPhoto{

width:120px;

height:120px;

}

#heroName{

font-size:24px;

}

#heroDesc{

font-size:15px;

}

}

/* ======================================
   RESET MODAL
====================================== */

.modal-overlay{

position:fixed;

inset:0;

background:rgba(0,0,0,.55);

display:flex;

justify-content:center;

align-items:center;

opacity:0;

visibility:hidden;

transition:.3s;

z-index:99999;

backdrop-filter:blur(5px);

}

.modal-overlay.show{

opacity:1;

visibility:visible;

}

.modal-box{

background:white;

width:90%;

max-width:420px;

padding:30px;

border-radius:22px;

text-align:center;

box-shadow:0 15px 40px rgba(0,0,0,.25);

animation:modalScale .25s ease;

}

@keyframes modalScale{

from{

opacity:0;

transform:scale(.85);

}

to{

opacity:1;

transform:scale(1);

}

}

.modal-icon{

font-size:60px;

margin-bottom:15px;

}

.modal-box h2{

color:#4F46E5;

margin-bottom:15px;

}

.modal-box p{

color:#555;

line-height:1.6;

margin-bottom:25px;

}

.modal-buttons{

display:flex;

gap:15px;

justify-content:center;

}

.btn-cancel{

flex:1;

padding:14px;

border:none;

border-radius:12px;

background:#E5E7EB;

font-size:16px;

cursor:pointer;

transition:.3s;

}

.btn-cancel:hover{

background:#D1D5DB;

}

.btn-danger{

flex:1;

padding:14px;

border:none;

border-radius:12px;

background:#EF4444;

color:white;

font-size:16px;

cursor:pointer;

transition:.3s;

}

.btn-danger:hover{

background:#DC2626;

}