/* ── Shared supplemental styles (Tailwind CDN handles the bulk) ──────────── */

/* ---------- Gradients & glass ---------- */
.gradient-text {
    background: linear-gradient(135deg, var(--brand-500), var(--brand-300), var(--brand-400));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.glass {
    background: color-mix(in srgb, var(--surface-800) 60%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

/* ---------- Animations ---------- */
.fade-in {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Floating hero icons */
.hero-glow {
    position: absolute;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.12;
    pointer-events: none;
}
@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-12px) rotate(5deg); }
}
.floating-icon { animation: float 4s ease-in-out infinite; }

/* Card hover lift */
.card-hover {
    transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}
.card-hover:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--brand-500) 10%, transparent), 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* ---------- Search overlay ---------- */
.search-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(10, 10, 20, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    align-items: flex-start;
    justify-content: center;
    padding-top: 15vh;
}
.search-overlay.active {
    display: flex;
}

/* ---------- Code tabs ---------- */
.code-tab {
    cursor: pointer;
    transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.code-tab.active {
    color: var(--brand-400);
    border-color: var(--brand-400);
}
.code-pane {
    display: none;
}
.code-pane.active {
    display: block;
}

/* ---------- Method badges ---------- */
.method-get { background: rgba(34, 197, 94, 0.12); color: #22c55e; }
.method-post { background: rgba(59, 130, 246, 0.12); color: #3b82f6; }
.method-put { background: rgba(245, 158, 11, 0.12); color: #f59e0b; }
.method-delete { background: rgba(239, 68, 68, 0.12); color: #ef4444; }

/* ---------- Category accent colors (DevTools) ---------- */
.accent-format { border-color: rgba(99, 102, 241, 0.35); }
.accent-format:hover { border-color: #6366f1; }
.accent-crypto { border-color: rgba(168, 85, 247, 0.35); }
.accent-crypto:hover { border-color: #a855f7; }
.accent-generate { border-color: rgba(236, 72, 153, 0.35); }
.accent-generate:hover { border-color: #ec4899; }
.accent-parse { border-color: rgba(14, 165, 233, 0.35); }
.accent-parse:hover { border-color: #0ea5e9; }
.accent-text { border-color: rgba(34, 197, 94, 0.35); }
.accent-text:hover { border-color: #22c55e; }
.accent-template { border-color: rgba(245, 158, 11, 0.35); }
.accent-template:hover { border-color: #f59e0b; }
.accent-image { border-color: rgba(244, 63, 94, 0.35); }
.accent-image:hover { border-color: #f43f5e; }
.accent-llm { border-color: rgba(139, 92, 246, 0.35); }
.accent-llm:hover { border-color: #8b5cf6; }
.accent-transform { border-color: rgba(6, 182, 212, 0.35); }
.accent-transform:hover { border-color: #06b6d4; }
.accent-scrape { border-color: rgba(249, 115, 22, 0.35); }
.accent-scrape:hover { border-color: #f97316; }
.accent-mock { border-color: rgba(132, 204, 22, 0.35); }
.accent-mock:hover { border-color: #84cc16; }
.accent-network { border-color: rgba(99, 102, 241, 0.35); }
.accent-network:hover { border-color: #6366f1; }

/* ---------- Prose-style article content ---------- */
.prose-content h2 { margin-top: 2.5rem; margin-bottom: 1rem; font-size: 1.5rem; font-weight: 700; }
.prose-content h3 { margin-top: 2rem; margin-bottom: 0.75rem; font-size: 1.25rem; font-weight: 600; }
.prose-content p { margin-bottom: 1.25rem; line-height: 1.85; }
.prose-content pre {
    background: var(--surface-900);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 0.5rem;
    padding: 1.25rem;
    overflow-x: auto;
    margin-bottom: 1.5rem;
    font-size: 0.875rem;
}
.prose-content code {
    font-family: 'JetBrains Mono', monospace;
    background: rgba(255, 255, 255, 0.04);
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.875em;
}
.prose-content pre code { background: none; padding: 0; }
.prose-content ul, .prose-content ol { padding-left: 1.75rem; margin-bottom: 1.25rem; }
.prose-content li { margin-bottom: 0.5rem; }
.prose-content a { color: var(--brand-400); text-decoration: underline; }
.prose-content blockquote {
    border-left: 3px solid var(--brand-500);
    padding: 1rem 1.5rem;
    margin: 1.25rem 0;
    background: color-mix(in srgb, var(--surface-800) 50%, transparent);
    border-radius: 0 0.5rem 0.5rem 0;
}

/* ---------- Responsive nav ---------- */
@media (max-width: 768px) {
    .nav-links-desktop { display: none !important; }
}

/* ---------- Demo widget ---------- */
#demo-response {
    max-height: 400px;
    overflow-y: auto;
}
