@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=VT323&display=swap');

:root {
    --header-pad-y: 6px;
    --header-pad-x: 0;
    --header-logo-size: 60px;
    --header-nav-gap: 10px;
    --header-nav-offset: 0;
}

/* Base styling */
body {
    font-family: 'Space Grotesk', sans-serif;
    color: #e0e0e0;
    background: linear-gradient(135deg, #0a0e27 0%, #1a1f3a 100%);
    background-image:
        radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.16) 0 1px, transparent 1px),
        radial-gradient(circle at 82% 28%, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px),
        radial-gradient(circle at 24% 72%, rgba(255, 255, 255, 0.12) 0 1px, transparent 1px),
        linear-gradient(135deg, #090c20 0%, #151937 100%);
    background-size: 240px 240px, 320px 320px, 280px 280px, cover;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    min-height: 100vh;
    overflow-x: hidden;
}

/* Container */
.container {
    max-width: 1200px;
    margin: auto;
    padding: 0 20px;
    overflow: hidden;
}

/* Header */
header {
    background: rgba(10, 14, 39, 0.95);
    backdrop-filter: blur(10px);
    color: #fff;
    padding: var(--header-pad-y) var(--header-pad-x);
    border-bottom: 2px solid rgba(138, 43, 226, 0.5);
    box-shadow: 0 4px 20px rgba(138, 43, 226, 0.3);
    position: sticky;
    top: 0;
    z-index: 1000;
}

header a {
    color: #e0e0e0;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 1px;
    transition: all 0.3s ease;
}

header a:hover {
    color: #8a2be2;
    text-shadow: 0 0 10px rgba(138, 43, 226, 0.8);
}

header ul {
    padding: 0;
    margin: 0;
    list-style: none;
    overflow: hidden;
}

header li {
    float: left;
    display: inline;
    padding: 0 var(--header-nav-gap);
}

header #branding {
    float: left;
}

header #branding h1 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    background: linear-gradient(135deg, #00d4ff 0%, #8a2be2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

header #branding img {
    width: var(--header-logo-size);
    height: var(--header-logo-size);
    display: block;
}

header nav {
    float: right;
    margin-top: var(--header-nav-offset);
}

header .highlight, header .current a {
    color: #00d4ff;
    font-weight: 600;
    text-shadow: 0 0 10px rgba(0, 212, 255, 0.6);
}

/* Showcase */
#showcase {
    min-height: 400px;
    background: url('http://127.0.0.1:5000/static/css/centaur.jpg') no-repeat 0 -400px;
    text-align: center;
    color: #fff;
    position: relative;
}

#showcase::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(138, 43, 226, 0.2) 0%, rgba(0, 212, 255, 0.2) 100%);
}

#showcase h1 {
    margin-top: 100px;
    font-size: 55px;
    margin-bottom: 10px;
    position: relative;
    z-index: 1;
    text-shadow: 0 0 20px rgba(138, 43, 226, 0.8);
}

#showcase p {
    font-size: 20px;
    position: relative;
    z-index: 1;
}

/* Newsletter */
#newsletter {
    padding: 15px;
    color: #fff;
    background: linear-gradient(135deg, rgba(138, 43, 226, 0.3) 0%, rgba(0, 212, 255, 0.3) 100%);
    border-top: 1px solid rgba(138, 43, 226, 0.5);
    border-bottom: 1px solid rgba(138, 43, 226, 0.5);
}

#newsletter h1 {
    float: left;
    font-size: 24px;
}

#newsletter form {
    float: right;
    margin-top: 15px;
}

#newsletter input[type="email"] {
    padding: 10px;
    height: 25px;
    width: 250px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(138, 43, 226, 0.5);
    color: #e0e0e0;
    border-radius: 5px;
}

#newsletter input[type="email"]:focus {
    outline: none;
    border-color: #8a2be2;
    box-shadow: 0 0 10px rgba(138, 43, 226, 0.5);
}

