/* ============================================================
   THEME DESIGN SYSTEM — GREENISH PAUL STAMATIOU STYLE
   ============================================================ */
:root {
    /* Light Mode */
    --bg-color: #f3f6f4;          /* cool off‑white with green tint */
    --text-color: #2d2f2e;        /* deep neutral charcoal */
    --sidebar-bg: #ffffff;
    --sidebar-shadow: rgba(0, 0, 0, 0.08);
    --entry-color: #ffffff;

    --icon-color: #3f4a3f;        /* muted greenish charcoal */
    --icon-hover-color: #1a1f1a;

    --frame-border: #848584;      /* soft greenish-gray border */
    --frame-bg: #ffffff;
    --repo-border: #8e928f;

    /* Cards */
    --card-bg: #ffffff;
    --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    --card-hover-bg: #f7faf8;     /* subtle mint tint */
    --card-hover-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);

    --category-color: #5f6a63;    /* muted green-gray */
}

body.dark-theme {
    /* Dark Mode */
    --bg-color: #141816;          /* charcoal with green undertone */
    --text-color: #e4e8e5;        /* soft cool off‑white */
    --sidebar-bg: #1b1f1d;
    --sidebar-shadow: rgba(0, 0, 0, 0.5);
    --entry-color: #4b4b4b;

    --icon-color: #cdd4cf;        /* pale greenish-gray */
    --icon-hover-color: #ffffff;

    --frame-border: #2f3532;
    --frame-bg: #1a1e1c;
    --repo-border: #2a2f2c;

    /* Cards */
    --card-bg: #1c201e;
    --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    --card-hover-bg: #202522;
    --card-hover-shadow: 0 10px 28px rgba(255, 255, 255, 0.04);

    --category-color: #b7c0bb;
}



/* ============================================================
   BODY
   ============================================================ */
body {
    font-family: "Inter", sans-serif;
    background-color: var(--bg-color);
    transition: background-color 0.4s ease;
}

/* ============================================================
   MAIN CONTENT
   ============================================================ */
main {
    padding-left: 20px;
    padding-right: 20px;

    max-width: 1000px;
    margin: 100px auto 0 auto;

    display: flex;
    flex-direction: column;
}

/* ============================================================
   TOP NAV BAR
   ============================================================ */
.topbar {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);

    background: transparent; /* invisible until hover */
    height: 70px;
    padding: 0 25px;
    box-sizing: border-box;

    border-radius: 35px;
    box-shadow: none;
    z-index: 1000;

    display: flex;
    align-items: center;
    justify-content: center;

    transition:
        background 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

/* Hover frame */
.topbar:hover {
    background: var(--sidebar-bg);
    box-shadow: 0 8px 20px var(--sidebar-shadow);
}

/* Nav layout */
.topbar ul {
    list-style: none;
    height: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 22px;
    padding: 0;
    margin: 0;
}

/* Icon buttons */
.topbar a {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;

    text-decoration: none;
    font-size: 0;
    color: transparent;
    position: relative;

    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

/* Icon base */
.topbar a::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 22px;
    color: var(--icon-color);
    transition: 0.2s ease;
    display: block;
}

/* Icon hover */
.topbar a:hover::before {
    color: var(--icon-hover-color);
    transform: scale(1.15);
}

/* Icon assignments */
.topbar li:nth-child(1) a::before { content: "\f015"; } /* HOME */
.topbar li:nth-child(2) a::before { content: "\f0b1"; } /* EXPERIENCE */
.topbar li:nth-child(3) a::before { content: "\f121"; } /* PROJECTS */
.topbar li:nth-child(4) a::before { content: "\f03e"; } /* ALBUM */
.topbar li:nth-child(5) a::before { content: "\f02d"; } /* BLOG */
.topbar li:nth-child(6) a::before { content: "\f0e0"; } /* CONTACT */
.topbar li:nth-child(7) a::before { content: "\f007"; } /* ABOUT */
.topbar li:nth-child(8) a::before { content: "\f185"; } /* SUN */

/* Dark theme moon icon */
body.dark-theme .topbar li:nth-child(8) a::before {
    content: "\f186";
    transform: rotate(360deg);
}
body.dark-theme .topbar li:nth-child(8) a:hover::before {
    color: #f1c40f;
}

/* ============================================================
   TOP FADE MASK (THE FIX)
   ============================================================ */
.top-fade-mask {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 140px; /* adjust to taste */
    pointer-events: none;

    background: linear-gradient(
        to bottom,
        var(--bg-color) 0%,   /* fade from actual page background */
        transparent 100%
    );

    z-index: 999; /* under nav bar */
}

/* ============================================================
   HERO BLOCK
   ============================================================ */
.hero {
    background: transparent;
    font-family: "Inter", sans-serif;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}

.hero h1 {
    font-size: 48px;
    font-weight: 600;
    color: var(--text-color);
    transition: color 0.4s ease;
}

.hero h3 {
    font-size: 26px;
    font-weight: 600;
    color: var(--text-color);
    opacity: 0.8;
    transition: color 0.4s ease;
}

.hero p {
    margin: 50px;
    text-align: left;
    font-size: 18px;
    color: var(--text-color);
    opacity: 0.8;
    transition: color 0.4s ease;
}

.centered-sub-text {
    text-align: center;
    font-size: 18px;
    color: var(--text-color);
    opacity: 0.8;
    transition: color 0.4s ease;
}

/* ============================================================
   TEXT FLOAT ANIMATION
   ============================================================ */
.text-anim {
    display: inline-block;
    animation: float 3s ease-in-out infinite;
}

@keyframes float {
    0% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
    100% { transform: translateY(0); }
}

/* ============================================================
   PAGE TRANSITION
   ============================================================ */
.page-transition {
    opacity: 0;
    transition: opacity 0.2s ease;
}

.page-transition.visible {
    opacity: 1;
}


/* ============================================================
   PROJECTS PAGE — ORGANIZED & CLEAN
   ============================================================ */

/* Shared transitions */
.frame,
.inner-frame,
.repo-item {
    transition:
        background-color 0.4s ease,
        color 0.4s ease,
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

/* ============================================================
   OUTER FRAME (Hall of Fame + Repo Frame)
   ============================================================ */
.frame {
    border: 1px solid var(--frame-border);
    background: transparent;
    border-radius: 12px;
    padding: 20px;
    position: relative;
    width: 100%;
    max-width: 900px;
    margin: 60px auto;
    color: var(--text-color);
    box-sizing: border-box; /* important for mobile */
}


/* Header label inside frame */
.projects-header {
    font-weight: bold;
    font-size: 22px;
    position: absolute;
    top: 20px;
    left: 20px;
}

/* ============================================================
   INNER FRAME (content inside each frame)
   ============================================================ */
.inner-frame {
    border: 1px solid var(--frame-border);
    background: transparent;
    border-radius: 10px;
    padding: 20px;
    margin-top: 60px;
    margin-bottom: 40px;
    position: relative;
    color: var(--text-color);
}



/* ============================
   FOOTER BASE
   ============================ */
.site-footer {
    background: var(--frame-bg);
    border-top: 1px solid var(--frame-border);
    padding: 40px 0 25px;
    color: var(--text-color);
}

/* ============================
   FOOTER INNER GRID
   ============================ */
.footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;

    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 40px;
}


/* ============================================================
   FOOTER BOTTOM
   ============================================================ */
.footer-bottom {
    margin: 40px 0 40px 0;
    text-align: center;
}

.footer-bottom p {
    font-size: 0.90rem;
    color: var(--category-color);
}

.footer-bottom strong {
    color: var(--text-color);
}





