﻿/* Google Fonts Imports */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Gothic+A1:wght@900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@700&display=swap');


:root {
    --clr-background: rgb(247, 244, 244);
    --clr-gray: rgb(119, 114, 114);
    --font-main-montserrat: "Montserrat", sans-serif;
    --font-main-archivo: "Archivo Black", sans-serif;
    --font-main-gothic: "Gothic A1", sans-serif;
    --font-main-atkinson: "Atkinson Hyperlegible", sans-serif;
    --clr-dark-gray: #262626;
    --clr-dark-black: #121212;
    --clr-dark-text: rgb(226, 225, 225);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-main-montserrat);
    margin: 0 auto;
    text-align: center;
}

.wrapper {
    background-color: var(--clr-background);
}

.container {
    width: 100%;
    margin: 0 auto;
}

/* Header/Navbar */
header {
    padding-top: 50px;
    width: 100%;
    margin: 0 auto;
}

/* --- Navbar (fixed top-right) --- */
.navbar {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    background: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 40px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    z-index: 1000;
}

.logo-text {
    font-size: 1.8rem;
    font-weight: bold;
    color: #333;
}

/* Logo with image and text side-by-side */
.logo {
    display: flex;
    align-items: center;
    gap: 10px; /* space between image and text */
}

    .logo img {
        width: 40px;
        height: 40px;
        object-fit: contain;
    }


.navbar__ul {
    display: flex;
    gap: 20px;
    list-style: none;
}

    .navbar__ul a {
        color: #000;
        text-decoration: none;
        font-weight: 500;
    }

        .navbar__ul a:hover {
            color: #d11a2a;
        }


/* --- Centered Hero Section --- */
.hero {
    background-color: darkred;
    height: 15vh; /* full page height */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem;
}

    .hero .glow {
        font-size: 4rem;
        color: white;
        text-shadow: 0 0 10px springgreen, 0 0 20px #ff0000, 0 0 30px #ff1a1a, 0 0 40px #ff3333;
        margin-bottom: 10px;
    }


/* Hero Text Bounce Animation */
.glow {
    display: inline-block;
    animation: moveSideToSide 8s ease-in-out infinite;
}

/* 🌐 Responsive Side-to-Side Animation (works on all screens) */
@keyframes moveSideToSide {
    0% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(calc(-50vw + 50%)); /* Move left to screen edge */
    }

    50% {
        transform: translateX(0);
    }

    75% {
        transform: translateX(calc(50vw - 50%)); /* Move right to screen edge */
    }

    100% {
        transform: translateX(0);
    }
}


.header__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 5.5rem;
    margin-bottom: 50px;
    padding-bottom: 3rem;
    margin: 0 auto;
    width: 100%;
    height: 30vh;
}

    .header__container img {
        width: 70%;
    }

.header__text {
    font-weight: 200;
    width: 100%;
    margin-top: 30px;
    line-height: 1.5rem;
    text-align: left;
}
.link,
.portfolio__header, #contact h2,
footer h2 {
    text-transform: uppercase;
}



/* Portfolio section */
.portfolio,
.portfolio__container {
    display: flex;
}

.portfolio {
    background-color: rgb(238, 237, 237);
    margin-top: 2.5rem;
    padding-top: 5rem;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin: 0 auto;
}

.portfolio__header {
    font-size: 5rem;
    margin-bottom: 5.0rem;
}

.portfolio__container {
    display: flex;
    flex-wrap: wrap; /* allows wrapping on smaller screens */
    justify-content: center; /* center cards horizontally */
    gap: 2rem; /* space between cards */
    align-items: stretch; /* makes all cards equal height */
    width: 95%;
    margin-bottom: 50px;
}

.card {
    display: flex;
    flex-direction: column; /* stack image + text + button */
    justify-content: space-between;
    flex: 1 1 300px; /* grow/shrink, min width 300px */
    max-width: 360px;
    margin: 1.5rem 0;
    box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 5px 0px, rgba(0, 0, 0, 0.5) 0px 2px 15px 0px;
    padding: 1rem;
    gap: 1rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    align-items: center;
}

.text-container {
    flex-grow: 1; /* fills the card space so button stays at bottom */
}


.card img {
    width: 50%;
    margin-bottom: 1rem;
}

.card h2 {
    font-weight: 700;
    margin-bottom: 0.5rem;
    font-size: 20px;
}

.card p {
    font-weight: 200;
}

.card:hover {
    transform: translateY(-10px) scale(1.05); /* pops up and slightly enlarges */
    box-shadow: rgba(0, 0, 0, 0.6) 0px 10px 20px 0px, rgba(0, 0, 0, 0.5) 0px 4px 10px 0px;
}


