/* Brooks Iron Loader – front-end styles
   Everything is prefixed bsb- so it cannot collide with The7 / Elementor / WPBakery.
   The overlay is display:none unless <html> has .bsb-loader-on (set by the inline head script). */
.bsb-loader{display:none}
html.bsb-loader-on.bsb-loader-shown{overflow:hidden}
html.bsb-loader-on .bsb-loader{
  --bsb-navy:#1a3153;--bsb-hot:#ff7a1f;--bsb-steel-1:#4a4f57;--bsb-steel-2:#23262b;
  display:grid;place-items:center;position:fixed;inset:0;z-index:2147483000;overflow:hidden;
  background:#fff;opacity:0;visibility:hidden;transition:opacity .3s ease;
}
html.bsb-loader-on.bsb-loader-shown .bsb-loader{opacity:1;visibility:visible}
html.bsb-loader-on .bsb-loader.bsb-out{opacity:0;pointer-events:none}

/* optional warm wood surface (filter bsb_iron_loader_surface => 'wood') */
html.bsb-loader-on .bsb-loader.bsb-loader--wood{
  background:
    radial-gradient(ellipse at 50% 45%,rgba(255,240,210,.35),rgba(0,0,0,0) 60%),
    radial-gradient(ellipse at 50% 50%,rgba(0,0,0,0) 55%,rgba(60,35,10,.38) 100%),
    repeating-linear-gradient(90deg,rgba(0,0,0,0) 0 118px,rgba(70,45,15,.14) 118px 120px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 3px,rgba(70,45,15,.035) 3px 6px),
    #cdb690;
}

.bsb-mark{position:relative;width:clamp(180px,36vw,320px);aspect-ratio:996/522}
.bsb-loader.bsb-play .bsb-mark{animation:bsb-shake .22s linear .55s 1}
@keyframes bsb-shake{
  0%{transform:translate(0,0)}20%{transform:translate(-4px,3px)}
  40%{transform:translate(3px,-3px)}60%{transform:translate(-2px,2px)}
  80%{transform:translate(1px,-1px)}100%{transform:translate(0,0)}
}

.bsb-mask{
  position:absolute;inset:0;
  -webkit-mask:var(--bsb-logo) center/100% 100% no-repeat;
          mask:var(--bsb-logo) center/100% 100% no-repeat;
}

