
        /* Proportional Scaling System */
        /* Mobile/Tablet (< 1024px): Standard responsive design */
        /* Desktop/TV (>= 1024px): Everything scales proportionally */
        
        * {
            box-sizing: border-box;
        }
        
        html {
            font-size: 16px; /* Base size for mobile */
            scroll-behavior: smooth;
        }
        
        /* Desktop proportional scaling */
        @media (min-width: 1024px) {
            html {
                /* Scale root font size based on viewport width */
                /* Base reference: 1440px = 100% (16px) */
                /* This makes all rem-based values scale proportionally */
                font-size: calc(0.694vw + 6px); /* Results in 16px at 1440px */
            }
        }
        
        /* Cap scaling on very large screens (4K+) */
        @media (min-width: 2560px) {
            html {
                font-size: calc(0.625vw); /* Gentler scaling on 4K */
                max-font-size: 20px;
            }
        }
        
        /* Ensure body uses system font and inherits scaling */
        body { 
            font-family: 'Outfit', sans-serif;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        
        /* Elegant font for flavour descriptions */
        .flavour-profile {
            font-family: 'Outfit', sans-serif;
            font-style: normal;
            font-weight: 400;
            letter-spacing: 0.1px;
            line-height: 1.45;
        }
        
        /* Disable printing for PDF iframes */
        @media print {
            iframe { display: none !important; }
        }
        
        /* Hide PDF viewer toolbar */
        iframe {
            overflow: hidden !important;
        }
        
        /* Disable keyboard shortcuts for print */
        body {
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
        }
        
        /* Custom scrollbar for sidebar */
        aside::-webkit-scrollbar { width: 4px; }
        aside::-webkit-scrollbar-track { background: transparent; }
        aside::-webkit-scrollbar-thumb { background: #ee7711; border-radius: 4px; }
        aside::-webkit-scrollbar-thumb:hover { background: #d3660a; }
        
        .fade-in { animation: fadeIn 0.3s ease-in-out; }
        @keyframes fadeIn { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: scale(1); } }

        /* Icon Hover Effects */
        .icon-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
        .icon-card:hover { transform: translateY(-4px); }
        
        /* Hide scrollbar for cleaner UI in modals */
        .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
        
        /* Smooth section transitions */
        section {
            transition: opacity 0.3s ease-in-out;
        }
        
        /* Custom smooth scrollbar */
        ::-webkit-scrollbar { width: 10px; }
        ::-webkit-scrollbar-track { background: #f1f1f1; }
        ::-webkit-scrollbar-thumb { background: #ee7711; border-radius: 5px; }
        ::-webkit-scrollbar-thumb:hover { background: #d3660a; }
    


        /* SK Photo hover swap */
        .team-normal-photo {
            opacity: 1;
            transition: opacity 0.6s ease;
            object-fit: cover;
            object-position: center top;
            will-change: opacity;
            transform: translateZ(0);
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
        }
        .team-sk-photo {
            opacity: 0;
            transition: opacity 0.6s ease;
            object-fit: cover;
            object-position: center;
            will-change: opacity;
            transform: translateZ(0);
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
        }
        .team-sk-photo.sk-contain {
            object-fit: contain;
            object-position: center;
            transform: scale(1.25) translateZ(0);
        }
        .team-sk-photo.sk-pos-top {
            object-position: center top;
            transform: scale(1.25) translateZ(0);
            transform-origin: top center;
        }
        .team-card:hover .team-normal-photo {
            opacity: 0;
        }
        .team-card:hover .team-sk-photo {
            opacity: 1;
        }
        /* Dark grey background for zoom-out (object-contain) SK photos */
        .sk-zoom-circle {
            transition: background-color 0.6s ease;
        }
        .team-card:hover .sk-zoom-circle {
            background-color: #6b7280 !important;
        }
    


        /* Full-coverage overlay for PDF iframes */
        .pdf-shield {
            position: absolute !important;
            top: 0 !important;
            left: 0 !important;
            width: 100% !important;
            height: 100% !important;
            z-index: 50 !important;
            background: transparent !important;
            cursor: default;
        }

        @keyframes guideSpin { to { transform: rotate(360deg); } }
        .guide-spinner {
            width: 36px; height: 36px;
            border: 3px solid rgba(238,119,17,0.18);
            border-top-color: #ee7711;
            border-radius: 50%;
            animation: guideSpin 0.75s linear infinite;
        }
    


/* Flavour Menu (mock.html) */
.menu-head { display:flex; align-items:center; justify-content:center; text-align:center; gap:20px; margin:32px 2px 8px; animation: menuHeadIn .6s cubic-bezier(.2,.8,.2,1) backwards; scroll-margin-top:96px; }
.menu-head-title { font-family:'Outfit',sans-serif; font-weight:800; font-size:clamp(1.2rem,2.2vw,1.9rem); color:#432918; letter-spacing:-.5px; white-space:nowrap; }
.menu-head-count { font-family:'Outfit',sans-serif; font-size:.7rem; font-weight:800; color:#ee7711; background:#fff3e8; border:1px solid #ffd9b3; padding:3px 9px; border-radius:999px; }
.menu-head-line { flex:1; max-width:150px; min-width:24px; height:2px; border-radius:2px; }
.menu-head-line-l { background:linear-gradient(90deg,rgba(238,119,17,.04),#ee7711); }
.menu-head-line-r { background:linear-gradient(90deg,#ee7711,rgba(238,119,17,.04)); }
@keyframes menuHeadIn { from{opacity:0; transform:translateY(12px);} to{opacity:1; transform:none;} }
.menu-nav { position:sticky; top:74px; z-index:20; display:flex; gap:8px; flex-wrap:wrap; padding:12px 0 10px; margin-bottom:-6px; background:linear-gradient(#f8fafc 75%, rgba(248,250,252,0)); }
.menu-chip { font-family:'Outfit',sans-serif; font-size:.72rem; font-weight:700; color:#7c5a43; background:#fff; border:1px solid #ecdfd3; padding:6px 13px; border-radius:999px; cursor:pointer; transition:all .2s ease; box-shadow:0 1px 3px rgba(67,41,24,.06); }
.menu-chip:hover { background:#ee7711; color:#fff; border-color:#ee7711; transform:translateY(-1px); box-shadow:0 4px 12px rgba(238,119,17,.3); }
.menu-badge { display:inline-block; font-family:'Outfit',sans-serif; font-size:9px; font-weight:800; letter-spacing:.4px; padding:3px 7px; border-radius:6px; box-shadow:0 2px 6px rgba(0,0,0,.18); }
.menu-badge-new { background:#ee7711; color:#fff; }
.menu-badge-asian { background:#432918; color:#fff; }



  /* ===== Specialised Services: card banners ===== */
  .svc-banner { position: relative; height: 128px; overflow: hidden; color: #fff; isolation: isolate; }
  .svc-banner--npd   { background: linear-gradient(115deg, #432918 0%, #5a3620 55%, #7a4a2a 100%); }
  .svc-banner--reg   { background: linear-gradient(115deg, #2f1c10 0%, #432918 60%, #4f3220 100%); }
  .svc-banner--match { background: linear-gradient(115deg, #b85a0e 0%, #ee7711 65%, #f59a4a 100%); }
  .svc-banner__grid { position: absolute; inset: 0; opacity: .12;
    background-image: linear-gradient(rgba(255,255,255,.7) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.7) 1px, transparent 1px);
    background-size: 24px 24px; mask-image: linear-gradient(110deg, transparent 30%, #000 100%); -webkit-mask-image: linear-gradient(110deg, transparent 30%, #000 100%); }
  .svc-banner__icon { position: absolute; right: -10px; bottom: -22px; width: 132px; height: 132px; color: #fff; opacity: .16; transform: rotate(-8deg);
    transition: transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s; }
  .svc-banner__icon svg { width: 100%; height: 100%; stroke-width: 1.25; }
  .group:hover .svc-banner__icon { transform: rotate(0deg) translate(-6px, -6px) scale(1.05); opacity: .26; }
  .svc-banner__meta { position: absolute; left: 24px; top: 22px; display: flex; flex-direction: column; gap: 6px; }
  .svc-banner__num { font-family: 'Outfit', sans-serif; font-weight: 900; font-size: 34px; line-height: 1; letter-spacing: -.03em; color: #fff; }
  .svc-banner__tag { font-size: 10px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.72); }
  .svc-banner__bar { position: absolute; left: 24px; bottom: 0; width: 44px; height: 4px; background: #ee7711; border-radius: 4px 4px 0 0;
    transition: width .45s cubic-bezier(.2,.8,.2,1); }
  .svc-banner--match .svc-banner__bar { background: #432918; }
  .group:hover .svc-banner__bar { width: 88px; }


  body.modal-open {
    overflow: hidden !important;
  }

.fi-section {
  padding: 72px 0 64px;
  background: linear-gradient(to bottom, #FFF8F3, #FDF6F0);
  width: 100%;
}
.fi-inner { max-width: 1100px; margin: 0 auto; text-align: left; padding: 0 24px; }
.fi-header-row {
  display: flex; align-items: flex-end;
  justify-content: space-between; gap: 24px; margin-bottom: 52px;
}
.fi-title-block {}
.fi-eyebrow {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 3px;
  text-transform: uppercase; color: #ee7711; margin-bottom: 10px;
  display: flex; align-items: center; gap: 10px;
}
.fi-eyebrow::before {
  content: ''; width: 28px; height: 2px;
  background: linear-gradient(to right, #ee7711, #c0531a);
  border-radius: 2px; display: inline-block;
}
.fi-heading {
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 900; letter-spacing: -1.5px; line-height: 1.05;
  color: #432918; margin-bottom: 12px;
}
.fi-subtext {
  font-size: 0.9rem; color: #78716c;
  max-width: 420px; line-height: 1.7; font-weight: 300;
}
.fi-ctrl-row { display: flex; gap: 10px; flex-shrink: 0; }
.fi-ctrl-btn {
  width: 42px; height: 42px; border-radius: 10px;
  border: 1px solid #e8ddd4; background: #fff;
  color: #432918; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.25s; box-shadow: 0 1px 4px rgba(67,41,24,0.08);
  font-family: 'Outfit', sans-serif;
}
.fi-ctrl-btn:hover { background: #ee7711; color: #fff; border-color: #ee7711; box-shadow: 0 4px 12px rgba(238,119,17,0.3); }

/* Viewport */
.fi-viewport {
  overflow: hidden; position: relative; height: 480px;
  display: flex; align-items: center; justify-content: center;
  perspective: 1500px;
  margin: 0 auto;
}

/* Cards */
.fi-card {
  position: absolute; left: 50%; width: 296px; height: 416px;
  transform-origin: center;
  transition: all 1.1s cubic-bezier(0.2, 0.8, 0.2, 1);
  background: #fff; border: 1px solid #edddd4;
  border-radius: 18px; overflow: hidden;
  box-shadow: 0 12px 36px -8px rgba(67,41,24,0.22);
  cursor: pointer;
}
.fi-card--active {
  box-shadow: 0 0 0 2.5px #ee7711, 0 18px 48px -8px rgba(238,119,17,0.28) !important;
}
.fi-img-wrap {
  width: 100%; height: 100%; position: relative; overflow: hidden;
  background: #fdf8f4;
  display: flex; align-items: center; justify-content: center; padding: 8px;
}
.fi-img {
  max-width: 100%; max-height: 100%; object-fit: contain;
  transition: transform 0.7s ease;
}
.fi-card--active .fi-img { transform: scale(1.04); }
.fi-overlay {
  position: absolute; bottom: 0; left: 0; width: 100%;
  padding: 44px 18px 18px;
  background: linear-gradient(to top, rgba(43,22,8,0.96) 0%, transparent 100%);
  transform: translateY(14px); opacity: 0;
  transition: all 0.45s ease;
}
.fi-card--active .fi-overlay { transform: translateY(0); opacity: 1; transition-delay: 0.5s; }
.fi-card-title {
  font-size: 1.55rem; font-weight: 800; color: #fff; margin-bottom: 3px;
  font-family: 'Outfit', sans-serif; letter-spacing: -0.5px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.fi-card-cat {
  font-size: 0.72rem; color: #ffb36b;
  text-transform: uppercase; font-weight: 700;
  letter-spacing: 1.8px; margin-bottom: 14px;
}
.fi-dl-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 16px; background: #ee7711; color: #fff;
  text-decoration: none; border-radius: 8px;
  font-size: 0.8rem; font-weight: 700; font-family: 'Outfit', sans-serif;
  opacity: 0; transform: translateY(8px);
  transition: all 0.35s ease;
}
.fi-card--active .fi-dl-btn { opacity: 1; transform: translateY(0); transition-delay: 0.65s; }
.fi-dl-btn:hover { background: #c0531a; transform: translateY(-2px) !important; box-shadow: 0 5px 14px rgba(238,119,17,0.4); }

/* Footer row */
.fi-footer {
  display: flex; align-items: center;
  justify-content: space-between; padding-top: 20px;
  max-width: 1100px; margin: 0 auto; padding-left: 24px; padding-right: 24px;
}
.fi-counter {
  font-size: 0.82rem; color: #a8a29e; letter-spacing: 1px;
  font-family: 'Outfit', sans-serif; white-space: nowrap;
}
.fi-counter strong { color: #432918; font-weight: 700; }
.fi-progress-track {
  flex: 1; max-width: 320px; height: 3px;
  background: rgba(67,41,24,0.1);
  border-radius: 2px; overflow: hidden; margin: 0 24px;
}
.fi-progress-fill {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, #ee7711, #c0531a);
  transition: width 0.1s linear;
}
.fi-dots { display: flex; gap: 8px; }
.fi-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #d6c8be; border: none; cursor: pointer;
  padding: 0; transition: all 0.3s;
}
.fi-dot--active { background: #ee7711; width: 20px; border-radius: 3px; }

/* PDF Modal */
.fi-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.78);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ───────────────────────────────────────────────────────────────────────
   Base styles for the newsletter PDF modal box + close button.
   The original source file was truncated after `.fi-modal-backdrop {`,
   so these classes had no styles at all. These defaults make the modal
   look right on every screen size.
─────────────────────────────────────────────────────────────────────── */
.fi-modal-box {
  position: relative;
  width: min(900px, 92vw);
  height: 90vh;
  max-height: 90vh;
  background: #2c2c2c;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,0.55);
  display: flex;
  flex-direction: column;
}
.fi-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  border: none;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  color: #432918;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  box-shadow: 0 4px 14px rgba(0,0,0,0.35);
  transition: background 0.18s ease, transform 0.18s ease;
}
.fi-modal-close:hover { background: #fff; transform: scale(1.05); }

/* ───────────────────────────────────────────────────────────────────────
   MOBILE / TABLET ENHANCEMENTS  (3.html only)
   • Newsletters (Industry Newsletters carousel) → swipeable touch row
   • Flavour Catalogue filters → bottom-sheet drawer triggered by FAB
   • Quick "Flavour Guides" FAB → jumps from catalogue to Explore section
   • Flavour-guide + newsletter PDF modals → full-screen + scrollable
   These rules only fire on phones / small tablets (≤ 1023px).
   Desktop layout is left completely untouched.
─────────────────────────────────────────────────────────────────────── */
@media (max-width: 1023.98px) {

  /* ===== Industry Newsletters: native touch swipe ===== */
  .fi-section          { padding: 56px 0 40px; }
  .fi-inner            { padding: 0 16px; }
  .fi-header-row       {
    flex-direction: column; align-items: flex-start;
    gap: 8px; margin-bottom: 22px;
  }
  .fi-heading          { font-size: clamp(1.6rem, 6vw, 2rem); }
  .fi-subtext          { font-size: 0.85rem; max-width: 100%; }
  /* Hide prev/next arrows — finger swipe replaces them */
  .fi-ctrl-row         { display: none !important; }

  /* Replace the absolute-positioned 3D stack with a horizontal
     scroll-snap row that the user can flick with a thumb. */
  .fi-viewport {
    perspective: none !important;
    height: auto !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 14px;
    padding: 6px 14% 14px 14%;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scrollbar-width: none;
  }
  .fi-viewport::-webkit-scrollbar { display: none; }

  .fi-card {
    position: relative !important;
    left: auto !important;
    transform: none !important;
    opacity: 1 !important;
    z-index: 1 !important;
    flex: 0 0 72%;
    width: auto !important;
    height: 360px !important;
    scroll-snap-align: center;
  }
  .fi-card--active {
    box-shadow: 0 12px 36px -8px rgba(67,41,24,0.22) !important;
  }
  .fi-overlay {
    transform: none !important;
    opacity: 1 !important;
    transition: none !important;
    padding: 36px 14px 14px;
  }
  .fi-card-title  { font-size: 1.25rem; }
  .fi-dl-btn {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    padding: 7px 13px;
    font-size: 0.75rem;
  }

  .fi-footer            { padding: 12px 16px 0; gap: 12px; }
  .fi-progress-track    { display: none !important; }
  .fi-counter           { font-size: 0.75rem; }
  .fi-dots              { gap: 6px; }
  .fi-dot               { width: 5px; height: 5px; }
  .fi-dot--active       { width: 16px; }


  /* ===== Flavour Catalogue: filter dropdown + guides shortcut ===== */
  .min-h-screen aside {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 78vh !important;
    margin: 0 !important;
    padding: 14px 18px 24px !important;
    background: #ffffff;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -16px 44px rgba(67,41,24,0.22);
    transform: translateY(110%);
    transition: transform 0.28s cubic-bezier(0.2,0.8,0.2,1);
    z-index: 9990;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .min-h-screen aside::before {
    content: '';
    display: block;
    width: 44px; height: 4px; border-radius: 2px;
    background: #e2d6cb;
    margin: 0 auto 14px;
  }
  body.mobile-filters-open .min-h-screen aside { transform: translateY(0); }

  .mobile-filters-scrim {
    position: fixed; inset: 0;
    background: rgba(20,12,4,0.45);
    backdrop-filter: blur(2px);
    z-index: 9985;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease;
  }
  body.mobile-filters-open .mobile-filters-scrim {
    opacity: 1; pointer-events: auto;
  }

  #mob-cat-fab {
    position: fixed;
    right: 14px;
    bottom: 14px;
    z-index: 9995;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
  }
  #mob-cat-fab button {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    border: none;
    border-radius: 999px;
    color: #ffffff;
    font-family: 'Outfit', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.4px;
    box-shadow: 0 8px 22px rgba(67,41,24,0.32);
    cursor: pointer;
  }
  #mob-cat-fab #mob-cat-fab-guides  { background: #432918; }
  #mob-cat-fab #mob-cat-fab-filters { background: #ee7711; }
  #mob-cat-fab button:active        { transform: translateY(1px); }

  body.mobile-filters-open #mob-cat-fab { display: none; }

  .min-h-screen main { padding-bottom: 90px; }


  /* ===== Flavour-guide modal (per-product PDF) → fill the page ===== */
  /* The modal root is .fixed.inset-0.z-[100] (Tailwind classes).
     Override the inline maxWidth React applies based on PDF width. */
  .fixed.inset-0.z-\[100\]              { padding: 0 !important; }
  .fixed.inset-0.z-\[100\] > .relative.bg-white {
    max-width: 100vw !important;
    width:     100vw !important;
    height:    100vh !important;
    height:    100dvh !important;
    margin:    0 !important;
    border-radius: 0 !important;
  }

  /* ===== Newsletter PDF modal → full-screen + scroll ===== */
  .fi-modal-box {
    width:  100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width:  100vw !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }
}
    


      @media (max-width: 1023.98px) {

        /* Drop the Guides FAB - keep only Filters */
        #mob-cat-fab #mob-cat-fab-guides { display: none !important; }

        /* Always-visible search bar pinned just below the page header */
        #mob-search-bar {
          position: fixed;
          top: 60px;
          left: 12px;
          right: 12px;
          z-index: 9988;
          background: #fff; }
      }
    


      @media (prefers-reduced-motion: no-preference) {
        .rv-up   { opacity: 0; transform: translateY(30px);
                   transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1); will-change: opacity, transform; }
        .rv-fade { opacity: 0;
                   transition: opacity .9s ease; will-change: opacity; }
        .rv-up.rv-in, .rv-fade.rv-in { opacity: 1; transform: none; }
      }
    


      @media (prefers-reduced-motion: no-preference) {
        /* Home hero: each element drops in from above, top-to-bottom. */
        #home .animate-fade-in-up {
          animation: rvHeroDrop 1.1s cubic-bezier(.2,.8,.2,1) backwards !important;
        }
        @keyframes rvHeroDrop {
          from { opacity: 0; transform: translateY(-28px); filter: blur(5px); }
          to   { opacity: 1; transform: translateY(0);     filter: blur(0); }
        }
      }

      /* ---------- Flavour Insights guide cards (compact) ---------- */
      #explore .group {
        transition: transform .55s cubic-bezier(.2,.8,.2,1),
                    box-shadow .55s ease,
                    border-color .55s ease !important;
      }
      #explore .group:hover {
        transform: translateY(-8px) !important;
        box-shadow: 0 26px 52px -24px rgba(67,41,24,.45) !important;
      }
      /* Crop the guide preview down to the photography band only, so the
         Metarom logo / flavour code / title printed into the artwork are
         cropped away and the card supplies that information instead. */
      /* The images in "guide hero preview" are page 1 of each guide PDF,
         re-rendered with the text layers stripped out: same photograph,
         same framing, Metarom logo kept, but no product code, no flavour
         title, no dark scrim behind them and no "GUIDE V4" badge.
         To regenerate one (PyMuPDF):
           band = Rect(0, 0, page.rect.width, 271.17)
           page.add_redact_annot(band)
           page.apply_redactions(images=PDF_REDACT_IMAGE_NONE,
                                 graphics=PDF_REDACT_LINE_ART_REMOVE_IF_TOUCHED,
                                 text=PDF_REDACT_TEXT_REMOVE)
           page.get_pixmap(matrix=Matrix(z, z), clip=band)   # z = 1120/595.5
         271.17pt is where the photograph ends and the white spec sheet
         begins, so the band is 1120 x 510 = a 2.196 ratio. */
      #explore .gi-band {
        position: relative;
        aspect-ratio: 2.196;
        overflow: hidden;
        background: #efe9e2;
      }
      #explore .gi-img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
      }
      #explore .gi-veil {
        position: absolute;
        inset: 0;
        z-index: 2;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.24));
        opacity: 0;
        transition: opacity .45s ease;
      }
      #explore .group:hover .gi-veil { opacity: 1; }
      #explore .gi-veil-pill {
        background: rgba(255,255,255,.95);
        color: #4a2f1c;
        font-size: 10px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .18em;
        padding: 7px 16px;
        border-radius: 999px;
        box-shadow: 0 6px 18px rgba(0,0,0,.24);
        transform: translateY(8px);
        transition: transform .45s cubic-bezier(.2,.8,.2,1);
      }
      #explore .group:hover .gi-veil-pill { transform: translateY(0); }
      #explore .gi-desc {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }
      #explore .gi-arrow {
        width: 30px;
        height: 30px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: none;
        transition: transform .45s cubic-bezier(.2,.8,.2,1);
      }
      #explore .group:hover .gi-arrow { transform: translateX(4px); }
      @media (prefers-reduced-motion: reduce) {
        #explore .group,
        #explore .gi-arrow,
        #explore .gi-veil-pill { transition: none !important; }
        #explore .group:hover { transform: none !important; }
      }
    


#maus-chat *{box-sizing:border-box;}
#maus-launcher{position:fixed;right:24px;bottom:24px;z-index:2147483000;width:60px;height:60px;border:none;border-radius:50%;background:#ee7711;color:#fff;cursor:grab;box-shadow:0 8px 24px rgba(67,41,24,.32);display:flex;align-items:center;justify-content:center;touch-action:none;}
#maus-launcher:active{cursor:grabbing;} #maus-launcher svg{width:28px;height:28px;pointer-events:none;} #maus-launcher .x{display:none;}
#maus-chat.open #maus-launcher .b{display:none;} #maus-chat.open #maus-launcher .x{display:block;}
#maus-panel{position:fixed;right:24px;bottom:96px;z-index:2147483000;width:380px;max-width:calc(100vw - 24px);height:560px;max-height:calc(100vh - 120px);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 18px 55px rgba(67,41,24,.28);display:flex;flex-direction:column;opacity:0;transform:translateY(12px) scale(.98);pointer-events:none;transition:opacity .2s,transform .2s;font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;}
#maus-chat.open #maus-panel{opacity:1;transform:none;pointer-events:auto;}
#maus-hd{background:#432918;color:#fff;padding:16px 18px;display:flex;align-items:center;gap:10px;cursor:move;touch-action:none;user-select:none;}
#maus-hd img{height:34px;width:auto;display:block;}
#maus-hd .nm{font-family:'Outfit','Montserrat',sans-serif;font-size:23px;color:#ee7711;margin-left:auto;font-weight:800;letter-spacing:.5px;}
#maus-msgs{flex:1;overflow-y:auto;padding:16px;background:#faf7f4;}
.maus-m{max-width:88%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;margin-bottom:10px;word-wrap:break-word;}
.maus-m.bot{background:#fff;border:1px solid #f0ebe6;color:#432918;border-bottom-left-radius:4px;}
.maus-m.user{background:#432918;color:#fff;margin-left:auto;border-bottom-right-radius:4px;white-space:pre-wrap;}
.maus-m.bot p{margin:0 0 7px;} .maus-m.bot p:last-child{margin:0;}
.maus-m.bot strong{color:#432918;font-weight:700;}
.maus-m.bot ul{list-style:none;margin:7px 0 3px;padding:0;}
.maus-m.bot li{position:relative;padding:3px 0 3px 15px;}
.maus-m.bot li:before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:#ee7711;}
.maus-m.bot a{display:inline-block;margin-top:6px;background:#ee7711;color:#fff;text-decoration:none;font-weight:600;font-size:13px;padding:7px 13px;border-radius:20px;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;}
.maus-m.bot a:hover{background:#d8660a;}
.maus-m.bot a.maus-code{display:inline;background:none;color:#ee7711;padding:0;margin:0;border-radius:0;text-decoration:underline;font-weight:700;font-size:inherit;}
.maus-m.bot a.maus-code:hover{background:none;color:#d8660a;}
#maus-sug{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px;}
#maus-sug button{background:#fff;border:1px solid #f0ebe6;color:#432918;font:inherit;font-size:12px;padding:7px 11px;border-radius:18px;cursor:pointer;}
#maus-sug button:hover{border-color:#ee7711;color:#ee7711;}
#maus-row{padding:11px;border-top:1px solid #f0ebe6;background:#fff;display:flex;gap:8px;align-items:flex-end;}
#maus-in{flex:1;resize:none;border:1px solid #f0ebe6;border-radius:12px;padding:9px 11px;font:inherit;font-size:14px;max-height:90px;outline:none;}
#maus-in:focus{border-color:#ee7711;}
#maus-in{scrollbar-width:none;-ms-overflow-style:none;}
#maus-in::-webkit-scrollbar{display:none;width:0;height:0;}
#maus-snd{width:42px;height:42px;border:none;border-radius:12px;background:#ee7711;color:#fff;cursor:pointer;flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:0;}
.maus-typ{display:inline-flex;gap:4px;} .maus-typ span{width:7px;height:7px;border-radius:50%;background:#8c7a6b;animation:mausb 1.2s infinite;}
.maus-typ span:nth-child(2){animation-delay:.2s;}.maus-typ span:nth-child(3){animation-delay:.4s;}
@keyframes mausb{0%,60%,100%{opacity:.5;}30%{opacity:1;transform:translateY(-4px);}}
#maus-guide{position:fixed;inset:0;z-index:2147483600;background:rgba(30,18,10,.82);display:none;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;}
#maus-guide.show{display:flex;}
#maus-guide .gbox{position:relative;max-width:min(94vw,620px);margin:auto;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.45);}
#maus-guide img{display:block;width:100%;height:auto;border-radius:14px;}
#maus-guide .gcls{position:absolute;top:10px;right:10px;width:38px;height:38px;border:none;border-radius:50%;background:#432918;color:#fff;font-size:20px;line-height:1;cursor:pointer;}
