:root {
    --wow-gold: #f8b700;
    --wow-gold-light: #ffd700;
    --wow-text: #E5D8B1;
    --wow-text-dark: #A09172;
    --wow-bg-dark: #120d09;
    --warrior-color: #C79C6E;
    --paladin-color: #F58CBA;
    --hunter-color: #ABD473;
    --rogue-color: #FFF569;
    --priest-color: #FFFFFF;
    --shaman-color: #0070DE;
    --mage-color: #69CCF0;
    --warlock-color: #9482C9;
    --druid-color: #FF7D0A;
}

body {
    background-image: url('https://wallpapers.com/images/featured/wow-classic-y7rya4oidrxml5x8.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    font-family: 'Noto Sans SC', sans-serif;
    color: var(--wow-text);
}

#app-container {
    background-color: rgba(18, 13, 9, 0.7);
    min-height: 100vh;
}

.font-cinzel {
    font-family: 'Cinzel', serif;
}

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

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

.text-shadow-lg {
    text-shadow: 0 0 15px rgba(248, 183, 0, 0.7), 0 0 5px rgba(0, 0, 0, 0.9);
}
.text-shadow-md {
    text-shadow: 0 0 10px rgba(248, 183, 0, 0.5), 0 0 3px rgba(0, 0, 0, 0.9);
}

.parchment-container {
    background-image: url('https://i.pinimg.com/originals/a2/3a/22/a23a2254a433a010427cd573d1a49938.jpg');
    background-color: #f7e9c7;
    background-blend-mode: multiply;
    background-size: cover;
    color: #3a2e1c;
    border-style: solid;
    border-width: 25px;
    border-image: url('https://wow.zamimg.com/images/ui/textured-frame/basic-frame.png') 40 40 40 40 round;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.8);
    padding: 2rem;
}

.content-section {
    padding-bottom: 2rem;
    scroll-margin-top: 20px;
}

.section-title {
    font-family: 'Cinzel', serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: #553a1f;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #c8b795;
    padding-bottom: 0.5rem;
}

.content-subtitle {
    font-family: 'Cinzel', serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #6d4b27;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}

p, li {
    line-height: 1.8;
}

code {
    background-color: rgba(0,0,0,0.1);
    padding: 0.2em 0.4em;
    border-radius: 4px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 0.9em;
    color: #8b4513;
}

.code-block-wrapper {
    position: relative;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

pre {
    background-color: #2a2217;
    color: var(--wow-gold);
    padding: 1rem;
    border-radius: 5px;
    border: 1px solid #4a3a27;
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.5);
    white-space: pre-wrap;
    word-wrap: break-word;
    margin: 0;
}

pre code {
    background: none;
    padding: 0;
    color: inherit;
    font-size: 1em;
}

.copy-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background-color: #553a1f;
    color: var(--wow-gold-light);
    border: 1px solid var(--wow-text-dark);
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
    font-family: 'Noto Sans SC', sans-serif;
    font-size: 0.8rem;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    opacity: 0.7;
}

.copy-btn:hover {
    background-color: #6d4b27;
    color: #fff;
    opacity: 1;
    border-color: var(--wow-gold);
}

.copy-btn.copied {
    background-color: var(--hunter-color);
    color: var(--wow-bg-dark);
    border-color: var(--hunter-color);
    opacity: 1;
}

.macro-table {
    border-collapse: collapse;
    margin-top: 1.5rem;
    background-color: rgba(212, 189, 149, 0.3);
}

.macro-table th, .macro-table td {
    border: 1px solid #c8b795;
    padding: 0.75rem;
    text-align: left;
}

.macro-table th {
    background-color: rgba(93, 64, 34, 0.4);
    font-family: 'Cinzel', serif;
    font-size: 1.1rem;
    color: #4a3a27;
}

.divider {
    height: 3px;
    background-image: linear-gradient(to right, transparent, #c8b795, transparent);
    margin: 2rem 0;
}

.class-icon-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    transition: transform 0.2s ease-in-out;
}

.class-icon {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    border: 3px solid transparent;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    transition: all 0.2s ease-in-out;
}

.class-icon-link:hover .class-icon {
    border-color: var(--wow-gold-light);
    transform: scale(1.1);
    box-shadow: 0 0 20px var(--wow-gold);
}

.class-name {
    margin-top: 0.5rem;
    font-family: 'Noto Sans SC', sans-serif;
    font-weight: bold;
    color: #553a1f;
    transition: color 0.2s ease-in-out;
}

.class-icon-link:hover .class-name {
    color: var(--wow-gold-light);
    text-shadow: 0 0 5px var(--wow-gold);
}

.macro-block {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background-color: rgba(0,0,0,0.03);
    border: 1px dashed #d1c09e;
    border-radius: 8px;
}

.macro-title {
    font-family: 'Cinzel', serif;
    font-size: 1.25rem;
    font-weight: bold;
    color: #6d4b27;
    margin-bottom: 0.5rem;
}

.search-input {
    width: 100%;
    padding: 0.75rem 1.25rem;
    font-family: 'Noto Sans SC', sans-serif;
    font-size: 1.1rem;
    background-color: #3a2e1c;
    color: var(--wow-text);
    border: 2px solid var(--wow-text-dark);
    border-radius: 8px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.5), 0 1px 2px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
}

.search-input::placeholder {
    color: var(--wow-text-dark);
    opacity: 0.8;
}

.search-input:focus {
    outline: none;
    border-color: var(--wow-gold);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.5), 0 0 15px rgba(248, 183, 0, 0.5);
}

.class-title-warrior { color: var(--warrior-color); }
.class-title-paladin { color: var(--paladin-color); }
.class-title-hunter { color: var(--hunter-color); }
.class-title-rogue { color: var(--rogue-color); text-shadow: 0 0 1px #000; }
.class-title-priest { color: var(--priest-color); text-shadow: 0 0 1px #000; }
.class-title-shaman { color: var(--shaman-color); }
.class-title-mage { color: var(--mage-color); }
.class-title-warlock { color: var(--warlock-color); }
.class-title-druid { color: var(--druid-color); }

@media (max-width: 768px) {
    header {
        padding-top: 3rem;
        padding-bottom: 1.5rem;
    }
    header h1 {
        font-size: 2.2rem;
    }
    header h2 {
        font-size: 1.3rem;
    }
    .parchment-container {
        border-width: 15px;
        padding: 1rem;
    }
    .section-title {
        font-size: 1.75rem;
    }
    .content-subtitle {
        font-size: 1.25rem;
    }
    #class-macros-nav .grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
    }
    .class-icon {
        width: 70px;
        height: 70px;
    }
    .macro-block {
        padding: 1rem;
    }
    .search-input {
        font-size: 1rem;
        padding: 0.6rem 1rem;
    }
}

@media (max-width: 480px) {
    body {
        background-image: none;
        background-color: var(--wow-bg-dark);
    }
    header h1 {
        font-size: 1.8rem;
    }
    header h2 {
        font-size: 1.1rem;
    }
    .parchment-container {
        padding: 0.75rem;
        border-width: 12px;
    }
    #class-macros-nav .grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.75rem;
    }
    .class-icon {
        width: 60px;
        height: 60px;
    }
    .class-name {
        font-size: 0.8rem;
    }
    .macro-table th, .macro-table td {
        padding: 0.5rem;
        font-size: 0.85rem;
    }
    p, li {
        font-size: 0.95rem;
    }
}
