*{ box-sizing:border-box; margin:0; padding:0; }
  html,body{
    width:100%; height:100%;
    background:#090705;
    font-family:"Segoe UI", Arial, sans-serif;
    overflow:hidden;
  }

  /* ---------- responsive viewport: letterbox-scales the fixed 1820x1024 stage
       so the whole design always fits on screen, on any device ---------- */
  .viewport{
    position:fixed;
    inset:0;
    background:#090705;
    overflow:hidden;
  }
  .stage{
    position:absolute;
    top:50%; left:50%;
    width:1820px;
    height:1024px;
    transform-origin:center center;
    background:
      radial-gradient(ellipse 950px 750px at 56% 55%, #6a2a10 0%, #4a2010 28%, #1a0f08 55%, #090705 75%),
      #090705;
    will-change:transform;
  }

  /* ---------------- rise-in animation ---------------- */
  @keyframes riseIn{
    from{ opacity:0; transform:translateY(50px); }
    to{ opacity:1; transform:translateY(0); }
  }
  .rise{
    opacity:0;
    transform:translateY(50px);
    animation:riseIn 0.9s ease forwards;
  }

  /* ---------------- top bar ---------------- */
  .topbar{
    position:absolute;
    top:45px; left:50px; right:70px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    z-index:10;
  }
  .logo-img{ height:56px; display:block; animation-delay:0.15s; }
  .topbar-right{
    display:flex; align-items:center; gap:24px;
    animation-delay:0.3s;
  }
  .topbar-line{
    width:340px; height:1px;
    background:rgba(255,255,255,0.25);
    position:relative;
  }
  .topbar-dot{
    position:absolute; right:-6px; top:50%;
    width:9px; height:9px; border-radius:50%;
    background:#fff; transform:translateY(-50%);
  }
  .about-link{ color:#eee; font-size:16px; letter-spacing:0.3px; white-space:nowrap; position:relative; top:-4px; text-decoration:none; transition:color 0.2s ease; }
  .about-link:hover{ color:#FDB98E; }

  /* ---------------- left text column ---------------- */
  .left-col{
    position:absolute;
    left:50px; top:185px;
    width:440px;
    z-index:10;
  }
  .brand-logo{
    display:block;
    width:300px;
    margin-bottom:40px;
    animation-delay:0.45s;
  }
  .divider{
    width:335px; height:1px;
    background:rgba(255,255,255,0.35);
    margin-bottom:28px;
    animation-delay:0.55s;
  }
  .desc p{
    color:#e7e2dc;
    font-size:17px;
    line-height:1.55;
    margin-bottom:18px;
  }
  .desc{ margin-bottom:40px; }
  .desc p:nth-child(1){ animation-delay:0.65s; }
  .desc p:nth-child(2){ animation-delay:0.75s; }

  .cta-row{
    display:flex;
    align-items:center;
    gap:20px;
    margin-top:0;
    animation-delay:0.85s;
  }
  .cta{
    display:inline-flex;
    align-items:center;
    gap:0;
    padding:4px;
    border-radius:30px;
    border:none;
    cursor:pointer;
    font-size:15px;
    font-weight:700;
    letter-spacing:1px;
    color:#fff;
    background:linear-gradient(90deg,#ECB667,#BF4E19);
  }
  .cta span.label{ padding:14px 10px 14px 26px; }
  .cta .circle{
    width:46px; height:46px;
    border-radius:50%;
    background:#2a0c1c;
    display:flex; align-items:center; justify-content:center;
  }
  .down-arrow{
    width:22px; height:22px;
    color:#fff;
    opacity:0.9;
  }

  .frame-bg{
    position:absolute;
    top:0; left:0;
    width:100%;
    z-index:4;
    pointer-events:none;
    mix-blend-mode:screen;
    opacity:0.85;
  }

  /* ---------------- product art ---------------- */
  .art{ position:absolute; inset:0; z-index:5; }
  .pack{ position:absolute; }
  .pack img{ width:100%; display:block; }

  @keyframes swayMain{
    0%,100%{ transform:rotate(12deg) translateY(0px); }
    50%{ transform:rotate(12deg) translateY(-16px); }
  }
  @keyframes swaySmall{
    0%,100%{ transform:translateY(0px); }
    50%{ transform:translateY(-12px); }
  }
  .bb-main{
    width:430px; top:145px; left:735px;
    transform-origin:50% 50%;
    animation:swayMain 6.5s ease-in-out infinite;
    filter:drop-shadow(0 35px 35px rgba(0,0,0,0.55));
  }
  .bb-small{
    width:290px; top:295px; left:1235px;
    animation:swaySmall 5.3s ease-in-out infinite;
    animation-delay:0.35s;
    filter:drop-shadow(0 30px 30px rgba(0,0,0,0.5));
  }

  /* ---------------- floating decor — sway independently of the packages ---------------- */
  .decor{ position:absolute; }
  .decor img{ width:100%; display:block; }

  @keyframes decorSwayA{
    0%,100%{ transform:rotate(32deg) translateY(0px); }
    50%{ transform:rotate(40deg) translateY(-14px); }
  }
  @keyframes decorSwayB{
    0%,100%{ transform:rotate(18deg) translateY(0px); }
    50%{ transform:rotate(26deg) translateY(-10px); }
  }
  @keyframes decorSwayC{
    0%,100%{ transform:rotate(0deg) translateY(0px); }
    50%{ transform:rotate(8deg) translateY(-12px); }
  }
  @keyframes decorSwayD{
    0%,100%{ transform:rotate(-10deg) translateY(0px); }
    50%{ transform:rotate(2deg) translateY(-9px); }
  }
  .decor-cracker-top{
    width:188px; top:245px; left:610px;
    animation:decorSwayA 5.2s ease-in-out infinite;
    filter:drop-shadow(0 12px 14px rgba(0,0,0,0.4));
  }
  @keyframes decorSwayB2{
    0%,100%{ transform:scaleX(-1) rotate(18deg) translateY(0px); }
    50%{ transform:scaleX(-1) rotate(26deg) translateY(-10px); }
  }
  .decor-cracker-top2{
    width:150px; top:210px; left:1130px;
    animation:decorSwayB2 5.4s ease-in-out infinite;
    animation-delay:0.3s;
    filter:drop-shadow(0 12px 14px rgba(0,0,0,0.4));
  }
  .decor-cracker-right{
    width:120px; top:390px; left:1545px;
    transform:scaleX(-1);
    filter:drop-shadow(0 12px 14px rgba(0,0,0,0.4));
  }
  .decor-cracker-right img{
    animation:decorSwayB 4.7s ease-in-out infinite;
    animation-delay:0.4s;
  }
  .decor-cracker-new{
    width:150px; top:430px; left:1470px;
    z-index:-1;
    animation:decorSwayB 5.4s ease-in-out infinite;
    animation-delay:0.5s;
    filter:drop-shadow(0 12px 14px rgba(0,0,0,0.4));
  }
  @keyframes decorSwayA2{
    0%,100%{ transform:rotate(-28deg) translateY(0px); }
    50%{ transform:rotate(-20deg) translateY(-14px); }
  }
  .decor-cracker-small{
    width:95px; top:500px; left:1500px;
    transform:scaleX(-1);
    filter:drop-shadow(0 10px 12px rgba(0,0,0,0.4));
  }
  .decor-cracker-small img{
    animation:decorSwayA2 4.4s ease-in-out infinite;
    animation-delay:0.2s;
  }
  .decor-pepper-top{
    width:55px; top:210px; left:1350px;
    animation:decorSwayC 4.1s ease-in-out infinite;
    animation-delay:0.7s;
    filter:drop-shadow(0 8px 10px rgba(0,0,0,0.35));
  }
  .decor-pepper-bottom{
    width:55px; top:695px; left:1145px;
    animation:decorSwayC 3.8s ease-in-out infinite;
    animation-delay:1.1s;
    filter:drop-shadow(0 8px 10px rgba(0,0,0,0.35));
  }
  .decor-parsley{
    width:151.2px; top:500px; left:1020px;
    animation:decorSwayD 4.9s ease-in-out infinite;
    animation-delay:0.5s;
    filter:drop-shadow(0 10px 12px rgba(0,0,0,0.4));
  }
  .decor-parsley-2 img{
    animation:decorSwayD 4.6s ease-in-out infinite;
    animation-delay:0.9s;
  }

  /* ---------------- bottom thumbnail band ---------------- */
  .thumb-band{
    position:absolute;
    left:0; right:0; bottom:0;
    height:197px;
    background:#050203;
    border-top:1px solid rgba(255,255,255,0.08);
    z-index:10;
    animation-delay:1s;
  }
  .menu-icon{
    position:absolute;
    top:27.25px;
    height:142.5px;
    display:block;
    cursor:pointer;
    border-radius:10px;
    transition:background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }
  .menu-icon img{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
    object-position:center;
  }
  .menu-icon:hover{
    transform:translateY(-4px);
  }

  .catalog-overlay{
    position:absolute;
    inset:0;
    z-index:200;
    background:#0c0a08;
    display:none;
    flex-direction:column;
    transform:translateY(100%);
    transition:transform 0.75s cubic-bezier(0.22,1,0.36,1);
    will-change:transform;
  }
  .catalog-overlay.open{
    display:flex;
    transform:translateY(0);
  }
  .catalog-close{
    position:absolute;
    top:45px; right:70px;
    z-index:20;
    width:44px; height:44px;
    border-radius:50%;
    border:none;
    background:linear-gradient(135deg,#ECB667,#BF4E19);
    color:#fff;
    font-size:22px;
    line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 18px rgba(80,10,45,0.5);
    transition:box-shadow 0.2s ease, transform 0.2s ease;
  }
  .catalog-close:hover{
    box-shadow:0 10px 22px rgba(80,10,45,0.65);
    transform:rotate(90deg);
  }
  .catalog-header{
    display:flex;
    align-items:center;
    gap:108px;
    padding:50px 70px 26px;
    flex:0 0 auto;
  }
  .catalog-logo{
    width:220px; height:auto;
    display:block;
    flex:0 0 auto;
  }
  .catalog-header-text{ max-width:900px; }
  .catalog-header-text h2{
    color:#FF9147;
    font-size:19px;
    letter-spacing:0.5px;
    font-weight:700;
    margin-bottom:10px;
  }
  .catalog-header-text p{
    color:#e7e2dc;
    font-size:16px;
    line-height:1.55;
    margin-bottom:2px;
  }
  .catalog-grid-wrap{
    position:relative;
    flex:1 1 auto;
    min-height:0;
    padding:0 40px 0 70px;
  }
  .catalog-grid{
    height:100%;
    width:calc(100% + 20px);
    margin-right:-20px;
    overflow-y:auto;
    padding:14px 46px 40px 0;
    scrollbar-width:thin;
    scrollbar-color:#FF9147 rgba(255,255,255,0.08);
  }
  .catalog-grid::-webkit-scrollbar{
    width:8px;
  }
  .catalog-grid::-webkit-scrollbar-track{
    background:rgba(255,255,255,0.07);
    border-radius:10px;
  }
  .catalog-grid::-webkit-scrollbar-thumb{
    background:#FF9147;
    border-radius:10px;
  }
  .product-grid{
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    gap:26px;
  }
  .product-card{
    background:#232323;
    border-radius:4.67px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    cursor:default;
    transition:transform 0.3s ease, box-shadow 0.3s ease;
  }
  .product-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 30px rgba(0,0,0,0.45);
  }
  .product-card img{
    height:275px;
    width:auto;
    max-width:88%;
    object-fit:contain;
    display:block;
    margin:26px auto 0;
  }
  .product-card img.zoomable-product{
    cursor:zoom-in;
    transition:transform 0.25s ease;
  }
  .product-card img.zoomable-product:hover{
    transform:scale(1.05);
  }
  .product-zoom-overlay{
    position:fixed;
    inset:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.82);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:9999;
    cursor:zoom-out;
    opacity:0;
    transition:opacity 0.25s ease;
  }
  .product-zoom-overlay.open{
    display:flex;
    opacity:1;
  }
  .product-zoom-overlay img{
    max-width:90vw;
    max-height:90vh;
    object-fit:contain;
    box-shadow:0 30px 80px rgba(0,0,0,0.7);
    transform:scale(0.92);
    transition:transform 0.25s ease;
  }
  .product-zoom-overlay.open img{
    transform:scale(1);
  }
  .product-zoom-close{
    position:absolute;
    top:28px;
    right:38px;
    width:52px;
    height:52px;
    border-radius:50%;
    background:rgba(255,255,255,0.12);
    border:2px solid #fff;
    color:#fff;
    font-size:28px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:background 0.2s ease;
  }
  .product-zoom-close:hover{
    background:rgba(255,255,255,0.25);
  }
  .product-name{
    color:#fdfcfa;
    font-weight:600;
    font-size:19px;
    letter-spacing:0.2px;
    text-transform:uppercase;
    line-height:1.32;
    padding:16px 54px 15px;
    flex:1 0 auto;
    word-wrap:break-word;
    overflow-wrap:break-word;
  }
  .product-weight{
    color:#fdfcfa;
    font-weight:600;
    font-size:25px;
    padding:0 54px 22px;
  }
  .scroll-top-btn{
    position:absolute;
    right:44px; bottom:34px;
    width:54px; height:54px;
    border-radius:50%;
    border:none;
    cursor:pointer;
    background:linear-gradient(135deg,#ECB667,#BF4E19);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 24px rgba(80,10,45,0.55);
    z-index:20;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .scroll-top-btn:hover{
    transform:translateY(-4px);
    box-shadow:0 14px 28px rgba(80,10,45,0.65);
  }
  .scroll-top-btn svg{
    width:22px; height:22px;
    color:#fff;
  }
  .catalog-download-btn{
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:nowrap;
    margin-left:auto;
    flex:0 0 auto;
    padding:14px 28px;
    border-radius:30px;
    border:none;
    background:linear-gradient(90deg,#ECB667,#BF4E19);
    color:#fff;
    font-size:13px;
    font-weight:700;
    letter-spacing:0.5px;
    line-height:1.35;
    text-decoration:none;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(80,10,45,0.4);
    transition:box-shadow 0.2s ease, transform 0.2s ease;
  }
  .catalog-download-btn:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 24px rgba(80,10,45,0.55);
  }

  @media (max-width: 860px){

    html, body{
      height:auto;
      min-height:100%;
      overflow-x:hidden;
      overflow-y:auto;
    }

    .viewport{
      position:static;
      overflow:visible;
    }

    .stage{
      position:static !important;
      top:auto !important; left:auto !important;
      width:100% !important;
      height:auto !important;
      min-height:100vh;
      transform:none !important;
      /* `will-change:transform` on the desktop rule makes .stage a
         "containing block" for any position:fixed descendant (per the
         CSS spec, this happens regardless of whether a transform is
         actually applied). On mobile .stage is a normal, statically
         flowing block, so that turns .catalog-overlay's position:fixed
         into something that behaves like position:absolute relative to
         .stage — meaning it scrolls along with the page instead of
         staying pinned to the viewport. Resetting it here removes that
         containing block and restores true viewport-fixed behavior. */
      will-change:auto !important;
      background:
        radial-gradient(ellipse 600px 500px at 50% 18%, #5a1230 0%, #3a1020 30%, #170a10 58%, #090705 78%),
        #090705;
    }

    /* ---- top bar ---- */
    .topbar{
      position:static;
      padding:22px 18px 0;
      flex-wrap:wrap;
      row-gap:12px;
    }
    .logo-img{ height:34px; }
    .topbar-right{ gap:10px; }
    .topbar-line{ width:60px; }
    .about-link{ font-size:13px; top:-2px; }

    /* ---- text column ---- */
    .left-col{
      position:static;
      width:100%;
      max-width:520px;
      margin:0 auto;
      padding:26px 20px 0;
      text-align:center;
      display:flex;
      flex-direction:column;
      align-items:center;
    }
    .brand-logo{ width:200px; margin:0 auto 24px; }
    .divider{ width:70%; margin:0 auto 22px; }
    .desc{ margin-bottom:26px; }
    .desc p{ font-size:15px; line-height:1.5; }
    .cta-row{
      justify-content:center;
      margin-top:22px;
      margin-bottom:6px;
      order:3;
    }

    .frame-bg{ display:none; }

    /* ---- product art: simplified, centered, no absolute chaos ---- */
    .art{
      position:relative;
      inset:auto;
      width:100%;
      height:300px;
      margin-top:10px;
    }
    .decor{ display:none; }
    .pack.bb-main{
      width:190px; top:20px; left:50%;
      margin-left:-150px;
      right:auto;
    }
    .pack.bb-small{
      width:120px; top:90px; left:50%;
      margin-left:30px;
      right:auto;
    }

    /* ---- bottom thumbnail menu: horizontal scroll strip ---- */
    .thumb-band{
      position:static;
      height:auto;
      padding:16px 14px;
      display:flex;
      flex-wrap:nowrap;
      overflow-x:auto;
      gap:12px;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:thin;
    }
    .menu-icon{
      position:static !important;
      left:auto !important;
      top:auto !important;
      width:68px !important;
      height:68px !important;
      flex:0 0 auto;
    }

    /* ---- catalog overlay ---- */
    .catalog-overlay{ position:fixed; }
    .catalog-close{
      top:16px; right:16px;
      width:38px; height:38px;
      font-size:18px;
    }
    .catalog-header{
      flex-direction:column;
      align-items:flex-start;
      gap:14px;
      padding:64px 18px 18px;
    }
    .catalog-logo{ width:110px; }
    .catalog-header-text{ max-width:100%; }
    .catalog-header-text h2{ font-size:16px; }
    .catalog-header-text p{ font-size:13px; line-height:1.45; }
    .catalog-download-btn{
      margin-left:0;
      align-self:flex-start;
      padding:12px 22px;
      font-size:12px;
    }
    .catalog-grid-wrap{ padding:0 12px; }
    .catalog-grid{
      width:100%;
      margin-right:0;
      padding:8px 4px 30px;
    }
    .product-grid{
      grid-template-columns:repeat(2, 1fr);
      gap:12px;
    }
    .product-card img{
      height:196px;
      max-width:98%;
      margin:14px auto 0;
    }
    .product-name{ font-size:12px; padding:8px 10px 5px; max-width:25ch; }
    .product-weight{ font-size:15px; padding:0 10px 12px; }
    .scroll-top-btn{
      right:16px; bottom:16px;
      width:44px; height:44px;
    }
    .product-zoom-close{
      top:16px; right:16px;
      width:42px; height:42px;
      font-size:22px;
    }
  }
