/* CSS Custom Properties */
:root {
    --gold: #D7D876;
    --dark: #000000;
    --gray-dark: #333333;
    --gray-light: #444444;
}

/* Base Styles */
* {
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Input Styles */
input::placeholder {
    color: #6b7280; /* gray-500 */
    opacity: 1;
}

input:focus {
    border-color: rgba(215, 216, 118, 0.5) !important;
    box-shadow: 0 0 20px rgba(215, 216, 118, 0.15);
}

/* Button Styles */
button {
    cursor: pointer;
    font-weight: 500;
}

.bg-gold {
    background-color: var(--gold);
}

button:hover {
    opacity: 0.9;
}

button:active {
    transform: scale(0.98);
}

button:focus {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

/* Message Animations */
.message {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: opacity 300ms ease-in-out, max-height 300ms ease-in-out;
}

.message.show {
    opacity: 1;
    max-height: 200px;
}

.message.hidden {
    opacity: 0;
    max-height: 0;
}

/* Error Shake Animation */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}

.shake {
    animation: shake 0.5s ease-in-out;
}

/* Utility Classes */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.border-gold {
    border-color: var(--gold);
}

.bg-gold {
    background-color: var(--gold);
}

.text-gold {
    color: var(--gold);
}

.text-gold-light {
    color: #e8e9a8;
}

.text-black {
    color: #000000;
}

.active\:scale-98:active {
    transform: scale(0.98);
}

/* Ellipsis Cursor Effect (optional enhancement) */
.ellipsis::after {
    content: '';
    display: inline-block;
    width: 0;
    opacity: 0;
}

/* Smooth Transitions */
* {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

input,
button {
    transition-duration: 200ms;
}

/* Mobile Touch Improvements */
@media (max-width: 640px) {
    input,
    button {
        min-height: 44px; /* Minimum touch target size */
        font-size: 16px; /* Prevents iOS zoom on focus */
    }
}

/* Responsive Logo Sizing */
img {
    user-select: none;
    -webkit-user-drag: none;
}
