/* /black-friday v2: angle chips + visual grid + small chat. Mobile first. */
.bf-hero{border-bottom:2px solid var(--ink);padding:34px 0 30px}
.bf-h1{font-size:clamp(34px,8.6vw,74px);max-width:15ch;margin:10px 0 14px}
.bf-h1 .circ{margin-left:.1em}
.bf-sub{font-size:16px;max-width:60ch}
.bf-sub b{font-family:'Libre Franklin';font-weight:800}
.bf-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.bf-bar{position:sticky;top:62px;z-index:15;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1.5px solid var(--ink)}
.bf-bar-row{display:flex;flex-direction:column;gap:8px;padding:10px 0}
.bf-chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 -28px;padding:0 28px;scroll-snap-type:x proximity}
.bf-chips::-webkit-scrollbar{display:none}
.bf-chips .chip{flex:0 0 auto;scroll-snap-align:start;font-size:14px;padding:9px 12px;border-width:2px}
.bf-search input{width:100%;font:15px 'Courier Prime';border:2px solid var(--ink);padding:9px 12px;background:#fff;border-radius:0;-webkit-appearance:none}
.bf-desc{margin:16px 0 14px;font-size:15px;min-height:1.5em}
.bf-desc b{font-family:'Libre Franklin';font-weight:800}
.bf-grid{columns:2 150px;column-gap:10px;padding-bottom:30px}
.bf-card{break-inside:avoid;margin:0 0 12px;border:2px solid var(--ink);background:#fff;cursor:pointer;display:block;width:100%;text-align:left;padding:0;font:inherit;color:inherit;transition:transform .12s,box-shadow .12s}
.bf-card:hover,.bf-card:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink);outline:0}
.bf-card img{width:100%;height:auto;background:var(--card);border-bottom:1.5px solid var(--ink)}
.bf-card .bf-t{display:block;padding:8px 9px 10px}
.bf-card .bf-br{display:flex;justify-content:space-between;gap:6px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);font-weight:700}
.bf-card .bf-hl{display:block;font:800 15px/1.18 'Libre Franklin',system-ui,sans-serif;letter-spacing:-.01em;margin:5px 0 7px}
.bf-pill{display:inline-block;font:700 11.5px/1.2 'Courier Prime';background:var(--hi);border:1.5px solid var(--ink);padding:3px 6px}
.bf-empty{padding:30px 0 60px}
.linkbtn{background:none;border:0;font:inherit;text-decoration:underline;cursor:pointer}
.bf-src{border-top:1.5px solid var(--line)}
.bf-src p{font-size:12.5px;color:var(--mute);padding:14px 0 16px}
/* modal */
.bf-modal{max-width:1040px}
.bf-mbody{display:grid;grid-template-columns:1fr}
.bf-mimg{background:var(--card);border-bottom:1.5px solid var(--ink);display:flex;justify-content:center}
.bf-mimg img{max-height:62vh;width:auto;max-width:100%}
.bf-minfo{padding:16px 18px 22px}
.bf-minfo h2{font:900 24px/1.05 'Libre Franklin',system-ui,sans-serif;letter-spacing:-.02em;margin:6px 0 10px}
.bf-minfo .pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.bf-minfo .pills button{cursor:pointer;font:700 12.5px/1.2 'Courier Prime';border:1.5px solid var(--ink);background:#fff;padding:4px 7px}
.bf-minfo .pills button.p{background:var(--hi)}
.bf-copy{white-space:pre-line;font-size:15px;border-left:4px solid var(--ink);padding:2px 0 2px 12px;margin:6px 0 12px}
.bf-minfo .k{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-top:12px}
.bf-minfo details{margin:8px 0 12px;font-size:14px}
.bf-minfo summary{cursor:pointer;font-weight:700}
.bf-minfo details p{white-space:pre-line;margin-top:6px;color:#333}
.bf-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px;margin:12px 0 16px}
.bf-meta dt{color:var(--mute)}
/* chat */
.bf-fab{position:fixed;right:14px;bottom:14px;z-index:30;display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:2px solid var(--ink);font:700 14px/1 'Courier Prime';padding:12px 15px;cursor:pointer;box-shadow:4px 4px 0 var(--hi)}
.bf-fab .dot{width:9px;height:9px;border-radius:50%;background:var(--hi)}
.bf-fab[aria-expanded="true"]{display:none}
.bf-chat{position:fixed;z-index:40;left:0;right:0;bottom:0;height:min(78vh,620px);background:#fff;border-top:2px solid var(--ink);display:flex;flex-direction:column;box-shadow:0 -10px 0 rgba(22,24,29,.08)}
.bf-chat[hidden]{display:none}
.bfc-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 14px;border-bottom:1.5px solid var(--ink);font:800 15px/1.2 'Libre Franklin',system-ui,sans-serif;background:var(--hi)}
.bfc-x{background:none;border:0;font:700 26px/1 'Courier Prime';cursor:pointer;width:34px;height:34px}
.bfc-log{flex:1;overflow-y:auto;padding:12px 14px;font-size:14.5px}
.bfc-empty p{color:var(--mute);margin-bottom:10px}
.bfc-sugs{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.bfc-sug{font:14px 'Courier Prime';text-align:left;border:1.5px solid var(--ink);background:#fff;padding:7px 10px;cursor:pointer}
.bfc-sug:hover{background:var(--card)}
.c-msg{margin:0 0 12px}
.c-msg.u{margin-left:auto;max-width:85%;background:var(--ink);color:#fff;padding:8px 11px;width:fit-content}
.c-msg.a p{margin:0 0 6px}
.c-msg.a ul{margin:0 0 6px 18px}
.c-msg.err{color:var(--red)}
.c-think{color:var(--mute)}
.c-ref{font:700 11px/1 var(--mono,monospace);cursor:pointer;background:#FFE14D;border:1.5px solid #16181D;color:#16181D;padding:2px 5px;margin:0 1px;vertical-align:1px;white-space:nowrap}
.bfc-cards{display:flex;gap:8px;overflow-x:auto;padding:4px 0 6px}
.bfc-card{flex:0 0 112px;border:1.5px solid var(--ink);background:#fff;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit}
.bfc-card img{width:100%;height:112px;object-fit:cover;object-position:top;border-bottom:1.5px solid var(--ink)}
.bfc-card span{display:block;padding:5px 6px;font-size:11.5px;line-height:1.25}
.bfc-form{display:flex;gap:8px;padding:10px 12px;border-top:1.5px solid var(--ink)}
.bfc-form textarea{flex:1;resize:none;font:15px 'Courier Prime';border:2px solid var(--ink);padding:8px 10px;max-height:120px}
.bfc-form.locked{opacity:.5;pointer-events:none}
.bfc-gate{padding:10px 12px;border-top:1.5px solid var(--ink);display:flex;flex-direction:column;gap:8px;font-size:14px}
.bfc-gate[hidden],.bf-src [hidden],#cform[hidden],#empty[hidden]{display:none}
.bfc-gate input[type=email]{font:15px 'Courier Prime';border:2px solid var(--ink);padding:8px 10px}
.bfc-cons{font-size:12.5px;display:flex;gap:6px;align-items:flex-start}
.c-gmsg.err{color:var(--red)}
.bfc-left{font-size:12px;color:var(--mute);padding:0 12px 8px}
@media (min-width:640px){
  .bf-grid{columns:3 180px;column-gap:14px}
  .bf-bar-row{flex-direction:row;align-items:center}
  .bf-chips{flex:1 1 auto;min-width:0;margin:0;padding:0}
  .bf-search{flex:0 0 250px;min-width:250px}

  .bf-chat{left:auto;right:16px;bottom:16px;width:400px;height:min(72vh,600px);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}
}
@media (min-width:1000px){
  .bf-hero{padding:56px 0 46px}
  .bf-grid{columns:5 190px;column-gap:16px}
  .bf-mbody{grid-template-columns:1fr 1fr}
  .bf-mimg{border-bottom:0;border-right:1.5px solid var(--ink);align-items:flex-start}
  .bf-mimg img{max-height:86vh}
  .bf-minfo{max-height:calc(100vh - 44px);overflow-y:auto;padding:26px 26px 26px}
}
@media (max-width:639px){.bf-chips{margin:0 -18px;padding:0 18px}}
.bf-search #q{padding:9px 12px;font-size:15px;text-align:left;width:100%}
