:root {
    --fd-ink: #1f172b;
    --fd-muted: #756d7e;
    --fd-purple: #3d1c6d;
    --fd-purple-dark: #291047;
    --fd-purple-soft: #f4effa;
    --fd-gold: #ffbf00;
    --fd-line: #eae3f0;
    --fd-canvas: #faf9fc;
}

* { box-sizing: border-box; }

::selection { background: rgba(255, 191, 0, .35); color: var(--fd-purple-dark); }

body {
    color: var(--fd-ink);
    background: var(--fd-canvas);
}

a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(255, 191, 0, .42);
    outline-offset: 2px;
}

.fd-container {
    width: min(100% - 2rem, 1240px);
    margin-inline: auto;
}

.fd-section { padding-block: clamp(3.5rem, 7vw, 6rem); }

.fd-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .75rem;
    border-radius: 999px;
    color: var(--fd-purple);
    background: var(--fd-purple-soft);
    font-size: .72rem;
    font-weight: 900;
}

.fd-title {
    color: var(--fd-ink);
    font-size: clamp(1.7rem, 3vw, 2.65rem);
    font-weight: 950;
    line-height: 1.35;
    letter-spacing: -.025em;
}

.fd-copy {
    color: var(--fd-muted);
    font-size: .9rem;
    line-height: 1.95;
}

.fd-surface {
    background: rgba(255,255,255,.96);
    border: 1px solid var(--fd-line);
    border-radius: 1.5rem;
    box-shadow: 0 14px 40px rgba(45, 24, 64, .055);
}

.fd-card {
    background: #fff;
    border: 1px solid var(--fd-line);
    border-radius: 1.25rem;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.fd-card:hover {
    transform: translateY(-3px);
    border-color: rgba(61, 28, 109, .22);
    box-shadow: 0 18px 42px rgba(45, 24, 64, .09);
}

.fd-button-primary, .fd-button-secondary {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: .75rem 1.2rem;
    border-radius: .9rem;
    font-size: .82rem;
    font-weight: 900;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.fd-button-primary {
    color: #fff;
    background: var(--fd-purple);
    box-shadow: 0 10px 24px rgba(61, 28, 109, .2);
}

.fd-button-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(61, 28, 109, .27); }

.fd-button-secondary {
    color: var(--fd-purple);
    background: #fff;
    border: 1px solid var(--fd-line);
}

.fd-button-secondary:hover { background: var(--fd-purple-soft); }

.fd-panel-main {
    background: radial-gradient(circle at 10% 10%, rgba(255,191,0,.1), transparent 26%),
        linear-gradient(135deg, #fbf9ff, #fff 55%, #fffaf0);
}

.fd-dashboard-shell {
    background: linear-gradient(145deg, #f8f5fb 0%, #fff 44%, #fffaf0 100%);
}

@media (max-width: 640px) {
    .fd-container { width: min(100% - 1.25rem, 1240px); }
    .fd-section { padding-block: 3.25rem; }
    .fd-surface { border-radius: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
