/* ============================================= */
/* NEONMOSS — Opera GX Grid Sorcery Edition */
/* ============================================= */
@import url('https://fonts.googleapis.com/css2?family=Jacquard+24&display=swap');

* {
    box-sizing: border-box;
}
html, body {
    height: 100%;
    margin: 0;
}
body {
    background: #0a0014;
    background-image: url('witch-pixel-bg.png');
    background-repeat: repeat;
    background-size: 480px 480px;
    background-position: top left;
    image-rendering: pixelated;
    color: #e0bbff;
    font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, Georgia, serif;
    line-height: 1.6;
    padding: 0;
}

/* GRID LAYOUT — much stabler in GX */
.site-wrapper {
    display: grid;
    grid-template-columns: 235px 1fr;
    max-width: 1220px;
    margin: 30px auto;
    gap: 28px;
    padding: 0 30px;
    align-items: start;
    min-height: calc(100vh - 60px);
}

/* SIDE PANEL */
.side-panel {
    width: 235px;
    background: rgba(42, 0, 77, 0.92);
    border: 6px double #337357;
    padding: 25px 20px;
    box-shadow: 0 0 40px #4b0082;
    color: #e0bbff;
    height: fit-content;
}
.side-panel h3 {
    color: #337357;
    text-align: center;
    font-family: 'Jacquard 24', serif;
    margin-bottom: 20px;
    letter-spacing: 2px;
    text-shadow: 3px 3px 0 #2a004d;
}
.side-panel ul {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}
.side-panel li {
    margin: 14px 0;
}
.side-panel a {
    color: #EE4266;
    text-decoration: none;
    transition: all 0.3s ease;
    display: block;
}
.side-panel a:hover,
.side-panel a.active {
    color: #FFD23F;
    text-shadow: 0 0 8px #337357;
    padding-left: 6px;
}

/* MOON PHASE + NOTE */
.moon-phase {
    text-align: center;
    margin: 25px 0 30px;
    padding: 12px;
    border-top: 1px dotted #EE4266;
    border-bottom: 1px dotted #EE4266;
}
.phase {
    font-size: 1.35rem;
    color: #FFD23F;
    margin: 8px 0 0;
}
.side-note {
    font-size: 0.9rem;
    text-align: center;
    opacity: 0.85;
    font-style: italic;
}