.text-container {
    width: 70%;
    margin: 0 auto;
}

.play-btn {
    display: inline-block;
    margin-top: 30px;
    padding: 10px 35px;
    background-color: darkred; /* Initial color */
    color: white;
    text-decoration: none;
    border-radius: 12px;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
    animation: float 2s ease-in-out infinite;
}

/* Hover effect */
.play-btn:hover {
    background-color: #4CAF50; /* Changes to green on hover */
    transform: scale(1.1) translateY(-3px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}

/* Floating animation (remains the same) */
@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

section#contact {
    margin-top: 80px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center; /* Center content vertically */
    align-items: center;
    padding: 2rem 1rem;
    width: 100%;   
    margin: 0 auto;
    text-align: center;
}

#contact p {
    margin-top: 10px;
}


footer {
    padding: 1rem;
    background: darkred;
}

    footer a {
        color: white;
        text-decoration: none;
    }

    footer p {
        color: white;
        text-decoration: none;
    }

        footer a:hover {
            color: #fff;
        }

/* Fade-in effect */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease;
}

    .fade-in.show {
        opacity: 1;
        transform: translateY(0);
    }



button.darkmode {
    width: 30px; /* Circle size */
    height: 30px;
    border-radius: 50%; /* Makes it circular */
    border: 2px solid #262626;
    background-color: white; /* Default light mode */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 15px;
    transition: all 0.3s ease;
}

button.darkmode i {
    pointer-events: none; /* So icon doesn't block click */
}

button.darkmode:hover {
    transform: scale(1.1);
}

.darkmode .navbar {
    background-color: var(--clr-dark-black);
    color: var(--clr-dark-text);
}

.darkmode .hero {
    background-color: darkred; /* keep the red theme */
    color: white;
}

.darkmode footer {
    background-color: darkred; /* keep footer red */
    color: white;
}
.darkmode .logo-text {
    color: white;
}

.darkmode .portfolio {
    background-color: var(--clr-dark-black);
    color: var(--clr-dark-text);
}

.darkmode footer {
    background-color: var(--clr-dark-black);
    color: var(--clr-dark-text);
}

.darkmode .wrapper {
    background-color: var(--clr-dark-black);
    color: var(--clr-dark-text);
}

.darkmode .navbar__ul li {
    color: var(--clr-dark-text);
    background-color: transparent;
}

.darkmode a[href] {
    color: var(--clr-dark-text);
}
.darkmode .navbar {
    background-color: darkred;
    color: var(--clr-dark-text);
}

.darkmode .navbar__ul a {
    color: var(--clr-dark-text);
}
.darkmode footer {
    background-color: darkred;
    color: white;
}
/* 🌙 Dark Mode Toggle Button */
button.darkmode-toggle {
    width: 35px; /* circle size */
    height: 35px;
    border-radius: 50%; /* makes it circular */
    border: 2px solid #262626;
    background-color: white; /* default (light mode) */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 16px; /* icon size */
    transition: all 0.3s ease;
    color: black;
}

    button.darkmode-toggle i {
        pointer-events: none; /* ensures icon doesn't block click */
    }

    button.darkmode-toggle:hover {
        transform: scale(1.1);
    }

.darkmode .card:nth-child(1) {
    background-color: #3a1a1a; /* Word Search card */
}

.darkmode .card:nth-child(2) {
    background-color: #3a1a1a; /* Bingo card */
}

.darkmode .card:nth-child(3) {
    background-color: #3a1a1a; /* Snake card */
}

@media screen and (min-width: 600px) {
    .navbar {
        flex-direction: row;
        justify-content: space-between;
        padding: 0 2rem;
    }

    .navbar__ul {
        flex-direction: row;
        width: auto;
    }

        .navbar__ul li {
            background-color: transparent;
            padding: 5px 15px;
        }

    .header__container {
        flex-direction: row-reverse;
        justify-content: center;
        align-items: center;
        gap: 2rem;
    }

        .header__container img {
            width: 200px;
        }

    .header__text {
        text-align: left;
        max-width: 400px;
    }

    .portfolio__container {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
    }
}


/* ✨ Highlight only the section background, not inner cards */
.highlighted {
    position: relative;
    z-index: 0;
    overflow: hidden;
    transition: all 0.6s ease;
}

    /* Add a glowing overlay behind the section (not affecting content) */
    .highlighted::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: white; /* soft golden overlay */
        box-shadow: 0 0 25px rgba(255, 215, 0, 0.5);
        border-radius: 12px;
        z-index: -1; /* keeps it behind all content */
        transform: scale(1.02);
        transition: all 0.6s ease;
    }

