{"product_id":"the-velvet-puff","title":"The Velvet Puff","description":"\u003cstyle\u003e\n  \/* =========================================================\n     BRUSH THEORY — THE VELVET PUFF\n     PREMIUM ANIMATED PRODUCT DESCRIPTION\n     ========================================================= *\/\n\n  .bt-velvet-puff {\n    --brown: #3D1F1A;\n    --rose: #C9847A;\n    --blush: #E8B4A0;\n    --gold: #D4AF84;\n    --cream: #FAF6F1;\n    --soft-brown: #765F58;\n\n    position: relative;\n    width: 100%;\n    max-width: 900px;\n    margin: 35px auto;\n    padding: 70px 28px;\n    overflow: hidden;\n    box-sizing: border-box;\n\n    background:\n      radial-gradient(\n        circle at 8% 10%,\n        rgba(232,180,160,.18),\n        transparent 28%\n      ),\n      radial-gradient(\n        circle at 92% 88%,\n        rgba(212,175,132,.14),\n        transparent 30%\n      ),\n      linear-gradient(\n        135deg,\n        #fffdfb 0%,\n        var(--cream) 100%\n      );\n\n    color: var(--brown);\n    border-radius: 26px;\n\n    font-family:\n      Arial,\n      Helvetica,\n      sans-serif;\n\n    box-shadow:\n      0 20px 60px rgba(61,31,26,.07);\n  }\n\n  .bt-velvet-puff *,\n  .bt-velvet-puff *::before,\n  .bt-velvet-puff *::after {\n    box-sizing: border-box;\n  }\n\n\n  \/* =========================================================\n     FLOATING BACKGROUND LIGHT\n     ========================================================= *\/\n\n  .bt-velvet-light {\n    position: absolute;\n    width: 190px;\n    height: 190px;\n    border-radius: 50%;\n    pointer-events: none;\n    filter: blur(55px);\n    opacity: .7;\n\n    background: rgba(232,180,160,.20);\n\n    animation:\n      btVelvetFloat\n      8s\n      ease-in-out\n      infinite;\n  }\n\n  .bt-velvet-light.one {\n    top: -80px;\n    left: -70px;\n  }\n\n  .bt-velvet-light.two {\n    right: -80px;\n    bottom: -90px;\n\n    background: rgba(212,175,132,.18);\n\n    animation-delay: 2.5s;\n  }\n\n\n  \/* =========================================================\n     HEADER\n     ========================================================= *\/\n\n  .bt-velvet-header {\n    position: relative;\n    text-align: center;\n    z-index: 2;\n\n    animation:\n      btVelvetReveal\n      1s\n      cubic-bezier(.22,1,.36,1)\n      both;\n  }\n\n  .bt-velvet-brand {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 12px;\n\n    margin-bottom: 20px;\n\n    color: var(--rose);\n\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 3.5px;\n    text-transform: uppercase;\n  }\n\n  .bt-velvet-brand::before,\n  .bt-velvet-brand::after {\n    content: \"\";\n    width: 38px;\n    height: 1px;\n\n    background:\n      linear-gradient(\n        90deg,\n        transparent,\n        var(--gold)\n      );\n  }\n\n  .bt-velvet-brand::after {\n    background:\n      linear-gradient(\n        90deg,\n        var(--gold),\n        transparent\n      );\n  }\n\n\n  .bt-velvet-title {\n    margin: 0;\n\n    color: var(--brown);\n\n    font-family:\n      Georgia,\n      \"Times New Roman\",\n      serif;\n\n    font-size: clamp(38px, 7vw, 65px);\n    font-weight: 400;\n    line-height: 1.02;\n\n    letter-spacing: -1.5px;\n  }\n\n  .bt-velvet-title span {\n    display: block;\n\n    margin-top: 7px;\n\n    color: var(--rose);\n\n    font-style: italic;\n  }\n\n\n  \/* =========================================================\n     GOLD ANIMATED LINE\n     ========================================================= *\/\n\n  .bt-velvet-line {\n    position: relative;\n\n    width: 90px;\n    height: 1px;\n\n    margin: 27px auto 0;\n\n    overflow: hidden;\n\n    background: rgba(212,175,132,.25);\n  }\n\n  .bt-velvet-line::after {\n    content: \"\";\n\n    position: absolute;\n    top: 0;\n    left: -100%;\n\n    width: 100%;\n    height: 100%;\n\n    background:\n      linear-gradient(\n        90deg,\n        transparent,\n        var(--gold),\n        transparent\n      );\n\n    animation:\n      btVelvetSweep\n      2.5s\n      ease-in-out\n      infinite;\n  }\n\n\n  \/* =========================================================\n     INTRODUCTION\n     ========================================================= *\/\n\n  .bt-velvet-intro {\n    position: relative;\n    z-index: 2;\n\n    max-width: 650px;\n\n    margin: 45px auto 48px;\n\n    text-align: center;\n\n    animation:\n      btVelvetReveal\n      1s\n      .18s\n      cubic-bezier(.22,1,.36,1)\n      both;\n  }\n\n  .bt-velvet-intro p {\n    margin: 0;\n\n    color: var(--soft-brown);\n\n    font-size: 16px;\n    line-height: 1.9;\n  }\n\n  .bt-velvet-intro strong {\n    color: var(--brown);\n    font-weight: 700;\n  }\n\n\n  \/* =========================================================\n     FEATURE GRID\n     ========================================================= *\/\n\n  .bt-velvet-grid {\n    position: relative;\n    z-index: 2;\n\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n\n    gap: 16px;\n  }\n\n\n  \/* =========================================================\n     FEATURE CARD\n     ========================================================= *\/\n\n  .bt-velvet-card {\n    position: relative;\n\n    min-height: 185px;\n\n    padding: 27px 23px;\n\n    overflow: hidden;\n\n    border:\n      1px solid\n      rgba(212,175,132,.30);\n\n    border-radius: 20px;\n\n    background:\n      rgba(255,255,255,.62);\n\n    backdrop-filter: blur(14px);\n    -webkit-backdrop-filter: blur(14px);\n\n    box-shadow:\n      inset 0 1px 0 rgba(255,255,255,.7);\n\n    opacity: 0;\n\n    animation:\n      btVelvetCardReveal\n      .9s\n      cubic-bezier(.22,1,.36,1)\n      forwards;\n\n    transition:\n      transform .5s ease,\n      box-shadow .5s ease,\n      border-color .5s ease;\n  }\n\n\n  .bt-velvet-card:nth-child(1) {\n    animation-delay: .30s;\n  }\n\n  .bt-velvet-card:nth-child(2) {\n    animation-delay: .42s;\n  }\n\n  .bt-velvet-card:nth-child(3) {\n    animation-delay: .54s;\n  }\n\n  .bt-velvet-card:nth-child(4) {\n    animation-delay: .66s;\n  }\n\n  .bt-velvet-card:nth-child(5) {\n    animation-delay: .78s;\n\n    grid-column: 1 \/ -1;\n  }\n\n\n  \/* Moving light reflection *\/\n\n  .bt-velvet-card::before {\n    content: \"\";\n\n    position: absolute;\n\n    top: -20%;\n    left: -130%;\n\n    width: 75%;\n    height: 140%;\n\n    background:\n      linear-gradient(\n        90deg,\n        transparent,\n        rgba(255,255,255,.75),\n        transparent\n      );\n\n    transform: skewX(-22deg);\n\n    transition:\n      left .9s ease;\n  }\n\n  .bt-velvet-card:hover::before {\n    left: 145%;\n  }\n\n\n  .bt-velvet-card:hover {\n    transform:\n      translateY(-7px);\n\n    border-color:\n      rgba(212,175,132,.70);\n\n    box-shadow:\n      0 22px 45px\n      rgba(61,31,26,.11);\n  }\n\n\n  \/* =========================================================\n     ICON\n     ========================================================= *\/\n\n  .bt-velvet-icon {\n    position: relative;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    width: 47px;\n    height: 47px;\n\n    margin-bottom: 17px;\n\n    border-radius: 50%;\n\n    background:\n      linear-gradient(\n        135deg,\n        rgba(232,180,160,.28),\n        rgba(212,175,132,.20)\n      );\n\n    font-size: 20px;\n\n    box-shadow:\n      0 6px 18px\n      rgba(61,31,26,.05);\n\n    transition:\n      transform .55s ease,\n      box-shadow .55s ease;\n  }\n\n  .bt-velvet-card:hover .bt-velvet-icon {\n    transform:\n      scale(1.1)\n      rotate(7deg);\n\n    box-shadow:\n      0 10px 25px\n      rgba(201,132,122,.20);\n  }\n\n\n  \/* =========================================================\n     CARD TEXT\n     ========================================================= *\/\n\n  .bt-velvet-card h3 {\n    position: relative;\n    z-index: 2;\n\n    margin: 0 0 9px;\n\n    color: var(--brown);\n\n    font-family:\n      Georgia,\n      \"Times New Roman\",\n      serif;\n\n    font-size: 20px;\n    font-weight: 400;\n    line-height: 1.25;\n  }\n\n  .bt-velvet-card p {\n    position: relative;\n    z-index: 2;\n\n    margin: 0;\n\n    color: var(--soft-brown);\n\n    font-size: 14px;\n    line-height: 1.7;\n  }\n\n\n  \/* =========================================================\n     FINAL STATEMENT\n     ========================================================= *\/\n\n  .bt-velvet-final {\n    position: relative;\n    z-index: 2;\n\n    margin-top: 58px;\n    padding-top: 35px;\n\n    text-align: center;\n\n    opacity: 0;\n\n    animation:\n      btVelvetReveal\n      1s\n      1s\n      cubic-bezier(.22,1,.36,1)\n      forwards;\n  }\n\n  .bt-velvet-final::before {\n    content: \"\";\n\n    position: absolute;\n\n    top: 0;\n    left: 50%;\n\n    width: 110px;\n    height: 1px;\n\n    transform: translateX(-50%);\n\n    background:\n      linear-gradient(\n        90deg,\n        transparent,\n        var(--gold),\n        transparent\n      );\n  }\n\n  .bt-velvet-final-main {\n    margin: 0;\n\n    color: var(--brown);\n\n    font-family:\n      Georgia,\n      \"Times New Roman\",\n      serif;\n\n    font-size: 29px;\n    font-weight: 400;\n  }\n\n  .bt-velvet-final-main em {\n    color: var(--rose);\n    font-style: italic;\n  }\n\n  .bt-velvet-final-small {\n    margin: 13px 0 0;\n\n    color: #9A756B;\n\n    font-size: 9px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n  }\n\n\n  \/* =========================================================\n     ANIMATIONS\n     ========================================================= *\/\n\n  @keyframes btVelvetReveal {\n    from {\n      opacity: 0;\n      transform: translateY(28px);\n    }\n\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n\n\n  @keyframes btVelvetCardReveal {\n    from {\n      opacity: 0;\n      transform:\n        translateY(35px)\n        scale(.97);\n    }\n\n    to {\n      opacity: 1;\n      transform:\n        translateY(0)\n        scale(1);\n    }\n  }\n\n\n  @keyframes btVelvetFloat {\n    0%,\n    100% {\n      transform:\n        translate(0,0)\n        scale(1);\n    }\n\n    50% {\n      transform:\n        translate(20px,-18px)\n        scale(1.08);\n    }\n  }\n\n\n  @keyframes btVelvetSweep {\n    0% {\n      left: -100%;\n    }\n\n    45%,\n    100% {\n      left: 100%;\n    }\n  }\n\n\n  \/* =========================================================\n     MOBILE\n     ========================================================= *\/\n\n  @media (max-width: 600px) {\n\n    .bt-velvet-puff {\n      margin: 20px auto;\n      padding: 52px 18px;\n      border-radius: 20px;\n    }\n\n    .bt-velvet-title {\n      font-size: 41px;\n    }\n\n    .bt-velvet-brand {\n      font-size: 9px;\n      letter-spacing: 2.4px;\n    }\n\n    .bt-velvet-brand::before,\n    .bt-velvet-brand::after {\n      width: 22px;\n    }\n\n    .bt-velvet-intro {\n      margin-top: 38px;\n    }\n\n    .bt-velvet-intro p {\n      font-size: 14px;\n      line-height: 1.85;\n    }\n\n    .bt-velvet-grid {\n      grid-template-columns: 1fr;\n      gap: 12px;\n    }\n\n    .bt-velvet-card {\n      min-height: auto;\n      padding: 24px 20px;\n    }\n\n    .bt-velvet-card:nth-child(5) {\n      grid-column: auto;\n    }\n\n    .bt-velvet-final-main {\n      font-size: 24px;\n    }\n  }\n\n\n  \/* =========================================================\n     REDUCED MOTION\n     ========================================================= *\/\n\n  @media (prefers-reduced-motion: reduce) {\n\n    .bt-velvet-puff *,\n    .bt-velvet-puff {\n      animation: none !important;\n      transition: none !important;\n    }\n\n    .bt-velvet-card {\n      opacity: 1;\n    }\n\n    .bt-velvet-final {\n      opacity: 1;\n    }\n  }\n\u003c\/style\u003e\n\n\n\u003cdiv class=\"bt-velvet-puff\"\u003e\n\n  \u003c!-- Ambient lighting --\u003e\n  \u003cdiv class=\"bt-velvet-light one\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"bt-velvet-light two\"\u003e\u003c\/div\u003e\n\n\n  \u003c!-- HEADER --\u003e\n\n  \u003cdiv class=\"bt-velvet-header\"\u003e\n\n    \u003cdiv class=\"bt-velvet-brand\"\u003e\n      BRUSH THEORY\n    \u003c\/div\u003e\n\n    \u003ch2 class=\"bt-velvet-title\"\u003e\n      Your Finishing\n      \u003cspan\u003eTouch. ✨\u003c\/span\u003e\n    \u003c\/h2\u003e\n\n    \u003cdiv class=\"bt-velvet-line\"\u003e\u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- INTRO --\u003e\n\n  \u003cdiv class=\"bt-velvet-intro\"\u003e\n\n    \u003cp\u003e\n      The \u003cstrong\u003eVelvet Puff\u003c\/strong\u003e by Brush Theory is the ultimate tool\n      for setting your makeup and achieving that smooth, poreless,\n      camera-ready finish — every single time.\n    \u003c\/p\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- FEATURES --\u003e\n\n  \u003cdiv class=\"bt-velvet-grid\"\u003e\n\n\n    \u003c!-- FEATURE 1 --\u003e\n\n    \u003cdiv class=\"bt-velvet-card\"\u003e\n\n      \u003cdiv class=\"bt-velvet-icon\"\u003e\n        🌸\n      \u003c\/div\u003e\n\n      \u003ch3\u003e\n        Ultra-Soft Velvet Surface\n      \u003c\/h3\u003e\n\n      \u003cp\u003e\n        Applies powder evenly without disturbing your base.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- FEATURE 2 --\u003e\n\n    \u003cdiv class=\"bt-velvet-card\"\u003e\n\n      \u003cdiv class=\"bt-velvet-icon\"\u003e\n        ✨\n      \u003c\/div\u003e\n\n      \u003ch3\u003e\n        Airbrushed Finish\n      \u003c\/h3\u003e\n\n      \u003cp\u003e\n        Blurs pores and sets makeup for long-lasting wear.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- FEATURE 3 --\u003e\n\n    \u003cdiv class=\"bt-velvet-card\"\u003e\n\n      \u003cdiv class=\"bt-velvet-icon\"\u003e\n        🎨\n      \u003c\/div\u003e\n\n      \u003ch3\u003e\n        Works With All Powders\n      \u003c\/h3\u003e\n\n      \u003cp\u003e\n        Setting powder, translucent powder, pressed powder \u0026amp; more.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- FEATURE 4 --\u003e\n\n    \u003cdiv class=\"bt-velvet-card\"\u003e\n\n      \u003cdiv class=\"bt-velvet-icon\"\u003e\n        ♻️\n      \u003c\/div\u003e\n\n      \u003ch3\u003e\n        Reusable \u0026amp; Easy to Clean\n      \u003c\/h3\u003e\n\n      \u003cp\u003e\n        Rinse, air dry, and it's good as new.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- FEATURE 5 --\u003e\n\n    \u003cdiv class=\"bt-velvet-card\"\u003e\n\n      \u003cdiv class=\"bt-velvet-icon\"\u003e\n        👜\n      \u003c\/div\u003e\n\n      \u003ch3\u003e\n        Compact \u0026amp; Travel-Friendly\n      \u003c\/h3\u003e\n\n      \u003cp\u003e\n        Perfect for touch-ups on the go.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- FINAL STATEMENT --\u003e\n\n  \u003cdiv class=\"bt-velvet-final\"\u003e\n\n    \u003cp class=\"bt-velvet-final-main\"\u003e\n      Set it. Forget it.\n      \u003cem\u003eBeauty. Perfected.\u003c\/em\u003e ✦\n    \u003c\/p\u003e\n\n    \u003cp class=\"bt-velvet-final-small\"\u003e\n      PREMIUM BEAUTY ESSENTIALS\n    \u003c\/p\u003e\n\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Brush Theory","offers":[{"title":"Beige","offer_id":50523704983741,"sku":null,"price":230.0,"currency_code":"ZAR","in_stock":true},{"title":"cerise pink","offer_id":50523705016509,"sku":null,"price":230.0,"currency_code":"ZAR","in_stock":true},{"title":"baby pink","offer_id":50523705049277,"sku":null,"price":230.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0797\/0963\/4749\/files\/6AAED95D-FAC1-40F2-B48D-E9B245231D56.png?v=1790167226","url":"https:\/\/brushtheory.co.za\/products\/the-velvet-puff","provider":"Brush theory","version":"1.0","type":"link"}