/* ORIGINAL GRIMOIRE CONTAINER */
.container {
    background: rgba(42, 0, 77, 0.92);
    border: 6px double #337357;
    padding: 30px;
    box-shadow: 0 0 40px #4b0082;
    max-width: 800px;
    width: 100%;
}
.main-title {
    font-size: 5rem;
    text-align: center;
    color: #337357;
    font-family: 'Jacquard 24', serif;
    letter-spacing: 0.06em;
    text-shadow: 5px 5px 0 #2a004d, 8px 8px 0 #1a0033;
    margin: 10px 0 5px;
}
.subtitle {
    text-align: center;
    color: #FFD23F;
    font-style: italic;
    margin-bottom: 25px;
}
main { text-align: center; }
main p { color: #FFD23F; }
h2 {
    color: #EE4266;
    text-align: center;
}
footer {
    text-align: center;
    margin-top: 50px;
    padding-top: 20px;
    border-top: 2px dotted #EE4266;
    font-size: 0.95rem;
}

/* RESPONSIVE — triggers earlier for GX sidebar gremlins */
@media (max-width: 1100px) {
    .site-wrapper {
        grid-template-columns: 1fr;
        max-width: 860px;
        padding: 20px;
        margin: 20px auto;
    }
    .side-panel {
        width: 100%;
    }
}
.side-panel:hover,
.container:hover {
    box-shadow: 0 0 55px #4b0082;
}

/* ====================== ABOUT PAGE STYLES ====================== */
.about-content {
    padding: 2rem 0;
}
.about-content h2.glitch {
    font-size: 3rem;
    color: #ff00ff;
    text-shadow: 0 0 10px #ff00ff,
                 3px 3px 0 #00ffff,
                 -3px -3px 0 #ffff00;
    margin-bottom: 1.5rem;
}
.bio-card {
    background: rgba(20, 5, 40, 0.85);
    border: 2px solid #9f6bff;
    border-radius: 12px;
    padding: 2rem;
    margin: 2rem 0;
    box-shadow: 0 0 30px #6b00ff44;
    backdrop-filter: blur(6px);
}
.bio-card p, .bio-card li {
    color: #e0d0ff;
    line-height: 1.75;
    font-size: 1.1rem;
}
.self-portrait {
    max-width: 320px;
    border: 4px solid #c300ff;
    border-radius: 12px;
    image-rendering: pixelated;
    box-shadow: 0 0 40px #ff00ff88;
    display: block;
    margin: 2rem auto;
}
.glow:hover {
    animation: pulse-glow 1.8s infinite alternate;
}
@keyframes pulse-glow {
    from { filter: brightness(1) drop-shadow(0 0 15px #ff00ff); }
    to { filter: brightness(1.4) drop-shadow(0 0 35px #00ffff); }
}

/* ============================================= */
/* ALL SIDEBAR NAV LINKS — FULL YELLOW NEON GLOW */
/* ============================================= */
.side-panel a {
    color: #FFD23F !important;
    text-shadow:
        0 0 8px #EE4266,
        0 0 18px #ff00ff,
        0 0 30px #00ffff,
        0 0 45px #FFD23F;
    transition: all 0.4s ease;
    display: block;
}
.side-panel a:hover,
.side-panel a.active {
    color: #FFD23F !important;
    text-shadow:
        0 0 10px #EE4266,
        0 0 22px #ff00ff,
        0 0 35px #00ffff,
        0 0 50px #FFD23F,
        0 0 65px #FFD23F;
    filter: brightness(1.35);
    transform: translateX(4px);
}

/* ────────────────────────────────────────────── */
/* CUSTOM PIXEL CRYSTAL CURSOR — smaller & deadly */
/* ────────────────────────────────────────────── */
body {
    cursor: none;
}
.custom-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 36px;
    height: 48px;
    pointer-events: none;
    z-index: 99999;
    user-select: none;
    background-image: url('/crystal-cursor.png');
    background-size: contain;
    background-repeat: no-repeat;
    image-rendering: crisp-edges;
    transform: translate(-22%, -88%);
    filter: drop-shadow(0 0 8px #337357)
            drop-shadow(0 0 14px #337357)
            drop-shadow(0 0 24px #EE4266);
    animation: crystalPulse 1.6s infinite ease-in-out;
    transition: transform 0.07s ease;
}
@keyframes crystalPulse {
    0%, 100% { transform: translate(-22%, -88%) scale(1); }
    50% { transform: translate(-22%, -88%) scale(1.08); }
}
/* flares brighter on links */
a:hover ~ .custom-cursor,
button:hover ~ .custom-cursor,
.custom-cursor.hovering {
    animation-duration: 0.45s;
    filter: drop-shadow(0 0 12px #FFD23F)
            drop-shadow(0 0 22px #FFD23F)
            drop-shadow(0 0 32px #EE4266);
}
/* ────────────────────────────────────────────── */
/* KILL THE DEFAULT CURSOR ON LINKS & INTERACTIVE STUFF */
/* ────────────────────────────────────────────── */
a,
button,
.side-panel li,
.side-panel a,
.container * {
    cursor: none !important;
}

/* ============================================= */
/* OBSESSION ARCANA — Neon Tarot Flip Cards      */
/* ============================================= */
.arcana-title {
    font-family: 'Jacquard 24', serif;
    color: #FFD23F;
    text-align: center;
    font-size: 1.8rem;
    margin: 2.5rem 0 1.5rem;
    text-shadow: 0 0 15px #EE4266;
    letter-spacing: 3px;
}

.obsession-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    margin: 2rem 0;
}

.tarot-card {
    perspective: 1200px;
    height: 320px;
}

.card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.7s cubic-bezier(0.23, 1, 0.32, 1);
    transform-style: preserve-3d;
    box-shadow: 0 0 35px #4b0082;
    border-radius: 16px;
}

.tarot-card:hover .card-inner {
    transform: rotateY(180deg);
}

.card-front,
.card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    border: 5px double #337357;
    border-radius: 16px;
    backface-visibility: hidden;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(20, 5, 40, 0.95);
    overflow: hidden;
}

.card-front {
    background: linear-gradient(145deg, rgba(42, 0, 77, 0.95), rgba(20, 5, 40, 0.95));
}

.card-back {
    transform: rotateY(180deg);
    background: linear-gradient(145deg, rgba(30, 0, 55, 0.95), rgba(10, 0, 30, 0.95));
    color: #e0d0ff;
}

.card-emoji {
    font-size: 4.5rem;
    margin-bottom: 1rem;
    display: block;
    filter: drop-shadow(0 0 20px #FFD23F);
    transition: transform 0.4s ease;
}

.tarot-card:hover .card-emoji {
    transform: scale(1.15) rotate(12deg);
}

.card-front h4 {
    font-family: 'Jacquard 24', serif;
    font-size: 1.65rem;
    color: #FFD23F;
    margin: 0.5rem 0 0.3rem;
    text-shadow: 0 0 12px #EE4266;
}

.card-label {
    font-size: 0.95rem;
    color: #9f6bff;
    font-style: italic;
    letter-spacing: 1px;
    opacity: 0.9;
}

.card-back p {
    font-size: 1.02rem;
    line-height: 1.55;
    color: #e0bbff;
    max-height: 180px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #9f6bff #2a004d;
}

/* Extra glow on the whole grid */
.obsession-grid .tarot-card:hover {
    filter: brightness(1.15);
}

/* ============================================= */
/* JACQUARD 24 — SOFTENED & BREATHING (less bold) */
/* ============================================= */
.main-title {
    font-size: 4.75rem;
    letter-spacing: 0.09em;
    text-shadow: 
        4px 4px 0 #2a004d, 
        6px 6px 0 #1a0033;
}

.side-panel h3 {
    font-size: 1.85rem;
    letter-spacing: 3px;
    text-shadow: 2px 2px 0 #2a004d;
}

.arcana-title {
    font-size: 1.65rem;
    letter-spacing: 3.5px;
}

.tarot-card .card-front h4 {
    font-size: 1.5rem;
    letter-spacing: 2px;
}

/* Extra polish — makes the whole font family feel lighter on hover too */
.main-title:hover,
.side-panel h3:hover,
.arcana-title:hover {
    filter: brightness(1.1);
}