/* Boxes */
#boxes .box {
    float: left;
    text-align: center;
    width: 30%;
    padding: 20px;
    border: 1px solid rgba(138, 43, 226, 0.5);
    margin: 10px;
    background: rgba(26, 31, 58, 0.6);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    transition: all 0.3s ease;
}

#boxes .box:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(138, 43, 226, 0.4);
    border-color: #8a2be2;
}

#boxes .box img {
    width: 90px;
}

/* Sidebar */
aside#sidebar {
    float: right;
    width: 30%;
    margin-top: 10px;
    padding: 20px;
    background: linear-gradient(135deg, rgba(138, 43, 226, 0.3) 0%, rgba(0, 212, 255, 0.3) 100%);
    color: #e0e0e0;
    border-radius: 10px;
    border: 1px solid rgba(138, 43, 226, 0.5);
}

aside#sidebar .quote {
    font-style: italic;
    color: #00d4ff;
}

/* Footer */
footer {
    padding: 30px;
    margin-top: 40px;
    color: #e0e0e0;
    background: rgba(10, 14, 39, 0.95);
    text-align: center;
    border-top: 2px solid rgba(138, 43, 226, 0.5);
    box-shadow: 0 -4px 20px rgba(138, 43, 226, 0.3);
}

footer p {
    margin: 0;
    font-size: 14px;
}

.footer-credit a {
    color: #00d4ff;
}

.footer-legal {
    margin-top: 10px;
    font-size: 12px;
    opacity: 0.8;
}

.footer-legal a {
    color: #9fd7ff;
    text-decoration: none;
}

.footer-legal a:hover {
    text-decoration: underline;
}

.copyright-badge {
    margin: 16px auto 0;
    max-width: 720px;
    padding: 10px 14px;
    border: 1px solid rgba(159, 215, 255, 0.22);
    border-radius: 10px;
    background: rgba(5, 9, 24, 0.55);
    color: rgba(224, 235, 255, 0.88);
    font-size: 12px;
    line-height: 1.5;
}

.legal-shell {
    max-width: 920px;
    margin: 40px auto;
    padding: 24px;
    background: rgba(8, 12, 28, 0.74);
    border: 1px solid rgba(138, 43, 226, 0.3);
    border-radius: 18px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.28);
}

.legal-shell h1,
.legal-shell h2 {
    margin-top: 0;
}

.legal-shell p,
.legal-shell li {
    color: rgba(230, 237, 255, 0.88);
}

.legal-shell ul {
    padding-left: 20px;
}

.hough-shell {
    width: min(100%, 760px);
    margin: 0 auto;
    padding: 20px;
    border-radius: 18px;
    background: rgba(5, 10, 26, 0.78);
    border: 1px solid rgba(102, 164, 255, 0.24);
    box-shadow: 0 0 30px rgba(0, 112, 255, 0.15);
}

.hough-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
}

.hough-toolbar button {
    font-family: 'VT323', monospace;
    font-size: 22px;
    letter-spacing: 1px;
}

.hough-status {
    margin-top: 14px;
    text-align: center;
    font-family: 'VT323', monospace;
    font-size: 24px;
    color: #dce6ff;
}

#houghLabCanvas {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 14px;
    border: 2px solid rgba(102, 164, 255, 0.3);
    background: #060b19;
}

/* Parallax Sections */
.parallax {
    --parallax-shift-primary: 0px;
    --parallax-shift-secondary: 0px;
    --parallax-content-shift: 0px;
    min-height: 500px;
    background-attachment: scroll;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    text-align: center;
    color: #e0e0e0;
    max-width: 1200px;
    margin: 40px auto;
    padding: 40px 20px;
    position: relative;
    border-radius: 15px;
    overflow: hidden;
}

.parallax::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(138, 43, 226, 0.1) 0%, rgba(0, 212, 255, 0.1) 100%);
    z-index: 0;
}

