/*
Theme Name: kacpermadejek
Description: Root variables, base styles, header, footer, navigation
Version: 1.0
*/

/* ===== RESET & BASE ===== */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

button,
button:focus,
button:active,
input,
input:focus,
input:active,
textarea,
textarea:focus,
textarea:active,
a,
a:focus,
a:active {
    outline: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-focus-ring-color: transparent;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scrollbar-width: none;
    font-display: swap !important;
}

html::-webkit-scrollbar {
    display: none;
}

a[target="_blank"]::after {
    display: none;
}

body {
    font-family: 'Montserrat', sans-serif;
    background-color: var(--bg);
    color: var(--text);
    transition: background-color var(--slow) var(--transition-bezier),
        color var(--slow) var(--transition-bezier);
    line-height: var(--m-line-height);
    min-height: 100vh;
}

/* ===== TEXT SELECTION ===== */
::selection {
    background-color: rgba(var(--accent1-rgb), var(--b-opacity));
}

/* For Mozilla Firefox */
::-moz-selection {
    background-color: rgba(var(--accent1-rgb), var(--b-opacity));
}

/* ===== CSS VARIABLES ===== */
:root {
    /* Colors — Light Mode */
    --bg: #fdfdfd;
    --bg-rgb: 253, 253, 253;

    --bg2: #fffaf5;
    --bg2-rgb: 255, 250, 245;

    --panel: #FFFBEE;
    --panel-rgb: 255, 251, 238;

    --text: #222222;
    --text-rgb: 34, 34, 34;

    --accent1: rgb(255, 69, 69);
    --accent1-rgb: 255, 69, 69;

    --accent2: orange;
    --accent2-rgb: 255, 165, 0;

    --accent3: red;
    --accent3-rgb: 255, 0, 0;

    --accent4: blue;
    --accent4-rgb: 0, 0, 255;

    --border: #e0e0e0;
    --border-rgb: 224, 224, 224;

    --card-bg: #ffffff;
    --card-bg-rgb: 255, 255, 255;

    --card-shadow: rgba(0, 0, 0, 0.06);
    --card-shadow-rgb: 0, 0, 0;

    --modal-overlay: rgba(0, 0, 0, 0.4);
    --modal-overlay-rgb: 0, 0, 0;

    --menu-bg: #fffcf8;
    --menu-bg-rgb: 255, 252, 248;

    --menu-hover: #f0f0f0;
    --menu-hover-rgb: 240, 240, 240;

    --input-bg: #f5f5f5;
    --input-bg-rgb: 245, 245, 245;

    --input-border: #d0d0d0;
    --input-border-rgb: 208, 208, 208;

    --player-bg: #f0f0f0;
    --player-bg-rgb: 240, 240, 240;

    --player-progress-bg: #d0d0d0;
    --player-progress-bg-rgb: 208, 208, 208;

    --hero-text: #f0f0f0;
    --hero-text-rgb: 240, 240, 240;

    --hero-bg: #111111;
    --hero-bg-rgb: 17, 17, 17;

    /* Fonts */
    --font-heading: 'EB Garamond', serif;
    --font-body: 'Montserrat', sans-serif;
    --font-numeric: 'EB Garamond', serif;

    /* Text */
    --s-text: 12px;
    --m-text: 15px;
    --l-text: 18px;

    --subheading-text: 24px;
    --heading-text: 36px;
    --superheading-text: 48px;

    --s-letter-spacing: 2px;
    --m-letter-spacing: 3px;
    --l-letter-spacing: 4px;

    --s-line-height: 1;
    --sm-line-height: 1.25;
    --m-line-height: 1.5;
    --l-line-height: 2;

   /* Padding & Gaps & Margins */
   --s-padding: calc(0.25rem + 0.25vw);
   --m-padding: calc(0.5rem + 0.5vw);
   --l-padding: calc(0.75rem + 0.75vw);
   --xl-padding: calc(1rem + 1vw);

    /* Transitions */
    --quick: 0.33s;
    --medium: 0.66s;
    --slow: 1s;
    --xslow: 1.5s;
    --xxslow: 2.0s;
    --transition-bezier: cubic-bezier(0.45, 0, 0.25, 1);
    --fade-duration: 500;

    /* Sizes */
    --radius: 3px;
    --header-height: 0px;
    --footer-height:  0px;
    --home-about-header-height: 0px;
    --desktop-max-width: 1200px;

    /* Opacities */
    --a-opacity: 0.25;
    --b-opacity: 0.5;
    --c-opacity: 0.75;
    --d-opacity: 1;

}

