* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    cursor: none !important;
}

#tamagotchi-cursor {
    position: fixed;
    top: -100px;
    left: -100px;
    width: 32px;
    height: 32px;
    pointer-events: none;
    z-index: 999999;
    margin-left: -16px;
    margin-top: -3px;
    /* So the ring represents the precise click point */
}

.cursor-normal,
.cursor-excited-1,
.cursor-excited-2,
.cursor-sleeping {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: none;
}

#tamagotchi-cursor:not(.excited):not(.sleeping) .cursor-normal {
    display: block;
}

#tamagotchi-cursor.sleeping .cursor-sleeping {
    display: block;
}

#tamagotchi-cursor.excited {
    animation: bounceCursor 0.4s infinite alternate ease-in-out;
}

@keyframes bounceCursor {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-4px);
    }
}

#tamagotchi-cursor.excited .cursor-excited-1 {
    display: block;
    animation: blinkExcited 0.25s infinite;
}

#tamagotchi-cursor.excited .cursor-excited-2 {
    display: block;
    animation: blinkExcited2 0.25s infinite;
}

@keyframes blinkExcited {

    0%,
    49.9% {
        opacity: 1;
    }

    50%,
    100% {
        opacity: 0;
    }
}

@keyframes blinkExcited2 {

    0%,
    49.9% {
        opacity: 0;
    }

    50%,
    100% {
        opacity: 1;
    }
}

:root {
    --bg-color: #f0f8ff;
    /* AliceBlue base for an airy feel */
    --text-color: #2b3a42;
    /* Deep slate text */
    --card-bg: linear-gradient(180deg, #ffffff 0%, #e0f0f5 100%);
    /* Glossy gradient */
    --accent: #00ccff;
    /* Bright cyan, very Y2K aqua */
    --accent-hover: #0099cc;
    --muted: #6b8e9b;
    --border-color: #b0c4de;
    /* Light steel blue for borders */
}

body {
    background-color: var(--bg-color);
    background-image: radial-gradient(circle at 50% -20%, #e6f7ff, #b3e6ff 80%);
    color: var(--text-color);
    font-family: 'Verdana', 'Tahoma', sans-serif;
    /* Classic Y2K UI fonts */
    -webkit-font-smoothing: antialiased;
    padding: 1rem 2rem;
    min-height: 100vh;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
}

.hardware-panel {
    background: linear-gradient(180deg, #f0f5fa 0%, #dbe4ec 50%, #c4d1de 100%);
    border: 2px solid #ffffff;
    border-radius: 16px;
    padding: 1rem 2rem;
    margin-bottom: 0.5rem;
    box-shadow:
        10px 10px 20px rgba(0, 0, 0, 0.1),
        -5px -5px 15px rgba(255, 255, 255, 0.8),
        inset 0 -3px 5px rgba(0, 0, 0, 0.05),
        inset 0 3px 5px rgba(255, 255, 255, 1);
    border-bottom: 2px solid #a4b5c7;
    border-right: 2px solid #a4b5c7;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    overflow: visible;
}

.hardware-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255, 255, 255, 0.1) 2px, rgba(255, 255, 255, 0.1) 4px);
    opacity: 0.5;
}

.app-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px groove rgba(255, 255, 255, 0.8);
    padding-bottom: 0.5rem;
}

.header-controls-cluster {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-left: auto;
    margin-right: 1.5rem;
}

.sort-module {
    display: flex !important;
    align-items: center;
    gap: 0;
    width: 150px;
    justify-content: flex-start;
    pointer-events: auto !important;
    /* Always interactive */
    opacity: 1 !important;
}

.sort-btn-bezel {
    width: 26px;
    /* Shrunk from 32px */
    height: 26px;
    background: linear-gradient(135deg, #c4d1de 0%, #f0f5fa 100%);
    border-radius: 50%;
    border: 2px solid #a4b5c7;
    border-top-color: #8598aa;
    border-left-color: #8598aa;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        inset 1px 1px 2px rgba(0, 0, 0, 0.2),
        1px 1px 0 rgba(255, 255, 255, 0.8);
    position: relative;
    z-index: 2;
    flex-shrink: 0;
}

.sort-cycle-btn {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, #f0f5fa 0%, #c4d1de 100%);
    border: 1px solid #8598aa;
    cursor: pointer;
    box-shadow:
        1px 1px 2px rgba(0, 0, 0, 0.3),
        inset 1px 1px 1px rgba(255, 255, 255, 0.8);
    position: relative;
    transition: all 0.1s;
}

.sort-cycle-btn:active {
    transform: translateY(1px);
    box-shadow:
        inset 1px 1px 2px rgba(0, 0, 0, 0.2);
}

.sort-cycle-btn::after {
    content: 'CYCLE';
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.45rem;
    font-weight: 800;
    color: #6a829a;
    letter-spacing: 0.5px;
}

.sort-module-line {
    width: 8px;
    height: 2.5px;
    background: #a4b5c7;
    border-top: 1px solid #8194a7;
    border-bottom: 1px solid #ffffff;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
    margin: 0 -1px;
    z-index: 1;
    flex-shrink: 0;
}

.header-lcd {
    background: #9dbb92;
    height: 24px;
    /* Standardized height */
    padding: 0 0.6rem;
    border-radius: 4px;
    border: 2px inset #8eab83;
    box-shadow:
        inset 2px 2px 4px rgba(0, 0, 0, 0.1),
        1px 1px 0 rgba(255, 255, 255, 0.8);
    font-family: 'Courier New', Courier, monospace;
    font-weight: 800;
    color: #1a2914;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    z-index: 2;
    box-sizing: border-box;
}

.sort-lcd {
    flex: 1;
    font-size: 0.85rem;
    /* Match deck counter */
    justify-content: space-between;
}

.sort-label {
    opacity: 0.6;
    font-size: 0.65rem;
}

.sort-value {
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 2px;
}

.sort-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 12px;
    /* Balanced size */
    width: 12px;
    color: inherit;
    margin-right: 4px;
    margin-bottom: 1px;
    /* Optical alignment with baseline */
}

.sort-svg-arrow {
    width: 100%;
    height: 100%;
    stroke: currentColor;
    stroke-width: 5;
    /* Even chunkier */
    stroke-linecap: square;
    fill: none;
}

.header-deck-counter {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    background: #9dbb92;
    /* Match Sort LCD */
    height: 24px;
    /* Match Sort LCD */
    padding: 0 0.6rem;
    border-radius: 4px;
    border: 2px inset #8eab83;
    box-shadow:
        inset 2px 2px 4px rgba(0, 0, 0, 0.1),
        1px 1px 0 rgba(255, 255, 255, 0.8);
    font-family: 'Courier New', Courier, monospace;
    font-weight: 800;
    color: #1a2914;
    box-sizing: border-box;
}

.logo-container {
    display: flex;
    align-items: center;
    gap: 10px;
}

.hardware-specs {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-family: 'Arial', 'Helvetica', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #6a829a;
    /* Faded ink printed on the grey plastic */
    letter-spacing: 0.5px;
    /* Subtle debossed/printed look */
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.7);
}

.logo-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #4dd2ff, #0088cc);
    box-shadow: inset -2px -2px 4px rgba(0, 0, 0, 0.4), 0 0 8px #00ccff;
    border: 2px solid #fff;
    transition: all 0.2s ease;
}

.powered-off .logo-icon {
    background: radial-gradient(circle at 30% 30%, #555, #222);
    box-shadow: inset -2px -2px 4px rgba(0, 0, 0, 0.4);
}

.logo-icon.excited {
    background: radial-gradient(circle at 30% 30%, #ff66e6, #cc00a3);
    box-shadow: inset -2px -2px 4px rgba(0, 0, 0, 0.4), 0 0 8px #ff00cc;
}

h1 {
    font-size: 2.0rem;
    /* Slightly smaller because Syncopate is very wide */
    font-weight: 700;
    color: #7a8c9e;
    /* Noticeably darker grey/blue for much stronger contrast */
    text-shadow:
        -1px -1px 0px rgba(255, 255, 255, 1),
        /* Sharpened top-left highlight */
        1px 1px 1px rgba(0, 0, 0, 0.7),
        /* Darker drop shadow */
        -2px -2px 3px rgba(255, 255, 255, 0.6),
        2px 2px 4px rgba(0, 0, 0, 0.5);
    letter-spacing: 4px;
    /* Extends it to match wide hardware logos */
    text-transform: uppercase;
    font-family: 'Syncopate', 'Arial Black', sans-serif;
    /* Wide, extended Y2K hardware font */
    margin: 0;
}

.title-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.slogan {
    font-size: 0.70rem;
    font-weight: 600;
    color: #6a829a;
    letter-spacing: 2px;
    text-transform: lowercase;
    margin-top: -2px;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.7);
}

.controls {
    display: flex;
    flex-wrap: nowrap;
    gap: 1.5rem;
    align-items: stretch;
    justify-content: space-between;
}

.button-stack {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: stretch;
    justify-content: center;
    flex-shrink: 0;
}

.lcd-screen {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.6rem;
    background: #9dbb92;
    /* Classic LCD green-grey */
    padding: 0.8rem 1.2rem;
    border-radius: 6px;
    border: 3px inset #8eab83;
    box-shadow:
        inset 2px 2px 5px rgba(0, 0, 0, 0.15),
        1px 1px 0 rgba(255, 255, 255, 0.9);
}

.lcd-screen label {
    font-size: 0.85rem;
    font-weight: 700;
    color: #1a2914;
    /* Matched header LCD color */
    text-transform: uppercase;
    letter-spacing: 1px;
}

.lcd-text {
    font-family: 'Syncopate', 'Arial Black', sans-serif;
    font-size: 0.95rem;
}

.lcd-off-text {
    display: none;
    font-family: 'Courier New', Courier, monospace;
    font-size: 1.5rem;
    font-weight: bold;
    color: #385a38;
    text-align: center;
    letter-spacing: 2px;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.powered-off .lcd-off-text {
    display: flex;
    flex: 1;
    /* Changed from block to flex to align icon */
    animation: slowBlink 3s infinite ease-in-out;
}

.sys-off-icon {
    width: 24px;
    height: 24px;
    opacity: 0.8;
}

@keyframes slowBlink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}

.powered-off .lcd-on-content {
    display: none;
}

.lcd-text {
    font-family: 'Courier New', Courier, monospace;
    font-size: 1.1rem;
    color: #1a2914;
    font-weight: bold;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.2);
}

.powered-off .lcd-text {
    color: #385a38;
    text-shadow: none;
}

/* Custom sliders for LCD screens */
input[type="range"].slider {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    background: rgba(0, 0, 0, 0.1);
    height: 6px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255, 255, 255, 0.2);
}

.powered-off input[type="range"].slider {
    opacity: 0.5;
    pointer-events: none;
}

input[type="range"].slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 12px;
    background: linear-gradient(180deg, #c4d1de 0%, #8598aa 100%);
    border: 1px solid #455a6d;
    border-radius: 2px;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 1px rgba(255, 255, 255, 0.8);
}

.metallic-btn {
    align-self: flex-end;
    background: linear-gradient(180deg, #f0f5fa 0%, #c4d1de 100%);
    color: #2b3a42;
    border: 1px solid #8598aa;
    border-top: 1px solid #ffffff;
    border-left: 1px solid #ffffff;
    padding: 0.8rem 2rem;
    border-radius: 20px;
    /* Pill shape typical of 2000s electronics */
    font-weight: 800;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.2s;
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.1),
        inset 0 1px 2px rgba(255, 255, 255, 1);
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
}

.metallic-btn:hover {
    background: linear-gradient(180deg, #ffffff 0%, #dbe4ec 100%);
    box-shadow:
        0 6px 10px rgba(0, 0, 0, 0.15),
        inset 0 1px 2px rgba(255, 255, 255, 1);
    transform: translateY(-1px);
}

.metallic-btn:active {
    background: linear-gradient(180deg, #c4d1de 0%, #f0f5fa 100%);
    box-shadow:
        0 2px 3px rgba(0, 0, 0, 0.1),
        inset 0 2px 4px rgba(0, 0, 0, 0.2);
    transform: translateY(2px);
    border: 1px solid #8598aa;
    border-bottom: 1px solid #ffffff;
    border-right: 1px solid #ffffff;
}

.metallic-btn:disabled,
.metallic-btn[disabled] {
    opacity: 0.38;
    filter: grayscale(60%);
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none;
    transform: none;
}

@keyframes pulseGlow {
    0% {
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 210, 255, 0.5);
    }

    50% {
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 0 15px rgba(0, 210, 255, 0.8), 0 0 25px rgba(0, 210, 255, 0.6);
    }

    100% {
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 210, 255, 0.5);
    }
}

.metallic-btn.glow-active {
    background: linear-gradient(145deg, #00d2ff, #3a7bd5) !important;
    color: #fff !important;
    border: 1px solid #00d2ff !important;
    animation: pulseGlow 2s infinite !important;
}

.powered-off .metallic-btn {
    opacity: 0.6;
    filter: grayscale(100%);
    pointer-events: none;
}

.album-grid {
    width: 100%;
}

.binder-layout-container {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
}

.page-turn-tab {
    position: absolute;
    right: -2.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 12rem;
    /* Increased from 8rem to fit full text */
    background:
        repeating-linear-gradient(45deg, #222 0, #222 2px, #333 2px, #333 4px),
        #222;
    border: 2px solid #111;
    border-left: none;
    border-radius: 0 12px 12px 0;
    box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.6), inset -2px 0 5px rgba(255, 255, 255, 0.1);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    z-index: 50;
    padding: 0.5rem;
}

.tab-label {
    background: linear-gradient(180deg, #f0f0f0, #d4d4d4);
    border: 1px dashed #888;
    width: 100%;
    height: 100%;
    border-radius: 0 6px 6px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    writing-mode: vertical-rl;
    font-family: 'Courier New', Courier, monospace;
    font-weight: bold;
    font-size: 1.1rem;
    /* Restored for full length strings */
    color: #111;
    letter-spacing: 2px;
    box-shadow: inset 1px 1px 3px rgba(0, 0, 0, 0.2);
}

.page-turn-tab:hover:not(:disabled) {
    transform: translateY(-50%) translateX(4px);
    box-shadow: 8px 5px 15px rgba(0, 0, 0, 0.7);
}

.page-turn-tab:active:not(:disabled) {
    transform: translateY(-50%) translateX(0px);
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.6);
}

.page-turn-tab:disabled {
    opacity: 0.4;
    filter: grayscale(1);
    cursor: default;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
}

.page-turn-tab.left-btn {
    right: auto;
    left: -2.5rem;
    border-right: none;
    border-left: 2px solid #111;
    border-radius: 12px 0 0 12px;
    box-shadow: -5px 5px 15px rgba(0, 0, 0, 0.6), inset 2px 0 5px rgba(255, 255, 255, 0.1);
}

.page-turn-tab.left-btn .tab-label {
    border-radius: 6px 0 0 6px;
    transform: rotate(180deg);
    /* Flip text upright for left side reading */
}

.page-turn-tab.left-btn:hover:not(:disabled) {
    transform: translateY(-50%) translateX(-4px);
    box-shadow: -8px 5px 15px rgba(0, 0, 0, 0.7);
}

.page-turn-tab.left-btn:active:not(:disabled) {
    transform: translateY(-50%) translateX(0px);
    box-shadow: -2px 2px 5px rgba(0, 0, 0, 0.6);
}

/* CD Binder Styles */
.binder-wrapper {
    display: flex;
    justify-content: center;
    background: linear-gradient(180deg, #1b2838 0%, #101822 100%);
    /* Nylon binder exterior */
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6), inset 0 2px 5px rgba(255, 255, 255, 0.1);
    position: relative;
    max-width: 100%;
    perspective: 1500px;
}

.binder-page {
    /* Create a CD sleeve page look */
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    padding: 2rem 1.5rem 0.75rem 1.5rem;
    border-radius: 8px;
    flex: 1;
    z-index: 1;
    min-height: 480px;
    align-content: start;
}

.left-page {
    box-shadow: inset -5px 0 15px rgba(0, 0, 0, 0.2), 2px 2px 8px rgba(0, 0, 0, 0.3);
    margin-right: -10px;
    /* Slight overlap with spine */
    border-right: 1px solid rgba(0, 0, 0, 0.3);
}

.right-page {
    box-shadow: inset 5px 0 15px rgba(0, 0, 0, 0.2), -2px 2px 8px rgba(0, 0, 0, 0.3);
    margin-left: -10px;
    /* Slight overlap with spine */
    border-left: 1px solid rgba(0, 0, 0, 0.3);
    transform-origin: left center;
    transform-style: preserve-3d;
}

.right-page.flipping {
    animation: pageTurn 0.8s ease-in-out forwards;
    z-index: 10;
    /* Removed backface-visibility so we can see the literal back of the page when it rotates past 90deg */
}

@keyframes pageTurn {
    0% {
        transform: rotateY(0deg);
        filter: brightness(1);
    }

    50% {
        transform: rotateY(-90deg) translateZ(5px);
        filter: brightness(0.6);
    }

    100% {
        transform: rotateY(-180deg);
        filter: brightness(0.0);
        /* Makes the back completely dark so it looks like a blank cover */
    }
}

.binder-spine {
    width: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;
    background: linear-gradient(90deg, #222 0%, #444 50%, #222 100%);
    /* Metal/plastic spine base */
    border-radius: 4px;
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.8);
    z-index: 2;
    position: relative;
}

.spine-ring {
    width: 50px;
    /* Overlap the pages */
    height: 12px;
    background: linear-gradient(180deg, #d4d4d4 0%, #ffffff 40%, #a0a0a0 100%);
    /* Metallic ring */
    border-radius: 6px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5), inset 0 -2px 2px rgba(0, 0, 0, 0.3);
    position: relative;
}

/* Overall Card styling */
.album-card {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    min-width: 0;
    height: 100%;
}

/* MiniDisc Case Styling - distinct from text */
.minidisc-container {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.65) 0%, rgba(210, 230, 245, 0.3) 50%, rgba(255, 255, 255, 0.5) 100%);
    border: 1px solid rgba(255, 255, 255, 0.6);
    /* Stronger plastic edge artifacts */
    border-right: 3px solid rgba(255, 255, 255, 0.9);
    border-bottom: 3px solid rgba(255, 255, 255, 0.9);
    border-left: 1px solid rgba(255, 255, 255, 0.4);
    border-top: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 8px;
    padding: 0.6rem;
    position: relative;
    /* Glass/Plastic 3D effect rounded out */
    box-shadow:
        inset 4px 4px 6px rgba(255, 255, 255, 0.7),
        inset -4px -4px 6px rgba(0, 0, 0, 0.15),
        2px 2px 2px inset rgba(255, 255, 255, 1),
        4px 4px 10px rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    overflow: hidden;
    /* Keep internal elements contained */
    transition: transform 0.2s, box-shadow 0.2s;
}

/* The actual physical optical disc visible inside the transparent plastic */
.minidisc-container::before {
    content: '';
    position: absolute;
    top: 5%;
    left: 5%;
    right: 5%;
    width: 90%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: repeating-radial-gradient(circle,
            #2c353d 0px,
            #414d59 2px,
            #2c353d 4px);
    opacity: 0.9;
    /* Darker and more prominent */
    z-index: 0;
    pointer-events: none;
    box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.8), 0 0 5px rgba(0, 0, 0, 0.3);
}

/* Metallic shutter (bezel) on the center-right covering some of the disc/art */
.minidisc-container::after {
    content: 'MD-80';
    /* Fake corp logo / branding */
    position: absolute;
    top: 20%;
    bottom: 25%;
    right: 0;
    width: 35%;
    /* More X */
    background: linear-gradient(180deg, #7a7a7a 0%, #9e9e9e 10%, #8a8a8a 50%, #9e9e9e 90%, #7a7a7a 100%);
    /* Grey instead of white */
    border-radius: 2px 0 0 2px;
    box-shadow: inset 1px 0px 2px rgba(255, 255, 255, 0.4), -2px 0px 6px rgba(0, 0, 0, 0.4);
    border: 1px solid #555;
    border-right: none;
    z-index: 2;
    pointer-events: none;

    /* Styling the fake logo */
    display: flex;
    align-items: center;
    justify-content: center;
    color: #444;
    font-family: 'Courier New', monospace;
    font-size: 0.9rem;
    font-weight: bold;
    letter-spacing: 2px;
    writing-mode: vertical-rl;
    text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.2);
}

.album-card:hover .minidisc-container {
    transform: translateY(-2px);
    box-shadow:
        inset 4px 4px 6px rgba(255, 255, 255, 0.9),
        inset -4px -4px 6px rgba(0, 0, 0, 0.1),
        0px 0px 15px rgba(0, 204, 255, 0.6);
}

.album-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e0e0e0, #cccccc);
    display: flex;
    align-items: center;
    justify-content: center;
}

.album-placeholder::after {
    content: '🎵';
    font-size: 3rem;
    opacity: 0.3;
}

.album-artwork {
    width: 75%;
    /* Make it slightly smaller to look like a label sticker */
    aspect-ratio: 1;
    background-color: transparent;
    background-size: cover;
    background-position: center;
    border-radius: 2px;
    margin: 0 auto 0.2rem auto;
    position: relative;
    z-index: 1;
    /* Simulate a printed label glued to the plastic */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.album-info {
    flex-grow: 0;
    display: flex;
    flex-direction: column;
    padding: 0 0.2rem;
    gap: 0.2rem;
}

.info-toggle-container {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    flex-grow: 1;
}

.default-date {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 500;
    color: #8ce0ff;
    padding-top: 0.1rem;
    font-family: 'Tahoma', sans-serif;
    transition: opacity 0.25s ease-in-out, visibility 0.25s;
    z-index: 2;
    align-self: start;
}

.date-prefix {
    font-size: 0.6rem;
    color: #a0a0a0;
    margin-right: 0.3rem;
    letter-spacing: 0.05rem;
}

.album-card:hover .default-date {
    opacity: 0;
    visibility: hidden;
}

.hover-info {
    grid-column: 1;
    grid-row: 1;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease-in-out, visibility 0.25s;
    z-index: 1;
    width: 100%;
}

.album-card:hover .hover-info {
    opacity: 1;
    visibility: visible;
}

.hover-column-left,
.hover-column-right {
    display: flex;
    flex-direction: column;
    font-size: 0.65rem;
    font-weight: 700;
    font-family: 'Tahoma', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.01rem;
    line-height: 1.2;
    overflow: hidden;
}

.hover-column-left {
    text-align: left;
    align-items: flex-start;
}

.hover-column-right {
    text-align: right;
    align-items: flex-end;
    min-width: 45px;
}

.album-genre {
    color: #ffcc00;
    /* Yellow */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}

.album-style {
    color: #4cd137;
    /* Green */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}

.album-runtime {
    color: #ffffff;
    /* White */
    white-space: nowrap;
}

.album-year {
    color: #00ffcc;
    /* Cyan */
    white-space: nowrap;
}

.album-title {
    font-weight: 800;
    font-size: 0.95rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #dbeaff;
    /* Lighter text for the dark binder background */
}

.album-artist {
    color: #9cb1ce;
    /* Lighter muted text */
    font-size: 0.85rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.album-stats {
    margin-top: 0.4rem;
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    font-weight: bold;
    color: #8ce0ff;
    padding-top: 0.4rem;
    border-top: 1px dashed rgba(255, 255, 255, 0.4);
    font-family: 'Tahoma', sans-serif;
    position: relative;
    z-index: 1;
}

.loading,
.error {
    text-align: center;
    grid-column: 1 / -1;
    padding: 2rem;
    color: var(--muted);
    font-size: 1rem;
}

.error {
    color: #e22134;
}

/* Upload Interface - Onboarding */
.onboarding-layout {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 2rem;
    padding: 1rem 2rem 2rem 2rem;
    width: 100%;
    perspective: 1500px;
}

.acrylic-arrow {
    font-family: 'Helvetica Neue', Arial, sans-serif;
    color: #333;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 10;
}

.export-arrow {
    background: radial-gradient(circle at top left, rgba(255, 180, 235, 0.7), rgba(255, 50, 180, 0.6));
    backdrop-filter: blur(10px) saturate(120%);
    -webkit-backdrop-filter: blur(10px) saturate(120%);
    clip-path: polygon(3% 0%, 25% 1%, 50% 0%, 75% 1%, 97% 0%,
            95% 15%, 98% 30%, 94% 45%, 97% 60%, 95% 75%,
            100% 75%, 50% 100%, 0% 75%,
            5% 75%, 3% 60%, 6% 45%, 2% 30%, 5% 15%);
    padding: 2.5rem 1.5rem 5rem 1.5rem;
    filter:
        drop-shadow(-2px -2px 0px rgba(255, 255, 255, 0.9)) drop-shadow(2px 2px 0px rgba(255, 255, 255, 0.4)) drop-shadow(4px 4px 0px #8a005c) drop-shadow(6px 6px 0px #5c003d) drop-shadow(8px 8px 10px rgba(0, 0, 0, 0.5));
    transform: rotate(-2deg);
    margin-top: 1rem;
    max-width: 320px;
    font-size: 0.95rem;
}

.export-arrow .instructions-content {
    text-align: left;
}

.upload-arrow {
    background: radial-gradient(circle at bottom right, rgba(255, 235, 100, 0.9), rgba(255, 200, 40, 0.7));
    backdrop-filter: blur(10px) saturate(120%);
    -webkit-backdrop-filter: blur(10px) saturate(120%);
    clip-path: polygon(50% 0%, 100% 25%,
            95% 25%, 97% 40%, 94% 55%, 98% 70%, 95% 85%, 97% 100%,
            75% 97%, 50% 100%, 25% 97%, 3% 100%,
            5% 85%, 2% 70%, 6% 55%, 3% 40%, 5% 25%,
            0% 25%);
    padding: 5.5rem 1.5rem 1rem 1.5rem;
    filter:
        drop-shadow(-2px -2px 0px rgba(255, 255, 255, 0.9)) drop-shadow(2px 2px 0px rgba(255, 255, 255, 0.4)) drop-shadow(4px 4px 0px #b89600) drop-shadow(6px 6px 0px #8a7000) drop-shadow(8px 8px 10px rgba(0, 0, 0, 0.5));
    transform: rotate(2deg);
    max-width: 380px;
    font-size: 0.95rem;
}

.upload-arrow .upload-box {
    text-align: center;
}

.export-arrow h2,
.upload-arrow h2 {
    color: #222;
    text-transform: uppercase;
    font-family: 'Syncopate', sans-serif;
    font-size: 0.9rem;
    margin-bottom: 1.2rem;
    letter-spacing: 1px;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.8);
    line-height: 1.2;
}

.export-arrow ol,
.export-arrow p,
.upload-arrow p {
    color: #222;
    font-weight: 600;
    font-size: 0.85rem;
    line-height: 1.4;
}

.export-arrow ol {
    margin-left: 1.2rem;
}

.export-arrow ol li {
    margin-bottom: 0.6rem;
}

.instructions-content strong {
    color: #fff;
    background: #cc00a3;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
}

.instructions-content a {
    text-decoration: none;
    display: inline-block;
    transition: transform 0.2s, filter 0.2s;
}

.instructions-content a:hover {
    transform: scale(1.05);
    filter: brightness(1.2);
}

/* Miniature Minidiscs for Payoff Grid */
.minidisc-container.mini {
    width: 100%;
    height: 100%;
    padding: 3px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.minidisc-container.mini::before {
    top: 5px;
    bottom: 5px;
    left: 5px;
    right: 5px;
    width: auto;
    height: auto;
    aspect-ratio: auto;
}

.minidisc-container.mini::after {
    font-size: 0.5rem;
    content: 'MD';
    letter-spacing: 1px;
}

/* Generic text overlays acting as album art */
.cover-text {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 10;
    line-height: 1;
    display: flex;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
    box-sizing: border-box;
}

.cover-text.style-1 {
    /* Centered, large bold sans-serif */
    align-items: center;
    justify-content: center;
    font-size: 0.6rem;
    font-family: 'Arial Black', sans-serif;
    color: #fff;
    text-transform: uppercase;
    text-shadow: 2px 2px 0px #ff0055, -1px -1px 0px #00ffff;
}

.cover-text.style-2 {
    /* Top left serif, small */
    padding: 3px;
    align-items: flex-start;
    justify-content: flex-start;
    font-size: 0.4rem;
    font-family: 'Times New Roman', serif;
    font-style: italic;
    color: #f0f0f0;
}

.cover-text.style-3 {
    /* Bottom right, big condensed */
    padding: 3px;
    align-items: flex-end;
    justify-content: flex-end;
    font-size: 0.5rem;
    font-family: 'Impact', sans-serif;
    color: #ffff00;
    text-align: right;
    letter-spacing: 1px;
}

.cover-text.style-4 {
    /* Centered big transparent outline text */
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-family: 'Syncopate', sans-serif;
    color: transparent;
    -webkit-text-stroke: 0.5px white;
    text-shadow: none;
    transform: rotate(-15deg);
}

.cover-text.style-5 {
    /* Top right, modern, bold */
    padding: 3px 5px;
    align-items: flex-start;
    justify-content: flex-end;
    font-size: 0.35rem;
    font-family: 'Inter', 'Helvetica Neue', sans-serif;
    font-weight: 800;
    color: #ff9900;
    text-align: right;
    letter-spacing: 2px;
}

.inner-hardware-panel {
    background: linear-gradient(to bottom, #d0d5d9, #9ba3a9);
    border-radius: 8px;
    padding: 2rem;
    box-shadow: inset 1px 1px 2px #fff, inset -1px -1px 3px rgba(0, 0, 0, 0.4), 0 4px 10px rgba(0, 0, 0, 0.6);
    border: 1px solid #555;
}

.upload-box {
    text-align: center;
    width: 85%;
    margin: 0 auto;
}

.upload-options {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 1.5rem 1rem;
}

.upload-options p {
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
}

.demo-inline {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 0.5rem;
}

.demo-inline span {
    font-size: 0.75rem;
    font-weight: 800;
    color: #8c7000;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.small-btn {
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    border-radius: 12px;
}

.alt-btn {
    background: linear-gradient(180deg, #fff 0%, #ffeb99 100%);
    border-color: #cca300;
}

.alt-btn:hover {
    background: linear-gradient(180deg, #fff 0%, #ffdb4d 100%);
}

/* Deck counter LCD module */
/* Header deck counter */
.header-deck-counter {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: auto;
    margin-right: 1.5rem;
    font-family: 'Courier New', monospace;
    background: #9dbb92;
    border: 3px inset #8eab83;
    border-radius: 6px;
    padding: 0.3rem 0.8rem;
    box-shadow:
        inset 2px 2px 5px rgba(0, 0, 0, 0.15),
        1px 1px 0 rgba(255, 255, 255, 0.9);
}

.header-deck-num {
    font-size: 1rem;
    font-weight: bold;
    color: #3b4e34;
    letter-spacing: 0.05em;
    min-width: 3ch;
    text-align: center;
    display: inline-block;
}

.header-deck-total {
    color: #3b4e34;
    font-size: 0.88rem;
    opacity: 0.7;
}

.header-deck-sep {
    font-size: 0.9rem;
    color: #3b4e34;
    padding: 0 0.1rem;
    opacity: 0.6;
}

/* Flip animation triggered by JS adding .flip class */
@keyframes lcdFlip {
    0% {
        transform: rotateX(0deg);
        opacity: 1;
    }

    35% {
        transform: rotateX(90deg);
        opacity: 0;
    }

    65% {
        transform: rotateX(-90deg);
        opacity: 0;
    }

    100% {
        transform: rotateX(0deg);
        opacity: 1;
    }
}

.header-deck-num.flip {
    animation: lcdFlip 0.22s ease-in-out;
}

/* Tab tooltip wrapper */
.page-turn-tab-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tab-disabled-tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 6px);
    right: 0;
    background: #1a1a1a;
    color: #ccc;
    font-size: 0.72rem;
    padding: 5px 9px;
    border-radius: 4px;
    white-space: nowrap;
    border: 1px solid #444;
    pointer-events: none;
    z-index: 100;
}

.page-turn-tab-wrapper:hover .tab-disabled-tooltip {
    display: block;
}

.privacy-note-wrapper {
    position: relative;
    display: inline-block;
    margin-top: 1rem;
}

.privacy-icon {
    font-size: 0.75rem;
    color: #444;
    cursor: pointer !important;
    text-decoration: underline;
    text-decoration-style: dotted;
}

.privacy-tooltip {
    visibility: hidden;
    width: 200px;
    background-color: #333;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 8px;
    position: absolute;
    z-index: 100;
    bottom: 150%;
    left: 50%;
    margin-left: -100px;
    font-size: 0.75rem;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: opacity 0.3s;
}

.privacy-tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
}

.privacy-note-wrapper:hover .privacy-tooltip,
.privacy-note-wrapper.active .privacy-tooltip {
    visibility: visible;
    opacity: 1;
}

.upload-box h2 {
    color: #4a5c6d;
    font-family: 'Syncopate', 'Arial Black', sans-serif;
    font-size: 1.1rem;
    margin-bottom: 1rem;
    text-transform: uppercase;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.8);
    letter-spacing: 1px;
}

.upload-box p {
    color: #333;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
    line-height: 1.4;
    text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.5);
}

/* Payoff Device (3rd Column) */
.payoff-device {
    background: linear-gradient(135deg, #e6e9ec 0%, #aeb8c3 50%, #85929E 100%);
    border-radius: 12px;
    padding: 10px;
    box-shadow:
        15px 15px 25px rgba(0, 0, 0, 0.4),
        inset -2px -2px 5px rgba(0, 0, 0, 0.2),
        inset 2px 2px 6px #fff;
    border: 1px solid #fff;
    border-right: 2px solid #555;
    border-bottom: 2px solid #555;
    transform: rotate(2deg) translateY(10px);
    margin-top: 1rem;
    z-index: 5;
    min-width: 250px;
}

.device-bezel {
    background: linear-gradient(180deg, #333, #111);
    border-radius: 6px;
    padding: 15px;
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8), 0 1px 1px rgba(255, 255, 255, 0.4);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.device-screen {
    background: radial-gradient(circle at center, #1a2a3a 0%, #080d12 100%);
    border-radius: 4px;
    border: 1px solid #000;
    box-shadow: inset 0 0 15px rgba(0, 150, 255, 0.1);
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}

.device-screen::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 40%, transparent 60%, rgba(255, 255, 255, 0.02) 100%);
    pointer-events: none;
    z-index: 10;
}

.payoff-header {
    text-align: center;
    padding: 1rem 0.5rem;
    border-bottom: 1px solid rgba(0, 200, 255, 0.2);
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.6), transparent);
}

.payoff-header h2 {
    font-family: 'Syncopate', sans-serif;
    color: #4dd2ff;
    font-size: 0.9rem;
    letter-spacing: 1px;
    margin-bottom: 4px;
    text-shadow: 0 0 5px rgba(77, 210, 255, 0.5);
}

.payoff-header span {
    font-size: 0.75rem;
    color: #a4b5c7;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: lowercase;
}

.payoff-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    padding: 10px;
    flex: 1;
    background: rgba(0, 0, 0, 0.4);
}

.grid-cell {
    aspect-ratio: 1;
    background-size: cover;
    background-position: center;
    border-radius: 2px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
    filter: saturate(1.2) contrast(1.1);
}

.grid-cell.c1 {
    background: linear-gradient(135deg, #ff0055, #ffaa00);
}

.grid-cell.c2 {
    background: linear-gradient(135deg, #00ffcc, #0055ff);
}

.grid-cell.c3 {
    background: linear-gradient(135deg, #cc00ff, #5500ff);
}

.grid-cell.c4 {
    background: linear-gradient(135deg, #ffcc00, #ff0055);
}

.grid-cell.c5 {
    background: linear-gradient(135deg, #00ccff, #00ff55);
}

.grid-cell.c6 {
    background: linear-gradient(135deg, #ff00cc, #ff5500);
}

.grid-cell.c7 {
    background: linear-gradient(135deg, #aa00ff, #ff00aa);
}

.grid-cell.c8 {
    background: linear-gradient(135deg, #55ff00, #00aaff);
}

.grid-cell.c9 {
    background: linear-gradient(135deg, #ff5500, #ffcc00);
}

.upload-box code {
    background: rgba(255, 255, 255, 0.5);
    padding: 2px 4px;
    border-radius: 3px;
    color: #004477;
    font-weight: bold;
}

.upload-status-text {
    font-family: 'Verdana', sans-serif;
    font-size: 0.85rem;
    font-weight: bold;
    color: #0088cc;
    margin-top: 1rem;
    height: 1.2rem;
}

.upload-progress-bar {
    width: 100%;
    height: 12px;
    background: #9dbb92;
    border-radius: 6px;
    margin-top: 0.5rem;
    overflow: hidden;
    border: 2px inset #8eab83;
}

.upload-progress-fill {
    height: 100%;
    width: 0%;
    background: #4dd2ff;
    box-shadow: 0 0 10px #4dd2ff;
    transition: width 0.3s ease;
}

/* Floating upload status overlay */
.upload-status-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.2s ease;
}

.upload-status-popup {
    background: #0d1f0d;
    border: 1.5px solid #2a7a2a;
    border-radius: 8px;
    padding: 1.5rem 2rem;
    min-width: 320px;
    max-width: 480px;
    text-align: center;
    box-shadow: 0 0 30px rgba(0, 200, 100, 0.25);
}

.upload-status-popup .upload-status-text {
    color: #00cc66;
    font-family: 'Courier New', monospace;
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

/* Loading Placeholder Animation */
.loading-pulse {
    background: rgba(255, 255, 255, 0.1);
    animation: placeholderPulse 1.5s infinite ease-in-out;
}

@keyframes placeholderPulse {
    0% {
        opacity: 0.5;
    }

    50% {
        opacity: 1;
    }

    100% {
        opacity: 0.5;
    }
}

/* Dual Range Slider Styles */
.dual-range-slider-container {
    position: relative;
    width: 100%;
    height: 30px;
    margin-top: 10px;
    display: flex;
    align-items: center;
}

.dual-slider {
    position: absolute;
    width: 100%;
    pointer-events: none;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
}

.dual-slider::-webkit-slider-thumb {
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.min-slider {
    z-index: 1;
}

.max-slider {
    z-index: 2;
}

/* Base slider track for dual slider to show the "line" */
.dual-range-slider-container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 10px;
    /* Accounts for thumb width to prevent overhang */
    right: 10px;
    height: 6px;
    margin-top: -3px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255, 255, 255, 0.2);
    z-index: 0;
}

/* Genre Chiclet Selector */
.chiclet-selector {
    position: relative;
    margin-top: 5px;
}

.chiclet-dock {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    background: rgba(0, 0, 0, 0.1);
    border: 1px inset rgba(0, 0, 0, 0.2);
    padding: 6px;
    border-radius: 8px;
    min-height: 36px;
    max-height: 90px;
    overflow-y: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: flex-start;
}

.chiclet-tag {
    background: rgba(26, 41, 20, 0.1);
    color: #1a2914;
    font-size: 0.85rem;
    padding: 2px 6px;
    border-radius: 2px;
    border: 1px solid rgba(26, 41, 20, 0.3);
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: bold;
    text-transform: uppercase;
    box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.1), 1px 1px 0 rgba(255, 255, 255, 0.3);
}

.chiclet-tag-remove {
    cursor: pointer;
    font-weight: bold;
    color: #1a2914;
    opacity: 0.6;
    transition: opacity 0.2s, color 0.2s;
}

.chiclet-tag-remove:hover {
    opacity: 1;
    color: #fff;
}

.chiclet-input {
    flex: 1;
    min-width: 100px;
    background: transparent;
    border: none;
    outline: none;
    font-family: inherit;
    font-size: 0.8rem;
    color: #1a2914;
    font-weight: bold;
    padding: 2px;
}

.chiclet-input::placeholder {
    color: rgba(26, 41, 20, 0.5);
    font-weight: normal;
    font-style: italic;
}

.chiclet-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 8px;
    background: rgba(255, 255, 255, 0.4);
    /* Enhanced translucent bubble */
    backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 16px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
    max-height: 450px;
    overflow-y: auto;
    z-index: 100;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    align-content: flex-start;
    gap: 8px;
    padding: 16px;
    width: 500px;
}

.genre-search-container {
    width: 100%;
    margin-bottom: 12px;
    position: sticky;
    top: -16px;
    /* Stick to top of padding */
    z-index: 10;
    padding: 4px 0;
    background: transparent;
}

.genre-search-input {
    width: 100%;
    padding: 10px 14px;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(5px);
    color: #1a2914;
    font-family: 'Verdana', sans-serif;
    font-size: 0.9rem;
    outline: none;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.genre-search-input:focus {
    background: rgba(255, 255, 255, 0.4);
    border-color: rgba(255, 255, 255, 0.8);
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
}

.genre-search-input::placeholder {
    color: rgba(26, 41, 20, 0.6);
}

/* Bubble style items */
.chiclet-dropdown-item {
    font-family: 'Verdana', sans-serif;
    font-weight: bold;
    cursor: pointer;
    color: #333;
    border-radius: 30px;
    /* Pill shapes */
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), filter 0.1s;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    text-align: center;
    position: relative;
    border: 2px solid rgba(255, 255, 255, 0.8);
    margin: 2px;
}

.chiclet-dropdown-item:hover {
    transform: scale(1.1);
    filter: brightness(1.1);
    z-index: 10;
}

/* Reconstitute Sparkle Animation */
@keyframes popInSparkle {
    0% {
        transform: scale(0.1) rotate(-15deg);
        opacity: 0;
        filter: brightness(2) drop-shadow(0 0 10px white);
    }

    50% {
        transform: scale(1.2) rotate(5deg);
        opacity: 1;
        filter: brightness(1.5) drop-shadow(0 0 5px white);
    }

    100% {
        transform: scale(1) rotate(0deg);
        opacity: 1;
        filter: brightness(1);
    }
}

.chiclet-pop-in {
    animation: popInSparkle 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes popOutSparkle {
    0% {
        transform: scale(1) rotate(0deg);
        opacity: 1;
        filter: brightness(1);
    }

    30% {
        transform: scale(1.1) rotate(-5deg);
        filter: brightness(1.5) drop-shadow(0 0 5px white);
    }

    100% {
        transform: scale(0.1) rotate(15deg);
        opacity: 0;
        filter: brightness(2) drop-shadow(0 0 10px white);
    }
}

/* Album Card Exclude Button */
.album-card {
    position: relative;
}

.album-exclude-btn {
    position: absolute;
    top: -5px;
    right: -5px;
    width: 24px;
    height: 24px;
    background: #e22134;
    color: white;
    border: 2px solid white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.2s, transform 0.2s;
    z-index: 20;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4);
}

.album-card:hover .album-exclude-btn {
    opacity: 1;
}

.album-exclude-btn:hover {
    transform: scale(1.1);
    background: #ff3344;
}

/* Modal Styles */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-content {
    min-width: 400px;
    max-width: 90%;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid rgba(0, 0, 0, 0.2);
    padding-bottom: 10px;
    margin-bottom: 10px;
}

.modal-body {
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.exclusion-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(255, 255, 255, 0.2);
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

.exclusion-info {
    display: flex;
    flex-direction: column;
}

.exclusion-album {
    font-family: Tahoma, sans-serif;
    font-weight: bold;
    color: #111;
    font-size: 0.9rem;
}

.exclusion-artist {
    font-family: Tahoma, sans-serif;
    color: #333;
    font-size: 0.8rem;
}

/* ========================================================================= */
/* MOBILE LANDING PAGE (OPTION 5: ULTRA-MINIMAL LCD)                         */
/* ========================================================================= */

#mobile-landing {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 100vw;
    background-color: #cce7fd;
    gap: 20px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999999;
}

.mobile-lcd {
    background: #8fa688;
    border: 3px solid #2b3a42;
    border-radius: 4px;
    padding: 20px 30px;
    color: #1a2914;
    font-family: 'Syncopate', sans-serif;
    font-size: 1.2rem;
    text-transform: uppercase;
    box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.2), 2px 2px 0px rgba(255, 255, 255, 0.5);
    text-align: center;
    width: 90%;
    max-width: 400px;
}

@media (max-width: 768px) {

    #desktop-app,
    #tamagotchi-cursor {
        display: none !important;
    }

    #mobile-landing {
        display: flex;
    }

    body {
        background-color: #cce7fd;
        overflow: hidden;
    }
}