* {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'unbounded', monospace;
        cursor: none;
}

.custom-cursor {
        position: fixed;
        width: 25px; 
        height: 25px; 
        background: url('images/custom_cursor.png') no-repeat center center;
        background-size: contain;
        pointer-events: none;
        z-index: 9999;
        transform: translate(-50%, -50%);
        display: block;
}
        
body:not(.touch-device) {
        cursor: none;
}

.custom-cursor.hidden {
        display: none !important;
}

body {
        background-color: #000;
        color: #fff;
        overflow: hidden;
        user-select: none;
}

.container {
        width: 100%;
        height: 100vh;
        position: relative;
}

#background {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: 1;
        pointer-events: none;
}

.glitch-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        z-index: 2;
        opacity: 0;
        transition: opacity 0.5s;
}

.hidden {
        display: none !important;
}

.volume-control,
.transparency-control {
        display: flex;
        align-items: center;
        gap: 8px;
        cursor: none;
}

.volume-icon,
.transparency-icon {
        width: 20px;
        height: 20px;
        cursor: pointer;
        display: flex;
        color: white;
        transition: transform 0.2s;
        cursor: none;
}

.volume-icon:hover,
.transparency-icon:hover {
        transform: scale(1.1);
        cursor: none;
}

.slider {
        -webkit-appearance: none;
        appearance: none;
        height: 5px;
        border-radius: 5px;
        background: rgba(255, 255, 255, 0.3);
        outline: none;
        width: 0;
        opacity: 0;
        padding: 0;
        pointer-events: none;
        transition: width 0.3s ease-in-out, opacity 0.2s ease-in-out;
        cursor: none;
}

.volume-control:hover .slider,
.transparency-control:hover .slider {
        width: 80px;
        opacity: 1;
        pointer-events: auto;
        cursor: none;
}

.slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background: white;
        cursor: none;
}

.controls-dock {
        position: fixed;
        top: 20px; 
        left: 20px;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 15px;
        z-index: 20;
        background: rgba(0, 0, 0, 0.7);
        padding: 8px 15px;
        border-radius: 20px;
        backdrop-filter: blur(5px);
}

#profile-block {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 820px;
        min-height: 332px;
        background: transparent;
        padding: 20px;
        border-radius: 15px;
        z-index: 20;
        display: flex;
        flex-direction: column;
        gap: 15px;
        backdrop-filter: blur(2px);
        opacity: 0; 
        transform-style: preserve-3d;
        transition: transform 0.5s ease-out;
        pointer-events: auto;
}

.profile-header {
        display: flex;
        align-items: flex-start;
        gap: 15px;
}

.profile-container {
        position: relative;
        width: 150px;
        height: 150px;
}

.profile-picture {
        width: 150px;
        height: 150px;
        border-radius: 50%;
        object-fit: cover;
        cursor: none;
        pointer-events: auto;
        opacity: 1 !important;
        user-select: none;
}

.profile-info {
        flex: 1;
        display: flex;
        flex-direction: column;
}

.name-and-badges {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 10px;
}

.name-container {
        width: 135px;
}

@font-face {
        font-family: 'Angel Wish';
        src: url('assets/Angel_wish.ttf') format('truetype');
        font-weight: normal;
        font-style: normal;
}

#profile-name {
        font-family: 'Unbounded', sans-serif;
        font-size: 25px;
        font-weight: bold;
        letter-spacing: 3px;
        color: #fff;
        filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.7));
        opacity: 1 !important;
}

.badge-group {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
}

.badge-container {
        position: relative;
        pointer-events: auto;
        opacity: 1 !important;
}

.badge-container .tooltip {
        visibility: hidden;
        width: 120px;
        background-color: rgba(0, 0, 0, 0.8);
        color: #fff;
        text-align: center;
        border-radius: 6px;
        padding: 5px 0;
        position: absolute;
        z-index: 100;
        bottom: 125%;
        left: 50%;
        margin-left: -60px;
        opacity: 0;
        transition: opacity 0.3s;
}

.badge-container:hover .tooltip {
        visibility: visible;
        opacity: 1 !important;
}

.badge {
        width: 22px;
        height: 22px;
        transition: transform 0.3s;
        pointer-events: auto;
        opacity: 1 !important;
        filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.7));
}

.badge:hover {
        transform: scale(1.2);
}

#profile-bio {
        color: rgba(255, 255, 255, 0.8);
        font-size: 18px;
        line-height: 1.5;
        margin-bottom: 10px;
        opacity: 1 !important;
}

.playlist-button-wrapper {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 15px; 
        margin-top: 15px;
}

#discord-activity {
        background: rgba(255, 255, 255, 0.08);
        border-radius: 10px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(5px);
        box-shadow: 0 0 10px rgba(255,255,255,0.05);
        padding: 0;
        min-width: 270px;
        max-width: 295px;
        height: 72px;
        flex-shrink: 1;
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        justify-content: center;
}

#activity-carousel-wrapper {
        display: flex;
        transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
        height: 100%;
}

.activity-slide {
        width: 100%;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 8px 12px;
        font-family: 'Orbitron', sans-serif;
        flex-direction: row; 
}