/* scorched halo */
.bsb-scorch{position:absolute;inset:0;opacity:0;filter:blur(3px)}
.bsb-scorch .bsb-mask{background:#4a2a10;transform:scale(1.012)}
.bsb-play .bsb-scorch{animation:bsb-scorch-in .01s linear .55s forwards}
@keyframes bsb-scorch-in{to{opacity:.38}}

/* burned-in logo: glows, cools to brand navy */
.bsb-burn{position:absolute;inset:0;opacity:0}
.bsb-burn .bsb-mask{background:var(--bsb-hot)}
.bsb-play .bsb-burn{animation:bsb-burn-glow 2.6s linear .55s forwards}
.bsb-play .bsb-burn .bsb-mask{animation:bsb-cool 2.6s linear .55s forwards}
@keyframes bsb-burn-glow{
  0%{opacity:1;filter:drop-shadow(0 0 0 rgba(255,110,20,0))}
  35%{opacity:1;filter:drop-shadow(0 0 14px rgba(255,120,30,.95)) drop-shadow(0 0 34px rgba(255,80,0,.55))}
  70%{opacity:1;filter:drop-shadow(0 0 8px rgba(255,90,20,.5))}
  100%{opacity:1;filter:drop-shadow(0 0 0 rgba(255,90,20,0))}
}
@keyframes bsb-cool{
  0%{background:#ffb347}35%{background:#ff6a14}60%{background:#8a2c12}
  80%{background:#3a2a40}100%{background:var(--bsb-navy)}
}

/* the iron (top-down; scale = height above the surface) */
.bsb-iron{position:absolute;inset:0;opacity:0;pointer-events:none;transform-origin:50% 50%;z-index:5}
.bsb-play .bsb-iron{animation:
  bsb-descend .55s cubic-bezier(.55,0,.85,.45) 0s forwards,
  bsb-press .9s linear .55s forwards,
  bsb-lift .6s cubic-bezier(.2,.7,.3,1) 1.45s forwards}
@keyframes bsb-descend{
  0%{opacity:0;transform:scale(1.7) translate(4%,-5%)}
  25%{opacity:1}
  100%{opacity:1;transform:scale(1) translate(0,0)}
}
@keyframes bsb-press{
  0%{opacity:1;transform:scale(1)}15%{opacity:1;transform:scale(.982)}100%{opacity:1;transform:scale(.986)}
}
@keyframes bsb-lift{
  0%{opacity:1;transform:scale(.986)}
  100%{opacity:0;transform:scale(1.8) translate(7%,-8%)}
}
.bsb-plate{
  position:absolute;inset:-3.5% -3%;z-index:1;border-radius:14px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,0) 40%),
    linear-gradient(160deg,var(--bsb-steel-1),var(--bsb-steel-2));
  box-shadow:0 26px 38px rgba(0,0,0,.4),inset 0 0 0 2px rgba(255,255,255,.07),inset 0 0 28px rgba(0,0,0,.5);
}
.bsb-play .bsb-plate{animation:bsb-plate-shadow 2.05s linear 0s forwards}
@keyframes bsb-plate-shadow{
  0%{box-shadow:0 70px 80px rgba(0,0,0,.28),inset 0 0 0 2px rgba(255,255,255,.07),inset 0 0 28px rgba(0,0,0,.5)}
  27%,70%{box-shadow:0 4px 8px rgba(0,0,0,.45),inset 0 0 0 2px rgba(255,255,255,.07),inset 0 0 28px rgba(0,0,0,.5)}
  100%{box-shadow:0 60px 70px rgba(0,0,0,.28),inset 0 0 0 2px rgba(255,255,255,.07),inset 0 0 28px rgba(0,0,0,.5)}
}
.bsb-face{position:absolute;inset:3.5% 3%;z-index:2}
.bsb-face .bsb-mask{background:#ffb347}
.bsb-play .bsb-face{animation:bsb-face-heat 1.9s linear 0s forwards}
@keyframes bsb-face-heat{
  0%{filter:drop-shadow(0 0 8px rgba(255,140,40,.8))}
  30%{filter:drop-shadow(0 0 16px rgba(255,150,50,1))}
  100%{filter:drop-shadow(0 0 6px rgba(255,100,20,.6))}
}
.bsb-play .bsb-face .bsb-mask{animation:bsb-face-color 1.9s linear 0s forwards}
@keyframes bsb-face-color{0%{background:#ffd38a}30%{background:#ffb347}100%{background:#ff5a14}}

/* impact flash */
.bsb-flash{
  position:absolute;inset:-25%;z-index:6;opacity:0;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(255,170,70,.55),rgba(255,120,30,0) 60%);
}
.bsb-play .bsb-flash{animation:bsb-flash .5s ease-out .55s 1 forwards}
@keyframes bsb-flash{0%{opacity:0}15%{opacity:1}100%{opacity:0}}

/* steam + sparks (elements injected by loader.js) */
.bsb-fx{position:absolute;inset:0;z-index:8;pointer-events:none}
.bsb-puff{
  position:absolute;border-radius:50%;opacity:0;filter:blur(4px);
  background:radial-gradient(circle,rgba(160,166,174,.8) 0,rgba(178,183,190,.5) 38%,rgba(190,195,201,0) 70%);
  animation:bsb-rise var(--d) ease-out var(--delay) forwards;
}
@keyframes bsb-rise{
  0%{opacity:0;transform:translate(0,0) scale(.5)}
  20%{opacity:var(--o)}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--s))}
}
.bsb-spark{
  position:absolute;width:5px;height:5px;border-radius:50%;opacity:0;
  background:#ffc16b;box-shadow:0 0 8px 2px rgba(255,140,40,.9);
  animation:bsb-spark .75s cubic-bezier(.1,.7,.3,1) var(--delay) forwards;
}
@keyframes bsb-spark{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--sx),var(--sy))}}
