  *{ 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:
      linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.05) 25%, rgba(0,0,0,0.35) 65%, #000 100%),
      url(Alex-images/Alex-img-01.png) center 0 / cover no-repeat,
      #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:#FFDC7B; }

  /* ---------------- left text column ---------------- */
  .left-col{
    position:absolute;
    left:50px; top:255px;
    width:440px;
    z-index:10;
  }
  .brand-logo{
    display:block;
    width:240px;
    margin-top:-30px;
    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,#FF9603,#E10F00);
  }
  .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:344px; 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:232px; top:295px; left:1215px;
    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(-17deg) translateY(0px); }
    50%{ transform:rotate(-9deg) translateY(-10px); }
  }
  @keyframes decorSwayChili{
    0%,100%{ transform:rotate(90deg) translateY(0px); }
    50%{ transform:rotate(98deg) translateY(-12px); }
  }
  @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:120px; top:165px; left:610px;
    animation:decorSwayA 5.2s ease-in-out infinite;
    filter:drop-shadow(0 12px 14px rgba(0,0,0,0.4));
  }
  .decor-basil-left{
    width:140px; top:355px; left:610px;
    animation:decorSwayD 5.1s ease-in-out infinite;
    animation-delay:0.4s;
    filter:drop-shadow(0 10px 12px rgba(0,0,0,0.4));
  }
  .decor-cracker-top img{
    display:block;
  }
  .decor-cracker-right{
    width:84px; top:170px; left:1255px;
    transform:scaleX(-1);
    filter:drop-shadow(0 12px 14px rgba(0,0,0,0.4));
  }
  .decor-parsley-right{
    width:175px; top:520px; left:1000px;
    animation:decorSwayD 5.1s ease-in-out infinite;
    animation-delay:0.4s;
    filter:drop-shadow(0 10px 12px rgba(0,0,0,0.4));
  }
  .decor-cracker-right img{
    animation:decorSwayB 4.7s ease-in-out infinite;
    animation-delay:0.4s;
  }
  .decor-cracker-bottom img{
    display:block;
  }
  @keyframes decorSwayA2{
    0%,100%{ transform:rotate(-28deg) translateY(0px); }
    50%{ transform:rotate(-20deg) translateY(-14px); }
  }
  .decor-cracker-small{
    width:95px; top:380px; left:1130px;
    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-parsley img{
    transform:scaleX(-1);
  }
  .decor-nut-under-chili{
    width:90px; top:530px; left:1430px;
    z-index:-2;
    filter:drop-shadow(0 10px 12px rgba(0,0,0,0.4));
  }
  .decor-chili{
    width:280px; top:180px; left:1390px;
    z-index:-1;
    transform:rotate(-90deg);
    filter:drop-shadow(0 10px 12px rgba(0,0,0,0.4));
  }
  .decor-chili img{
    animation:decorSwayChili 4.5s ease-in-out infinite;
    animation-delay:0.3s;
  }

  /* ---------------- 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 ================= */
  .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,#E30613,#FDC001);
    color:#fff;
    font-size:22px;
    line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 18px rgba(5,2,40,0.5);
    transition:box-shadow 0.2s ease, transform 0.2s ease;
  }
  .catalog-close:hover{
    box-shadow:0 10px 22px rgba(5,2,40,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:152px; height:152px;
    border-radius:50%;
    display:block;
    flex:0 0 auto;
    box-shadow:0 10px 30px rgba(0,0,0,0.5);
  }
  .catalog-header-text{ max-width:900px; }
  .catalog-header-text h2{
    color:#FF3D3D;
    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:#E30613 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:linear-gradient(180deg,#E30613,#E30613);
    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{
    width:100%;
    display:block;
  }
  .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;
  }
  .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,#E30613,#FDC001);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 24px rgba(5,2,40,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(5,2,40,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,#FF9603,#E10F00);
    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(120,20,0,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(120,20,0,0.55);
  }

  /* =====================================================================
     MOBILE ADAPTATION
     On narrow screens we drop the fixed 1820x1024 "letterbox" stage
     (which would shrink everything to a tiny unreadable size) and switch
     to a normal, vertically-stacked flow layout instead.
     ===================================================================== */
  @media (max-width: 860px){

    html, body{
      height:auto;
      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;
      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;
      /* Safety net: clip anything that would otherwise stick out past
         .stage's own box (e.g. the catalog overlay's off-screen
         translateY(100%) state), so it can never add extra scrollable
         height below the bottom menu. */
      overflow:hidden;
      background:
        radial-gradient(ellipse 600px 500px at 50% 18%, #7a1a00 0%, #4a1000 30%, #170a05 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:160px; 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:143px; top:20px; left:50%;
      margin-left:-112px;
      right:auto;
    }
    .pack.bb-small{
      width:90px; top:90px; left:50%;
      margin-left:22px;
      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; height: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{
      max-width:85%;
      margin:14px auto 0;
    }
    .product-name{ font-size:12px; padding:8px 10px 5px; }
    .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;
    }
  }
