/* =============================================
   ADVANCED ANIMATED BACKGROUND PATTERNS
   Each page gets a unique moving background
   ============================================= */

.page-header-pattern {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}

/* ---------- ABOUT: Flowing Diagonal Waves ---------- */
.pattern-about .page-header-pattern {
    background:
        repeating-linear-gradient(
            -45deg,
            transparent,
            transparent 30px,
            rgba(245, 158, 11, 0.08) 30px,
            rgba(245, 158, 11, 0.08) 31px
        ),
        repeating-linear-gradient(
            45deg,
            transparent,
            transparent 60px,
            rgba(245, 158, 11, 0.04) 60px,
            rgba(245, 158, 11, 0.04) 61px
        );
    background-size: 200% 200%, 300% 300%;
    animation: aboutFlow 12s linear infinite;
}
.pattern-about .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 20%, rgba(245, 158, 11, 0.15) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 80%, rgba(245, 158, 11, 0.08) 0%, transparent 50%);
}
@keyframes aboutFlow {
    0% { background-position: 0 0, 0 0; }
    100% { background-position: 200px 200px, -200px 100px; }
}

/* ---------- ACADEMIC: Floating Books ---------- */
.pattern-academic .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 15 L40 8 L60 15 L60 55 L40 62 L20 55 Z' fill='none' stroke='rgba(59,130,246,0.12)' stroke-width='1.5'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 12 L30 6 L45 12 L45 42 L30 48 L15 42 Z' fill='none' stroke='rgba(99,102,241,0.08)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 80px 80px, 60px 60px;
    animation: academicFloat 18s linear infinite;
}
.pattern-academic .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 20% 30%, rgba(59, 130, 246, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 80% 70%, rgba(99, 102, 241, 0.08) 0%, transparent 50%);
}
@keyframes academicFloat {
    0% { background-position: 0 0, 30px 20px; }
    25% { background-position: 40px 20px, 0 50px; }
    50% { background-position: 80px 0, 30px 80px; }
    75% { background-position: 40px -20px, 60px 30px; }
    100% { background-position: 0 0, 30px 20px; }
}

/* ---------- GALLERY: Moving Grid ---------- */
.pattern-gallery .page-header-pattern {
    background:
        repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(236, 72, 153, 0.06) 28px, rgba(236, 72, 153, 0.06) 29px),
        repeating-linear-gradient(90deg, transparent, transparent 28px, rgba(236, 72, 153, 0.06) 28px, rgba(236, 72, 153, 0.06) 29px);
    background-size: 29px 29px, 29px 29px;
    animation: gridMove 8s linear infinite;
}
.pattern-gallery .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 50%, rgba(236, 72, 153, 0.12) 0%, transparent 60%);
}
@keyframes gridMove {
    0% { background-position: 0 0, 0 0; }
    100% { background-position: 29px 29px, -29px 29px; }
}

/* ---------- BBA: Floating Dots ---------- */
.pattern-bba .page-header-pattern {
    background-image: 
        radial-gradient(circle at 2px 2px, rgba(245, 158, 11, 0.25) 2px, transparent 0),
        radial-gradient(circle at 1px 1px, rgba(245, 158, 11, 0.1) 1px, transparent 0);
    background-size: 40px 40px, 20px 20px;
    animation: dotsDrift 15s linear infinite;
}
.pattern-bba .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 40%, rgba(245, 158, 11, 0.15) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 60%, rgba(245, 158, 11, 0.08) 0%, transparent 50%);
}
@keyframes dotsDrift {
    0% { background-position: 0 0, 10px 10px; }
    50% { background-position: 40px 40px, 30px 0; }
    100% { background-position: 80px 80px, 50px 20px; }
}

/* ---------- BCA: Rotating Hex Grid ---------- */
.pattern-bca .page-header-pattern {
    background-image: url("data:image/svg+xml,%3Csvg width='56' height='100' viewBox='0 0 56 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M28 0L56 16.5V49.5L28 66L0 49.5V16.5Z' fill='none' stroke='rgba(139,92,246,0.15)' stroke-width='1.5'/%3E%3Cpath d='M28 34L56 50.5V83.5L28 100L0 83.5V50.5Z' fill='none' stroke='rgba(139,92,246,0.1)' stroke-width='1.5'/%3E%3C/svg%3E");
    background-size: 56px 100px;
    animation: hexDrift 20s linear infinite;
}
.pattern-bca .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 20%, rgba(139, 92, 246, 0.15) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 80%, rgba(139, 92, 246, 0.08) 0%, transparent 50%);
}
@keyframes hexDrift {
    0% { background-position: 0 0; }
    50% { background-position: 28px 50px; }
    100% { background-position: 56px 100px; }
}