/* ===== DARK MODE ===== */
[data-theme="dark"] {
    --bg: #111111;
    --bg-rgb: 17, 17, 17;

    --bg2: #181818;
    --bg2-rgb: 24, 24, 24;

    --panel: #2C2C2A;
    --panel-rgb: 44, 44, 42;

    --text: #f0f0f0;
    --text-rgb: 240, 240, 240;

    --border: #333333;
    --border-rgb: 51, 51, 51;

    --card-bg: #1a1a1a;
    --card-bg-rgb: 26, 26, 26;

    --card-shadow: rgba(0, 0, 0, 0.4);
    --card-shadow-rgb: 0, 0, 0;

    --modal-overlay: rgba(0, 0, 0, 0.7);
    --modal-overlay-rgb: 0, 0, 0;

    --menu-bg: #1a1a1a;
    --menu-bg-rgb: 26, 26, 26;

    --menu-hover: #2a2a2a;
    --menu-hover-rgb: 42, 42, 42;

    --input-bg: #222222;
    --input-bg-rgb: 34, 34, 34;

    --input-border: #444444;
    --input-border-rgb: 68, 68, 68;

    --player-bg: #1e1e1e;
    --player-bg-rgb: 30, 30, 30;

    --player-progress-bg: #3a3a3a;
    --player-progress-bg-rgb: 58, 58, 58;
}

/* ===== TYPOGRAPHY ===== */
h1, 
h2, 
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
}

.section-title {
    font-size: var(--heading-text);
    font-weight: 300;
    font-variant: normal;
    margin-bottom: var(--xl-padding);
    border-bottom: 1px solid var(--accent1);
    padding-bottom: var(--s-padding);
    display: block;
}

.subsection-title {
    font-size: clamp(var(--l-text), 4vw, var(--subheading-text));
    font-weight: 500;
    font-variant: small-caps;
    margin: var(--xl-padding) 0 var(--m-padding) 0;
    color: var(--accent1);
}

/* ===== LINKS ===== */
a {
    text-decoration: none;
    color: inherit;
}

a[target="_blank"]::after {
    content: ' ↗';
    opacity: var(--b-opacity);
    transition: opacity var(--quick) ease;
}

a[target="_blank"]:hover::after {
    opacity: var(--d-opacity);
}

/* ===== NUMERIC FONT ===== */
.numeric {
    font-family: var(--font-numeric);
}

/* ===== TOP STICKY HEADER ===== */
#site-header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    transition: background-color var(--slow) var(--transition-bezier);
    backdrop-filter: blur(8px);
    background-color: rgba(var(--card-bg-rgb), 0.9);
}

.header-inner {
    min-width: 100%;
    margin: 0 auto;
    padding: var(--s-padding) var(--xl-padding);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--l-padding);
}

.brand {
    flex-shrink: 0;
}

.brand-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--text);
    transition: color var(--medium) ease;
}

.brand-name {
    font-family: var(--font-heading);
    font-size: var(--superheading-text);
    font-weight: 300;
    line-height: var(--s-line-height);
}

.brand-tagline {
    font-family: var(--font-heading);
    font-size: var(--l-text);
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 4.25px;
}

#main-nav {
    display: flex;
    gap: var(--l-padding);
    flex: 1;
    justify-content: flex-end;
}

.nav-list {
    display: flex;
    list-style: none;
    gap: var(--m-padding);
    margin: 0;
    padding: var(--m-padding);
}

.nav-link {
    display: block;
    padding: var(--s-padding) var(--m-padding);
    font-family: var(--font-heading);
    font-size: var(--m-text);
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: var(--s-letter-spacing);
    color: var(--text);
    text-decoration: none;
    border-radius: var(--radius);
    transition: background-color var(--medium) ease,
                color var(--medium) ease;
    position: relative;
}

.nav-link:hover {
    background-color: var(--menu-hover);
}

.nav-link.active {
    color: var(--accent1);
}

.nav-actions {
    display: flex;
    align-items: center;
}

.theme-toggle {
    background: none;
    width: var(--heading-text);
    height: var(--heading-text);
    font-size: var(--l-text);
    color: var(--text);
    cursor: pointer;
    border: 1px solid var(--border);
    border-radius: 50%;
    transition: background-color var(--medium) ease,
                color var(--medium) ease;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.nav-actions .theme-toggle {
    font-size: var(--l-text);
    width: var(--heading-text);
    height: var(--heading-text);
}

.theme-toggle:hover {
    background-color: var(--menu-hover);
}

.theme-toggle i {
    position: absolute;
    transition: none;
}

.theme-toggle .fa-moon {
    size: var(--m-text);
    opacity: var(--d-opacity) !important;
    display: block;
}

.theme-toggle .fa-sun {
    display: none;
}

[data-theme="dark"] .theme-toggle .fa-moon {
    display: none;
}

[data-theme="dark"] .theme-toggle .fa-sun {
    display: block;
    opacity: var(--d-opacity) !important;
}

.menu-toggle {
    display: none;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: var(--s-padding) var(--m-padding);
    align-self: center;
    font-family: var(--font-body);
    font-size: var(--s-text);
    font-weight: 400;
    color: var(--text);
    cursor: pointer;
    transition: border-color var(--medium) ease,
                background-color var(--medium) ease,
                color var(--medium) ease;
    align-items: center;
    gap: var(--s-padding);
}

.menu-toggle:hover {
    border-color: var(--accent1);
}

.menu-toggle-text {
    font-weight: 400;
    letter-spacing: 0.04em;
}

#menu-overlay {
    display: none;
}

