/* Standard Neo-Brutalism */
.neo-shadow {
    box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.neo-shadow-lg {
    box-shadow: 8px 8px 0px 0px rgba(0, 0, 0, 1);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.dark .neo-shadow {
    box-shadow: 4px 4px 0px 0px #facc15;
    border-color: white;
}

.dark .neo-shadow-lg {
    box-shadow: 8px 8px 0px 0px #facc15;
    border-color: white;
}

/* Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
    will-change: opacity, transform;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.delay-100 {
    transition-delay: 100ms;
}

.delay-200 {
    transition-delay: 200ms;
}

.delay-300 {
    transition-delay: 300ms;
}

.cursor-blink {
    display: inline-block;
    animation: blink 1s step-end infinite;
}

@keyframes blink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}

.logo-stroke {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
}

.interactive-pop {
    cursor: pointer;
    transition: filter 0.2s;
}

.interactive-pop:hover {
    filter: brightness(1.2);
}

.perspective-container {
    perspective: 1000px;
}

.tilt-card {
    transform-style: preserve-3d;
    transition: transform 0.1s ease-out;
}

.no-select {
    user-select: none;
    -webkit-user-select: none;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 12px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
    background: #000;
    border-radius: 6px;
    border: 3px solid #f1f1f1;
}

::-webkit-scrollbar-thumb:hover {
    background: #333;
}

.dark ::-webkit-scrollbar-track {
    background: #171717;
}

.dark ::-webkit-scrollbar-thumb {
    background: #facc15;
    border-color: #171717;
}

/* --- WINDOWS XP MODE --- */
body.win-xp {
    font-family: "Tahoma", "Verdana", sans-serif !important;
    background-color: #008080 !important;
    /* Classic Teal */
    background-image: none !important;
    color: #000 !important;
}

.win-xp nav,
.win-xp footer,
.win-xp section,
.win-xp header {
    background-color: #c0c0c0 !important;
    /* Classic Gray */
    color: black !important;
    border: none !important;
}

.win-xp .neo-shadow,
.win-xp .neo-shadow-lg,
.win-xp button,
.win-xp input,
.win-xp textarea,
.win-xp .rounded-xl,
.win-xp .rounded-2xl,
.win-xp .rounded-3xl,
.win-xp .rounded-full {
    border-radius: 0 !important;
    box-shadow: none !important;
    border-top: 2px solid #fff !important;
    border-left: 2px solid #fff !important;
    border-right: 2px solid #000 !important;
    border-bottom: 2px solid #000 !important;
    background-color: #c0c0c0 !important;
    color: black !important;
}

.logo-reveal {
    animation: wipe-in 1.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%); /* Start hidden at bottom */
    opacity: 0;
}

@keyframes wipe-in {
    0% {
        clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        clip-path: polygon(0 100%, 100% 100%, 100% 0, 0 0); /* Reveal full image */
        opacity: 1;
        transform: translateY(0);
    }
}
.win-xp button:active {
    border-top: 2px solid #000 !important;
    border-left: 2px solid #000 !important;
    border-right: 2px solid #fff !important;
    border-bottom: 2px solid #fff !important;
}

.win-xp h1,
.win-xp h2,
.win-xp h3 {
    background: #000080;
    /* Title Bar Blue */
    color: white !important;
    padding: 5px 10px;
    font-family: "Tahoma", sans-serif;
    letter-spacing: normal;
}

.win-xp .logo-stroke {
    stroke: black !important;
}

/* XP Mode Cookie Banner Override */
body.win-xp #cookie-banner {
    background: #c0c0c0 !important;
    border: 2px outset white !important;
    box-shadow: 4px 4px 0 black !important;
}

body.win-xp #cookie-banner h3 {
    background: #000080 !important;
    color: white !important;
}