/* ---------- BOTANY: Floating Leaves ---------- */
.pattern-botany .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='90' height='90' viewBox='0 0 90 90' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M45 10 Q60 30 55 45 Q50 60 45 80 Q40 60 35 45 Q30 30 45 10Z' fill='none' stroke='rgba(34,197,94,0.12)' stroke-width='1.5'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5 Q40 20 37 30 Q34 40 30 55 Q26 40 23 30 Q20 20 30 5Z' fill='none' stroke='rgba(16,185,129,0.08)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 90px 90px, 60px 60px;
    animation: leavesSway 10s ease-in-out infinite;
}
.pattern-botany .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 40%, rgba(34, 197, 94, 0.12) 0%, transparent 40%),
                radial-gradient(ellipse at 70% 60%, rgba(16, 185, 129, 0.08) 0%, transparent 40%);
}
@keyframes leavesSway {
    0% { background-position: 0 0, 30px 20px; }
    33% { background-position: 15px 30px, 0 50px; }
    66% { background-position: -10px 10px, 45px 0; }
    100% { background-position: 0 0, 30px 20px; }
}

/* ---------- CHEMISTRY: Orbiting Molecules ---------- */
.pattern-chemistry .page-header-pattern {
    background-image: url("data:image/svg+xml,%3Csvg width='120' height='70' viewBox='0 0 120 70' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='60' cy='35' r='10' fill='none' stroke='rgba(245,158,11,0.15)' stroke-width='1.5'/%3E%3Ccircle cx='30' cy='15' r='5' fill='none' stroke='rgba(251,191,36,0.1)' stroke-width='1'/%3E%3Ccircle cx='90' cy='15' r='5' fill='none' stroke='rgba(251,191,36,0.1)' stroke-width='1'/%3E%3Ccircle cx='30' cy='55' r='5' fill='none' stroke='rgba(251,191,36,0.1)' stroke-width='1'/%3E%3Ccircle cx='90' cy='55' r='5' fill='none' stroke='rgba(251,191,36,0.1)' stroke-width='1'/%3E%3Cline x1='60' y1='25' x2='60' y2='45' stroke='rgba(245,158,11,0.06)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 120px 70px;
    animation: moleculeOrbit 16s linear infinite;
}
.pattern-chemistry .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 50%, rgba(245, 158, 11, 0.15) 0%, transparent 60%);
}
@keyframes moleculeOrbit {
    0% { background-position: 0 0; }
    100% { background-position: 120px 0; }
}

/* ---------- CLP: Matrix Terminal Rain ---------- */
.pattern-clp .page-header-pattern {
    background-image: 
        radial-gradient(circle at 2px 2px, rgba(16, 185, 129, 0.25) 2px, transparent 0),
        radial-gradient(circle at 1px 1px, rgba(16, 185, 129, 0.1) 1px, transparent 0);
    background-size: 24px 24px, 12px 12px;
    animation: terminalRain 4s linear infinite;
}
.pattern-clp .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 30%, rgba(16, 185, 129, 0.15) 0%, transparent 50%),
                radial-gradient(ellipse at 50% 70%, rgba(16, 185, 129, 0.05) 0%, transparent 50%);
}
@keyframes terminalRain {
    0% { background-position: 0 -24px, 6px -12px; }
    100% { background-position: 12px 24px, 0 12px; }
}

/* ---------- COMMERCE: Animated Bar Graph ---------- */
.pattern-commerce .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='4' y='22' width='6' height='24' fill='rgba(245,158,11,0.15)'/%3E%3Crect x='14' y='12' width='6' height='34' fill='rgba(245,158,11,0.12)'/%3E%3Crect x='24' y='6' width='6' height='40' fill='rgba(245,158,11,0.18)'/%3E%3Crect x='34' y='16' width='6' height='30' fill='rgba(245,158,11,0.12)'/%3E%3Crect x='44' y='26' width='6' height='20' fill='rgba(245,158,11,0.1)'/%3E%3C/svg%3E");
    background-size: 50px 50px;
    animation: barsWave 2s ease-in-out infinite;
}
.pattern-commerce .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 40%, rgba(245, 158, 11, 0.15) 0%, transparent 60%);
}
@keyframes barsWave {
    0%, 100% { background-position: 0 0; }
    25% { background-position: 0 5px; }
    50% { background-position: 0 -3px; }
    75% { background-position: 0 8px; }
}