/* 🌙 Dark mode version */
.darkmode body {
    background: linear-gradient(135deg, #0f2027, #203a43, #2c5364);
}

.darkmode .highlighted::before {
    background: white;
    box-shadow: 0 0 30px rgba(255, 140, 0, 0.5);
}

/* Glow animation */
@keyframes glowPulse {
    0% {
        transform: scale(1.02);
        box-shadow: 0 0 15px rgba(255, 215, 0, 0.3);
    }

    100% {
        transform: scale(1.05);
        box-shadow: 0 0 35px rgba(255, 215, 0, 0.6);
    }
}

/* 🔹 Active nav link (bold + underline) */
.navbar__ul li.active a {
    font-weight: bold;
    text-decoration: underline;
    text-underline-offset: 4px;
    color: #ffcc00; /* optional accent color */
    transition: color 0.3s ease;
}

/* Dark-mode version */
.darkmode .navbar__ul li.active a {
    color: orange;
}
.navbar {
    padding: 15px 30px; /* taller navbar */
}
/* Contact email styling */
#contact a {
    color: darkred; /* default red color */
    text-decoration: none; /* remove underline, optional */
    transition: color 0.3s ease; /* smooth transition */
}

    /* Hover effect: turns blue */
    #contact a:hover {
        color: #4CAF50;
    }


/* Mobile devices (max-width: 599px) */

/* Small screens ~600px */
@media screen and (max-width: 600px) {

    /* Navbar adjustments */
    .navbar {
        padding: 8px 15px; /* reduce padding */
        flex-wrap: nowrap; /* prevent wrapping */
        justify-content: space-between;
    }

    .navbar__ul {
        gap: 10px; /* smaller gap between links */
        flex-wrap: nowrap; /* prevent breaking */
    }

        .navbar__ul li {
            padding: 3px 3px; /* smaller padding for links */
        }

            .navbar__ul li a {
                font-size: 0.75rem; /* smaller font size */
            }

    /* Logo adjustments */
    .logo img {
        width: 35px;
        height: 35px;
    }

    .logo-text {
        font-size: 1.4rem;
    }

    /* Dark mode toggle smaller */
    button.darkmode-toggle {
        width: 28px;
        height: 28px;
        font-size: 13px;
    }

    /* Header adjustments */
    .header__container {
        margin-bottom: 2.5rem; /* reduce bottom margin */
        margin-top: 1.5rem; /* adjust for navbar */
        padding: 1rem;
        height: auto; /* auto height to fit text */
    }

    .header__text {
        font-size: 1rem; /* smaller font size */
        line-height: 1.4rem;
        text-align: center;
    }

    /* Hero glow text smaller */
    .hero .glow {
        font-size: 2.5rem;
    }
    .header__container {
        margin-bottom: 1rem !important; /* less space before PlayRoom */
    }

    /* Reduce space above PlayRoom header */
    .portfolio__header {
        margin-top: 3.5rem !important; /* tiny gap above header */
        margin-bottom: 1.5rem !important; /* optional: space below */
        font-size: 7.5rem; /* keep readable on small screens */
    }

    /* Optional: reduce padding inside portfolio */
    .portfolio {
        padding-top: 1rem;
    }
}


    /* Portfolio heading */
    .portfolio__header {
        font-size: 3rem;
        margin-bottom: 2rem;
    }

    /* Cards */
    .card img {
        width: 50%;
    }

    /* Buttons */
    .play-btn {
        padding: 14px 30px;
        font-size: 1.4rem;
    }

    button.darkmode {
        width: 25px;
        height: 25px;
        font-size: 13px;
    }

    /* Text containers */
    .text-container {
        width: 95%;
    }

    /* Footer */
    footer a {
        font-size: 0.7rem;
    }

    footer p {
        font-size: 0.9rem;
    }

    /* Contact section */
    section#contact {
        padding: 1rem;
    }
}
/* Large devices (desktops/tablets) */
@media screen and (min-width: 992px) {

    .container {
        width: 100%;
    }

    .card {
        margin: 1rem;
        min-width: 300px;
    }

    .header__container img {
        max-width: 300px;
    }

    .portfolio__header {
        font-size: 5rem; /* default larger desktop heading */
        margin-bottom: 5rem;
    }

    .header__text {
        font-size: 1.5rem;
        max-width: 800px;
    }

    .card img {
        width: 60%;
    }

    .hero {
        padding: 2rem; /* larger padding for desktops */
    }

    button.darkmode {
        width: 30px;
        height: 30px;
        font-size: 14px;
    }
}
/* Make card relative to position children */
.card {
    position: relative;
    overflow: visible; /* Ensure tag isn’t clipped */
}