.activity-details-container {
        flex-grow: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
}

.activity-title {
        font-size: 13px;
        color: white;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
}

.activity-details {
        font-size: 14px;
        font-weight: 700;
        color: white;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
}

.activity-state {
        font-size: 12px;
        color: rgba(255, 255, 255, 0.7);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
}

.activity-progress-content {
        display: flex;
        flex-direction: column;
        gap: 4px;
}

.activity-progress-bar-container {
        width: 100%;
        height: 5px;
        background-color: rgba(255, 255, 255, 0.2);
        border-radius: 2.5px;
        overflow: hidden;
}

.activity-progress-bar-fill {
        width: 0%;
        height: 100%;
        border-radius: 2.5px;
        background: linear-gradient(to right, white, rgba(255, 255, 255, 0.7));
        box-shadow: 0 0 5px #fff;
        transition: width 1s linear;
}

.time-info-text {
        font-family: 'Courier New', monospace;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.6);
}

#spotify-widget {
        background: rgba(255, 255, 255, 0.08);
        border-radius: 10px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(5px);
        box-shadow: 0 0 10px rgba(255,255,255,0.05);
        padding: 0; 
        min-width: 270px;
        max-width: 295px;
        flex-shrink: 1; 
        font-family: 'Orbitron', sans-serif;
        overflow: hidden; 
        display: flex;
        flex-direction: column;
        position: relative;
        
        max-height: 72px;
        transition: max-height 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

#spotify-widget:hover {
        max-height: 150px;
}

.spotify-logo-icon {
        position: absolute;
        top: 12px;
        right: 12px;
        width: 24px;
        height: 24px;
        opacity: 0.6;
        transition: opacity 0.3s;
        z-index: 5;
}

#spotify-widget:hover .spotify-logo-icon {
        opacity: 1;
}

#spotify-playlist-info {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 8px 12px;
        flex-shrink: 0;
        border-bottom: 1px solid rgba(255,255,255,0.1);
}

#spotify-playlist-art {
        width: 40px;
        height: 40px;
        border-radius: 6px;
        flex-shrink: 0;
        background-color: rgba(255,255,255,0.1);
}

#spotify-playlist-details {
        display: flex;
        flex-direction: column;
        min-width: 0;
        gap: 2px;
}

#spotify-playlist-name {
        font-size: 13px;
        font-weight: 700;
        color: white;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
}

#spotify-playlist-creator {
        font-size: 11px;
        color: rgba(255, 255, 255, 0.7);
}

#spotify-track-list { 
        flex: 1;
        min-height: 0;
        overflow-y: auto; 
        scrollbar-width: thin; 
        scrollbar-color: rgba(255, 255, 255, 0.3) transparent;

        opacity: 0;
        transition: opacity 0.3s ease-in-out 0.15s;
        pointer-events: none;
}

#spotify-widget:hover #spotify-track-list {
        opacity: 1;
        pointer-events: auto;
}

#spotify-track-list::-webkit-scrollbar { width: 4px; }
#spotify-track-list::-webkit-scrollbar-track { background: transparent; }
#spotify-track-list::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.3); border-radius: 2px; }

.spotify-track { 
        display: flex; 
        align-items: center; 
        gap: 10px; 
        padding: 6px 12px; 
        transition: background-color 0.2s; 
        flex-shrink: 0;
        position: relative;
}