/* ---------- COMPUTER SCIENCE: Binary Code Rain ---------- */
.pattern-computer-science .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='30' height='60' viewBox='0 0 30 60' xmlns='http://www.w3.org/2000/svg'%3E%3Ctext x='2' y='12' font-size='10' fill='rgba(59,130,246,0.2)' font-family='monospace' font-weight='bold'%3E0%3C/text%3E%3Ctext x='17' y='28' font-size='10' fill='rgba(59,130,246,0.15)' font-family='monospace' font-weight='bold'%3E1%3C/text%3E%3Ctext x='2' y='44' font-size='10' fill='rgba(59,130,246,0.12)' font-family='monospace' font-weight='bold'%3E1%3C/text%3E%3Ctext x='17' y='58' font-size='10' fill='rgba(59,130,246,0.18)' font-family='monospace' font-weight='bold'%3E0%3C/text%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='30' height='40' viewBox='0 0 30 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ctext x='5' y='15' font-size='8' fill='rgba(59,130,246,0.08)' font-family='monospace'%3E1%3C/text%3E%3Ctext x='20' y='35' font-size='8' fill='rgba(59,130,246,0.06)' font-family='monospace'%3E0%3C/text%3E%3C/svg%3E");
    background-size: 30px 60px, 30px 40px;
    animation: binaryRain 3s linear infinite;
}
.pattern-computer-science .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 40% 30%, rgba(59, 130, 246, 0.15) 0%, transparent 50%),
                radial-gradient(ellipse at 60% 70%, rgba(59, 130, 246, 0.08) 0%, transparent 50%);
}
@keyframes binaryRain {
    0% { background-position: 0 -60px, 15px -40px; }
    100% { background-position: 0 0, 15px 0; }
}

/* ---------- ELECTRONICS: Flowing Circuit ---------- */
.pattern-electronics .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40 L25 40 L35 30 L45 30 L55 40 L80 40' fill='none' stroke='rgba(59,130,246,0.12)' stroke-width='1.5'/%3E%3Ccircle cx='35' cy='30' r='4' fill='rgba(59,130,246,0.15)'/%3E%3Ccircle cx='45' cy='30' r='4' fill='rgba(59,130,246,0.15)'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 30 L15 30 L25 20 L35 20 L45 30 L60 30' fill='none' stroke='rgba(59,130,246,0.08)' stroke-width='1'/%3E%3Ccircle cx='25' cy='20' r='3' fill='rgba(59,130,246,0.1)'/%3E%3Ccircle cx='35' cy='20' r='3' fill='rgba(59,130,246,0.1)'/%3E%3C/svg%3E");
    background-size: 80px 80px, 60px 60px;
    animation: circuitFlow 6s linear infinite;
}
.pattern-electronics .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 20%, rgba(59, 130, 246, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 80%, rgba(59, 130, 246, 0.08) 0%, transparent 50%);
}
@keyframes circuitFlow {
    0% { background-position: 0 0, 40px 20px; }
    100% { background-position: 80px 0, -20px 20px; }
}

/* ---------- ENGLISH: Flowing Script ---------- */
.pattern-english .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 40 Q25 15 40 25 Q55 35 60 45 Q65 55 50 60 Q35 65 25 50' fill='none' stroke='rgba(168,85,247,0.12)' stroke-width='1.5'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 30 Q15 10 28 18 Q41 26 45 38 Q49 50 38 52 Q27 54 18 42' fill='none' stroke='rgba(217,70,239,0.08)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 80px 80px, 60px 60px;
    animation: scriptFlow 12s ease-in-out infinite;
}
.pattern-english .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 40%, rgba(168, 85, 247, 0.1) 0%, transparent 40%),
                radial-gradient(ellipse at 70% 60%, rgba(217, 70, 239, 0.08) 0%, transparent 40%);
}
@keyframes scriptFlow {
    0% { background-position: 0 0, 30px 10px; }
    33% { background-position: 20px 15px, 0 30px; }
    66% { background-position: -10px 20px, 40px 0; }
    100% { background-position: 0 0, 30px 10px; }
}

