/* ==========================================================================
   LANDING PAGE
   ========================================================================== */

/* The home page has no single instrument, so theme the shared Quick Guide
   modal (see css/shared.css) with the app's own brand purple instead of a
   per-tool accent. */
:root { --tool-rgb: 124, 111, 224; --tool-light-rgb: 194, 182, 255; }

/* Twinkling stars / pulsing orbs / drifting notes now live site-wide in
   shared.css (see "Site-wide atmosphere fx" block), not just here. */

.hero {
    max-width: 1050px;
    margin: 40px auto 0;
    padding: 40px 32px 34px;
    text-align: center;
    background: var(--glass);
    backdrop-filter: var(--blur-lg);
    -webkit-backdrop-filter: var(--blur-lg);
    border: 1px solid var(--glass-border);
    border-top: 1px solid rgba(232, 184, 106, 0.35);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-deep);
    animation: hero-fade-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.04s both;
}

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e8b86a;
    margin-bottom: 14px;
}

.hero h1 {
    font-family: var(--font-display);
    font-size: clamp(28px, 4.6vw, 42px);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.01em;
    margin: 0 0 16px;
}

.hero h1 em {
    font-style: normal;
    background: linear-gradient(120deg, var(--purple-l), var(--gold));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.hero p {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.65;
    color: var(--text2);
    max-width: 560px;
    margin: 0 auto 8px;
}

@keyframes hero-fade-up {
    from { opacity: 0; transform: translateY(14px) scale(0.99); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Five-line "staff" divider — literal reference to sheet-music staff lines,
   used once here as the hero's signature element. */
.hero-staff {
    width: 220px;
    margin: 34px auto 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.hero-staff span {
    display: block;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border2) 20%, var(--border2) 80%, transparent);
}

/* ── Tool hub grid ────────────────────────────────────────────────────── */
.hub {
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px 24px 80px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    animation: hero-fade-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.13s both;
}




.hub-card {
    --c: var(--purple);
    --c-rgb: 124, 111, 224;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px 20px 20px;
    border-radius: 20px;
    /* Each card's color now shows at rest, not just on hover — a subtle
       tint blended into the same dark card base, plus a solid top edge
       in that card's own color (guitar's amethyst, bass's teal, etc). */
    background:
        linear-gradient(150deg, rgba(var(--c-rgb),.14), transparent 60%),
        linear-gradient(150deg, #161319, #1b1720);
    border: 1px solid rgba(var(--c-rgb), .22);
    border-top: 3px solid rgb(var(--c-rgb));
    overflow: hidden;
    will-change: transform;
    box-shadow: 0 10px 0 rgba(0,0,0,0.35), 0 14px 30px rgba(0,0,0,0.5);
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.25s var(--ease),
                background 0.25s var(--ease),
                border-color 0.25s var(--ease);
}

.hub-card:hover,
.hub-card:focus-visible {
    transform: translateY(-6px) rotate(-1deg);
    box-shadow: 0 14px 0 rgba(0,0,0,0.45), 0 26px 48px rgba(0,0,0,0.7);
    border-color: rgba(var(--c-rgb), .5);
    background:
        linear-gradient(150deg, rgba(var(--c-rgb),0.9), rgba(var(--c2-rgb, var(--c-rgb)),0.85)),
        linear-gradient(150deg, #161319, #1b1720);
    background-blend-mode: overlay, normal;
}
/* Full-color wash on hover needs the title back to plain white rather
   than the (now low-contrast) tinted color it uses at rest. */
.hub-card:hover .hub-card-title,
.hub-card:focus-visible .hub-card-title {
    color: var(--text);
}

.hub-card:active {
    transform: translateY(-2px) rotate(0deg);
    box-shadow: 0 6px 0 rgba(0,0,0,0.35), 0 10px 20px rgba(0,0,0,0.45);
}

.hub-card-icon {
    position: relative;
    z-index: 1;
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    font-size: 30px;
    line-height: 1;
    background: linear-gradient(160deg, rgba(var(--c-rgb),.9), rgba(var(--c-rgb),.55));
    box-shadow: 0 0 18px rgba(var(--c-rgb),.4), inset 0 1px 0 rgba(255,255,255,.25);
}
.hub-card-icon-img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    filter: drop-shadow(0 2px 3px rgba(0,0,0,0.35));
}

.hub-card-title {
    position: relative;
    z-index: 1;
    font-family: var(--font-display);
    font-size: 19px;
    font-weight: 600;
    color: rgb(var(--c2-rgb, var(--c-rgb)));
}

.hub-card-desc {
    position: relative;
    z-index: 1;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--text2);
}

.hub-card-string {
    display: none;
}

.hub-card--guitar   { --c-rgb: 102,64,232;  --c2-rgb: 165,140,245; }
.hub-card--bass     { --c-rgb: 46,196,182;  --c2-rgb: 110,230,215; }
.hub-card--keyboard { --c-rgb: 56,189,248;  --c2-rgb: 130,220,255; }
.hub-card--chords   { --c-rgb: 195,77,255;  --c2-rgb: 230,175,255; }
.hub-card--tools    { --c-rgb: 124,141,176; --c2-rgb: 170,185,215; }
.hub-card--tips     { --c-rgb: 255,209,102; --c2-rgb: 255,159,111; }

@media (max-width: 768px) {
    /* Mobile-only 5% font-size reduction (auto-generated). Desktop keeps
       the original sizes; this block only fires under 768px. */
    .hero-eyebrow { font-size: 12.5px; }
    .hero h1 { font-size: clamp(28.5px, 5.2vw, 43.5px); }
    .hero p { font-size: 18px; }
    .hub-card-icon { font-size: 19px; }
    .hub-card-title { font-size: 16px; }
    .hub-card-desc { font-size: 13px; }
}