.parallax .container {
    position: relative;
    z-index: 1;
    transform: translate3d(0, var(--parallax-content-shift), 0);
    will-change: transform;
    transition: transform 120ms linear;
}

.parallax0 {
    background-image:
        linear-gradient(135deg, rgba(9, 12, 32, 0.5), rgba(21, 25, 55, 0.78)),
        url('../images/wizard-cowboy-centaur6.webp');
    min-height: 700px;
    background-position:
        center calc(50% + var(--parallax-shift-primary)),
        right calc(50% + var(--parallax-shift-secondary));
    background-repeat: no-repeat, no-repeat;
    background-size: cover, min(46vw, 440px);
    text-align: center;
    color: #e0e0e0;
    padding-bottom: 10px;
    border: 2px solid rgba(138, 43, 226, 0.3);
}

.parallax1 {
    background-image:
        linear-gradient(135deg, rgba(9, 12, 32, 0.62), rgba(16, 20, 44, 0.82)),
        url('../images/wizard-cowboy-centaur3.webp');
    background-position:
        center calc(50% + var(--parallax-shift-primary)),
        left calc(50% + var(--parallax-shift-secondary));
    background-repeat: no-repeat, no-repeat;
    background-size: cover, min(42vw, 400px);
    padding-bottom: 10px;
    border: 2px solid rgba(0, 212, 255, 0.3);
}

.parallax2 {
    background-image:
        linear-gradient(135deg, rgba(9, 12, 32, 0.66), rgba(20, 16, 42, 0.82)),
        url('../images/wizard-cowboy-centaur5.webp');
    background-position:
        center calc(50% + var(--parallax-shift-primary)),
        right 4% calc(28% + var(--parallax-shift-secondary));
    background-repeat: no-repeat, no-repeat;
    background-size: cover, min(44vw, 390px);
    min-height: 960px;
    padding-bottom: 10px;
    border: 2px solid rgba(138, 43, 226, 0.3);
}

.parallax3 {
    background-image:
        linear-gradient(135deg, rgba(9, 12, 32, 0.62), rgba(16, 20, 44, 0.82)),
        url('../images/wizard-cowboy-centaur6.webp');
    background-position:
        center calc(50% + var(--parallax-shift-primary)),
        center calc(50% + var(--parallax-shift-secondary));
    background-repeat: no-repeat, no-repeat;
    background-size: cover, min(42vw, 420px);
    min-height: 700px;
    padding-bottom: 10px;
    border: 2px solid rgba(0, 212, 255, 0.3);
}

/* Default parallax text color for home page */
.parallax-text {
    color: #e0e0e0;
    text-shadow: 0 0 10px rgba(138, 43, 226, 0.6);
}

.page-header {
    font-size: 42px;
    font-weight: 700;
    margin-bottom: 30px;
    background: linear-gradient(135deg, #00d4ff 0%, #8a2be2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: none;
}

.retro-toolbar,
.visitor-counter,
.web1-note {
    width: fit-content;
    margin: 0 auto 18px;
    padding: 8px 14px;
    border: 3px ridge #8a2be2;
    background: rgba(6, 10, 28, 0.88);
    box-shadow: 0 0 0 2px rgba(0, 212, 255, 0.18) inset;
}

.retro-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 920px;
}

.retro-lamp,
.site-stamp {
    display: inline-block;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #001119;
    background: #39ff14;
    border: 2px outset #baffaa;
}

.blink {
    animation: blink 1s steps(2, start) infinite;
}

.retro-text,
.portal-copy,
.web1-note,
.portfolio-item p,
.portfolio-domain {
    font-family: "Courier New", monospace;
}

.retro-marquee {
    margin-top: 18px;
    padding: 8px 12px;
    border: 3px ridge #00d4ff;
    background: rgba(10, 14, 39, 0.88);
    color: #fffb96;
    font-weight: 700;
    text-transform: uppercase;
}

.visitor-counter {
    color: #fffb96;
    margin-top: 12px;
}