/* ---------- HISTORY: Floating Parchment ---------- */
.pattern-history .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E"),
        repeating-linear-gradient(0deg, transparent, transparent 45px, rgba(217, 119, 6, 0.04) 45px, rgba(217, 119, 6, 0.04) 46px);
    background-size: 200px 200px, 46px 46px;
    animation: parchmentDrift 20s linear infinite;
}
.pattern-history .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 20%, rgba(217, 119, 6, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 80%, rgba(180, 83, 9, 0.08) 0%, transparent 50%);
}
@keyframes parchmentDrift {
    0% { background-position: 0 0, 0 0; }
    50% { background-position: 50px 30px, 0 -23px; }
    100% { background-position: 100px 60px, 0 0; }
}

/* ---------- MATHEMATICS: Spiral Formulas ---------- */
.pattern-mathematics .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' xmlns='http://www.w3.org/2000/svg'%3E%3Ctext x='5' y='18' font-size='12' fill='rgba(168,85,247,0.18)' font-family='serif' font-weight='bold'%3E%CF%80%3C/text%3E%3Ctext x='28' y='38' font-size='12' fill='rgba(168,85,247,0.14)' font-family='serif' font-weight='bold'%3E%CE%A3%3C/text%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ctext x='3' y='14' font-size='9' fill='rgba(168,85,247,0.08)' font-family='serif'%3E%CE%B1%3C/text%3E%3Ctext x='22' y='30' font-size='9' fill='rgba(168,85,247,0.06)' font-family='serif'%3E%CE%B2%3C/text%3E%3C/svg%3E");
    background-size: 50px 50px, 40px 40px;
    animation: formulaSpin 20s linear infinite;
}
.pattern-mathematics .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 30%, rgba(168, 85, 247, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 50% 70%, rgba(168, 85, 247, 0.06) 0%, transparent 50%);
}
@keyframes formulaSpin {
    0% { background-position: 0 0, 20px 20px; }
    25% { background-position: 25px 25px, 0 0; }
    50% { background-position: 0 50px, 20px 40px; }
    75% { background-position: -25px 25px, 40px 0; }
    100% { background-position: 0 0, 20px 20px; }
}

/* ---------- NUTRITION: Floating Nutrients ---------- */
.pattern-nutrition .page-header-pattern {
    background-image: 
        radial-gradient(circle at 12px 12px, rgba(34, 197, 94, 0.15) 3px, transparent 0),
        radial-gradient(circle at 6px 6px, rgba(16, 185, 129, 0.08) 2px, transparent 0);
    background-size: 40px 40px, 20px 20px;
    animation: nutrientsFloat 8s ease-in-out infinite;
}
.pattern-nutrition .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 40% 30%, rgba(34, 197, 94, 0.12) 0%, transparent 40%),
                radial-gradient(circle at 70% 60%, rgba(16, 185, 129, 0.08) 0%, transparent 40%);
}
@keyframes nutrientsFloat {
    0% { background-position: 0 0, 10px 10px; }
    25% { background-position: 20px 10px, 0 15px; }
    50% { background-position: 0 20px, 10px 5px; }
    75% { background-position: -20px 10px, 20px 15px; }
    100% { background-position: 0 0, 10px 10px; }
}

/* ---------- PHYSICS: Orbiting Electrons ---------- */
.pattern-physics .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='50' cy='50' rx='38' ry='12' fill='none' stroke='rgba(59,130,246,0.13)' stroke-width='1.5' transform='rotate(0 50 50)'/%3E%3Cellipse cx='50' cy='50' rx='38' ry='12' fill='none' stroke='rgba(59,130,246,0.09)' stroke-width='1' transform='rotate(60 50 50)'/%3E%3Cellipse cx='50' cy='50' rx='38' ry='12' fill='none' stroke='rgba(59,130,246,0.07)' stroke-width='1' transform='rotate(120 50 50)'/%3E%3Ccircle cx='50' cy='50' r='5' fill='rgba(59,130,246,0.2)'/%3E%3C/svg%3E");
    background-size: 100px 100px;
    animation: atomSpin 14s linear infinite;
}
.pattern-physics .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 40% 30%, rgba(59, 130, 246, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 60% 70%, rgba(59, 130, 246, 0.06) 0%, transparent 50%);
}
@keyframes atomSpin {
    0% { background-position: 0 0; }
    100% { background-position: 100px 50px; }
}

