Qwen Qwen3.7 Plus – Hobbies and Interests

via Alibaba · Generated

  • AIMAC Debt 23.01
  • Cost $0.023
  • Total Violations 44
  • HTML Size 74 KB
  • Em Dashes 8

Screenshot

View Qwen Qwen3.7 Plus Hobbies and Interests page View Live Page

Accessibility Issues Found

4 Critical 40 Serious

  • color-contrast serious 40 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span>Where Passion Meets Craft</span>
  • label critical 2 instances

    Form elements must have labels

    Example HTML <input type="color" id="color1" value="#2d6a4f" onchange="generatePattern()">
  • select-name critical 2 instances

    Select element must have an accessible name

    Example HTML <select id="patternType" onchange="generatePattern()">

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CraftNexus — Where Passion Meets Craft</title>
    <style>
        :root {
            --primary: #2d6a4f;
            --primary-light: #40916c;
            --primary-dark: #1b4332;
            --accent: #d4a373;
            --accent-light: #e9c46a;
            --bg: #fefae0;
            --bg-white: #ffffff;
            --bg-light: #f8f5e6;
            --text: #2b2d42;
            --text-light: #555b6e;
            --text-muted: #89899a;
            --border: #e0ddd3;
            --shadow: 0 4px 20px rgba(0,0,0,0.08);
            --shadow-lg: 0 10px 40px rgba(0,0,0,0.12);
            --radius: 12px;
            --radius-sm: 8px;
            --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
            color: var(--text);
            background: var(--bg);
            line-height: 1.7;
            overflow-x: hidden;
        }

        /* Typography */
        h1, h2, h3, h4, h5 {
            font-weight: 700;
            line-height: 1.3;
        }

        h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); }
        h2 { font-size: clamp(1.8rem, 3.5vw, 2.5rem); }
        h3 { font-size: 1.3rem; }
        h4 { font-size: 1.1rem; }

        p { margin-bottom: 1rem; }

        a {
            color: var(--primary);
            text-decoration: none;
            transition: var(--transition);
        }

        a:hover { color: var(--primary-light); }

        img {
            max-width: 100%;
            height: auto;
            display: block;
        }

        /* Utility */
        .container {
            max-width: 1280px;
            margin: 0 auto;
            padding: 0 2rem;
        }

        .section {
            padding: 5rem 0;
        }

        .section-label {
            display: inline-block;
            background: var(--primary);
            color: white;
            padding: 0.3rem 1rem;
            border-radius: 20px;
            font-size: 0.8rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 1rem;
        }

        .section-title {
            margin-bottom: 1rem;
            color: var(--primary-dark);
        }

        .section-subtitle {
            color: var(--text-light);
            font-size: 1.1rem;
            max-width: 650px;
            margin-bottom: 3rem;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.85rem 1.8rem;
            border-radius: var(--radius-sm);
            font-weight: 600;
            font-size: 0.95rem;
            border: none;
            cursor: pointer;
            transition: var(--transition);
            text-decoration: none;
        }

        .btn-primary {
            background: var(--primary);
            color: white;
        }

        .btn-primary:hover {
            background: var(--primary-dark);
            color: white;
            transform: translateY(-2px);
            box-shadow: var(--shadow);
        }

        .btn-secondary {
            background: transparent;
            color: var(--primary);
            border: 2px solid var(--primary);
        }

        .btn-secondary:hover {
            background: var(--primary);
            color: white;
            transform: translateY(-2px);
        }

        .btn-accent {
            background: var(--accent);
            color: var(--text);
        }

        .btn-accent:hover {
            background: var(--accent-light);
            transform: translateY(-2px);
            box-shadow: var(--shadow);
        }

        /* Header */
        .header {
            background: var(--bg-white);
            border-bottom: 1px solid var(--border);
            position: sticky;
            top: 0;
            z-index: 1000;
            backdrop-filter: blur(10px);
            background: rgba(255,255,255,0.95);
        }

        .header-inner {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1rem 2rem;
            max-width: 1280px;
            margin: 0 auto;
        }

        .logo-area {
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }

        .logo-area img {
            width: 48px;
            height: 48px;
            border-radius: var(--radius-sm);
        }

        .logo-text h1 {
            font-size: 1.5rem;
            color: var(--primary-dark);
            line-height: 1.1;
        }

        .logo-text span {
            font-size: 0.75rem;
            color: var(--text-muted);
            font-weight: 400;
            letter-spacing: 0.5px;
        }

        .nav {
            display: flex;
            align-items: center;
            gap: 0.25rem;
        }

        .nav a {
            padding: 0.5rem 1rem;
            border-radius: var(--radius-sm);
            font-size: 0.9rem;
            font-weight: 500;
            color: var(--text);
            transition: var(--transition);
        }

        .nav a:hover {
            background: var(--bg-light);
            color: var(--primary);
        }

        .nav-cta {
            background: var(--primary) !important;
            color: white !important;
            margin-left: 0.5rem;
        }

        .nav-cta:hover {
            background: var(--primary-dark) !important;
            color: white !important;
        }

        .mobile-toggle {
            display: none;
            background: none;
            border: none;
            font-size: 1.5rem;
            cursor: pointer;
            color: var(--text);
        }

        /* Hero */
        .hero {
            background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-light) 100%);
            color: white;
            padding: 6rem 0;
            position: relative;
            overflow: hidden;
        }

        .hero::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -20%;
            width: 600px;
            height: 600px;
            background: rgba(255,255,255,0.03);
            border-radius: 50%;
        }

        .hero::after {
            content: '';
            position: absolute;
            bottom: -30%;
            left: -10%;
            width: 400px;
            height: 400px;
            background: rgba(212,163,115,0.1);
            border-radius: 50%;
        }

        .hero-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 4rem;
            align-items: center;
            position: relative;
            z-index: 1;
        }

        .hero-content h1 {
            color: white;
            margin-bottom: 1.5rem;
        }

        .hero-content p {
            font-size: 1.15rem;
            opacity: 0.9;
            margin-bottom: 2rem;
            line-height: 1.8;
        }

        .hero-buttons {
            display: flex;
            gap: 1rem;
            flex-wrap: wrap;
        }

        .hero-buttons .btn-secondary {
            border-color: white;
            color: white;
        }

        .hero-buttons .btn-secondary:hover {
            background: white;
            color: var(--primary-dark);
        }

        .hero-image {
            position: relative;
        }

        .hero-image img {
            border-radius: var(--radius);
            box-shadow: var(--shadow-lg);
        }

        .hero-stats {
            display: flex;
            gap: 2.5rem;
            margin-top: 2.5rem;
            padding-top: 2rem;
            border-top: 1px solid rgba(255,255,255,0.2);
        }

        .hero-stat h3 {
            font-size: 1.8rem;
            color: var(--accent-light);
        }

        .hero-stat p {
            font-size: 0.85rem;
            opacity: 0.8;
            margin: 0;
        }

        /* Categories Grid */
        .categories-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 1.5rem;
        }

        .category-card {
            background: var(--bg-white);
            border-radius: var(--radius);
            overflow: hidden;
            box-shadow: var(--shadow);
            transition: var(--transition);
            border: 1px solid var(--border);
        }

        .category-card:hover {
            transform: translateY(-5px);
            box-shadow: var(--shadow-lg);
        }

        .category-card img {
            width: 100%;
            height: 200px;
            object-fit: cover;
        }

        .category-card-body {
            padding: 1.5rem;
        }

        .category-card-body h3 {
            margin-bottom: 0.5rem;
            color: var(--primary-dark);
        }

        .category-card-body p {
            color: var(--text-light);
            font-size: 0.9rem;
            margin-bottom: 1rem;
        }

        .category-tag {
            display: inline-block;
            background: var(--bg-light);
            color: var(--primary);
            padding: 0.25rem 0.75rem;
            border-radius: 20px;
            font-size: 0.75rem;
            font-weight: 600;
            margin-right: 0.5rem;
        }

        /* Main Content with Sidebar */
        .content-layout {
            display: grid;
            grid-template-columns: 1fr 350px;
            gap: 3rem;
        }

        /* Tool Reviews Section */
        .review-card {
            background: var(--bg-white);
            border-radius: var(--radius);
            padding: 2rem;
            margin-bottom: 2rem;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
            display: grid;
            grid-template-columns: 200px 1fr;
            gap: 2rem;
            align-items: start;
        }

        .review-card img {
            border-radius: var(--radius-sm);
            width: 100%;
            height: 180px;
            object-fit: cover;
        }

        .review-rating {
            display: flex;
            gap: 0.2rem;
            margin-bottom: 0.75rem;
        }

        .star {
            color: var(--accent);
            font-size: 1.1rem;
        }

        .star.empty {
            opacity: 0.3;
        }

        .review-card h3 {
            margin-bottom: 0.5rem;
            color: var(--primary-dark);
        }

        .review-card p {
            color: var(--text-light);
            font-size: 0.95rem;
        }

        .review-meta {
            display: flex;
            gap: 1.5rem;
            margin-top: 1rem;
            font-size: 0.85rem;
            color: var(--text-muted);
        }

        /* Beginner Guides */
        .guide-list {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .guide-item {
            background: var(--bg-white);
            border-radius: var(--radius);
            padding: 1.75rem;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
            display: flex;
            gap: 1.5rem;
            align-items: flex-start;
            transition: var(--transition);
        }

        .guide-item:hover {
            border-color: var(--primary-light);
            box-shadow: var(--shadow-lg);
        }

        .guide-number {
            flex-shrink: 0;
            width: 48px;
            height: 48px;
            background: var(--primary);
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            font-size: 1.2rem;
        }

        .guide-content h3 {
            color: var(--primary-dark);
            margin-bottom: 0.5rem;
        }

        .guide-content p {
            color: var(--text-light);
            font-size: 0.9rem;
            margin-bottom: 0.75rem;
        }

        .guide-difficulty {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.8rem;
            color: var(--text-muted);
        }

        .difficulty-dots {
            display: flex;
            gap: 3px;
        }

        .difficulty-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--border);
        }

        .difficulty-dot.active {
            background: var(--primary);
        }

        /* Creator Spotlights */
        .creators-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
        }

        .creator-card {
            background: var(--bg-white);
            border-radius: var(--radius);
            overflow: hidden;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
            transition: var(--transition);
        }

        .creator-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-lg);
        }

        .creator-card img {
            width: 100%;
            height: 240px;
            object-fit: cover;
        }

        .creator-card-body {
            padding: 1.75rem;
        }

        .creator-card-body h3 {
            color: var(--primary-dark);
            margin-bottom: 0.25rem;
        }

        .creator-specialty {
            color: var(--accent);
            font-weight: 600;
            font-size: 0.85rem;
            margin-bottom: 1rem;
        }

        .creator-card-body p {
            color: var(--text-light);
            font-size: 0.9rem;
            margin-bottom: 1.25rem;
        }

        .creator-actions {
            display: flex;
            gap: 0.75rem;
        }

        /* Interactive Pattern Generator */
        .pattern-generator {
            background: var(--bg-white);
            border-radius: var(--radius);
            padding: 2.5rem;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
        }

        .pattern-controls {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .control-group label {
            display: block;
            font-weight: 600;
            font-size: 0.85rem;
            margin-bottom: 0.5rem;
            color: var(--text);
        }

        .control-group select,
        .control-group input[type="range"] {
            width: 100%;
            padding: 0.6rem;
            border: 1px solid var(--border);
            border-radius: var(--radius-sm);
            font-size: 0.9rem;
            background: var(--bg-light);
        }

        .control-group input[type="color"] {
            width: 100%;
            height: 40px;
            border: 1px solid var(--border);
            border-radius: var(--radius-sm);
            cursor: pointer;
        }

        .pattern-preview {
            width: 100%;
            height: 300px;
            border-radius: var(--radius-sm);
            border: 2px solid var(--border);
            overflow: hidden;
            position: relative;
        }

        .pattern-canvas {
            width: 100%;
            height: 100%;
            display: grid;
            grid-template-columns: repeat(var(--cols, 8), 1fr);
            grid-template-rows: repeat(var(--rows, 8), 1fr);
        }

        .pattern-cell {
            transition: var(--transition);
        }

        .pattern-actions {
            display: flex;
            gap: 1rem;
            margin-top: 1.5rem;
        }

        /* Sidebar */
        .sidebar {
            display: flex;
            flex-direction: column;
            gap: 2rem;
        }

        .sidebar-widget {
            background: var(--bg-white);
            border-radius: var(--radius);
            padding: 1.75rem;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
        }

        .sidebar-widget h4 {
            color: var(--primary-dark);
            margin-bottom: 1.25rem;
            padding-bottom: 0.75rem;
            border-bottom: 2px solid var(--bg-light);
        }

        .member-spotlight {
            display: flex;
            gap: 1rem;
            align-items: center;
            padding: 0.75rem 0;
            border-bottom: 1px solid var(--bg-light);
        }

        .member-spotlight:last-child {
            border-bottom: none;
        }

        .member-spotlight img {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            object-fit: cover;
        }

        .member-info h5 {
            font-size: 0.9rem;
            color: var(--text);
        }

        .member-info p {
            font-size: 0.8rem;
            color: var(--text-muted);
            margin: 0;
        }

        .popular-project {
            display: flex;
            gap: 1rem;
            padding: 0.75rem 0;
            border-bottom: 1px solid var(--bg-light);
            align-items: center;
        }

        .popular-project:last-child {
            border-bottom: none;
        }

        .popular-project img {
            width: 60px;
            height: 60px;
            border-radius: var(--radius-sm);
            object-fit: cover;
        }

        .popular-project h5 {
            font-size: 0.85rem;
            margin-bottom: 0.2rem;
        }

        .popular-project p {
            font-size: 0.75rem;
            color: var(--text-muted);
            margin: 0;
        }

        .event-item {
            padding: 1rem 0;
            border-bottom: 1px solid var(--bg-light);
        }

        .event-item:last-child {
            border-bottom: none;
            padding-bottom: 0;
        }

        .event-date {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            background: var(--primary);
            color: white;
            padding: 0.3rem 0.75rem;
            border-radius: 20px;
            font-size: 0.75rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .event-item h5 {
            font-size: 0.9rem;
            margin-bottom: 0.25rem;
        }

        .event-item p {
            font-size: 0.8rem;
            color: var(--text-muted);
            margin: 0;
        }

        /* Testimonials */
        .testimonials-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
            gap: 2rem;
        }

        .testimonial-card {
            background: var(--bg-white);
            border-radius: var(--radius);
            padding: 2rem;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
            position: relative;
        }

        .testimonial-card::before {
            content: '"';
            position: absolute;
            top: 1rem;
            right: 1.5rem;
            font-size: 4rem;
            color: var(--primary);
            opacity: 0.1;
            font-family: Georgia, serif;
            line-height: 1;
        }

        .testimonial-card p {
            color: var(--text-light);
            font-style: italic;
            margin-bottom: 1.5rem;
            line-height: 1.8;
        }

        .testimonial-author {
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .testimonial-author img {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            object-fit: cover;
        }

        .testimonial-author h5 {
            font-size: 0.9rem;
        }

        .testimonial-author span {
            font-size: 0.8rem;
            color: var(--text-muted);
        }

        /* FAQ */
        .faq-list {
            max-width: 800px;
        }

        .faq-item {
            background: var(--bg-white);
            border-radius: var(--radius);
            margin-bottom: 1rem;
            box-shadow: var(--shadow);
            border: 1px solid var(--border);
            overflow: hidden;
        }

        .faq-question {
            width: 100%;
            padding: 1.25rem 1.75rem;
            background: none;
            border: none;
            text-align: left;
            font-size: 1rem;
            font-weight: 600;
            color: var(--text);
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            transition: var(--transition);
        }

        .faq-question:hover {
            color: var(--primary);
        }

        .faq-icon {
            font-size: 1.5rem;
            transition: var(--transition);
            color: var(--primary);
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease, padding 0.3s ease;
        }

        .faq-answer.open {
            max-height: 300px;
            padding: 0 1.75rem 1.5rem;
        }

        .faq-answer p {
            color: var(--text-light);
            font-size: 0.95rem;
            line-height: 1.8;
        }

        .faq-item.active .faq-icon {
            transform: rotate(45deg);
        }

        /* Footer */
        .footer {
            background: var(--primary-dark);
            color: white;
            padding: 4rem 0 2rem;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            gap: 3rem;
            margin-bottom: 3rem;
        }

        .footer-brand p {
            opacity: 0.8;
            font-size: 0.9rem;
            margin-top: 1rem;
            line-height: 1.8;
        }

        .footer h4 {
            margin-bottom: 1.25rem;
            font-size: 1rem;
            color: var(--accent-light);
        }

        .footer-links {
            list-style: none;
        }

        .footer-links li {
            margin-bottom: 0.6rem;
        }

        .footer-links a {
            color: rgba(255,255,255,0.7);
            font-size: 0.9rem;
            transition: var(--transition);
        }

        .footer-links a:hover {
            color: white;
            padding-left: 5px;
        }

        .footer-social {
            display: flex;
            gap: 0.75rem;
            margin-top: 1.5rem;
        }

        .footer-social a {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: rgba(255,255,255,0.1);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 1.1rem;
            transition: var(--transition);
        }

        .footer-social a:hover {
            background: var(--accent);
            color: var(--text);
            transform: translateY(-3px);
        }

        .footer-bottom {
            border-top: 1px solid rgba(255,255,255,0.1);
            padding-top: 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 0.85rem;
            opacity: 0.7;
        }

        .footer-bottom-links {
            display: flex;
            gap: 1.5rem;
        }

        .footer-bottom-links a {
            color: rgba(255,255,255,0.7);
        }

        .footer-bottom-links a:hover {
            color: white;
        }

        /* Responsive */
        @media (max-width: 1024px) {
            .content-layout {
                grid-template-columns: 1fr;
            }

            .sidebar {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            }

            .footer-grid {
                grid-template-columns: 1fr 1fr;
            }
        }

        @media (max-width: 768px) {
            .hero-grid {
                grid-template-columns: 1fr;
                gap: 2rem;
            }

            .hero {
                padding: 4rem 0;
            }

            .hero-stats {
                gap: 1.5rem;
            }

            .nav {
                display: none;
            }

            .mobile-toggle {
                display: block;
            }

            .review-card {
                grid-template-columns: 1fr;
            }

            .review-card img {
                height: 200px;
            }

            .pattern-controls {
                grid-template-columns: 1fr;
            }

            .footer-grid {
                grid-template-columns: 1fr;
            }

            .footer-bottom {
                flex-direction: column;
                gap: 1rem;
                text-align: center;
            }

            .creators-grid {
                grid-template-columns: 1fr;
            }
        }

        /* Animations */
        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .animate-in {
            animation: fadeInUp 0.6s ease forwards;
        }

        /* Newsletter */
        .newsletter-bar {
            background: linear-gradient(135deg, var(--accent), var(--accent-light));
            padding: 3rem 0;
        }

        .newsletter-inner {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 2rem;
            flex-wrap: wrap;
        }

        .newsletter-inner h3 {
            font-size: 1.5rem;
            color: var(--primary-dark);
        }

        .newsletter-inner p {
            color: var(--text-light);
            margin: 0;
        }

        .newsletter-form {
            display: flex;
            gap: 0.75rem;
        }

        .newsletter-form input {
            padding: 0.85rem 1.25rem;
            border: 2px solid transparent;
            border-radius: var(--radius-sm);
            font-size: 0.95rem;
            width: 280px;
            background: white;
        }

        .newsletter-form input:focus {
            outline: none;
            border-color: var(--primary);
        }
    </style>
</head>
<body>

    <!-- Header -->
    <header class="header">
        <div class="header-inner">
            <div class="logo-area">
                <img src="https://placehold.co/48x48/2d6a4f/ffffff?text=CN&font=montserrat" alt="CraftNexus Logo">
                <div class="logo-text">
                    <h1>CraftNexus</h1>
                    <span>Where Passion Meets Craft</span>
                </div>
            </div>
            <nav class="nav">
                <a href="#categories">Explore</a>
                <a href="#forums">Forums</a>
                <a href="#events">Events</a>
                <a href="#resources">Resources</a>
                <a href="#workshops">Workshops</a>
                <a href="#marketplace">Marketplace</a>
                <a href="#about">About</a>
                <a href="#join" class="nav-cta">Join Free</a>
            </nav>
            <button class="mobile-toggle" aria-label="Toggle menu">☰</button>
        </div>
    </header>

    <!-- Hero Section -->
    <section class="hero">
        <div class="container">
            <div class="hero-grid">
                <div class="hero-content">
                    <h1>Discover Your Next Creative Obsession</h1>
                    <p>Join a thriving community of over 45,000 makers, collectors, and creative enthusiasts. From hand-building ceramics to restoring vintage timepieces, CraftNexus connects you with the tools, knowledge, and people who share your passion for making extraordinary things by hand.</p>
                    <div class="hero-buttons">
                        <a href="#explore" class="btn btn-accent">Explore Communities</a>
                        <a href="#start" class="btn btn-secondary">Start Your First Project</a>
                    </div>
                    <div class="hero-stats">
                        <div class="hero-stat">
                            <h3>45K+</h3>
                            <p>Active Members</p>
                        </div>
                        <div class="hero-stat">
                            <h3>12K+</h3>
                            <p>Shared Projects</p>
                        </div>
                        <div class="hero-stat">
                            <h3>380+</h3>
                            <p>Expert Guides</p>
                        </div>
                        <div class="hero-stat">
                            <h3>95</h3>
                            <p>Craft Disciplines</p>
                        </div>
                    </div>
                </div>
                <div class="hero-image">
                    <img src="https://picsum.photos/600/450?blur=1" alt="Craftsperson working on handmade pottery at their workshop bench">
                </div>
            </div>
        </div>
    </section>

    <!-- Categories Section -->
    <section class="section" id="categories">
        <div class="container">
            <span class="section-label">Explore</span>
            <h2 class="section-title">Find Your Creative Community</h2>
            <p class="section-subtitle">Whether you're drawn to the tactile satisfaction of woodworking or the meditative precision of cross-stitch, there's a community here waiting for you. Each space is moderated by experienced practitioners who love sharing their craft.</p>

            <div class="categories-grid">
                <div class="category-card">
                    <img src="https://picsum.photos/400/200?random=1" alt="Woodworking tools and handcrafted furniture pieces">
                    <div class="category-card-body">
                        <h3>Woodworking & Carpentry</h3>
                        <p>From beginner-friendly whittling projects to advanced furniture joinery, explore techniques for material sourcing, grain selection, and finishing. Our woodworkers share everything from workshop setups to custom design blueprints.</p>
                        <span class="category-tag">2,340 members</span>
                        <span class="category-tag">156 projects</span>
                    </div>
                </div>
                <div class="category-card">
                    <img src="https://picsum.photos/400/200?random=2" alt="Colorful textile arts including knitting and weaving">
                    <div class="category-card-body">
                        <h3>Textile Arts & Fiber Crafts</h3>
                        <p>Dive into knitting, weaving, embroidery, quilting, and natural dyeing. Learn about fiber sourcing from sustainable farms, loom setup for handmade textiles, and how to develop your own custom design patterns from scratch.</p>
                        <span class="category-tag">3,120 members</span>
                        <span class="category-tag">289 projects</span>
                    </div>
                </div>
                <div class="category-card">
                    <img src="https://picsum.photos/400/200?random=3" alt="Ceramics and pottery workshop with clay pieces">
                    <div class="category-card-body">
                        <h3>Ceramics & Pottery</h3>
                        <p>Hand-building, wheel throwing, glaze chemistry, and kiln firing techniques. Our ceramicists cover everything from sourcing the right clay bodies to achieving perfect reduction atmospheres. Share your handmade pieces and get expert feedback.</p>
                        <span class="category-tag">1,890 members</span>
                        <span class="category-tag">203 projects</span>
                    </div>
                </div>
                <div class="category-card">
                    <img src="https://picsum.photos/400/200?random=4" alt="Vintage collectibles and antique restoration">
                    <div class="category-card-body">
                        <h3>Collecting & Restoration</h3>
                        <p>Whether you collect vintage watches, rare books, mid-century furniture, or antique tools — connect with fellow enthusiasts who understand the thrill of the hunt. Learn authentication methods, restoration techniques, and proper preservation.</p>
                        <span class="category-tag">4,560 members</span>
                        <span class="category-tag">89 collections</span>
                    </div>
                </div>
                <div class="category-card">
                    <img src="https://picsum.photos/400/200?random=5" alt="DIY electronics and maker projects">
                    <div class="category-card-body">
                        <h3>DIY Electronics & Making</h3>
                        <p>Arduino projects, custom PCB design, LED installations, and smart home builds. Our maker community bridges the gap between traditional craft and modern technology. Source components, share schematics, and collaborate on builds.</p>
                        <span class="category-tag">2,780 members</span>
                        <span class="category-tag">178 projects</span>
                    </div>
                </div>
                <div class="category-card">
                    <img src="https://picsum.photos/400/200?random=6" alt="Paper crafts, bookbinding, and origami">
                    <div class="category-card-body">
                        <h3>Paper Arts & Bookbinding</h3>
                        <p>Explore hand bookbinding, origami engineering, paper marbling, letterpress printing, and custom journal making. Learn about paper sourcing, archival materials, and how to create stunning handmade books and stationery.</p>
                        <span class="category-tag">1,450 members</span>
                        <span class="category-tag">134 projects</span>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Main Content with Sidebar -->
    <section class="section" id="resources" style="background: var(--bg-light);">
        <div class="container">
            <div class="content-layout">
                <main>
                    <!-- Tool Reviews -->
                    <div style="margin-bottom: 4rem;">
                        <span class="section-label">Expert Reviews</span>
                        <h2 class="section-title">Tool & Material Reviews</h2>
                        <p class="section-subtitle">Our community of experienced makers puts tools and materials through rigorous real-world testing. Every review includes long-term durability assessments, value analysis, and comparison with alternatives in the same price range.</p>

                        <div class="review-card">
                            <img src="https://picsum.photos/200/180?random=10" alt="Premium Japanese chisel set review">
                            <div>
                                <div class="review-rating">
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                </div>
                                <h3>Aldi 6-Piece Japanese Chisel Set — 6 Months Later</h3>
                                <p>After half a year of daily use in my workshop, these chisel sets continue to impress. The high-carbon steel holds an edge remarkably well through hardwoods like white oak and hard maple. The hollow-ground backs flatten quickly, and the laminated construction shows no signs of delamination. For the price point, these outperform chisels costing three times as much. The only caveat is that the hoops need occasional reseating after heavy mallet work.</p>
                                <div class="review-meta">
                                    <span>👤 Reviewed by Marcus T.</span>
                                    <span>📅 March 2024</span>
                                    <span>💬 47 comments</span>
                                </div>
                            </div>
                        </div>

                        <div class="review-card">
                            <img src="https://picsum.photos/200/180?random=11" alt="Natural dye material sourcing guide">
                            <div>
                                <div class="review-rating">
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star empty">★</span>
                                </div>
                                <h3>Botanical Dye Kit Comparison: Sustainable Fiber Arts</h3>
                                <p>We tested five commercially available natural dye kits against sourcing your own materials from local foraging. The Botanical Dye Kit from Fiber Arts Co. provides consistent results with their pre-mordanted fiber bundles and clearly labeled dye extracts. The indigo vat was particularly well-formulated. However, experienced dyers may find the quantities limiting for larger projects. We recommend this kit for those beginning their journey into natural color, while veteran dyers will get better value from direct material sourcing.</p>
                                <div class="review-meta">
                                    <span>👤 Reviewed by Elena K.</span>
                                    <span>📅 February 2024</span>
                                    <span>💬 32 comments</span>
                                </div>
                            </div>
                        </div>

                        <div class="review-card">
                            <img src="https://picsum.photos/200/180?random=12" alt="Portable pottery wheel review">
                            <div>
                                <div class="review-rating">
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star">★</span>
                                    <span class="star empty">★</span>
                                </div>
                                <h3>Speedball Artista Portable Wheel — Studio Test</h3>
                                <p>This portable wheel has become my go-to for demonstrations and workshops. The variable speed control is surprisingly smooth, and the motor handles up to 8 lbs of clay without stalling. The splash pan design is well-thought-out, though cleanup could be easier. For serious studio work, you'll want a heavier wheel, but for learning, travel, and small-scale production of handmade vessels, this delivers excellent value. The included tool kit is basic but functional for getting started.</p>
                                <div class="review-meta">
                                    <span>👤 Reviewed by Priya S.</span>
                                    <span>📅 January 2024</span>
                                    <span>💬 58 comments</span>
                                </div>
                            </div>
                        </div>

                        <a href="#more-reviews" class="btn btn-secondary">View All Reviews →</a>
                    </div>

                    <!-- Beginner Guides -->
                    <div>
                        <span class="section-label">Learn</span>
                        <h2 class="section-title">Beginner's Path Guides</h2>
                        <p class="section-subtitle">Every master was once a beginner. Our structured learning paths break down complex crafts into manageable steps, with video tutorials, material lists, and community support at every stage. Start where you are and progress at your own pace.</p>

                        <div class="guide-list">
                            <div class="guide-item">
                                <div class="guide-number">1</div>
                                <div class="guide-content">
                                    <h3>Your First Dovetail Joint: A Complete Walkthrough</h3>
                                    <p>Master the hallmark of fine woodworking with this comprehensive guide. We cover marking gauge setup, saw selection for different wood species, chisel techniques for waste removal, and how to achieve that satisfying hand-fit that requires no glue. By the end, you'll understand grain direction, how to tune your tools for optimal performance, and the philosophy behind traditional joinery that has lasted centuries.</p>
                                    <div class="guide-difficulty">
                                        <span>Difficulty:</span>
                                        <div class="difficulty-dots">
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot"></span>
                                            <span class="difficulty-dot"></span>
                                        </div>
                                        <span>Intermediate</span>
                                    </div>
                                </div>
                            </div>
                            <div class="guide-item">
                                <div class="guide-number">2</div>
                                <div class="guide-content">
                                    <h3>Introduction to Natural Dyeing: From Garden to Yarn</h3>
                                    <p>Transform your kitchen scraps and garden plants into vibrant, colorfast dyes. This guide walks you through fiber preparation and mordanting, extracting color from onion skins, avocado pits, indigo leaves, and coreopsis flowers. Learn about pH modification for color shifting, how to achieve reproducible results, and the difference between fugitive and permanent natural colors. Includes a seasonal foraging calendar.</p>
                                    <div class="guide-difficulty">
                                        <span>Difficulty:</span>
                                        <div class="difficulty-dots">
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot"></span>
                                            <span class="difficulty-dot"></span>
                                            <span class="difficulty-dot"></span>
                                        </div>
                                        <span>Beginner</span>
                                    </div>
                                </div>
                            </div>
                            <div class="guide-item">
                                <div class="guide-number">3</div>
                                <div class="guide-content">
                                    <h3>Hand Bookbinding: Creating Your First Coptic-Bound Journal</h3>
                                    <p>Learn the ancient Coptic binding technique that allows books to lay perfectly flat when open. This guide covers paper selection and grain direction, signature folding and punching, chain stitch sewing patterns, and creating handmade covers from bookboard and decorative papers. You'll develop an understanding of structural integrity, material sourcing for archival-quality projects, and how to customize your custom design for different page counts and sizes.</p>
                                    <div class="guide-difficulty">
                                        <span>Difficulty:</span>
                                        <div class="difficulty-dots">
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot"></span>
                                        </div>
                                        <span>Advanced Beginner</span>
                                    </div>
                                </div>
                            </div>
                            <div class="guide-item">
                                <div class="guide-number">4</div>
                                <div class="guide-content">
                                    <h3>Arduino for Makers: Building Your First Interactive Project</h3>
                                    <p>Bridge the gap between traditional craft and digital making. This guide introduces circuit fundamentals, sensor integration, and programming basics through a hands-on project: building an interactive LED display for your workshop. Learn component sourcing on a budget, how to read schematics, breadboard prototyping techniques, and how to enclosure your electronics in handmade wooden or 3D-printed cases for a polished finished piece.</p>
                                    <div class="guide-difficulty">
                                        <span>Difficulty:</span>
                                        <div class="difficulty-dots">
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot active"></span>
                                            <span class="difficulty-dot"></span>
                                            <span class="difficulty-dot"></span>
                                        </div>
                                        <span>Intermediate</span>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <div style="margin-top: 2rem;">
                            <a href="#all-guides" class="btn btn-primary">Browse All Guides</a>
                            <a href="#download-pattern" class="btn btn-accent" style="margin-left: 1rem;">Download Pattern Pack</a>
                        </div>
                    </div>
                </main>

                <!-- Sidebar -->
                <aside class="sidebar">
                    <div class="sidebar-widget">
                        <h4>🌟 Member Spotlights</h4>
                        <div class="member-spotlight">
                            <img src="https://i.pravatar.cc/48?u=member1" alt="Sarah M. avatar">
                            <div class="member-info">
                                <h5>Sarah M.</h5>
                                <p>Master Weaver • 3yr member</p>
                            </div>
                        </div>
                        <div class="member-spotlight">
                            <img src="https://i.pravatar.cc/48?u=member2" alt="James K. avatar">
                            <div class="member-info">
                                <h5>James K.</h5>
                                <p>Horology Enthusiast • 5yr member</p>
                            </div>
                        </div>
                        <div class="member-spotlight">
                            <img src="https://i.pravatar.cc/48?u=member3" alt="Aiko T. avatar">
                            <div class="member-info">
                                <h5>Aiko T.</h5>
                                <p>Ceramic Artist • 2yr member</p>
                            </div>
                        </div>
                        <div class="member-spotlight">
                            <img src="https://i.pravatar.cc/48?u=member4" alt="David R. avatar">
                            <div class="member-info">
                                <h5>David R.</h5>
                                <p>Bookbinder • 4yr member</p>
                            </div>
                        </div>
                    </div>

                    <div class="sidebar-widget">
                        <h4>🔥 Popular Projects</h4>
                        <div class="popular-project">
                            <img src="https://picsum.photos/60/60?random=20" alt="Hand-carved spoon project">
                            <div>
                                <h5>Hand-Carved Walnut Spoon Set</h5>
                                <p>by @woodwhisperer • 234 saves</p>
                            </div>
                        </div>
                        <div class="popular-project">
                            <img src="https://picsum.photos/60/60?random=21" alt="Indigo dyed scarf project">
                            <div>
                                <h5>Shibori Indigo Silk Scarf</h5>
                                <p>by @dyedreams • 189 saves</p>
                            </div>
                        </div>
                        <div class="popular-project">
                            <img src="https://picsum.photos/60/60?random=22" alt="Ceramic vase project">
                            <div>
                                <h5>Raku-Fired Decorative Vase</h5>
                                <p>by @clayhands • 167 saves</p>
                            </div>
                        </div>
                        <div class="popular-project">
                            <img src="https://picsum.photos/60/60?random=23" alt="Leather journal project">
                            <div>
                                <h5>Hand-Stitched Leather Journal</h5>
                                <p>by @stitchcraft • 145 saves</p>
                            </div>
                        </div>
                    </div>

                    <div class="sidebar-widget">
                        <h4>📅 Upcoming Events</h4>
                        <div class="event-item">
                            <span class="event-date">📅 Jun 15</span>
                            <h5>Virtual Open Studio Night</h5>
                            <p>Live workshop tours & Q&A with 5 featured artisans</p>
                        </div>
                        <div class="event-item">
                            <span class="event-date">📅 Jun 22</span>
                            <h5>Natural Dye Foraging Walk</h5>
                            <p>Portland, OR — Led by botanist & dyer Maya Chen</p>
                        </div>
                        <div class="event-item">
                            <span class="event-date">📅 Jul 5</span>
                            <h5>Annual Maker Showcase</h5>
                            <p>Submit your best handmade projects for community voting</p>
                        </div>
                        <div class="event-item">
                            <span class="event-date">📅 Jul 18</span>
                            <h5>Joinery Masterclass</h5>
                            <p>Advanced dovetail & mortise-tenon techniques, online</p>
                        </div>
                    </div>
                </aside>
            </div>
        </div>
    </section>

    <!-- Creator Spotlights -->
    <section class="section">
        <div class="container">
            <span class="section-label">Community</span>
            <h2 class="section-title">Creator Spotlights</h2>
            <p class="section-subtitle">Meet the artisans, makers, and collectors who inspire our community. Each spotlight features in-depth interviews about their creative process, material sourcing philosophy, and the stories behind their most meaningful handmade pieces.</p>

            <div class="creators-grid">
                <div class="creator-card">
                    <img src="https://picsum.photos/400/240?random=30" alt="Elena Vasquez working at her loom">
                    <div class="creator-card-body">
                        <h3>Elena Vasquez</h3>
                        <div class="creator-specialty">Textile Artist & Natural Dyer</div>
                        <p>Elena's journey began in Oaxaca, Mexico, where she learned backstrap weaving from her grandmother. Now based in Santa Fe, she creates large-scale tapestries using hand-spun, naturally dyed fibers sourced from regenerative farms. Her work explores the relationship between landscape and color, with each piece taking 3-6 months to complete. She recently completed a commissioned installation for the Museum of International Folk Art.</p>
                        <div class="creator-actions">
                            <a href="#view-work" class="btn btn-primary" style="padding: 0.6rem 1.2rem; font-size: 0.85rem;">View Gallery</a>
                            <a href="#interview" class="btn btn-secondary" style="padding: 0.6rem 1.2rem; font-size: 0.85rem;">Read Interview</a>
                        </div>
                    </div>
                </div>
                <div class="creator-card">
                    <img src="https://picsum.photos/400/240?random=31" alt="Thomas Wright in his woodworking shop">
                    <div class="creator-card-body">
                        <h3>Thomas Wright</h3>
                        <div class="creator-specialty">Furniture Maker & Tool Restorer</div>
                        <p>Thomas specializes in reproducing 18th-century American furniture using period-correct techniques and hand tools. His workshop in Vermont houses a collection of over 200 antique planes, many of which he has personally restored to working condition. He sources lumber from fallen trees on his 40-acre property, air-drying each board for years before use. His custom design process begins with hand-drawn plans on vellum, honoring the tradition of the master cabinetmakers who came before him.</p>
                        <div class="creator-actions">
                            <a href="#view-work" class="btn btn-primary" style="padding: 0.6rem 1.2rem; font-size: 0.85rem;">View Gallery</a>
                            <a href="#interview" class="btn btn-secondary" style="padding: 0.6rem 1.2rem; font-size: 0.85rem;">Read Interview</a>
                        </div>
                    </div>
                </div>
                <div class="creator-card">
                    <img src="https://picsum.photos/400/240?random=32" alt="Yuki Tanaka arranging ceramic pieces">
                    <div class="creator-card-body">
                        <h3>Yuki Tanaka</h3>
                        <div class="creator-specialty">Ceramic Artist & Educator</div>
                        <p>Yuki bridges Japanese ceramic traditions with contemporary design sensibilities. Trained in Kyoto under a Living National Treasure, she now teaches wheel throwing and glaze chemistry from her studio in Asheville, NC. Her signature style combines wood-fired ash glazes with precise geometric forms, creating pieces that feel both ancient and modern. She sources her clay from local North Carolina deposits, processing and wedging everything by hand to maintain a direct connection with her material.</p>
                        <div class="creator-actions">
                            <a href="#view-work" class="btn btn-primary" style="padding: 0.6rem 1.2rem; font-size: 0.85rem;">View Gallery</a>
                            <a href="#interview" class="btn btn-secondary" style="padding: 0.6rem 1.2rem; font-size: 0.85rem;">Read Interview</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Interactive Pattern Generator -->
    <section class="section" id="tools" style="background: var(--bg-light);">
        <div class="container">
            <span class="section-label">Interactive Tool</span>
            <h2 class="section-title">Cross-Stitch Pattern Generator</h2>
            <p class="section-subtitle">Design your own cross-stitch pattern right in the browser. Adjust colors, grid density, and pattern type to create unique designs for your next handmade project. Export your pattern as a PDF-ready grid or share it directly with the community.</p>

            <div class="pattern-generator">
                <div class="pattern-controls">
                    <div class="control-group">
                        <label>Pattern Style</label>
                        <select id="patternType" onchange="generatePattern()">
                            <option value="geometric">Geometric</option>
                            <option value="floral">Floral Motif</option>
                            <option value="checkerboard">Checkerboard</option>
                            <option value="diamond">Diamond Repeat</option>
                            <option value="zigzag">Zigzag Border</option>
                            <option value="random">Random Mosaic</option>
                        </select>
                    </div>
                    <div class="control-group">
                        <label>Grid Size</label>
                        <select id="gridSize" onchange="generatePattern()">
                            <option value="8">8 × 8</option>
                            <option value="12" selected>12 × 12</option>
                            <option value="16">16 × 16</option>
                            <option value="20">20 × 20</option>
                        </select>
                    </div>
                    <div class="control-group">
                        <label>Primary Color</label>
                        <input type="color" id="color1" value="#2d6a4f" onchange="generatePattern()">
                    </div>
                    <div class="control-group">
                        <label>Secondary Color</label>
                        <input type="color" id="color2" value="#d4a373" onchange="generatePattern()">
                    </div>
                </div>
                <div class="pattern-preview">
                    <div class="pattern-canvas" id="patternCanvas"></div>
                </div>
                <div class="pattern-actions">
                    <button class="btn btn-primary" onclick="generatePattern()">🎲 Regenerate</button>
                    <button class="btn btn-accent" onclick="alert('Pattern saved to your collection!')">💾 Save Pattern</button>
                    <button class="btn btn-secondary" onclick="alert('Share link copied to clipboard!')">🔗 Share Project</button>
                </div>
            </div>
        </div>
    </section>

    <!-- Testimonials -->
    <section class="section">
        <div class="container">
            <span class="section-label">Community Voices</span>
            <h2 class="section-title">What Our Members Say</h2>
            <p class="section-subtitle">Don't just take our word for it. Hear from the makers, collectors, and creative enthusiasts who have found their community on CraftNexus.</p>

            <div class="testimonials-grid">
                <div class="testimonial-card">
                    <p>CraftNexus completely transformed my woodworking journey. I went from someone who couldn't tell basswood from balsa to building a complete dining table set for my family. The tool reviews alone saved me hundreds of dollars in misguided purchases, and the community feedback on my build progress kept me motivated through the challenging parts.</p>
                    <div class="testimonial-author">
                        <img src="https://i.pravatar.cc/48?u=test1" alt="Robert Chen">
                        <div>
                            <h5>Robert Chen</h5>
                            <span>Woodworking • Member since 2022</span>
                        </div>
                    </div>
                </div>
                <div class="testimonial-card">
                    <p>As a retired teacher, I was looking for a creative outlet that would challenge me intellectually and keep my hands busy. The bookbinding community here is incredible — the level of knowledge shared freely is remarkable. I've learned Coptic stitch, Japanese stab binding, and even leather tooling. I now make handmade journals as gifts for all my friends.</p>
                    <div class="testimonial-author">
                        <img src="https://i.pravatar.cc/48?u=test2" alt="Margaret O'Brien">
                        <div>
                            <h5>Margaret O'Brien</h5>
                            <span>Bookbinding • Member since 2021</span>
                        </div>
                    </div>
                </div>
                <div class="testimonial-card">
                    <p>I collect vintage mechanical watches and CraftNexus connected me with horologists around the world. The authentication guides helped me avoid several costly mistakes, and the restoration tutorials gave me the confidence to service my first movement. The events are fantastic too — I attended the virtual watchmaking workshop and it was like being in a master's bench in Switzerland.</p>
                    <div class="testimonial-author">
                        <img src="https://i.pravatar.cc/48?u=test3" alt="Daniel Park">
                        <div>
                            <h5>Daniel Park</h5>
                            <span>Watch Collecting • Member since 2023</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Newsletter -->
    <section class="newsletter-bar">
        <div class="container">
            <div class="newsletter-inner">
                <div>
                    <h3>Get Weekly Craft Inspiration</h3>
                    <p>Join 28,000+ makers receiving our curated newsletter every Thursday.</p>
                </div>
                <form class="newsletter-form" onsubmit="event.preventDefault(); alert('Welcome to CraftNexus! Check your inbox.');">
                    <input type="email" placeholder="your@email.com" required>
                    <button type="submit" class="btn btn-primary">Subscribe</button>
                </form>
            </div>
        </div>
    </section>

    <!-- FAQ Section -->
    <section class="section">
        <div class="container">
            <span class="section-label">FAQ</span>
            <h2 class="section-title">Frequently Asked Questions</h2>
            <p class="section-subtitle">Everything you need to know about getting started with CraftNexus and making the most of our community resources.</p>

            <div class="faq-list">
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFaq(this)">
                        <span>Is CraftNexus really free to join? What's included in the membership?</span>
                        <span class="faq-icon">+</span>
                    </button>
                    <div class="faq-answer">
                        <p>Yes, CraftNexus is completely free for basic membership. This includes access to all community forums, the ability to share your projects, participate in events, and access our library of beginner guides. Our premium tier ($8/month) adds features like unlimited pattern downloads, ad-free browsing, early access to workshops, and the ability to sell handmade items in our marketplace. We believe everyone should have access to craft education regardless of budget.</p>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFaq(this)">
                        <span>How do I find the right community for my specific interest?</span>
                        <span class="faq-icon">+</span>
                    </button>
                    <div class="faq-answer">
                        <p>We have 95 distinct craft disciplines organized into 12 main categories. Use our Explore page to browse by category, or try our interest matcher quiz that asks about your preferred materials, tools, and creative goals. You can also search for specific techniques (like "sashiko stitching" or "Japanese joinery") and we'll connect you with the most relevant communities. Many members belong to 3-5 communities as their interests expand.</p>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFaq(this)">
                        <span>Can I sell my handmade items through CraftNexus?</span>
                        <span class="faq-icon">+</span>
                    </button>
                    <div class="faq-answer">
                        <p>Absolutely! Our marketplace is open to all premium members who have been active in the community for at least 30 days. We take a modest 5% commission on sales — significantly lower than most handmade marketplaces. We also provide resources on pricing your work, photographing handmade items, writing compelling descriptions, and understanding material sourcing costs. Our community guidelines ensure a supportive environment where buyers appreciate the skill and time behind every handmade piece.</p>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFaq(this)">
                        <span>How are the tool reviews conducted? Can I trust them?</span>
                        <span class="faq-icon">+</span>
                    </button>
                    <div class="faq-answer">
                        <p>Our reviews are written by experienced community members who receive no compensation from manufacturers. Each reviewer must disclose how they obtained the tool (purchased, gifted, or provided for review). We require a minimum 30-day usage period before publishing, and many of our best reviews come after 6+ months of real workshop use. Our editorial team fact-checks claims and verifies material specifications. We also maintain a "verified purchase" badge system so you know which reviews come from genuine buyers.</p>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFaq(this)">
                        <span>Do you host in-person events or are they all virtual?</span>
                        <span class="faq-icon">+</span>
                    </button>
                    <div class="faq-answer">
                        <p>We host both! Our virtual events include live workshops, studio tours, Q&A sessions with master craftspeople, and collaborative build-alongs. For in-person events, we have regional coordinators in over 30 cities who organize meetups, studio crawls, foraging walks, and skill-share days. Our annual Maker Showcase tour visits 8 cities with exhibitions, vendor markets, and hands-on workshops. Check the Events calendar and filter by your location to find opportunities near you.</p>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Footer -->
    <footer class="footer">
        <div class="container">
            <div class="footer-grid">
                <div class="footer-brand">
                    <div class="logo-area" style="margin-bottom: 0.5rem;">
                        <img src="https://placehold.co/40x40/40916c/ffffff?text=CN&font=montserrat" alt="CraftNexus Logo" style="border-radius: 8px;">
                        <div class="logo-text">
                            <h1 style="font-size: 1.3rem; color: white;">CraftNexus</h1>
                        </div>
                    </div>
                    <p>The world's most welcoming community for makers, crafters, collectors, and creative enthusiasts. Connecting passionate people with the tools, knowledge, and inspiration to bring their handmade visions to life since 2019.</p>
                    <div class="footer-social">
                        <a href="#" aria-label="Instagram">📷</a>
                        <a href="#" aria-label="Pinterest">📌</a>
                        <a href="#" aria-label="YouTube">▶️</a>
                        <a href="#" aria-label="Twitter">🐦</a>
                        <a href="#" aria-label="Facebook">📘</a>
                    </div>
                </div>
                <div>
                    <h4>Community</h4>
                    <ul class="footer-links">
                        <li><a href="#">Forums</a></li>
                        <li><a href="#">Events Calendar</a></li>
                        <li><a href="#">Member Directory</a></li>
                        <li><a href="#">Project Gallery</a></li>
                        <li><a href="#">Challenges</a></li>
                        <li><a href="#">Local Meetups</a></li>
                    </ul>
                </div>
                <div>
                    <h4>Resources</h4>
                    <ul class="footer-links">
                        <li><a href="#">Beginner Guides</a></li>
                        <li><a href="#">Tool Reviews</a></li>
                        <li><a href="#">Pattern Library</a></li>
                        <li><a href="#">Material Sourcing</a></li>
                        <li><a href="#">Video Tutorials</a></li>
                        <li><a href="#">Blog</a></li>
                    </ul>
                </div>
                <div>
                    <h4>Company</h4>
                    <ul class="footer-links">
                        <li><a href="#">About Us</a></li>
                        <li><a href="#">Careers</a></li>
                        <li><a href="#">Press Kit</a></li>
                        <li><a href="#">Contact</a></li>
                        <li><a href="#">Partnerships</a></li>
                        <li><a href="#">Support</a></li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>© 2024 CraftNexus. All rights reserved. Made with ❤️ by makers, for makers.</p>
                <div class="footer-bottom-links">
                    <a href="#">Privacy Policy</a>
                    <a href="#">Terms of Service</a>
                    <a href="#">Cookie Settings</a>
                    <a href="#">Accessibility</a>
                </div>
            </div>
        </div>
    </footer>

    <script>
        // Pattern Generator
        function generatePattern() {
            const canvas = document.getElementById('patternCanvas');
            const type = document.getElementById('patternType').value;
            const size = parseInt(document.getElementById('gridSize').value);
            const color1 = document.getElementById('color1').value;
            const color2 = document.getElementById('color2').value;

            canvas.style.setProperty('--cols', size);
            canvas.style.setProperty('--rows', size);
            canvas.innerHTML = '';

            const cells = size * size;

            for (let i = 0; i < cells; i++) {
                const cell = document.createElement('div');
                cell.className = 'pattern-cell';
                const row = Math.floor(i / size);
                const col = i % size;

                let filled = false;

                switch (type) {
                    case 'geometric':
                        filled = (row + col) % 3 === 0 || (row === col) || (row + col === size - 1);
                        break;
                    case 'floral':
                        const center = Math.floor(size / 2);
                        const dist = Math.abs(row - center) + Math.abs(col - center);
                        filled = dist <= Math.floor(size / 3) && dist % 2 === 0;
                        break;
                    case 'checkerboard':
                        filled = (row + col) % 2 === 0;
                        break;
                    case 'diamond':
                        const cx = Math.floor(size / 2);
                        const cy = Math.floor(size / 2);
                        const diamondDist = Math.abs(row - cy) + Math.abs(col - cx);
                        filled = diamondDist <= Math.floor(size / 2) && diamondDist % 2 === 0;
                        break;
                    case 'zigzag':
                        const zigRow = row % 4;
                        const offset = zigRow < 2 ? zigRow : 4 - zigRow;
                        filled = col === offset || col === (size - 1 - offset);
                        break;
                    case 'random':
                        filled = Math.random() > 0.55;
                        break;
                }

                cell.style.backgroundColor = filled ? color1 : color2;
                canvas.appendChild(cell);
            }
        }

        // Initialize pattern on load
        document.addEventListener('DOMContentLoaded', generatePattern);

        // FAQ Accordion
        function toggleFaq(button) {
            const item = button.parentElement;
            const answer = item.querySelector('.faq-answer');
            const isOpen = item.classList.contains('active');

            // Close all
            document.querySelectorAll('.faq-item').forEach(faq => {
                faq.classList.remove('active');
                faq.querySelector('.faq-answer').classList.remove('open');
            });

            // Open clicked if it wasn't already open
            if (!isOpen) {
                item.classList.add('active');
                answer.classList.add('open');
            }
        }

        // Smooth scroll for anchor links
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function (e) {
                const href = this.getAttribute('href');
                if (href !== '#') {
                    e.preventDefault();
                    const target = document.querySelector(href);
                    if (target) {
                        target.scrollIntoView({ behavior: 'smooth', block: 'start' });
                    }
                }
            });
        });
    </script>