.portal-copy {
    max-width: 720px;
    margin: 0 auto 20px;
    color: #d8ecff;
}

.about-copy {
    max-width: 680px;
    margin: 0 auto 28px;
    padding: 18px 20px;
    border: 3px ridge #00d4ff;
    background: rgba(6, 10, 28, 0.88);
    box-shadow: 0 0 0 2px rgba(138, 43, 226, 0.18) inset;
    font-family: "Courier New", monospace;
    line-height: 1.7;
    color: #d8ecff;
    text-align: left;
}

.about-copy strong {
    color: #fffb96;
}

.bubble-cloud {
    position: relative;
    min-height: 700px;
    max-width: 1000px;
    margin: 0 auto;
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    grid-gap: 30px;
    padding: 20px 0;
}

.portfolio-item {
    background: rgba(26, 31, 58, 0.6);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    padding: 20px;
    border: 1px solid rgba(138, 43, 226, 0.3);
    transition: all 0.3s ease;
    position: relative;
    text-align: left;
}

.portfolio-item:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 40px rgba(138, 43, 226, 0.5);
    border-color: #8a2be2;
}

.portfolio-item img {
    max-width: 200px;
    max-height: 200px;
    border: 2px solid rgba(0, 212, 255, 0.5);
    box-shadow: 0 0 20px rgba(0, 212, 255, 0.3);
    transition: all 0.3s ease-in-out;
    border-radius: 10px;
}

.portfolio-item a:hover img {
    transform: scale(1.05);
    box-shadow: 0 0 30px rgba(138, 43, 226, 0.6);
    border-color: #8a2be2;
}

.portfolio-item h3 {
    margin: 16px 0 10px;
    color: #fffb96;
    text-shadow: 0 0 12px rgba(255, 251, 150, 0.35);
}

.portfolio-domain {
    color: #00d4ff;
    word-break: break-word;
}

.portfolio-links a {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.featured-portal {
    border-style: ridge;
    border-width: 4px;
}

.live-site {
    box-shadow: 0 0 0 1px rgba(255,255,255,0.08), 0 0 24px rgba(0,212,255,0.16);
}

.site-stamp {
    position: absolute;
    top: 14px;
    right: 14px;
}

@keyframes float-tetrahedron {
    0%, 100% { transform: translate(0, 0); }
    33% { transform: translate(100px, -173px); } /* Move up and right */
    66% { transform: translate(-100px, 0); } /* Move left */
}

.bubble {
    position: absolute;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(138, 43, 226, 0.3) 0%, rgba(0, 212, 255, 0.3) 100%);
    backdrop-filter: blur(10px);
    border: 2px solid rgba(138, 43, 226, 0.5);
    color: #e0e0e0;
    text-align: center;
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    box-sizing: border-box;
    cursor: grab;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(138, 43, 226, 0.4);
}

.bubble:hover {
    transform: scale(1.05);
    box-shadow: 0 15px 40px rgba(138, 43, 226, 0.6);
    border-color: #00d4ff;
}

.bubble:active {
    cursor: grabbing;
}

@keyframes float1 {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(10px, -15px); }
    50% { transform: translate(-15px, 10px); }
    75% { transform: translate(20px, -5px); }
}

@keyframes float2 {
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(-20px, 10px); }
    40% { transform: translate(15px, -20px); }
    60% { transform: translate(-10px, 15px); }
    80% { transform: translate(25px, -10px); }
}
@keyframes float3 {
    0%, 100% { transform: translate(0, 0); }
    15% { transform: translate(15px, -20px); }
    30% { transform: translate(-10px, 15px); }
    45% { transform: translate(25px, -10px); }
    60% { transform: translate(-20px, 10px); }
    75% { transform: translate(15px, -20px); }
}
@keyframes float4 {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(20px, -20px); }
    50% { transform: translate(0, 40px); }
    75% { transform: translate(-20px, -20px); }
}