/* ---------- TAMIL: Flowing Kolam ---------- */
.pattern-tamil .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='70' height='70' viewBox='0 0 70 70' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='35' cy='35' r='14' fill='none' stroke='rgba(245,158,11,0.15)' stroke-width='1.5'/%3E%3Ccircle cx='35' cy='35' r='7' fill='none' stroke='rgba(245,158,11,0.1)' stroke-width='1'/%3E%3Ccircle cx='35' cy='35' r='2.5' fill='rgba(245,158,11,0.2)'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='25' cy='25' r='10' fill='none' stroke='rgba(245,158,11,0.08)' stroke-width='1'/%3E%3Ccircle cx='25' cy='25' r='5' fill='none' stroke='rgba(245,158,11,0.05)' stroke-width='0.8'/%3E%3C/svg%3E");
    background-size: 70px 70px, 50px 50px;
    animation: kolamFlow 16s linear infinite;
}
.pattern-tamil .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 40%, rgba(245, 158, 11, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 60%, rgba(245, 158, 11, 0.06) 0%, transparent 50%);
}
@keyframes kolamFlow {
    0% { background-position: 0 0, 35px 25px; }
    33% { background-position: 35px 35px, 0 50px; }
    66% { background-position: 70px 0, 35px 0; }
    100% { background-position: 0 0, 35px 25px; }
}

/* ---------- ZOOLOGY: Moving Paw Prints ---------- */
.pattern-zoology .page-header-pattern {
    background-image: 
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='30' cy='30' r='7' fill='rgba(245,158,11,0.15)'/%3E%3Ccircle cx='20' cy='20' r='3.5' fill='rgba(245,158,11,0.1)'/%3E%3Ccircle cx='40' cy='20' r='3.5' fill='rgba(245,158,11,0.1)'/%3E%3Ccircle cx='18' cy='38' r='3' fill='rgba(245,158,11,0.08)'/%3E%3Ccircle cx='42' cy='38' r='3' fill='rgba(245,158,11,0.08)'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='5' fill='rgba(245,158,11,0.08)'/%3E%3Ccircle cx='13' cy='13' r='2.5' fill='rgba(245,158,11,0.06)'/%3E%3Ccircle cx='27' cy='13' r='2.5' fill='rgba(245,158,11,0.06)'/%3E%3C/svg%3E");
    background-size: 60px 60px, 40px 40px;
    animation: pawWalk 6s linear infinite;
}
.pattern-zoology .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 40% 30%, rgba(245, 158, 11, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 70%, rgba(245, 158, 11, 0.06) 0%, transparent 50%);
}
@keyframes pawWalk {
    0% { background-position: 0 0, 20px 20px; }
    100% { background-position: 60px 30px, 0 0; }
}

/* ---------- ADMISSIONS: Rising Applications ---------- */
.pattern-admissions .page-header-pattern {
    background-image:
        url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='8' y='36' width='6' height='20' rx='1' fill='rgba(245,158,11,0.15)'/%3E%3Crect x='18' y='20' width='6' height='36' rx='1' fill='rgba(245,158,11,0.12)'/%3E%3Crect x='28' y='10' width='6' height='46' rx='1' fill='rgba(245,158,11,0.18)'/%3E%3Crect x='38' y='26' width='6' height='30' rx='1' fill='rgba(245,158,11,0.12)'/%3E%3Crect x='48' y='40' width='6' height='16' rx='1' fill='rgba(245,158,11,0.1)'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='5' y='24' width='4' height='12' rx='1' fill='rgba(245,158,11,0.08)'/%3E%3Crect x='13' y='14' width='4' height='22' rx='1' fill='rgba(245,158,11,0.06)'/%3E%3Crect x='21' y='6' width='4' height='30' rx='1' fill='rgba(245,158,11,0.1)'/%3E%3Crect x='29' y='18' width='4' height='18' rx='1' fill='rgba(245,158,11,0.06)'/%3E%3C/svg%3E");
    background-size: 60px 60px, 40px 40px;
    animation: admissionsRise 3s ease-in-out infinite;
}
.pattern-admissions .page-header-pattern::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 40% 30%, rgba(245, 158, 11, 0.12) 0%, transparent 50%),
                radial-gradient(ellipse at 60% 70%, rgba(245, 158, 11, 0.06) 0%, transparent 50%);
}
@keyframes admissionsRise {
    0%, 100% { background-position: 0 0, 20px 20px; }
    25% { background-position: 0 -6px, 20px 14px; }
    50% { background-position: 0 -12px, 20px 8px; }
    75% { background-position: 0 -6px, 20px 14px; }
}
