/* Weekly family boss — card at the top of the child rail (.sidebar-content). Reads boss.json. */
.fb-card{position:relative;color:#f7fbff;border-color:color-mix(in srgb,var(--fb-accent,#ffd66c) 38%,transparent)!important;background:linear-gradient(180deg,color-mix(in srgb,var(--fb-accent,#ffd66c) 9%,#141e2b),#141e2b 70%)!important}
.fb-card::after{content:'';display:block;clear:both}
.fb-portrait{position:relative;float:right;width:clamp(86px,5.6vw,150px);aspect-ratio:1;margin:0 0 clamp(6px,.4vw,10px) clamp(10px,.7vw,16px);border-radius:14px;overflow:hidden;border:2px solid color-mix(in srgb,var(--fb-accent,#ffd66c) 60%,transparent);box-shadow:0 6px 18px rgba(0,0,0,.4),0 0 18px color-mix(in srgb,var(--fb-accent,#ffd66c) 25%,transparent)}
.fb-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.fb-card.won .fb-portrait img{filter:saturate(.45) brightness(.7)}
.fb-card.won .fb-portrait::after{content:'💤';position:absolute;right:6px;bottom:4px;font-size:clamp(18px,1.2vw,30px)}
.fb-card[hidden],.fb-portrait[hidden],.fb-hud[hidden],.fb-victory[hidden],.fb-reward[hidden],.fb-chest-hint[hidden]{display:none!important}
.fb-kicker{display:flex;align-items:center;gap:.5em;flex-wrap:wrap;font-size:clamp(12px,.62vw,16px);font-weight:790;letter-spacing:.1em;text-transform:uppercase;color:rgba(235,245,255,.62)}
.fb-kicker .fb-dot{width:.5em;height:.5em;border-radius:50%;background:var(--fb-accent,#ffd66c)}
.fb-kicker .fb-world{color:var(--fb-accent,#ffd66c)}
.fb-name{margin-top:.2em;font-size:clamp(22px,1.3vw,34px);line-height:1.08;font-weight:840;letter-spacing:-.02em}
.fb-hp-row{display:flex;align-items:center;gap:clamp(10px,.6vw,16px);margin-top:clamp(8px,.5vw,12px)}
.fb-bar{position:relative;flex:1;min-width:0;height:clamp(16px,1.05vw,28px);border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);overflow:hidden}
.fb-fill{position:absolute;inset:0 auto 0 0;width:100%;border-radius:999px;background:linear-gradient(90deg,#ff4f5e,#ff8a47 70%,#ffc15a);box-shadow:inset 0 2px 0 rgba(255,255,255,.28);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.fb-ghost{position:absolute;inset:0 auto 0 0;border-radius:999px;background:rgba(255,236,200,.55);transition:width 1.2s .35s ease}
.fb-ticks{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),rgba(7,17,29,.45) calc(10% - 2px) 10%)}
.fb-bar.low .fb-fill{animation:fbPulse 1.6s ease-in-out infinite}
@keyframes fbPulse{50%{filter:brightness(1.35)}}
.fb-num{flex:0 0 auto;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(13px,.72vw,18px);font-weight:700;color:rgba(235,245,255,.7)}
.fb-num strong{font-size:clamp(22px,1.45vw,38px);font-weight:860;color:#fff;letter-spacing:-.02em}
.fb-team{display:flex;align-items:center;flex-wrap:wrap;gap:6px clamp(8px,.5vw,12px);margin-top:clamp(8px,.5vw,12px);font-size:clamp(14px,.78vw,20px);font-weight:700}
.fb-total{flex-basis:100%;color:#9fe5c4}.fb-total b{color:#fff;font-variant-numeric:tabular-nums}
.fb-chip{display:inline-flex;align-items:center;gap:.4em;padding:.15em .6em;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#edf6ff;white-space:nowrap}
.fb-chip i{width:.55em;height:.55em;border-radius:50%}
.fb-foot{margin-top:clamp(6px,.4vw,10px);font-size:clamp(12px,.62vw,16px);color:rgba(235,245,255,.55);font-weight:600}
.fb-pop{position:absolute;z-index:5;right:clamp(14px,1vw,24px);top:18%;pointer-events:none;font-size:clamp(26px,1.9vw,50px);font-weight:900;color:#fff;text-shadow:0 3px 0 #b8322f,0 0 18px rgba(255,90,70,.7);animation:fbUp 1.6s ease-out forwards;white-space:nowrap;text-align:center}
.fb-pop small{display:block;font-size:.36em;font-weight:800;letter-spacing:.04em;text-shadow:0 1px 6px rgba(0,0,0,.7)}
@keyframes fbUp{0%{opacity:0;transform:translateY(10px) scale(.7)}15%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-70px)}}
.fb-toast{position:absolute;z-index:7;right:clamp(10px,1.2vw,32px);bottom:clamp(10px,1.2vw,32px);max-width:min(560px,40%);padding:10px 14px;border-radius:12px;background:rgba(7,17,29,.9);border:1px solid rgba(159,229,196,.35);color:#f7fbff;font-size:clamp(14px,.78vw,20px);font-weight:650;line-height:1.35;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none}
.fb-toast.show{opacity:1;transform:none}
/* Victory inside the card */
.fb-card.won{border-color:rgba(255,214,108,.65)!important;background:linear-gradient(180deg,rgba(60,44,10,.9),#141e2b 75%)!important;box-shadow:0 8px 24px rgba(0,0,0,.16),0 0 30px rgba(255,200,80,.28)!important}
.fb-vtitle{margin-top:.1em;font-size:clamp(28px,1.8vw,46px);line-height:1;font-weight:900;letter-spacing:-.03em;background:linear-gradient(180deg,#fff6d6,#ffd66c 55%,#ffab3d);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 rgba(120,70,0,.6))}
.fb-vsub{margin-top:.25em;font-size:clamp(16px,.9vw,23px);font-weight:760;line-height:1.25}.fb-vsub b{color:#9fe5c4}
.fb-vmeta{margin-top:.25em;font-size:clamp(13px,.68vw,17px);color:rgba(235,245,255,.66);font-weight:650;line-height:1.35}
.fb-loot{display:flex;align-items:center;gap:clamp(10px,.8vw,20px);margin-top:clamp(6px,.4vw,10px)}
.fb-chest{flex:0 0 auto;width:clamp(72px,4.4vw,118px);padding:0;border:0;background:none;color:inherit;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}
.fb-chest svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 8px 14px rgba(0,0,0,.45))}
.fb-chest:not(.open) svg{animation:fbWiggle 2.6s ease-in-out infinite}
.fb-chest[disabled]{cursor:progress}
.fb-chest:focus-visible{outline:3px solid #ffd66c;outline-offset:4px;border-radius:10px}
@keyframes fbWiggle{0%,70%,100%{transform:rotate(0)}76%{transform:rotate(-3deg)}82%{transform:rotate(3deg)}88%{transform:rotate(-2deg)}94%{transform:rotate(1deg)}}
.fb-chest .fb-rays{transform-box:fill-box;transform-origin:50% 50%;animation:fbSpin 14s linear infinite}
@keyframes fbSpin{to{transform:rotate(360deg)}}
.fb-loot-text{min-width:0;flex:1}
.fb-chest-hint{display:inline-block;padding:5px 11px;border-radius:999px;background:rgba(7,17,29,.7);border:1px solid rgba(255,214,108,.5);color:#ffd66c;font:inherit;font-size:clamp(14px,.75vw,19px);font-weight:800;cursor:pointer}
.fb-reward{font-size:clamp(16px,.9vw,23px);font-weight:760;line-height:1.3}
.fb-reward .fb-rlabel{margin-bottom:.2em;font-size:.66em;letter-spacing:.1em;text-transform:uppercase;color:#ffd66c}
.fb-reward .fb-rnote{margin-top:.25em;font-size:.66em;color:rgba(235,245,255,.66);font-weight:650}
.fb-confetti{position:absolute;z-index:6;top:-20px;width:10px;height:16px;border-radius:2px;pointer-events:none;animation:fbFall linear forwards}
@keyframes fbFall{to{transform:translate3d(var(--dx),110vh,0) rotate(var(--rot));opacity:.9}}
@media(max-width:700px){.fb-toast{left:8px;right:8px;max-width:none;bottom:8px;font-size:14px}.fb-name{font-size:22px}}
@media (prefers-reduced-motion:reduce){.fb-chest svg,.fb-chest .fb-rays,.fb-bar.low .fb-fill{animation:none!important}}