@keyframes float5 {
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(20px, -20px); }
    40% { transform: translate(0, 20px); }
    60% { transform: translate(-20px, -20px); }
    80% { transform: translate(0, -20px); }
}

@keyframes float6 {
    0%, 100% { transform: translate(0, 0); }
    10% { transform: translate(10px, -10px); }
    20% { transform: rotate(20deg); }
    30% { transform: translate(-20px, 20px); }
    40% { transform: rotate(-20deg); }
    50% { transform: translate(20px, 20px); }
    60% { transform: rotate(20deg); }
    70% { transform: translate(-10px, -10px); }
    80% { transform: rotate(-20deg); }
    90% { transform: translate(10px, 10px); }
}

@keyframes orbit {
    0%, 100% {
        transform: translate(-50%, -50%) translate(300px, 0);
    }
    25% {
        transform: translate(-50%, -50%) translate(0, 300px);
    }
    50% {
        transform: translate(-50%, -50%) translate(-300px, 0);
    }
    75% {
        transform: translate(-50%, -50%) translate(0, -300px);
    }
}

@keyframes float-tetrahedron {
    0%, 100% { transform: translate(0, 0); }
    33% { transform: translate(100px, -173px); } /* Move up and right */
    66% { transform: translate(-100px, 0); } /* Move left */
}
@keyframes float-cube {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(100px, 0); } /* Move right */
    50% { transform: translate(100px, 100px); } /* Move down */
    75% { transform: translate(0, 100px); } /* Move left */
}
@keyframes float-octahedron {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(0, -100px); } /* Move up */
    50% { transform: translate(100px, 0); } /* Move right */
    75% { transform: translate(0, 100px); } /* Move down */
    100% { transform: translate(-100px, 0); } /* Move left */
}
@keyframes float-dodecahedron {
    0%, 100% { transform: translate(0, 0); }
    20% { transform: translate(50px, -80px); } /* Move up and right */
    40% { transform: translate(100px, 0); } /* Move right */
    60% { transform: translate(50px, 80px); } /* Move down and right */
    80% { transform: translate(-50px, 80px); } /* Move down and left */
}
@keyframes float-icosahedron {
    0%, 100% { transform: translate(0, 0); }
    17% { transform: translate(50px, 0); } /* Move right */
    33% { transform: translate(75px, -50px); } /* Move up and right */
    50% { transform: translate(50px, -100px); } /* Move up */
    67% { transform: translate(-25px, -50px); } /* Move up and left */
    83% { transform: translate(-50px, 0); } /* Move left */
}
@keyframes float-star {
    0% { transform: translate(0, 0); }
    10% { transform: translate(100px, -100px); } /* Move up and right */
    20% { transform: translate(200px, 0); } /* Move right */
    30% { transform: translate(100px, 100px); } /* Move down and right */
    40% { transform: translate(0, 200px); } /* Move down */
    50% { transform: translate(-100px, 100px); } /* Move down and left */
    60% { transform: translate(-200px, 0); } /* Move left */
    70% { transform: translate(-100px, -100px); } /* Move up and left */
    80% { transform: translate(0, -200px); } /* Move up */
    90% { transform: translate(100px, -100px); } /* Move up and right */
    100% { transform: translate(0, 0); } /* Return to start */
}
.bubble#starBubble {
    animation: float-star 30s linear infinite;
    /* Your existing bubble styling here */
}
/* Set the initial position for the starBubble */
#starBubble {
    left: 50%; 
    top: 50%; 
    transform: translate(-50%, -50%);
}

.bubble p {
    margin: 0;
    line-height: 1.4;
    font-size: 14px;
    font-weight: 400;
}

