:root {
    --bg-primary: #050505;
    --bg-hover: rgba(255, 255, 255, 0.025);
    --border-dim: #151515;
    --border-hover: #252525;
    --text-primary: #e0e0e0;
    --text-secondary: #999999;
    --text-dim: #444444;
    --text-muted: #666666;
    --text-ghost: #1e1e1e;
    --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: "JetBrains Mono", Consolas, "Courier New", monospace;
    --glow-soft: 0 0 30px rgba(255, 255, 255, 0.03);
    --glow-hover: 0 0 40px rgba(255, 255, 255, 0.05);
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    font-family: var(--font-sans);
    min-height: 100vh;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    opacity: 0;
    animation: body-fade-in 0.6s var(--ease-out-expo) 0.05s forwards;
}

@keyframes body-fade-in {
    to { opacity: 1; }
}

*, *::before, *::after {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Ccircle cx='6' cy='6' r='2.5' fill='%23ffffff' opacity='0.6'/%3E%3C/svg%3E") 6 6, auto !important;
}

:focus-visible {
    outline: 1px solid var(--text-dim);
    outline-offset: 3px;
}

:focus:not(:focus-visible) {
    outline: none;
}

::selection {
    background: transparent;
    color: var(--text-primary);
}

::-moz-selection {
    background: transparent;
    color: var(--text-primary);
}

body {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}

@media print {
    body { display: none !important; }
}