.nav-footer {
    display: none;
    flex-direction: column;
    min-width: 375px;
    padding-top: var(--xl-padding);
    border-top: 1px solid var(--border);
}

.nav-list.open .nav-footer {
    display: flex;
}

.nav-social {
    display: flex;
    justify-content: center;
    gap: var(--xl-padding);
    width: 100%;
}

.nav-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--heading-text);
    height: var(--heading-text);
    border-radius: 50%;
    border: 1px solid var(--border);
    background: var(--text);
    color: var(--bg);
    font-size: var(--m-text);
    text-decoration: none;
}

.nav-social a:hover {
    transform: none;
    border-color: var(--border);
    background: var(--text);
    color: var(--bg);
}

/* ===== MAIN CONTENT ===== */
#main-content {
    width: 100%;
    margin: 0;
    min-height: calc(100vh - var(--footer-height));
}

@media (max-width: 1024px) {
    #main-content {
        width: 100%;
    }
}

@media (max-width: 640px) {
    #main-content {
        width: 100%;
    }
}

.page-section {
    display: none;
    animation: fadeInUp var(--xslow) var(--transition-ease-in-out) forwards;
}
.page-section.active {
    display: block;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: var(--d-opacity);
        transform: translateY(0);
    }
}

/* ===== FOOTER ===== */
#site-footer {
    width: 100%;
    background: var(--bg);
    padding: var(--l-padding);
    border-top: 1px solid var(--border);
    transition: border-color var(--slow) var(--transition-bezier);
    align-content: center;
}

.footer-inner {
    width: 75vw;
    padding: 0 var(--xl-padding);
    margin: 0 auto; /* Add this to center */
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#site-footer p {
    font-size: var(--m-text);
    opacity: var(--b-opacity);
    font-weight: 400;
}
.footer-social {
    display: flex;
    gap: var(--xl-padding);
}
.footer-social a {
    color: var(--text);
    font-size: var(--subheading-text);
    opacity: var(--b-opacity);
    transition: opacity var(--medium) ease, color var(--medium) ease;
}
.footer-social a:hover {
    opacity: var(--d-opacity);
    color: var(--accent1);
}

/* ===== RESPONSIVE - HEADER/NAV ===== */
@media (max-width: 1024px) {
    .header-inner {
        padding: var(--xl-padding);
        flex-direction: column;
        align-items: center;
        gap: var(--l-padding);
    }

    .brand {
        text-align: center;
        width: 100%;
    }

    .brand-link {
        align-items: center;
    }

    #main-nav {
        width: 100%;
        flex-direction: column;
        gap: var(--m-padding);
    }

    .menu-toggle {
        display: flex;
        min-width: 340px;
        align-items: center;
        padding: var(--s-padding) var(--m-padding);
        justify-content: center;
        text-transform: uppercase;
        order: 0;
    }

    .nav-actions {
        display: none;
    }

    .nav-list {
        display: none;
        width: 100%;
        flex-direction: column;
        align-items: center;
        gap: 0;
        margin: 0;
        padding: 0;
        opacity: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height var(--medium) ease,
                    opacity var(--medium) ease,
                    padding var(--medium) ease;
    }
    
    .nav-list.open {
        display: flex;
        opacity: var(--d-opacity);
        max-height: 80vh;
        padding: 0;
        overflow-y: auto;
    }

    .nav-list li {
        min-width: 375px;
        border-top: 1px solid var(--border);
        padding: var(--m-padding);
        list-style: none;
    }

    .nav-list li:first-child {
        border-top: none;
    }

    .nav-list li:last-child {
        border-bottom: 1px solid var(--border);
    }
    .nav-social {
        gap: calc(var(--xl-padding) * 1.5);
    }
    .nav-link {
        font-size: var(--l-text);
        text-align: center;
        width: 100%;
        display: block;
        padding: var(--m-padding) var(--xl-padding);
        font-weight: 300;
    }

    .nav-link.active::after {
        display: none;
    }

    #site-header {
        z-index: 9999;
        background-color: rgba(var(--card-bg-rgb), 0.98);
    }

    .theme-toggle:hover {
        background-color: var(--bg);
    }
}

@media (max-width: 768px) {
    #site-header {
        position: relative !important;
    }

    .brand-name {
        font-size: var(--heading-text);
    }

    .brand-tagline {
        font-size: var(--m-text);
    }

    .menu-toggle {
        font-size: var(--s-text);
    }

    .nav-link {
        font-size: var(--m-text);
    }
    .footer-inner {
        margin: 0;
        width: 100%;
        padding: 0;
        align-content: space-between;
        align-self: center;
    }
    #site-footer p {
        font-size: var(--s-text);
    }

    .footer-social a {
        font-size: var(--m-text);
    }
}