<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
  <meta name="theme-color" content="#c0446e"/>
  <title>Tiff Crochets – Free Amigurumi &amp; Crochet Patterns</title>
  <meta name="description" content="Download free amigurumi and crochet patterns by Tiff. Cute crochet animals, beginner-friendly tutorials, and new patterns every week — 100% free forever."/>
  <meta name="robots" content="index,follow"/>
  <link rel="canonical" href="https://tiffcrochets.com/"/>
  <meta property="og:type" content="website"/>
  <meta property="og:url" content="https://tiffcrochets.com/"/>
  <meta property="og:title" content="Tiff Crochets – Free Amigurumi &amp; Crochet Patterns"/>
  <meta property="og:description" content="Free amigurumi patterns for every skill level. New pattern every week, always free."/>
  <meta property="og:image" content="https://tiffcrochets.com/images/og-home.jpg"/>
  <meta name="twitter:card" content="summary_large_image"/>
  <meta name="twitter:title" content="Tiff Crochets – Free Amigurumi Patterns"/>
  <meta name="twitter:description" content="Free crochet patterns for every skill level — always free!"/>
  <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://tiffcrochets.com/#website","url":"https://tiffcrochets.com/","name":"Tiff Crochets","potentialAction":{"@type":"SearchAction","target":"https://tiffcrochets.com/allArticles.php?q={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"Organization","@id":"https://tiffcrochets.com/#org","name":"Tiff Crochets","url":"https://tiffcrochets.com/"},{"@type":"WebPage","@id":"https://tiffcrochets.com/#page","url":"https://tiffcrochets.com/","name":"Tiff Crochets – Free Amigurumi &amp; Crochet Patterns","isPartOf":{"@id":"https://tiffcrochets.com/#website"}}]}</script>
  <link rel="icon" type="image/x-icon" href="/favicon.ico"/>
  <link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
  <link rel="manifest" href="/manifest.json"/>
  <link rel="alternate" type="application/rss+xml" title="Beginner Patterns" href="/rss-feeds/feed-easy.xml"/>
  <link rel="alternate" type="application/rss+xml" title="Intermediate Patterns" href="/rss-feeds/feed-intermediate.xml"/>
  <link rel="alternate" type="application/rss+xml" title="Advanced Patterns" href="/rss-feeds/feed-hard.xml"/>
  <link rel="dns-prefetch" href="//fonts.googleapis.com"/>
  <link rel="dns-prefetch" href="//fonts.gstatic.com"/>
  <link rel="preconnect" href="https://fonts.googleapis.com"/>
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
  <!-- LCP image preload -->
  <link rel="preload" as="image" href="images/appah-hero.webp" imagesrcset="images/appah-hero.webp" imagesizes="350px"/>
  <!-- Non-blocking Google Fonts -->
  <link rel="preload" href="https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;600;700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'"/>
  <noscript><link href="https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;600;700&display=swap" rel="stylesheet"/></noscript>

  <style>
    /* ── Oswald fallback to prevent CLS ── */
    @font-face{font-family:'Oswald Fallback';src:local('Arial Black'),local('Impact');ascent-override:105%;descent-override:22%;line-gap-override:0%;size-adjust:87%}

    :root{
      --wine:#3b001b;--wine-light:#5c002b;--teal:#c0446e;--teal-dark:#8a1840;--teal-pale:#fde8ef;
      --cream:#fff8f6;--white:#ffffff;--pink-soft:#fde8ef;
      --font-d:'Oswald','Oswald Fallback',sans-serif;
      --font-b:'Oswald','Oswald Fallback',sans-serif;
      --pill:999px;--card-r:20px;
      --sh-sm:0 4px 20px rgba(59,0,27,.08);--sh-md:0 8px 32px rgba(59,0,27,.13);
      --W:1200px;
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth}
    body{font-family:var(--font-b);font-weight:300;background:var(--cream);color:var(--wine);overflow-x:hidden;line-height:1.6}
    img{display:block;max-width:100%}
    a{text-decoration:none;color:inherit}
    ul[role="list"]{list-style:none}
    .container{max-width:var(--W);margin:0 auto;padding:0 1.5rem}

    .skip-link{position:absolute;top:-100%;left:1rem;background:var(--teal);color:var(--white);padding:.5rem 1rem;border-radius:var(--pill);font-weight:700;z-index:9999;transition:top .2s}
    .skip-link:focus{top:1rem}
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

    /* ── BUTTONS ── */
    .btn{display:inline-flex;align-items:center;gap:.45rem;padding:.72rem 1.65rem;border-radius:var(--pill);font-family:var(--font-b);font-weight:700;font-size:.95rem;cursor:pointer;border:none;transition:transform .18s,box-shadow .18s,background .18s,color .18s;white-space:nowrap;letter-spacing:.04em}
    .btn:hover{transform:translateY(-2px)}
    .btn-wine{background:var(--wine);color:var(--white);box-shadow:0 4px 18px rgba(59,0,27,.22)}
    .btn-wine:hover{background:var(--wine-light);box-shadow:0 8px 28px rgba(59,0,27,.32)}
    .btn-teal{background:var(--teal);color:var(--white);box-shadow:0 4px 18px rgba(192,68,110,.3)}
    .btn-teal:hover{background:var(--teal-dark);box-shadow:0 8px 28px rgba(192,68,110,.4)}
    .btn-outline-wine{background:transparent;color:var(--wine);border:2.5px solid var(--wine)}
    .btn-outline-wine:hover{background:var(--wine);color:var(--white)}
    .btn-outline-white{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.6)}
    .btn-outline-white:hover{background:rgba(255,255,255,.1)}

    /* ── PILL ── */
    .pill{display:inline-flex;align-items:center;gap:.3rem;padding:.32rem .88rem;border-radius:var(--pill);font-family:var(--font-b);font-weight:700;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
    .pill-wine{background:var(--wine);color:#ffd6e7}
    .pill-teal{background:var(--teal);color:var(--white)}
    .pill-cream{background:var(--cream);color:var(--wine);box-shadow:0 2px 8px rgba(0,0,0,.1)}

    /* ── ANNOUNCE ── */
    .announce{background:var(--wine);height:38px;overflow:hidden;position:relative}
    .announce-track{display:flex;align-items:center;height:100%;white-space:nowrap;animation:marquee 26s linear infinite}
    .announce-track:hover{animation-play-state:paused}
    .announce-item{font-family:var(--font-b);font-weight:600;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,230,240,.88);padding:0 2.2rem}
    .announce-gem{color:var(--teal);font-size:1rem}
    @keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

    /* ── NAVBAR ── */
    .navbar{position:sticky;top:0;z-index:500;background:var(--white);box-shadow:0 2px 24px rgba(59,0,27,.09),inset 0 -3px 0 var(--teal)}
    .nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:1.5rem}
    .nav-logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-d);font-size:1.5rem;font-weight:700;color:var(--wine);flex-shrink:0;letter-spacing:.03em}
    .logo-mark{width:42px;height:42px;background:var(--wine);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
    .logo-mark svg{animation:yarn-spin 10s linear infinite}
    @keyframes yarn-spin{to{transform:rotate(360deg)}}
    .nav-links{display:flex;align-items:center;gap:.05rem;flex:1;justify-content:center}
    .nav-link{position:relative;font-family:var(--font-b);font-weight:600;font-size:.9rem;letter-spacing:.04em;color:var(--wine);padding:.5rem 1rem;border-radius:var(--pill);transition:background .15s;text-transform:uppercase}
    .nav-link::after{content:'';position:absolute;bottom:5px;left:50%;transform:translateX(-50%) scaleX(0);width:calc(100% - 2rem);height:2.5px;background:var(--teal);border-radius:2px;transition:transform .2s}
    .nav-link:hover{background:var(--pink-soft)}
    .nav-link:hover::after,.nav-link--active::after{transform:translateX(-50%) scaleX(1)}
    .nav-right{display:flex;align-items:center;gap:.85rem;flex-shrink:0}
    .hamburger{display:none;flex-direction:column;gap:5px;background:none;border:2px solid var(--wine);border-radius:9px;padding:7px 9px;cursor:pointer;color:var(--wine)}
    .hamburger span{display:block;width:20px;height:2px;background:var(--wine);border-radius:2px;transition:transform .25s,opacity .25s}
    .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .hamburger.open span:nth-child(2){opacity:0}
    .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .mobile-nav{display:none;position:fixed;inset:0;z-index:490;background:var(--cream);flex-direction:column;align-items:center;justify-content:center;gap:0}
    .mobile-nav.open{display:flex}
    .mobile-nav a{font-family:var(--font-d);font-size:2.4rem;font-weight:700;color:var(--wine);padding:.6rem 3rem;border-bottom:1px solid rgba(59,0,27,.07);width:100%;text-align:center;transition:background .15s,color .15s;letter-spacing:.06em}
    .mobile-nav a:last-of-type{border:none}
    .mobile-nav a:hover{background:var(--teal-pale);color:var(--teal)}
    .mobile-nav .btn{margin-top:2rem}
    @media(max-width:768px){.nav-links,.nav-right .btn{display:none}.hamburger{display:flex}}

    /* ── HERO ── */
    .hero{background:var(--cream);padding:80px 0 60px;position:relative;overflow:visible;contain:layout}
    .hero-inner{display:grid;grid-template-columns:1fr 420px;align-items:center;gap:3.5rem}
    .hero-badges{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.4rem}
    .hero-h1{font-family:var(--font-d);font-size:clamp(3.4rem,8vw,7.5rem);font-weight:900;color:var(--wine);line-height:.95;margin-bottom:1.3rem;letter-spacing:-.02em}
    .hero-h1 em{color:var(--teal);font-style:normal}
    .hero-sub{font-size:clamp(.95rem,1.8vw,1.12rem);font-weight:400;color:#6b3a4e;max-width:450px;margin-bottom:2.2rem;line-height:1.65}
    .hero-ctas{display:flex;gap:1rem;flex-wrap:wrap}
    .hero-photo{position:relative;display:flex;align-items:center;justify-content:center}
    .hero-blob{position:absolute;width:390px;height:390px;background:linear-gradient(135deg,var(--pink-soft) 0%,#f5b8d0 100%);border-radius:60% 40% 55% 45% / 50% 60% 40% 50%;animation:blob-morph 7s ease-in-out infinite;z-index:0}
    @keyframes blob-morph{0%,100%{border-radius:60% 40% 55% 45% / 50% 60% 40% 50%}33%{border-radius:40% 60% 45% 55% / 60% 40% 60% 40%}66%{border-radius:50% 50% 60% 40% / 40% 60% 50% 50%}}
    .hero-circle{position:relative;z-index:1;width:350px;height:350px;border-radius:50%;overflow:hidden;border:6px solid var(--white);box-shadow:0 20px 60px rgba(59,0,27,.22),0 0 0 3px var(--teal);}
    .hero-circle img{width:350px;height:350px;object-fit:cover;object-position:50% 20%}
    .float-badge{position:absolute;z-index:2;background:var(--white);border-radius:var(--pill);padding:.4rem 1rem;font-family:var(--font-b);font-size:.78rem;font-weight:700;box-shadow:var(--sh-md);white-space:nowrap}
    .float-badge-top{top:20px;right:-20px;color:var(--wine)}
    .float-badge-bot{bottom:30px;left:-30px;color:var(--teal-dark);}

    /* ── FEATURED ── */
    .featured{background:var(--white);padding:60px 0 70px;position:relative;contain:layout}
    .section-header{text-align:center;margin-bottom:3rem}
    .section-eyebrow{font-family:var(--font-d);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8a1840;margin-bottom:.6rem}
    .section-h2{font-family:var(--font-d);font-size:clamp(2rem,4vw,3.2rem);font-weight:800;color:var(--wine);letter-spacing:.01em}
    .section-sub{font-size:1rem;font-weight:300;color:#6b3a4e;max-width:480px;margin:.6rem auto 0}
    .cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
    .card{background:var(--white);border-radius:var(--card-r);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .22s,box-shadow .22s}
    .card:hover{transform:translateY(-5px);box-shadow:var(--sh-md)}
    .card-img{aspect-ratio:4/3;overflow:hidden;background:var(--pink-soft)}
    .card-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
    .card:hover .card-img img{transform:scale(1.04)}
    .card-body{padding:1.2rem 1.4rem 1.4rem}
    .card-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}
    .card-tag{font-family:var(--font-b);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .65rem;border-radius:var(--pill);background:var(--teal-pale);color:var(--wine)}
    .card-h3{font-family:var(--font-d);font-size:1.15rem;font-weight:700;margin-bottom:.4rem;letter-spacing:.02em}
    .card-desc{font-size:.85rem;font-weight:300;color:#6b3a4e;line-height:1.55;margin-bottom:1rem}
    .card-meta{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:500;color:#6b3a4e}
    .card-meta span{display:flex;align-items:center;gap:.3rem}
    .card-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;color:#3b001b;letter-spacing:.04em;text-transform:uppercase;transition:gap .15s}
    .card-link:hover{gap:.55rem}
    .center{text-align:center;margin-top:2.5rem}

    /* ── STATS ── */
    .stats{background:var(--wine);padding:50px 0;position:relative;contain:layout}
    .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
    .stat-num{font-family:var(--font-d);font-size:clamp(2.4rem,5vw,4rem);font-weight:900;color:var(--white);letter-spacing:-.02em}
    .stat-label{font-family:var(--font-b);font-size:.85rem;font-weight:500;color:rgba(255,255,255,.78);letter-spacing:.06em;text-transform:uppercase;margin-top:.25rem}

    /* ── CATEGORIES ── */
    .categories{background:var(--cream);padding:60px 0 70px;position:relative;contain:layout}
    .cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
    .cat-card{background:var(--white);border-radius:var(--card-r);padding:1.5rem 1rem;text-align:center;box-shadow:var(--sh-sm);transition:transform .2s,box-shadow .2s;display:block;color:var(--wine)}
    .cat-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
    .cat-emoji{font-size:2.4rem;margin:0 auto .8rem;line-height:1}
    .cat-name{font-family:var(--font-d);font-size:.98rem;font-weight:700;margin-bottom:.3rem;letter-spacing:.04em;text-transform:uppercase}
    .cat-count{font-size:.78rem;font-weight:400;color:#6b3a4e}

    /* ── WHY ── */
    .why{background:var(--wine);padding:60px 0 70px;position:relative;contain:layout}
    .why .section-h2,.why .section-eyebrow{color:var(--white)}
    .why .section-sub{color:rgba(255,230,240,.75)}
    .why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
    .why-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:var(--card-r);padding:1.8rem 1.4rem;text-align:center;transition:background .2s}
    .why-card:hover{background:rgba(255,255,255,.12)}
    .why-icon{font-size:2.2rem;margin-bottom:.8rem}
    .why-title{font-family:var(--font-d);font-size:1.1rem;font-weight:700;color:var(--white);margin-bottom:.5rem;letter-spacing:.04em}
    .why-desc{font-size:.88rem;font-weight:300;color:rgba(255,230,240,.75);line-height:1.6}

    /* ── NEWSLETTER ── */
    .newsletter{background:linear-gradient(135deg,#6b1035 0%,#c0446e 50%,#e87a9f 100%);padding:70px 0 80px;position:relative;contain:layout}
    .newsletter .section-h2{color:var(--white)}
    .newsletter .btn-wine{background:var(--white);color:var(--wine)}
    .newsletter .btn-wine:hover{background:var(--cream);color:var(--teal-dark)}
    .newsletter .section-eyebrow{color:var(--white)}
    .newsletter .section-sub{color:var(--white)}
    .nl-form{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:2rem}
    .nl-input{flex:1;min-width:240px;max-width:380px;padding:.78rem 1.4rem;border-radius:var(--pill);border:none;font-family:var(--font-b);font-size:.95rem;font-weight:400;outline:none;background:rgba(255,255,255,.95);color:var(--wine)}
    .nl-input:focus{background:var(--white)}
    .nl-note{font-size:.78rem;font-weight:400;color:rgba(255,255,255,.7);margin-top:1rem;text-align:center}

    /* ── FOOTER ── */
    .site-footer{background:var(--wine);padding:0 0 2rem;position:relative}
    .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding:3.5rem 0 2.5rem}
    .footer-logo{display:flex;align-items:center;gap:.7rem;font-family:var(--font-d);font-size:1.3rem;font-weight:700;color:var(--white);margin-bottom:1rem;letter-spacing:.03em}
    .footer-logo-mark{font-size:1.6rem}
    .footer-tagline{font-size:.88rem;font-weight:300;color:rgba(255,210,225,.75);line-height:1.6;margin-bottom:1.5rem}
    .footer-social{display:flex;gap:.8rem}
    .social-link{width:36px;height:36px;background:rgba(255,255,255,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,210,225,.8);transition:background .2s,color .2s}
    .social-link:hover{background:var(--teal);color:var(--white)}
    .footer-col-title{font-family:var(--font-d);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,210,225,.9);margin-bottom:1rem}
    .footer-links{list-style:none}
    .footer-links li{margin-bottom:.55rem}
    .footer-links a{font-size:.88rem;font-weight:300;color:rgba(255,210,225,.75);transition:color .15s}
    .footer-links a:hover{color:var(--white)}
    .footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
    .footer-copy{font-size:.8rem;font-weight:300;color:rgba(255,210,225,.7)}
    .footer-legal{font-size:.8rem;font-weight:300;color:rgba(255,210,225,.7)}
    .footer-legal a{color:rgba(255,210,225,.7);transition:color .15s}
    .footer-legal a:hover{color:var(--white)}

    /* ── RESPONSIVE ── */
    @media(max-width:1024px){.cards-grid{grid-template-columns:repeat(2,1fr)}.cat-grid{grid-template-columns:repeat(3,1fr)}.why-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}}
    @media(max-width:768px){.hero-inner{grid-template-columns:1fr;text-align:center}.hero-badges{justify-content:center}.hero-sub{margin:0 auto 2rem}.hero-ctas{justify-content:center}.hero-photo{margin-top:2rem;order:-1}.hero-blob{width:290px;height:290px}.hero-circle,.hero-circle img{width:260px;height:260px}.float-badge-top{right:0}.float-badge-bot{left:0}.cards-grid{grid-template-columns:1fr}.cat-grid{grid-template-columns:repeat(2,1fr)}.why-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;text-align:center}}
  </style>
</head>
<body>

<!-- Skip nav -->
<a class="skip-link" href="#main">Skip to content</a>

<!-- Announce strip -->
<div class="announce" aria-hidden="true">
  <div class="announce-track">
    <span class="announce-item">🧶 New free pattern every week</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">100% free — always</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">Beginner to advanced</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">Join 50,000+ crafters</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">🧶 New free pattern every week</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">100% free — always</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">Beginner to advanced</span>
    <span class="announce-gem">✦</span>
    <span class="announce-item">Join 50,000+ crafters</span>
    <span class="announce-gem">✦</span>
  </div>
</div>

<!-- Navbar -->
<nav class="navbar" role="navigation" aria-label="Main navigation">
  <div class="container">
    <div class="nav-inner">

      <!-- Logo -->
      <a href="index.php" class="nav-logo" aria-label="Tiff Crochets – home">
        <div class="logo-mark" aria-hidden="true">
          <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
            <circle cx="14" cy="14" r="11" stroke="#fde8ef" stroke-width="2.5"/>
            <path d="M14 3 Q20 8 14 14 Q8 20 14 25" stroke="#c0446e" stroke-width="2" fill="none" stroke-linecap="round"/>
            <path d="M3 14 Q8 8 14 14 Q20 20 25 14" stroke="#fde8ef" stroke-width="2" fill="none" stroke-linecap="round" opacity=".7"/>
          </svg>
        </div>
        Tiff Crochets
      </a>

      <!-- Desktop links -->
      <ul class="nav-links" role="list">
        <li><a href="index.php" class="nav-link nav-link--active">Patterns</a></li>
        <li><a href="allArticles.php" class="nav-link">Categories</a></li>
        <li><a href="ourStory.php" class="nav-link">Our Story</a></li>
        <li><a href="products.php" class="nav-link">Hook Me Up</a></li>
        <li><a href="support.php" class="nav-link">Help</a></li>
      </ul>

      <!-- Right CTA -->
      <div class="nav-right">
        <a href="index.php" class="btn btn-wine">Browse Patterns</a>
        <!-- Hamburger toggle (pure CSS + JS fallback) -->
        <button class="hamburger" id="nav-toggle" aria-label="Toggle mobile navigation menu" aria-expanded="false" aria-controls="mobile-nav">
          <span></span><span></span><span></span>
        </button>
      </div>

    </div>
  </div>
</nav>

<!-- Mobile overlay nav -->
<div class="mobile-nav" id="mobile-nav" role="dialog" aria-modal="true" aria-label="Mobile navigation">
  <a href="index.php">Patterns</a>
  <a href="allArticles.php">Categories</a>
  <a href="ourStory.php">Our Story</a>
  <a href="products.php">Hook Me Up</a>
  <a href="support.php">Help</a>
  <a href="index.php" class="btn btn-wine">Browse Patterns</a>
</div>
<main id="main">

  <!-- HERO -->
  <section class="hero" aria-label="Hero section">
    <div class="container">
      <div class="hero-inner">
        <div class="hero-text">
          <div class="hero-badges">
            <span class="pill pill-teal">✨ Beginner Friendly</span>
            <span class="pill pill-wine">🧶 New Every Week</span>
          </div>
          <h1 class="hero-h1">FREE<br><em>CROCHET</em><br>PATTERNS</h1>
          <p class="hero-sub">Discover beautiful amigurumi &amp; crochet patterns — always free, always fun. New patterns drop every week for every skill level.</p>
          <div class="hero-ctas">
            <a href="allArticles.php" class="btn btn-wine">Browse Patterns</a>
            <a href="#newsletter" class="btn btn-outline-wine">Get Free Patterns</a>
          </div>
        </div>
        <div class="hero-photo">
          <div class="hero-blob" aria-hidden="true"></div>
          <div class="hero-circle">
            <img src="images/appah-hero.webp" alt="Tiff holding a handmade amigurumi doll" width="350" height="350" loading="eager" fetchpriority="high" decoding="async"/>
          </div>
          <div class="float-badge float-badge-top" aria-hidden="true">⭐ 50,000+ Crafters</div>
          <div class="float-badge float-badge-bot" aria-hidden="true">🎁 120+ Free Patterns</div>
        </div>
      </div>
    </div>
  </section>

  <!-- FEATURED PATTERNS -->
  <section class="featured" aria-labelledby="featured-heading">
    <div class="container">
      <div class="section-header">
        <p class="section-eyebrow">HAND-PICKED FOR YOU</p>
        <h2 class="section-h2" id="featured-heading">LOOK WHAT WE MADE!</h2>
        <p class="section-sub">Fresh patterns for beginners and seasoned crafters alike.</p>
      </div>
      <div class="cards-grid" role="list">

                <article class="card" role="listitem">
          <a href="https://tiffcrochets.com/patterns/farrah-amigurumi-pattern" style="text-decoration:none;color:inherit;display:block">
          <div class="card-img">
            <img src="https://tiffcrochets.com/images/farrah-amigurumi-pattern/farrah-amigurumi-pattern-200w.webp" alt="Farrah Amigurumi Pattern crochet pattern" width="320" height="240" loading="lazy" decoding="async"/>
          </div>
          <div class="card-body">
            <div class="card-tags">
              <span class="card-tag">Intermediate</span>            </div>
            <h3 class="card-h3">Farrah Amigurumi Pattern</h3>
            <p class="card-desc">Create a beautiful bridal amigurumi named Farrah with this detailed crochet pattern. You will work …</p>
            <div class="card-meta">
              <span>⏱ 12+ Hours</span>              <span>Intermediate</span>            </div>
          </div>
          </a>
        </article>
                <article class="card" role="listitem">
          <a href="https://tiffcrochets.com/patterns/dragon-toothless-amigurumi-pattern-14" style="text-decoration:none;color:inherit;display:block">
          <div class="card-img">
            <img src="https://tiffcrochets.com/images/dragon-toothless-amigurumi-pattern-14/dragon-toothless-amigurumi-pattern-14-200w.webp" alt="Dragon Toothless Amigurumi Pattern crochet pattern" width="320" height="240" loading="lazy" decoding="async"/>
          </div>
          <div class="card-body">
            <div class="card-tags">
              <span class="card-tag">Intermediate</span>            </div>
            <h3 class="card-h3">Dragon Toothless Amigurumi Pattern</h3>
            <p class="card-desc">Make your own adorable Toothless dragon with this complete crochet pattern. You will find step-by-s…</p>
            <div class="card-meta">
              <span>⏱ 12-15 Hours</span>              <span>Intermediate</span>            </div>
          </div>
          </a>
        </article>
                <article class="card" role="listitem">
          <a href="https://tiffcrochets.com/patterns/dragon-toothless-amigurumi-pattern-13" style="text-decoration:none;color:inherit;display:block">
          <div class="card-img">
            <img src="https://tiffcrochets.com/images/dragon-toothless-amigurumi-pattern-13/dragon-toothless-amigurumi-pattern-13-200w.webp" alt="Dragon Toothless Amigurumi Pattern crochet pattern" width="320" height="240" loading="lazy" decoding="async"/>
          </div>
          <div class="card-body">
            <div class="card-tags">
              <span class="card-tag">Intermediate</span>            </div>
            <h3 class="card-h3">Dragon Toothless Amigurumi Pattern</h3>
            <p class="card-desc">Make your own adorable Toothless dragon with this complete crochet pattern. You will find step-by-s…</p>
            <div class="card-meta">
              <span>⏱ 12-15 Hours</span>              <span>Intermediate</span>            </div>
          </div>
          </a>
        </article>
                <article class="card" role="listitem">
          <a href="https://tiffcrochets.com/patterns/dragon-toothless-amigurumi-pattern-12" style="text-decoration:none;color:inherit;display:block">
          <div class="card-img">
            <img src="https://tiffcrochets.com/images/dragon-toothless-amigurumi-pattern-12/dragon-toothless-amigurumi-pattern-12-200w.webp" alt="Dragon Toothless Amigurumi Pattern crochet pattern" width="320" height="240" loading="lazy" decoding="async"/>
          </div>
          <div class="card-body">
            <div class="card-tags">
              <span class="card-tag">Intermediate</span>            </div>
            <h3 class="card-h3">Dragon Toothless Amigurumi Pattern</h3>
            <p class="card-desc">Make your own adorable Toothless-inspired dragon with this detailed crochet pattern. You will croch…</p>
            <div class="card-meta">
              <span>⏱ 12-15 Hours</span>              <span>Intermediate</span>            </div>
          </div>
          </a>
        </article>
                <article class="card" role="listitem">
          <a href="https://tiffcrochets.com/patterns/dragon-toothless-amigurumi-pattern-11" style="text-decoration:none;color:inherit;display:block">
          <div class="card-img">
            <img src="https://tiffcrochets.com/images/dragon-toothless-amigurumi-pattern-11/dragon-toothless-amigurumi-pattern-11-200w.webp" alt="Dragon Toothless Amigurumi Pattern crochet pattern" width="320" height="240" loading="lazy" decoding="async"/>
          </div>
          <div class="card-body">
            <div class="card-tags">
              <span class="card-tag">Intermediate</span>            </div>
            <h3 class="card-h3">Dragon Toothless Amigurumi Pattern</h3>
            <p class="card-desc">Make your own adorable Toothless-inspired dragon with this detailed crochet pattern. You will croch…</p>
            <div class="card-meta">
              <span>⏱ 12-15 Hours</span>              <span>Intermediate</span>            </div>
          </div>
          </a>
        </article>
                <article class="card" role="listitem">
          <a href="https://tiffcrochets.com/patterns/dragon-toothless-amigurumi-pattern-10" style="text-decoration:none;color:inherit;display:block">
          <div class="card-img">
            <img src="https://tiffcrochets.com/images/dragon-toothless-amigurumi-pattern-10/dragon-toothless-amigurumi-pattern-10-200w.webp" alt="Dragon Toothless Amigurumi Pattern crochet pattern" width="320" height="240" loading="lazy" decoding="async"/>
          </div>
          <div class="card-body">
            <div class="card-tags">
              <span class="card-tag">Intermediate</span>            </div>
            <h3 class="card-h3">Dragon Toothless Amigurumi Pattern</h3>
            <p class="card-desc">Bring Toothless to life with this detailed amigurumi pattern that guides you step-by-step through c…</p>
            <div class="card-meta">
              <span>⏱ 12-15 Hours</span>              <span>Intermediate</span>            </div>
          </div>
          </a>
        </article>
        
      </div>
      <div class="center"><a href="allArticles.php" class="btn btn-wine">See All Free Patterns →</a></div>
    </div>
  </section>

  <!-- STATS -->
  <section class="stats" aria-label="Site statistics">
    <div class="container">
      <div class="stats-grid">
        <div><p class="stat-num">50,000+</p><p class="stat-label">Crafters</p></div>
        <div><p class="stat-num">120+</p><p class="stat-label">Free Patterns</p></div>
        <div><p class="stat-num">New</p><p class="stat-label">Pattern Weekly</p></div>
        <div><p class="stat-num">Zero</p><p class="stat-label">Cost. Ever.</p></div>
      </div>
    </div>
  </section>

  <!-- BROWSE BY LEVEL -->
  <section class="categories" aria-labelledby="cat-heading">
    <div class="container">
      <div class="section-header">
        <p class="section-eyebrow">FIND YOUR LEVEL</p>
        <h2 class="section-h2" id="cat-heading">BROWSE BY SKILL LEVEL</h2>
      </div>
      <nav class="cat-grid" aria-label="Pattern skill levels">
                <a href="allArticles.php?level=all" class="cat-card" aria-label="All Levels — Every skill level">
          <div class="cat-emoji" aria-hidden="true">🧶</div>
          <p class="cat-name">All Levels</p>
          <p class="cat-count">Every skill level</p>
        </a>
                <a href="allArticles.php?level=beginner" class="cat-card" aria-label="Beginner Friendly — Start here">
          <div class="cat-emoji" aria-hidden="true">⭐</div>
          <p class="cat-name">Beginner Friendly</p>
          <p class="cat-count">Start here</p>
        </a>
                <a href="allArticles.php?level=intermediate" class="cat-card" aria-label="Intermediate — Level up">
          <div class="cat-emoji" aria-hidden="true">⭐⭐</div>
          <p class="cat-name">Intermediate</p>
          <p class="cat-count">Level up</p>
        </a>
                <a href="allArticles.php?level=hard" class="cat-card" aria-label="Hard — Expert crafters">
          <div class="cat-emoji" aria-hidden="true">⭐⭐⭐</div>
          <p class="cat-name">Hard</p>
          <p class="cat-count">Expert crafters</p>
        </a>
              </nav>
    </div>
  </section>

  <!-- WHY CRAFTERS LOVE US -->
  <section class="why" aria-labelledby="why-heading">
    <div class="container">
      <div class="section-header">
        <p class="section-eyebrow">WHAT MAKES US DIFFERENT</p>
        <h2 class="section-h2" id="why-heading">WHY CRAFTERS LOVE US</h2>
        <p class="section-sub">Everything you need to create something magical.</p>
      </div>
      <div class="why-grid">
        <div class="why-card"><div class="why-icon" aria-hidden="true">🆓</div><p class="why-title">100% FREE, ALWAYS</p><p class="why-desc">Every single pattern on this site is free. No paywalls, no subscriptions, no catch.</p></div>
        <div class="why-card"><div class="why-icon" aria-hidden="true">🌟</div><p class="why-title">BEGINNER FRIENDLY</p><p class="why-desc">Clear step-by-step instructions with stitch counts make every pattern easy to follow.</p></div>
        <div class="why-card"><div class="why-icon" aria-hidden="true">🎨</div><p class="why-title">MADE WITH LOVE</p><p class="why-desc">Each pattern is tested, photographed, and refined before sharing — quality guaranteed.</p></div>
        <div class="why-card"><div class="why-icon" aria-hidden="true">💬</div><p class="why-title">COMMUNITY</p><p class="why-desc">Join thousands of crafters who share their makes and support each other every day.</p></div>
      </div>
    </div>
  </section>

  <!-- NEWSLETTER -->
  <section class="newsletter" id="newsletter" aria-labelledby="nl-heading">
    <div class="container">
      <div class="section-header">
        <p class="section-eyebrow">NEVER MISS A PATTERN</p>
        <h2 class="section-h2" id="nl-heading">GET PATTERNS IN YOUR INBOX</h2>
        <p class="section-sub">Join 50,000+ crafters getting a free pattern every single week.</p>
      </div>
      <form class="nl-form" action="subscribe.php" method="post" aria-label="Newsletter subscription form">
        <label for="nl-email" class="sr-only">Your email address</label>
        <input id="nl-email" type="email" name="email" class="nl-input" placeholder="your@email.com" required aria-required="true" autocomplete="email"/>
        <button type="submit" class="btn btn-wine" aria-label="Subscribe to free pattern newsletter">Subscribe Free</button>
      </form>
      <p class="nl-note">No spam. Unsubscribe anytime. 💌</p>
    </div>
  </section>

</main>

<!-- Footer -->
<footer class="site-footer" role="contentinfo">
  <div class="container">
    <div class="footer-grid">

      <!-- Brand -->
      <div class="footer-brand">
        <a href="index.php" class="footer-logo" aria-label="Tiff Crochets home">
          <div class="footer-logo-mark" aria-hidden="true">🧶</div>
          Tiff Crochets
        </a>
        <p class="footer-tagline">Free amigurumi &amp; crochet patterns, lovingly made for every skill level.</p>
        <div class="footer-social">
          <a href="#" aria-label="Follow Tiff Crochets on Pinterest" class="social-link">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 0C5.373 0 0 5.373 0 12c0 5.084 3.163 9.426 7.627 11.174-.105-.949-.2-2.405.042-3.441.218-.937 1.407-5.965 1.407-5.965s-.359-.719-.359-1.782c0-1.668.967-2.914 2.171-2.914 1.023 0 1.518.769 1.518 1.69 0 1.029-.655 2.568-.994 3.995-.283 1.194.599 2.169 1.777 2.169 2.133 0 3.772-2.249 3.772-5.495 0-2.873-2.064-4.882-5.012-4.882-3.414 0-5.418 2.561-5.418 5.207 0 1.031.397 2.138.893 2.738a.36.36 0 0 1 .083.345l-.333 1.36c-.053.22-.174.267-.402.161-1.499-.698-2.436-2.889-2.436-4.649 0-3.785 2.75-7.262 7.929-7.262 4.163 0 7.398 2.967 7.398 6.931 0 4.136-2.607 7.464-6.227 7.464-1.216 0-2.359-.632-2.75-1.378l-.748 2.853c-.271 1.043-1.002 2.35-1.492 3.146C9.57 23.812 10.763 24 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0z"/></svg>
          </a>
          <a href="#" aria-label="Follow Tiff Crochets on Instagram" class="social-link">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z"/></svg>
          </a>
          <a href="#" aria-label="Follow Tiff Crochets on YouTube" class="social-link">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
          </a>
        </div>
      </div>

      <!-- Links -->
      <div class="footer-col">
        <h3 class="footer-col-title">Explore</h3>
        <ul class="footer-links" role="list">
          <li><a href="index.php" aria-label="Browse free crochet patterns">All Patterns</a></li>
          <li><a href="allArticles.php" aria-label="View pattern categories">Categories</a></li>
          <li><a href="ourStory.php" aria-label="Learn about Tiff">Our Story</a></li>
          <li><a href="author/index.php" aria-label="View author profile">Meet the Author</a></li>
        </ul>
      </div>

      <div class="footer-col">
        <h3 class="footer-col-title">Shop & Help</h3>
        <ul class="footer-links" role="list">
          <li><a href="products.php" aria-label="Crochet tools and supplies">Hook Me Up Shop</a></li>
          <li><a href="support.php" aria-label="Get crochet help">Help & Support</a></li>
          <li><a href="mailto:hello@tiffcrochets.com" aria-label="Email us">Contact Us</a></li>
        </ul>
      </div>

      <div class="footer-col">
        <h3 class="footer-col-title">Legal</h3>
        <ul class="footer-links" role="list">
          <li><a href="PrivacyPolicy.php" aria-label="Read our privacy policy">Privacy Policy</a></li>
          <li><a href="TermsofService.php" aria-label="Read our terms of service">Terms of Service</a></li>
        </ul>
      </div>

    </div>

    <div class="footer-bottom">
      <p class="footer-copy">&copy; 2026 Tiff Crochets. All rights reserved.</p>
      <p class="footer-legal"><a href="PrivacyPolicy.php" aria-label="Privacy Policy">Privacy</a> · <a href="TermsofService.php" aria-label="Terms of Service">Terms</a></p>
    </div>
  </div>
</footer>

<!-- Deferred Bootstrap JS + Nav toggle (loads after window.load) -->
<script>
window.addEventListener('load', function() {
  // Mobile nav toggle
  var toggle = document.getElementById('nav-toggle');
  var mobileNav = document.getElementById('mobile-nav');
  if (toggle && mobileNav) {
    toggle.addEventListener('click', function() {
      var isOpen = mobileNav.classList.toggle('open');
      toggle.classList.toggle('open', isOpen);
      toggle.setAttribute('aria-expanded', String(isOpen));
      document.body.style.overflow = isOpen ? 'hidden' : '';
    });
    mobileNav.addEventListener('click', function(e) {
      if (e.target === mobileNav || e.target.tagName === 'A') {
        mobileNav.classList.remove('open');
        toggle.classList.remove('open');
        toggle.setAttribute('aria-expanded', 'false');
        document.body.style.overflow = '';
      }
    });
  }
});
</script>
</body>
</html>