/* Individual bubble animations */
#bubble1 {
    animation: float-tetrahedron 30s ease-in-out infinite;
    left: 50%; /* Adjust as necessary */
    top: 50%; /* Adjust as necessary */
    transform: translate(-50%, -50%);
}
#bubble2 {
    animation: float-cube 30s ease-in-out infinite;
    left: 60%; /* Adjust as necessary */
    top: 60%; /* Adjust as necessary */
    transform: translate(-50%, -50%);
}
#bubble3 {
    animation: float-octahedron 30s ease-in-out infinite;
    left: 70%; /* Adjust as necessary */
    top: 70%; /* Adjust as necessary */
    transform: translate(-50%, -50%);
}
#bubble4 {
    animation: float-dodecahedron 36s ease-in-out infinite;
    left: 60%; /* Adjust as necessary */
    top: 60%; /* Adjust as necessary */
    transform: translate(-50%, -50%);
}
#bubble5 {
    animation: float-icosahedron 52s ease-in-out infinite;
    left: 70%; /* Adjust as necessary */
    top: 70%; /* Adjust as necessary */
    transform: translate(-50%, -50%);
}
#bubble6 { animation: float6 60s ease-in-out infinite; }
#bubble7 { animation: orbit 75s linear infinite; } /* New bubble with orbit animation */

/* Bubble positions */
#bubble1 { left: 8%; top: 70px; }
#bubble2 { left: 70%; top: 90px; }
#bubble3 { left: 16%; top: 330px; }
#bubble4 { left: 67%; top: 340px; }
#bubble5 { left: 36%; top: 520px; }
#starBubble { left: 50%; top: 245px; transform: translate(-50%, -50%); }
#bubble7 { left: 52%; top: 575px; transform: translate(-50%, -50%); }

.game-area {
    position: relative;
    background:
        linear-gradient(135deg, rgba(9, 12, 32, 0.76), rgba(16, 20, 44, 0.72));
    width: 100%;
    min-height: 100vh;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding: 20px;
    overflow: hidden;
    overscroll-behavior: contain;
}

.game-area::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(135deg, rgba(9, 12, 32, 0.24), rgba(16, 20, 44, 0.24)),
        url('../images/green_vs_blue_snake.webp');
    background-repeat: no-repeat, no-repeat;
    background-position: center center, center center;
    background-size: cover, min(72vw, 680px);
    opacity: 0.62;
    pointer-events: none;
}

.game-area > * {
    position: relative;
    z-index: 1;
}

#gameCanvas {
    background: rgba(10, 14, 39, 0.64);
    border: 3px solid #8a2be2;
    box-shadow: 0 0 30px rgba(138, 43, 226, 0.52);
    display: block;
    margin: 20px auto;
    max-width: 100%;
    border-radius: 10px;
    backdrop-filter: blur(2px);
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}

.button-style {
    display: inline-block;
    margin: 20px;
    padding: 12px 24px;
    background: linear-gradient(135deg, #8a2be2 0%, #00d4ff 100%);
    color: white;
    text-decoration: none;
    font-size: 16px;
    font-weight: 600;
    border-radius: 25px;
    text-align: center;
    border: 2px solid rgba(138, 43, 226, 0.5);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.button-style:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(138, 43, 226, 0.6);
    border-color: #00d4ff;
}

@keyframes blink {
    50% {
        opacity: 0;
    }
}

/* Back to Home button */
.back-to-home {
    margin: 20px;
}

.email-me {
    margin: 20px;
    display: inline-block;
    padding: 15px 30px;
    background: linear-gradient(135deg, #8a2be2 0%, #00d4ff 100%);
    color: white;
    text-decoration: none;
    font-size: 18px;
    font-weight: 600;
    border-radius: 30px;
    border: 2px solid rgba(138, 43, 226, 0.5);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.email-me:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(138, 43, 226, 0.6);
    border-color: #00d4ff;
}


@media screen and (max-width: 768px) {
    header #branding h1 {
        font-size: 20px;
    }

    header li {
        padding: 0 10px;
    }

    header a {
        font-size: 12px;
    }

    .page-header {
        font-size: 32px;
    }

    .parallax {
        min-height: 300px;
        margin: 20px auto;
        padding: 20px 10px;
    }

    .parallax0, .parallax1, .parallax2, .parallax3 {
        min-height: 400px;
        background-size: cover, 220px;
        background-position: center center, center top 36px;
    }

    .portfolio-grid {
        grid-template-columns: 1fr;
        grid-gap: 20px;
    }

    .about-copy {
        text-align: left;
        font-size: 14px;
    }

    .bubble-cloud {
        min-height: 0;
    }

    .bubble {
        display: none;
    }

    .game-area {
        background-size: contain;
        background-position: center center;
        width: 100%;
        min-height: 100vh;
        padding: 10px;
    }

    #gameCanvas {
        width: 90%;
        height: auto;
    }

    .back-to-home, .email-me {
        padding: 10px 20px;
        font-size: 14px;
    }
}



