#bsa-loader {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    place-items: center;
    padding: 24px;
    background: radial-gradient(ellipse at center, #133d23, #061f14 75%);
    color: #f4d23d;
    text-align: center;
    opacity: 1;
    transition: opacity .28s ease, visibility .28s ease;
  }
  #bsa-loader.bsa-loading {
    display: grid;
    /* CSS fallback also works if JavaScript stops after showing the loader. */
    animation: bsa-unblock 0s 8s forwards;
  }
  #bsa-loader.bsa-leaving {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  #bsa-loader .bsa-loader-inner { width: min(100%, 380px); }
  #bsa-loader .bsa-loader-art { width: 140px; height: 140px; overflow: visible; }
  #bsa-loader .bsa-hammer {
    transform-origin: 110px 115px;
    animation: bsa-hammer-strike 1.15s ease-in-out infinite;
  }
  #bsa-loader .bsa-loader-brand {
    margin: 22px 0 9px;
    color: #f6f2e8;
    font: 400 clamp(30px, 7vw, 42px)/1.2 "Bodoni Moda", Georgia, serif;
  }
  #bsa-loader .bsa-loader-caption {
    margin: 0;
    color: #d5dece;
    font: 400 12px/1.6 Figtree, Arial, sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
  }
  #bsa-loader .bsa-loading-line {
    width: 110px;
    height: 2px;
    margin: 26px auto 0;
    background: #f4d23d26;
    overflow: hidden;
  }
  #bsa-loader .bsa-loading-line::after {
    content: "";
    display: block;
    width: 45%;
    height: 100%;
    background: #f4d23d;
    animation: bsa-line 1.15s ease-in-out infinite;
  }
  #bsa-halo {
    display: none;
    position: fixed;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    z-index: 2147482000;
    pointer-events: none;
    opacity: 0;
    transition: opacity .15s ease;
  }
  #bsa-halo.bsa-visible { opacity: 1; }
  #bsa-halo .bsa-halo-ring {
    position: absolute;
    left: 0;
    top: 0;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid #f4d23db3;
    border-radius: 50%;
    background: #133d2310;
    box-shadow: 0 0 15px #f4d23d18;
    transform: translate(-50%, -50%);
    transition: width .2s ease, height .2s ease, background .2s ease;
    box-sizing: border-box;
  }
  #bsa-halo .bsa-halo-ring svg {
    width: 22px;
    height: 22px;
    color: #f4d23d;
    opacity: 0;
    transform: rotate(-20deg) scale(.7);
    transition: opacity .2s ease, transform .2s ease;
  }
  #bsa-halo.bsa-hover .bsa-halo-ring {
    width: 52px;
    height: 52px;
    background: #133d23e6;
  }
  #bsa-halo.bsa-hover svg { opacity: 1; transform: rotate(0) scale(1); }
  @keyframes bsa-hammer-strike {
    0%, 100% { transform: translateY(-10px) rotate(-16deg); }
    48% { transform: translateY(6px) rotate(8deg); }
    62% { transform: translateY(-3px) rotate(-5deg); }
  }
  @keyframes bsa-line {
    0% { transform: translateX(-110%); }
    100% { transform: translateX(330%); }
  }
  @keyframes bsa-unblock {
    to { visibility: hidden; opacity: 0; pointer-events: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    #bsa-loader { transition: none; }
    #bsa-loader .bsa-hammer, #bsa-loader .bsa-loading-line::after { animation: none; }
    #bsa-halo { display: none !important; }
  }
