
/* Shield Room — private, cinematic shield discovery. */
.shield-chest.brm-shield-found{
  position:relative;isolation:isolate;overflow:visible;border:2px solid #ffe29b!important;
  background:radial-gradient(circle at 50% 28%,#aa7838aa,#38251b 65%,#160f0d)!important;
  box-shadow:0 0 0 2px #d69a4170,0 0 35px #ffd05b91,inset 0 0 22px #f6bd4854!important;
  animation:brm-shield-chest-pulse 1.65s ease-in-out infinite!important
}
.shield-chest.brm-shield-found>img:first-child{
  filter:sepia(.3) saturate(1.7) brightness(1.24) drop-shadow(0 0 14px #ffd777)!important;
}
.shield-chest.brm-shield-found::after{
  content:"";position:absolute;z-index:2;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 25%,#fff5ba22 40%,#ffe8a8b0 50%,#fff5ba22 60%,transparent 74%);
  background-size:240% 100%;border-radius:inherit;mix-blend-mode:screen;
  animation:brm-shield-sweep 2.2s linear infinite
}
.shield-chest .brm-shield-chest-emblem{
  position:absolute;z-index:3;top:27%;left:50%;width:min(39%,75px)!important;height:auto!important;max-width:none!important;
  transform:translateX(-50%);filter:drop-shadow(0 0 12px #ffd157) drop-shadow(0 0 25px #ffdb64);
  animation:brm-shield-badge-float 1.8s ease-in-out infinite
}
@keyframes brm-shield-chest-pulse{0%,100%{box-shadow:0 0 0 2px #d69a4170,0 0 24px #ffd05b8c,inset 0 0 18px #f6bd4849}50%{box-shadow:0 0 0 3px #ffe199b2,0 0 52px #ffd05bbf,inset 0 0 30px #ffdb726b}}
@keyframes brm-shield-sweep{0%{background-position:125% 0}100%{background-position:-125% 0}}
@keyframes brm-shield-badge-float{0%,100%{transform:translate(-50%,0) scale(.98)}50%{transform:translate(-50%,-7px) scale(1.05)}}
.brm-shield-discovery{
  position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;
  padding:max(16px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));
  overflow-y:auto;isolation:isolate;color:#f7dfaa;text-align:center;
  background:radial-gradient(ellipse at center,#45301cd9 0%,#140c09f2 48%,#050405fc 85%);
  -webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);
  animation:brm-shield-curtain .42s ease-out both
}
.brm-shield-discovery::before{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:repeating-conic-gradient(from 0deg at 50% 43%,#f1b84b00 0deg 13deg,#f4c55c20 18deg,#f8d98b00 24deg 36deg);
  opacity:.8;animation:brm-shield-rays 24s linear infinite
}
.brm-shield-discovery-scene{width:min(100%,620px);margin:auto;display:flex;flex-direction:column;align-items:center;gap:clamp(10px,2vh,22px)}
.brm-shield-discovery-kicker{margin:0;color:#dbb36e;font-size:clamp(10px,1.8vw,13px);text-transform:uppercase;letter-spacing:.32em}
.brm-shield-discovery-art{
  position:relative;width:min(66vw,42vh,420px);min-width:min(240px,65vw);aspect-ratio:1;display:grid;place-items:center;
  filter:drop-shadow(0 0 25px #e7a32c79);
  animation:brm-shield-enter .8s cubic-bezier(.12,.85,.24,1.04) both
}
.brm-shield-discovery-art::before{
  content:"";position:absolute;inset:7%;border:2px solid #ffe9ab73;border-radius:50%;
  box-shadow:0 0 36px #f7cf667e,inset 0 0 45px #edb84b60;
  animation:brm-shield-halo 2.4s ease-in-out infinite
}
.brm-shield-discovery-art::after{
  content:"";position:absolute;inset:8%;pointer-events:none;
  background:linear-gradient(108deg,transparent 24%,#fff9cc00 38%,#ffffe7bd 50%,#fff9cc00 60%,transparent 74%);
  background-size:260% 100%;mix-blend-mode:screen;
  -webkit-mask-image:url('/assets/shield-discovery.png');mask-image:url('/assets/shield-discovery.png');
  -webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:contain;mask-size:contain;
  animation:brm-shield-sweep 2.1s linear infinite
}
.brm-shield-discovery-art img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 0 15px #ffc45b) saturate(1.25)}
.brm-shield-discovery-message{
  margin:0;font:400 clamp(19px,3.8vw,30px)/1.35 "trajan-pro-3",Georgia,serif;
  color:#ffe6a5;text-shadow:0 2px 15px #d0933970;max-width:600px;text-wrap:balance
}
.brm-shield-discovery-continue{
  margin-top:4px;min-width:min(88vw,240px);padding:13px 30px!important;
  background:linear-gradient(180deg,#d4ad67,#93672e)!important;
  color:#1d1109!important;border:1px solid #ffe3aa!important;border-radius:4px!important;
  box-shadow:0 0 20px #f9b83e3a!important;font-size:14px!important
}
@keyframes brm-shield-curtain{from{opacity:0}to{opacity:1}}
@keyframes brm-shield-enter{from{opacity:0;transform:translateY(65px) scale(.5) rotate(-7deg)}65%{opacity:1}to{transform:none;opacity:1}}
@keyframes brm-shield-halo{0%,100%{opacity:.65;transform:scale(.98)}50%{opacity:1;transform:scale(1.06)}}
@keyframes brm-shield-rays{to{transform:rotate(360deg)}}
@media(max-height:600px){.brm-shield-discovery-art{width:min(50vw,34vh,265px);min-width:150px}.brm-shield-discovery-scene{gap:7px}}
@media(prefers-reduced-motion:reduce){
 .shield-chest.brm-shield-found,.shield-chest .brm-shield-chest-emblem,.shield-chest.brm-shield-found::after,
 .brm-shield-discovery,.brm-shield-discovery::before,.brm-shield-discovery-art,
 .brm-shield-discovery-art::before,.brm-shield-discovery-art::after{animation:none!important}
}

/* Chest interaction: the golden object sits within the open chest, behind its front rim. */
.shield-chest{min-height:132px!important}
.shield-chest .brm-chest-stage{
 position:relative;isolation:isolate;width:min(100%,165px);
 aspect-ratio:296/260;margin:0 auto;
}
.shield-chest img.brm-chest-image{
 display:block;width:100%!important;max-width:none!important;height:100%!important;
 object-fit:contain;filter:drop-shadow(0 5px 5px #0008)
}
.shield-chest .brm-chest-caption{
 display:block;font-size:11px;line-height:1.25;letter-spacing:.04em;
 text-align:center;color:#efdbb6;margin:1px auto 3px
}
.shield-chest.brm-chest-unused{opacity:.56}
.shield-chest .brm-chest-open{
 position:absolute;z-index:1;inset:0;width:100%;height:100%;
 margin:0;padding:0;cursor:pointer;background:transparent!important;
 border:0!important;box-shadow:none!important;border-radius:6px;
}
.shield-chest .brm-chest-open:hover:not(:disabled){background:#ffd87e16!important}
.shield-chest .brm-chest-open:focus-visible,
.shield-chest .brm-shield-claim:focus-visible{
 outline:3px solid #ffebaa!important;outline-offset:2px
}
.shield-chest .brm-shield-claim{
 position:absolute;z-index:4;top:23%;left:47%;width:43%;height:47%;
 transform:translateX(-50%);margin:0;padding:0!important;border:0!important;
 border-radius:18%;background:transparent!important;box-shadow:none!important;
 cursor:pointer;min-height:44px;isolation:isolate;
}
.shield-chest .brm-shield-claim::before{
 content:"";position:absolute;inset:5%;border-radius:50%;z-index:-1;
 background:radial-gradient(circle,#ffe4a575 0%,#eaa52c4a 40%,transparent 72%);
 filter:blur(9px);animation:brm-shield-glow 1.7s ease-in-out infinite;
}
.shield-chest .brm-shield-claim img.brm-shield-chest-emblem{
 position:absolute!important;inset:0!important;top:0!important;left:0!important;
 display:block;width:100%!important;max-width:none!important;height:100%!important;
 object-fit:contain;transform:none!important;
 filter:drop-shadow(0 0 7px #ffd360) drop-shadow(0 0 11px #ffcf4a);
 animation:brm-shield-in-chest 2.3s ease-in-out infinite!important;
}
.shield-chest .brm-chest-foreground{
 position:absolute!important;inset:0;z-index:5;width:100%!important;max-width:none!important;
 height:100%!important;object-fit:contain;clip-path:inset(57% 0 0 0);
 pointer-events:none;user-select:none
}
.shield-chest.brm-shield-found::after{z-index:6;pointer-events:none}
.shield-chest .brm-shield-claim:disabled{opacity:.72}
@keyframes brm-shield-in-chest{
 0%,100%{filter:brightness(1) drop-shadow(0 0 6px #ffd360) drop-shadow(0 0 11px #ffcf4a)}
 48%{filter:brightness(1.55) drop-shadow(0 0 13px #fff3a4) drop-shadow(0 0 20px #ffd360)}
}
@keyframes brm-shield-glow{0%,100%{opacity:.65;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}
@media(prefers-reduced-motion:reduce){
 .shield-chest .brm-shield-claim::before,
 .shield-chest .brm-shield-claim img.brm-shield-chest-emblem{animation:none!important}
}