</body>
</html>
View Axe Report (JSON)
{
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.2"
  },
  "testRunner": {
    "name": "axe"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
    "windowWidth": 1280,
    "windowHeight": 720,
    "orientationAngle": 0,
    "orientationType": "landscape-primary"
  },
  "timestamp": "2026-11-12T09:43:05.540Z",
  "url": "https://benchmark.aimac.invalid/a5a6c09a0e1c2005d227af9180941b0e6eb850a4f8ec1e362eb4e14e94678e0b.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "duplicate-id-aria",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body>",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "important-letter-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-word-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-line-height",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "line-height in the style attribute is not set to !important, or meets the minimum"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<section class=\"section\" id=\"resources\" style=\"background: var(--bg-light);\">",
          "target": [
            "#resources"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has inner text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"btn btn-primary\" onclick=\"generatePattern()\">\ud83c\udfb2 Regenerate</button>",
          "target": [
            "button[onclick=\"generatePattern()\"]"
          ]
        }
      ]
    },
    {
      "id": "bypass",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "internal-link-present",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Valid skip link found"
            },
            {
              "id": "header-present",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>CraftNexus</h1>",
                  "target": [
                    ".header-inner > .logo-area > .logo-text > h1"
                  ]
                },
                {
                  "html": "<h1>Discover Your Next Creative Obsession</h1>",
                  "target": [
                    ".hero-content > h1"
                  ]
                },
                {
                  "html": "<h3>45K+</h3>",
                  "target": [
                    ".hero-stat:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>12K+</h3>",
                  "target": [
                    ".hero-stat:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>380+</h3>",
                  "target": [
                    ".hero-stat:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h3>95</h3>",
                  "target": [
                    ".hero-stat:nth-child(4) > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Find Your Creative Community</h2>",
                  "target": [
                    "#categories > .container > h2"
                  ]
                },
                {
                  "html": "<h3>Woodworking &amp; Carpentry</h3>",
                  "target": [
                    ".category-card:nth-child(1) > .category-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Textile Arts &amp; Fiber Crafts</h3>",
                  "target": [
                    ".category-card:nth-child(2) > .category-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Ceramics &amp; Pottery</h3>",
                  "target": [
                    ".category-card:nth-child(3) > .category-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Collecting &amp; Restoration</h3>",
                  "target": [
                    ".category-card:nth-child(4) > .category-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>DIY Electronics &amp; Making</h3>",
                  "target": [
                    ".category-card:nth-child(5) > .category-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Paper Arts &amp; Bookbinding</h3>",
                  "target": [
                    ".category-card:nth-child(6) > .category-card-body > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Tool &amp; Material Reviews</h2>",
                  "target": [
                    "main > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3>Aldi 6-Piece Japanese Chisel Set \u2014 6 Months Later</h3>",
                  "target": [
                    ".review-card:nth-child(4) > div > h3"
                  ]
                },
                {
                  "html": "<h3>Botanical Dye Kit Comparison: Sustainable Fiber Arts</h3>",
                  "target": [
                    ".review-card:nth-child(5) > div > h3"
                  ]
                },
                {
                  "html": "<h3>Speedball Artista Portable Wheel \u2014 Studio Test</h3>",
                  "target": [
                    ".review-card:nth-child(6) > div > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Beginner's Path Guides</h2>",
                  "target": [
                    "div:nth-child(2) > h2"
                  ]
                },
                {
                  "html": "<h3>Your First Dovetail Joint: A Complete Walkthrough</h3>",
                  "target": [
                    ".guide-item:nth-child(1) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h3>Introduction to Natural Dyeing: From Garden to Yarn</h3>",
                  "target": [
                    ".guide-item:nth-child(2) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h3>Hand Bookbinding: Creating Your First Coptic-Bound Journal</h3>",
                  "target": [
                    ".guide-item:nth-child(3) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h3>Arduino for Makers: Building Your First Interactive Project</h3>",
                  "target": [
                    ".guide-item:nth-child(4) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h4>\ud83c\udf1f Member Spotlights</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h5>Sarah M.</h5>",
                  "target": [
                    ".member-spotlight:nth-child(2) > .member-info > h5"
                  ]
                },
                {
                  "html": "<h5>James K.</h5>",
                  "target": [
                    ".member-spotlight:nth-child(3) > .member-info > h5"
                  ]
                },
                {
                  "html": "<h5>Aiko T.</h5>",
                  "target": [
                    ".member-spotlight:nth-child(4) > .member-info > h5"
                  ]
                },
                {
                  "html": "<h5>David R.</h5>",
                  "target": [
                    ".member-spotlight:nth-child(5) > .member-info > h5"
                  ]
                },
                {
                  "html": "<h4>\ud83d\udd25 Popular Projects</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h5>Hand-Carved Walnut Spoon Set</h5>",
                  "target": [
                    ".popular-project:nth-child(2) > div > h5"
                  ]
                },
                {
                  "html": "<h5>Shibori Indigo Silk Scarf</h5>",
                  "target": [
                    ".popular-project:nth-child(3) > div > h5"
                  ]
                },
                {
                  "html": "<h5>Raku-Fired Decorative Vase</h5>",
                  "target": [
                    ".popular-project:nth-child(4) > div > h5"
                  ]
                },
                {
                  "html": "<h5>Hand-Stitched Leather Journal</h5>",
                  "target": [
                    ".popular-project:nth-child(5) > div > h5"
                  ]
                },
                {
                  "html": "<h4>\ud83d\udcc5 Upcoming Events</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h5>Virtual Open Studio Night</h5>",
                  "target": [
                    ".event-item:nth-child(2) > h5"
                  ]
                },
                {
                  "html": "<h5>Natural Dye Foraging Walk</h5>",
                  "target": [
                    ".event-item:nth-child(3) > h5"
                  ]
                },
                {
                  "html": "<h5>Annual Maker Showcase</h5>",
                  "target": [
                    ".event-item:nth-child(4) > h5"
                  ]
                },
                {
                  "html": "<h5>Joinery Masterclass</h5>",
                  "target": [
                    ".event-item:nth-child(5) > h5"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Creator Spotlights</h2>",
                  "target": [
                    ".section:nth-child(5) > .container > h2"
                  ]
                },
                {
                  "html": "<h3>Elena Vasquez</h3>",
                  "target": [
                    ".creator-card:nth-child(1) > .creator-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Thomas Wright</h3>",
                  "target": [
                    ".creator-card:nth-child(2) > .creator-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Yuki Tanaka</h3>",
                  "target": [
                    ".creator-card:nth-child(3) > .creator-card-body > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Cross-Stitch Pattern Generator</h2>",
                  "target": [
                    "#tools > .container > h2"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">What Our Members Say</h2>",
                  "target": [
                    ".section:nth-child(7) > .container > h2"
                  ]
                },
                {
                  "html": "<h5>Robert Chen</h5>",
                  "target": [
                    ".testimonial-card:nth-child(1) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h5>Margaret O'Brien</h5>",
                  "target": [
                    ".testimonial-card:nth-child(2) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h5>Daniel Park</h5>",
                  "target": [
                    ".testimonial-card:nth-child(3) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h3>Get Weekly Craft Inspiration</h3>",
                  "target": [
                    ".newsletter-inner > div > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Frequently Asked Questions</h2>",
                  "target": [
                    ".section:nth-child(9) > .container > h2"
                  ]
                },
                {
                  "html": "<h1 style=\"font-size: 1.3rem; color: white;\">CraftNexus</h1>",
                  "target": [
                    ".footer-brand > .logo-area > .logo-text > h1"
                  ]
                },
                {
                  "html": "<h4>Community</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Resources</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Company</h4>",
                  "target": [
                    "div:nth-child(4) > h4"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main>",
                  "target": [
                    "main"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#1b4332",
                "bgColor": "#fffffd",
                "contrastRatio": 11.06,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 11.06"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<h1>CraftNexus</h1>",
          "target": [
            ".header-inner > .logo-area > .logo-text > h1"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "data": null,
              "relatedNodes": [],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<select id=\"patternType\" onchange=\"generatePattern()\">",
          "target": [
            "#patternType"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/48x48/2d6a4f/ffffff?text=CN&amp;font=montserrat\" alt=\"CraftNexus Logo\">",
          "target": [
            ".header-inner > .logo-area > img[alt=\"CraftNexus Logo\"]"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input type=\"email\" placeholder=\"your@email.com\" required=\"\">",
          "target": [
            "input[type=\"email\"]"
          ]
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": null,
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<div style=\"margin-bottom: 4rem;\">",
                  "target": [
                    "main > div:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#more-reviews\" class=\"btn btn-secondary\">View All Reviews \u2192</a>",
          "target": [
            "a[href$=\"#more-reviews\"]"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"#categories\">Explore</a>",
          "target": [
            "a[href$=\"#categories\"]"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ul class=\"footer-links\">",
          "target": [
            "div:nth-child(2) > ul"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><a href=\"#\">Forums</a></li>",
          "target": [
            "div:nth-child(2) > ul > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/48x48/2d6a4f/ffffff?text=CN&amp;font=montserrat\" alt=\"CraftNexus Logo\">",
          "target": [
            ".header-inner > .logo-area > img[alt=\"CraftNexus Logo\"]"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-size",
              "data": {
                "minSize": 24,
                "width": 82.6,
                "height": 40.5
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (82.6px by 40.5px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#categories\">Explore</a>",
          "target": [
            "a[href$=\"#categories\"]"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fontSize": "42.0pt (56px)",
                "fontWeight": "bold",
                "messageKey": "pseudoContent",
                "expectedContrastRatio": "3:1"
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\">",
                  "target": [
                    ".hero"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a pseudo element"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<h1>Discover Your Next Creative Obsession</h1>",
          "target": [
            ".hero-content > h1"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#fffffd",
                "contrastRatio": 3.43,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header class=\"header\">",
                  "target": [
                    "header"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #fffffd, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Where Passion Meets Craft</span>",
          "target": [
            ".logo-text > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #fffffd, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udc64 Reviewed by Marcus T.</span>",
          "target": [
            ".review-card:nth-child(4) > div > .review-meta > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udcc5 March 2024</span>",
          "target": [
            ".review-card:nth-child(4) > div > .review-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udcac 47 comments</span>",
          "target": [
            ".review-card:nth-child(4) > div > .review-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(5)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udc64 Reviewed by Elena K.</span>",
          "target": [
            ".review-card:nth-child(5) > div > .review-meta > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(5)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udcc5 February 2024</span>",
          "target": [
            ".review-card:nth-child(5) > div > .review-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(5)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udcac 32 comments</span>",
          "target": [
            ".review-card:nth-child(5) > div > .review-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(6)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udc64 Reviewed by Priya S.</span>",
          "target": [
            ".review-card:nth-child(6) > div > .review-meta > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(6)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udcc5 January 2024</span>",
          "target": [
            ".review-card:nth-child(6) > div > .review-meta > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"review-card\">",
                  "target": [
                    ".review-card:nth-child(6)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udcac 58 comments</span>",
          "target": [
            ".review-card:nth-child(6) > div > .review-meta > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Difficulty:</span>",
          "target": [
            ".guide-item:nth-child(1) > .guide-content > .guide-difficulty > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Intermediate</span>",
          "target": [
            ".guide-item:nth-child(1) > .guide-content > .guide-difficulty > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Difficulty:</span>",
          "target": [
            ".guide-item:nth-child(2) > .guide-content > .guide-difficulty > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Beginner</span>",
          "target": [
            ".guide-item:nth-child(2) > .guide-content > .guide-difficulty > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Difficulty:</span>",
          "target": [
            ".guide-item:nth-child(3) > .guide-content > .guide-difficulty > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Advanced Beginner</span>",
          "target": [
            ".guide-item:nth-child(3) > .guide-content > .guide-difficulty > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Difficulty:</span>",
          "target": [
            ".guide-item:nth-child(4) > .guide-content > .guide-difficulty > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"guide-item\">",
                  "target": [
                    ".guide-item:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Intermediate</span>",
          "target": [
            ".guide-item:nth-child(4) > .guide-content > .guide-difficulty > span:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Master Weaver \u2022 3yr member</p>",
          "target": [
            ".member-spotlight:nth-child(2) > .member-info > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Horology Enthusiast \u2022 5yr member</p>",
          "target": [
            ".member-spotlight:nth-child(3) > .member-info > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Ceramic Artist \u2022 2yr member</p>",
          "target": [
            ".member-spotlight:nth-child(4) > .member-info > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Bookbinder \u2022 4yr member</p>",
          "target": [
            ".member-spotlight:nth-child(5) > .member-info > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>by @woodwhisperer \u2022 234 saves</p>",
          "target": [
            ".popular-project:nth-child(2) > div > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>by @dyedreams \u2022 189 saves</p>",
          "target": [
            ".popular-project:nth-child(3) > div > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>by @clayhands \u2022 167 saves</p>",
          "target": [
            ".popular-project:nth-child(4) > div > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>by @stitchcraft \u2022 145 saves</p>",
          "target": [
            ".popular-project:nth-child(5) > div > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Live workshop tours &amp; Q&amp;A with 5 featured artisans</p>",
          "target": [
            ".event-item:nth-child(2) > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Portland, OR \u2014 Led by botanist &amp; dyer Maya Chen</p>",
          "target": [
            ".event-item:nth-child(3) > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Submit your best handmade projects for community voting</p>",
          "target": [
            ".event-item:nth-child(4) > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget\">",
                  "target": [
                    ".sidebar-widget:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>Advanced dovetail &amp; mortise-tenon techniques, online</p>",
          "target": [
            ".event-item:nth-child(5) > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#d4a373",
                "bgColor": "#ffffff",
                "contrastRatio": 2.26,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"creator-card\">",
                  "target": [
                    ".creator-card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.26 (foreground color: #d4a373, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"creator-specialty\">Textile Artist &amp; Natural Dyer</div>",
          "target": [
            ".creator-card:nth-child(1) > .creator-card-body > .creator-specialty"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.26 (foreground color: #d4a373, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#d4a373",
                "bgColor": "#ffffff",
                "contrastRatio": 2.26,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"creator-card\">",
                  "target": [
                    ".creator-card:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.26 (foreground color: #d4a373, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"creator-specialty\">Furniture Maker &amp; Tool Restorer</div>",
          "target": [
            ".creator-card:nth-child(2) > .creator-card-body > .creator-specialty"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.26 (foreground color: #d4a373, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#d4a373",
                "bgColor": "#ffffff",
                "contrastRatio": 2.26,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"creator-card\">",
                  "target": [
                    ".creator-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.26 (foreground color: #d4a373, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"creator-specialty\">Ceramic Artist &amp; Educator</div>",
          "target": [
            ".creator-card:nth-child(3) > .creator-card-body > .creator-specialty"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.26 (foreground color: #d4a373, background color: #ffffff, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"testimonial-card\">",
                  "target": [
                    ".testimonial-card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Woodworking \u2022 Member since 2022</span>",
          "target": [
            ".testimonial-card:nth-child(1) > .testimonial-author > div > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"testimonial-card\">",
                  "target": [
                    ".testimonial-card:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Bookbinding \u2022 Member since 2021</span>",
          "target": [
            ".testimonial-card:nth-child(2) > .testimonial-author > div > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#89899a",
                "bgColor": "#ffffff",
                "contrastRatio": 3.43,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"testimonial-card\">",
                  "target": [
                    ".testimonial-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Watch Collecting \u2022 Member since 2023</span>",
          "target": [
            ".testimonial-card:nth-child(3) > .testimonial-author > div > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.43 (foreground color: #89899a, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b9f96",
                "bgColor": "#1b4332",
                "contrastRatio": 3.95,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"footer\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\">Privacy Policy</a>",
          "target": [
            ".footer-bottom-links > a[href=\"#\"]:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b9f96",
                "bgColor": "#1b4332",
                "contrastRatio": 3.95,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"footer\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\">Terms of Service</a>",
          "target": [
            ".footer-bottom-links > a[href=\"#\"]:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b9f96",
                "bgColor": "#1b4332",
                "contrastRatio": 3.95,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"footer\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\">Cookie Settings</a>",
          "target": [
            ".footer-bottom-links > a[href=\"#\"]:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b9f96",
                "bgColor": "#1b4332",
                "contrastRatio": 3.95,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"footer\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\">Accessibility</a>",
          "target": [
            ".footer-bottom-links > a[href=\"#\"]:nth-child(4)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.95 (foreground color: #8b9f96, background color: #1b4332, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    },
    {
      "id": "label",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"color\" id=\"color1\" value=\"#2d6a4f\" onchange=\"generatePattern()\">",
          "target": [
            "#color1"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"color\" id=\"color2\" value=\"#d4a373\" onchange=\"generatePattern()\">",
          "target": [
            "#color2"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ]
    },
    {
      "id": "select-name",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<select id=\"patternType\" onchange=\"generatePattern()\">",
          "target": [
            "#patternType"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<select id=\"gridSize\" onchange=\"generatePattern()\">",
          "target": [
            "#gridSize"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 10064
      },
      {
        "y": 576,
        "height": 10064
      },
      {
        "y": 1152,
        "height": 10064
      },
      {
        "y": 1728,
        "height": 10064
      },
      {
        "y": 2304,
        "height": 10064
      },
      {
        "y": 2880,
        "height": 10064
      },
      {
        "y": 3456,
        "height": 10064
      },
      {
        "y": 4032,
        "height": 10064
      },
      {
        "y": 4608,
        "height": 10064
      },
      {
        "y": 5184,
        "height": 10064
      },
      {
        "y": 5760,
        "height": 10064
      },
      {
        "y": 6336,
        "height": 10064
      },
      {
        "y": 6912,
        "height": 10064
      },
      {
        "y": 7488,
        "height": 10064
      },
      {
        "y": 8064,
        "height": 10064
      },
      {
        "y": 8640,
        "height": 10064
      },
      {
        "y": 9216,
        "height": 10064
      },
      {
        "y": 9344,
        "height": 10064
      }
    ],
    "scans": 19,
    "max_states": 512,
    "settle_ms": 5000,
    "page_timeout_seconds": 150,
    "layout_stability": "consecutive 100ms size samples within one CSS pixel",
    "animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
    "interactive_states": "not exercised",
    "horizontal_scroll": "not exercised"
  }
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Hobbies and Interests" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.

**Client & Category:**
- Industry: "Hobbies and Interests"
- Description: Hobbies, crafts, DIY projects, collecting, and special interest communities.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Hobbies and Interests" category.
2.  **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3.  **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.

**Content & Structure Requirements (Deliver a COMPLETE page):**
-   **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
-   **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Forums", "Events", "Resources".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Hobbies and Interests" category. Consider themes similar to: "Tool Reviews", "Beginner Guides", "Creator Spotlights".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "material sourcing", "custom design", "handmade".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Take Class", "Download Pattern", "Share Project".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Hobbies and Interests" sector. Ideas similar but not limited to: "pattern generator".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "member spotlights", "popular projects", "event calendar".
-   **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
-   **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.