/* Sparkling New tag */
.new-tag {
    position: absolute;
    top: 10px;
    left: 0;
    background-color: springgreen;
    color: black;
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    padding: 5px 15px;
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
    box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
    z-index: 9999;
    display: block;
    opacity: 1;
    pointer-events: none;
    /* Sparkle effect */
    animation: sparkle 2s infinite alternate;
}

/* Glowing sparkle animation */
@keyframes sparkle {
    0% {
        box-shadow: 0 0 5px springgreen, 0 0 10px springgreen, 0 0 15px #ff8080;
    }

    50% {
        box-shadow: 0 0 10px springgreen, 0 0 20px springgreen, 0 0 25px #ff9999;
    }

    100% {
        box-shadow: 0 0 5px springgreen, 0 0 10px springgreen, 0 0 15px #ff8080;
    }
}

/* Extra small devices (phones, up to 400px wide) */
@media screen and (max-width: 400px) {

    /* Navbar adjustments */
    .navbar {
        padding: 5px 8px; /* smaller padding */
        flex-wrap: nowrap; /* prevent wrapping */
        justify-content: space-between;
        align-items: center;
     
    }

    .navbar__ul {
        gap: 8px; /* smaller gap between links */
        flex-wrap: nowrap; /* prevent breaking */
    }

        .navbar__ul li {
            padding: 2px 2px; /* smaller padding inside links */
        }

            .navbar__ul li a {
                font-size: 0.75rem; /* smaller font */
            }

    /* Logo adjustments */
    .logo img {
        width: 40px;
        height: 40px;
    }

    .logo-text {
        font-size: 1.3rem;
    }

    /* Dark mode toggle button smaller */
    button.darkmode-toggle {
        width: 25px;
        height: 25px;
        font-size: 10px;
    }

    /* Reduce margin-bottom for header container */
    .header__container {
        margin-bottom: 1.5rem; /* smaller space under header */
        margin-top: 2.5rem; /* keep offset for navbar */
        padding: 1rem;
        height: auto; /* expand to fit text */
    }

    /* Header text smaller */
    .header__text {
        font-size: 0.9rem;
        line-height: 1.3rem;
        text-align: center;
        margin-top: 0;
    }

    /* Hero glow text smaller */
    .hero .glow {
        font-size: 2rem;
    }
    .header__container {
        margin-bottom: 1rem !important; /* less space before PlayRoom */
    }

    /* Reduce space above PlayRoom header */
    .portfolio__header {
        margin-top: 2.5rem !important; /* tiny gap above header */
        margin-bottom: 1.5rem !important; /* optional: space below */
        font-size: 3.3rem; /* keep readable on small screens */
    }

    /* Optional: reduce padding inside portfolio */
    .portfolio {
        padding-top: 1rem;
    }
}


@media screen and (min-width: 992px) {
    .portfolio__header {
        margin-top: 4rem;
        font-size: 6rem; /* large desktop size */
        margin-bottom: 4rem;
    }

    .header__text {
        font-size: 1.5rem;
        max-width: 800px;
    }

    .card img {
        width: 50%;
    }

    .hero .glow {
        font-size: 4rem;
    }
    .portfolio__container {
        gap: 3rem; /* increase space between cards */

    }
    .card {
        margin: 2rem 1rem; /* more vertical and horizontal spacing */
    }
}

/* Tablets / small screens (600px - 991px) */
@media screen and (max-width: 991px) and (min-width: 601px) {
    .portfolio__header {
        font-size: 4.5rem; /* slightly smaller */
    }

    .header__text {
        font-size: 2.2rem;
    }

    .hero .glow {
        font-size: 3rem;
    }
}

/* Make the entire card clickable */
.card-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: inherit; /* Keep text color */
    width: 100%;
    height: 100%;
}

    /* Play button stays visible */
    .card-link .play-btn {
        display: inline-block;
        margin-top: 20px;
    }

/* Keep card hover effect intact */
.card:hover {
    transform: translateY(-10px) scale(1.05);
    box-shadow: rgba(0,0,0,0.6) 0px 10px 20px 0px, rgba(0,0,0,0.5) 0px 4px 10px 0px;
}
/* Basic styling for all game titles */
.card h2 {
    font-size: 1.4rem; /* adjust size */
    font-weight: 800; /* bold title */
    color: darkred; /* text color */
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    text-align: center;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.3); /* subtle shadow */
    transition: color 0.3s ease, text-shadow 0.3s ease;
}

/* Optional: on hover, change color or glow */
.card:hover h2 {
    color: springgreen;
    
}
/* Prevent iOS zoom on tap */
.card h2,
.card p,
.card .play-btn {
    font-size: 16px; /* minimum 16px */
    -webkit-text-size-adjust: 100%; /* prevent auto-zoom */
}
