* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    font-family: 'Vazirmatn', sans-serif; 
    -webkit-tap-highlight-color: transparent; 
}

body, html {
    background-color: var(--bg-base);
    color: var(--text-main);
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

svg {
    display: inline-block;
    vertical-align: middle;
    stroke-width: 2;
    stroke: currentColor;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

main { 
    flex: 1; 
    padding: 120px 20px 60px; 
    max-width: 1000px; 
    margin: 0 auto; 
    width: 100%; 
}

/* --- Typography --- */
.page-title { 
    text-align: center; 
    font-size: 2.8rem; 
    margin-bottom: 20px; 
    font-weight: 700; 
    letter-spacing: -1px; 
}

.page-title .highlight { 
    color: var(--neon-cyan); 
    text-shadow: 0 0 15px var(--neon-cyan-glow); 
}

/* --- Animations --- */
@keyframes cssFadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-up { 
    opacity: 0; 
    animation: cssFadeUp 0.8s cubic-bezier(0.25, 0.8, 0.25, 1) forwards; 
}

.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }