* { font-family: 'Special Elite', cursive; box-sizing: border-box; }

/* Hides real mouse everywhere */
html, body, button, select, span, input { cursor: none !important; }

body { 
    margin: 0; height: 100vh; display: flex; justify-content: center; align-items: center;
    overflow: hidden; background-color: var(--bg); transition: background 0.3s;
}

/* THEMES */
.theme-y2k { --bg: #00FFCC; --shell: rgba(255,255,255,0.2); --btn: #fff; --lcd: #00FFCC; --txt: #000; }
.theme-cookies { --bg: #F5F5DC; --shell: #EADDCA; --btn: #5C4033; --lcd: #98FF98; --txt: #fff; }
.theme-city { --bg: #1a1a2e; --shell: #16213e; --btn: #0f3460; --lcd: #e94560; --txt: #fff; }
.theme-food { --bg: #ff9f43; --shell: #feca57; --btn: #ee5253; --lcd: #fff; --txt: #fff; }
.theme-plant { --bg: #2D5A27; --shell: rgba(255,255,255,0.2); --btn: #F8C8DC; --lcd: #E0B0FF; --txt: #2D5A27; }
.theme-music { --bg: #121212; --shell: rgba(255,255,255,0.1); --btn: #0077FF; --lcd: #FF00FF; --txt: #fff; }

body.dark-mode { filter: brightness(0.7) contrast(1.2); background-color: #111 !important; }

/* THE FIX: pointer-events: none allows clicking through the emojis */
#wallpaper-overlay {
    position: fixed; inset: 0; z-index: -1; opacity: 0.15;
    font-size: 40px; display: flex; flex-wrap: wrap; pointer-events: none;
}

#custom-cursor {
    position: fixed; top: 0; left: 0; font-size: 35px; 
    pointer-events: none !important; 
    z-index: 100000;
    transform: translate(-50%, -50%);
    user-select: none;
}

.calc-shell {
    background: var(--shell); backdrop-filter: blur(15px);
    border: 5px solid white; border-radius: 30px; padding: 20px;
    width: 350px; position: relative; transition: width 0.5s ease;
    z-index: 10;
}
.calc-shell.expanded { width: 550px; }

.header-controls { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }

#avatar-circle {
    width: 60px; height: 60px; border-radius: 50%; border: 3px solid white;
    display: flex; align-items: center; justify-content: center; font-size: 32px;
}

#advanced-tab {
    position: absolute; right: -40px; top: 50px; background: white; color: black;
    padding: 10px 5px; border-radius: 0 10px 10px 0; font-size: 10px; writing-mode: vertical-rl;
}

.screen-container {
    background: #1a1a1a; padding: 20px; border-radius: 15px;
    text-align: right; border: 4px inset #333; margin-bottom: 15px;
}
#main-display { font-family: 'Bungee', cursive; font-size: 30px; color: var(--lcd); }

.calc-body { display: flex; gap: 15px; }
.keypad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; flex: 1; }
#advanced-panel { width: 0; overflow: hidden; opacity: 0; transition: 0.5s; }
.calc-shell.expanded #advanced-panel { width: 180px; opacity: 1; }
.adv-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }

.key {
    height: 50px; border-radius: 10px; border: none; font-weight: bold;
    background: var(--btn); color: var(--txt); border-bottom: 4px solid rgba(0,0,0,0.3);
}
.key:active { transform: translateY(3px); border-bottom: 1px solid transparent; }
.equal { grid-row: span 2; height: 110px; background: #FF00FF; color: #fff; }
.zero { grid-column: span 2; }

#avatar-picker {
    position: absolute; z-index: 200; background: white; padding: 15px;
    border-radius: 20px; color: black; width: 90%; left: 5%; top: 10%;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
.picker-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; font-size: 28px; text-align: center; }
.picker-grid span { padding: 5px; display: block; }
.hidden { display: none; }