/* Algorithm Visualizer Styles */
#algorithm-visualizer .visualization-area {
    background-color: #fff; /* Background color for the visualization area */
    border: 2px solid #3e9cbf; /* Border to match your theme */
    min-height: 400px; /* Adjust as needed */
    margin: 20px 0; /* Spacing */
    position: relative;
    margin-top: 0; 
    padding-top: 0;
}

#algorithm-visualizer {
    margin-top: 0; /* Reducing top margin */
    padding-top: 0; /* Reducing top padding */
}


/* Specific parallax text color for algorithm visualizer page */
.algorithm-visualizer .parallax-text {
    color: #333;
}

#algorithm-visualizer .controls {
    text-align: center; /* Center the buttons */
    margin-bottom: 20px; /* Spacing after the controls */
}

#algorithm-visualizer button {
    background-color: #3e9cbf; /* Button color to match your theme */
    color: white; /* Text color */
    border: none; /* No border */
    padding: 10px 15px; /* Padding */
    margin: 0 5px; /* Spacing between buttons */
    border-radius: 5px; /* Rounded corners */
    cursor: pointer; /* Cursor to indicate it's clickable */
    font-size: 16px; /* Font size */
}

#algorithm-visualizer button:hover {
    background-color: #333; /* Darker color on hover */
}

.algorithm-visualizer .parallax {
    margin-top: 0;
    padding-top: 0;
    min-height: 150px; 
}

.algorithm-visualizer .container {
    padding-top: 0;
    margin-top: 0;
}

/* Media Query for screens with max width of 600px */
@media screen and (max-width: 600px) {
    /* This sets the background for the whole page */
    /* Header adjustments */
    header nav {
        float: none;
        text-align: center;
        margin-top: 10px;
    }

    header li {
        float: none;
        display: block;
        padding: 5px 0;
    }

    header .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0;
    }
    
    header #branding {
        float: none;
        text-align: center;
    }

    header #branding h1 {
        font-size: 24px;
    }

    .parallax0 {
        background-position: center top;
        padding-top: 50px;
        min-height: 500px;
    }

    .homepage .container {
        padding: 0 10px;
    }

    .homepage img {
        max-width: 100%;
        height: auto;
    }

    body.homepage {
        background-image: url('../images/wizard_centaur0.png');
        background-size: cover;
        background-position: top center;
        background-repeat: no-repeat;
        background-attachment: scroll;
    }

    .homepage .parallax h1, 
    .homepage .parallax p {
        font-size: 16px;
    }

    /* Make sure images within the content are responsive */
    .homepage img {
        max-width: 100%;
        height: auto;
    }

    @keyframes colorChange {
        0% { color: #3498db; } /* Starting color */
        25% { color: #9b59b6; } /* Second color */
        50% { color: #2ecc71; } /* Third color */
        75% { color: #f1c40f; } /* Fourth color */
        100% { color: #e74c3c; } /* Ending color */
    }

    .parallax2 .container {
        animation: colorChange 10s infinite alternate;
    }

    /* Any other specific adjustments for mobile view of homepage */
}