.spotify-track:hover { background-color: rgba(255, 255, 255, 0.05); }
.spotify-track-art { width: 32px; height: 32px; border-radius: 4px; flex-shrink: 0; background-color: rgba(255,255,255,0.1); }
.spotify-track-info { min-width: 0; }
.spotify-track-name { font-size: 13px; color: white; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.spotify-track-artist { font-size: 11px; color: rgba(255, 255, 255, 0.7); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.spotify-loading-text { color: rgba(255, 255, 255, 0.7); font-size: 14px; margin: 0; padding: 12px; }

.bio-separator { width: 100%; height: 1px; background: rgba(255, 255, 255, 0.2); margin: 20px 0; opacity: 1 !important; }
.profile-footer { display: flex; flex-direction: column; gap: 20px; width: 100%; margin-top: auto; align-items: center; }
.footer-bottom-row { width: 100%; display: flex; justify-content: space-between; align-items: center; }
.visitor-counter { display: flex; align-items: center; gap: 8px; }
.visitor-icon { width: 18px; height: 18px; color: white; }
#visitor-count { font-family: 'Orbitron', sans-serif; font-weight: 700; font-size: 14px; letter-spacing: 1px; }
.social-links { cursor: none; display: flex; justify-content: center; gap: 12px; margin-top: 0; pointer-events: auto; opacity: 1 !important; flex-wrap: wrap; }
.social-icon { cursor: none; width: 25px; height: 25px; font-size: 25px; transition: transform 0.3s ease; filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.7)); pointer-events: auto; opacity: 1 !important; color: white; }
.social-icon:hover { cursor: none; transform: scale(1.4) rotateY(15deg); }
.glitch { animation: glitch 0.2s ease-in-out; }
@keyframes glitch { 0% { transform: translate(0); } 20% { transform: translate(-2px, 2px); } 40% { transform: translate(-2px, -2px); } 60% { transform: translate(2px, 2px); } 80% { transform: translate(2px, -2px); } 100% { transform: translate(0); } }
#start-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; z-index: 30; cursor: pointer; }
#start-text { font-family: 'Courier New', monospace; font-size: 24px; color: #fff; text-align: center; }
.location-info { display: flex; align-items: center; gap: 8px; font-family: 'Orbitron', sans-serif; font-size: 14px; letter-spacing: 1px; }
.location-icon { width: 18px; height: 18px; color: white; }
#weather-info { display: flex; align-items: center; gap: 4px; }
.info-separator { color: rgba(255, 255, 255, 0.4); }
.crt-dotmatrix { pointer-events: none; position: fixed; inset: 0; z-index: 100000; opacity: 0.12; mix-blend-mode: multiply; background: repeating-linear-gradient(0deg, transparent 2px, #222 2px, #222 3px, transparent 3px, transparent 5px), repeating-linear-gradient(90deg, transparent 2px, #222 2px, #222 3px, transparent 3px, transparent 5px); }

@media (max-width: 430px) { 
        #profile-block { width: 90vw; max-width: 350px; min-height: 280px; padding: 15px; top: 50%; left: 50%; transform: translate(-50%, -50%); } 
        .profile-header, .name-and-badges, .footer-bottom-row { flex-direction: column; align-items: center; text-align: center; } 
        .playlist-button-wrapper { flex-direction: column; align-items: center; gap: 10px; justify-content: center; } 
        
        #discord-activity { 
                min-width: unset; 
                width: 100%; 
                height: 80px; 
        }
        #spotify-widget { 
                min-width: unset; 
                width: 100%; 
                height: 150px;
                }

        #profile-name { font-size: 24px; letter-spacing: 2px; } 
        .badge-group { justify-content: center; gap: 6px; } 
        .badge-container .tooltip { width: 100px; font-size: 12px; margin-left: -50px; bottom: 110%; } 
        #profile-bio { font-size: 14px; line-height: 1.4; } 
        .bio-separator { margin: 15px 0; } 
        .social-links { gap: 12px; justify-content: center; } 
        .social-icon { width: 32px; height: 32px; } 
        .location-info { flex-wrap: wrap; justify-content: center; } 
        .controls-dock { top: 10px; left: 10px; padding: 8px; } 
        .volume-control, .transparency-control { gap: 6px; } 
        .volume-icon, .transparency-icon { width: 18px; height: 18px; } 
        .volume-control:hover .slider, .transparency-control:hover .slider { width: 60px; cursor: none; } 
        .slider::-webkit-slider-thumb { width: 10px; height: 10px; cursor: none; } 
        #start-text { font-size: 18px; padding: 0 20px; } 
        .activity-slide { padding: 8px 10px; gap: 10px; } 
        .activity-details-container { gap: 2px; text-align: left; } 
        .activity-progress-content { margin-top: 4px; width: 100%; gap: 2px; } 
        .activity-progress-bar-container { width: 100%; height: 6px; border-radius: 3px; } 
        .activity-progress-bar-fill { border-radius: 3px; } 
        .time-info-text { width: 100%; text-align: right; font-size: 11px; color: rgba(255, 255, 255, 0.7); } 
        .activity-title, .activity-details, .activity-state { white-space: normal; line-height: 1.2; } 
        .activity-title { font-size: 12px; } 
        .activity-details { font-size: 13px; } 
        .activity-state { font-size: 11px; } 
}

#discord-activity .activity-title { font-size: 11px; }
#discord-activity .activity-details { font-size: 12px; font-weight: 600; }
#discord-activity .activity-state { font-size: 10px; }
#discord-activity .time-info-text { font-size: 10px; }
#discord-activity .activity-progress-bar-container { height: 3px; }
#discord-activity img { width: 32px !important; height: 32px !important; border-radius: 6px; }
#discord-activity .activity-slide { gap: 7px; padding: 4px 7px; }
#discord-activity .activity-details-container { gap: 2px; }

#particles-container {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        overflow: hidden;
        z-index: 9999;
}

.particle {
        position: absolute;
        width: 5px;
        height: 5px;
        background-color: white;
        border-radius: 50%;
        opacity: 1;
        animation: fall linear forwards;
}

@keyframes fall {
        0% {
                transform: translateY(0);
                opacity: 1;
        }
        100% {
                transform: translateY(100vh);
                opacity: 0;
        }
}

@keyframes fadeIn {
        0% { opacity: 0; }
        100% { opacity: 1; }
}

@keyframes fadeOut {
        0% { opacity: 1; }
        100% { opacity: 0; }
}

@keyframes glitchEffect {
        0%, 20%, 40%, 60%, 80%, 100% { transform: translate(0); }
        10% { transform: translate(-2px, -2px); }
        30% { transform: translate(2px, -2px); }
        50% { transform: translate(-2px, 2px); }
        70% { transform: translate(2px, 2px); }
}