/* Layout concept: a single deep-space stage. One input at the center ignites a nova; pain cards drift in orbit around it, then the page settles into the offer ladder and the stack. */
:root {
  --void: #04060d;
  --deep: #0a1020;
  --panel: rgba(16, 26, 52, 0.62);
  --line: rgba(130, 178, 255, 0.18);
  --ink: #e9eefb;
  --muted: #93a1c2;
  --plasma: #5aa8ff;
  --ion: #8cf2ff;
  --flare: #ffb547;
  --core: #ffffff;
  --display: "Instrument Serif", "Iowan Old Style", Georgia, serif;
  --body: "Manrope", "Segoe UI", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --gutter: clamp(16px, 4vw, 40px);
  --max: 1180px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body.bn {
  background: var(--void);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
.bn a { color: inherit; }
.bn h1, .bn h2, .bn h3 { text-wrap: balance; margin: 0; font-weight: 400; }
.bn p { margin: 0; }
.bn :focus-visible { outline: 2px solid var(--ion); outline-offset: 3px; border-radius: 6px; }

#bn-stars, #bn-fx { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; }
#bn-stars { z-index: 0; }
#bn-fx { z-index: 60; }
.bn-flash {
  position: fixed; inset: 0; z-index: 59; pointer-events: none; opacity: 0;
  background: radial-gradient(circle at var(--fx, 50%) var(--fy, 50%), var(--core) 0%, rgba(140, 242, 255, 0.55) 18%, rgba(90, 168, 255, 0) 60%);
}
.bn-flash.is-on { animation: bn-flash 1.1s ease-out forwards; }
@keyframes bn-flash { 0% { opacity: 0; } 8% { opacity: 1; } 100% { opacity: 0; } }

.bn-wrap { position: relative; z-index: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding-inline: var(--gutter); }

/* Header */
.bn-header { position: relative; z-index: 5; }
.bn-header .bn-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 22px; }
.bn-mark { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 700; letter-spacing: 0.02em; font-size: 17px; }
.bn-mark-dot { width: 14px; height: 14px; border-radius: 50%; background: radial-gradient(circle, var(--core) 0 22%, var(--ion) 40%, rgba(90, 168, 255, 0) 72%); box-shadow: 0 0 18px var(--plasma); }
.bn-mark em { font-family: var(--display); font-style: italic; font-weight: 400; font-size: 21px; color: var(--ion); }
.bn-nav { display: flex; align-items: center; gap: 26px; font-size: 14px; color: var(--muted); }
.bn-nav a { text-decoration: none; }
.bn-nav a:hover { color: var(--ink); }
.bn-btn-ghost { border: 1px solid var(--line); padding: 8px 16px; border-radius: 999px; color: var(--ink) !important; }
@media (max-width: 760px) { .bn-nav a:not(.bn-btn-ghost) { display: none; } }

/* Stage: one screen per step. --bn-ab is the WP admin bar height. */
body.bn { --bn-ab: 0px; }
body.admin-bar.bn { --bn-ab: 32px; }
@media (max-width: 782px) { body.admin-bar.bn { --bn-ab: 46px; } }
.bn-stage { position: relative; z-index: 1; width: 100%; max-width: 1280px; margin: 0 auto; padding: 16px var(--gutter); height: calc(100vh - var(--bn-ab)); height: calc(100dvh - var(--bn-ab)); min-height: 540px; display: grid; place-items: center; }
.bn-step { width: 100%; height: 100%; min-height: 0; }
.bn-core { position: relative; z-index: 3; max-width: 640px; height: auto; text-align: center; display: grid; gap: 20px; justify-items: center; transition: transform 0.6s ease, opacity 0.5s ease; }
.bn-eyebrow { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ion); }
.bn-title { font-family: var(--display); font-size: clamp(38px, min(7vw, 9vh), 76px); line-height: 1.02; letter-spacing: -0.01em; }
.bn-title i { color: var(--flare); }
.bn-sub { color: var(--muted); max-width: 46ch; font-size: 17px; }

.bn-ignite { position: relative; width: 100%; display: flex; gap: 8px; padding: 8px; border-radius: 20px; background: var(--panel); border: 1px solid var(--line); backdrop-filter: blur(10px); box-shadow: 0 0 0 1px rgba(140, 242, 255, 0.05), 0 20px 80px -20px rgba(90, 168, 255, 0.55); }
.bn-ignite::before { content: ""; position: absolute; inset: -1px; border-radius: 21px; padding: 1px; background: conic-gradient(from var(--spin, 0deg), transparent 0 70%, var(--ion), var(--flare), transparent); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: bn-spin 5s linear infinite; pointer-events: none; }
@property --spin { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes bn-spin { to { --spin: 360deg; } }
.bn-ignite label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.bn-ignite input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--ink); font-family: var(--body); font-size: clamp(18px, 2.4vw, 24px); padding: 18px; outline: none; }
.bn-ignite input::placeholder { color: #6f7ea3; }
.bn-ignite button, .bn-btn { border: 0; cursor: pointer; font-family: var(--body); font-weight: 700; font-size: 16px; color: var(--void); background: linear-gradient(180deg, var(--core), var(--ion)); padding: 0 26px; border-radius: 14px; white-space: nowrap; transition: transform 0.15s ease, box-shadow 0.2s ease; }
.bn-ignite button:hover, .bn-btn:hover { transform: translateY(-1px); box-shadow: 0 0 30px rgba(140, 242, 255, 0.55); }
.bn-btn { padding: 14px 24px; display: inline-block; text-decoration: none; }
.bn-btn[disabled] { opacity: 0.4; cursor: not-allowed; box-shadow: none; transform: none; }
.bn-error { min-height: 1.4em; font-size: 14px; color: var(--flare); }
.bn-proof { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; font-family: var(--mono); font-size: 12px; color: var(--muted); }
.bn-proof span::before { content: "+ "; color: var(--ion); }
@media (max-width: 520px) { .bn-ignite { flex-direction: column; } .bn-ignite button { padding: 16px; } }

/* Scan readout */
.bn-scan { position: absolute; z-index: 4; inset: 0; display: grid; place-items: center; pointer-events: none; }
.bn-scan-box { font-family: var(--mono); font-size: 13px; color: var(--ion); display: grid; gap: 6px; text-align: left; min-width: min(360px, 90vw); }
.bn-scan-box div { opacity: 0; animation: bn-line 0.3s ease forwards; }
@keyframes bn-line { to { opacity: 1; } }
.bn-scan-ring { width: 120px; height: 120px; border-radius: 50%; border: 1px solid var(--ion); box-shadow: 0 0 40px var(--plasma), inset 0 0 30px rgba(140, 242, 255, 0.4); animation: bn-pulse 0.9s ease-in-out infinite; margin: 0 auto 18px; }
@keyframes bn-pulse { 50% { transform: scale(0.82); box-shadow: 0 0 80px var(--ion), inset 0 0 50px var(--core); } }

/* Step 2: hub in the middle, four cards on each side bowed into an orbit */
.bn-orbit { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: clamp(12px, 2.5vw, 40px); }
.bn-col { display: grid; grid-template-rows: repeat(5, minmax(0, 1fr)); gap: clamp(8px, 1.6vh, 16px); height: 100%; min-height: 0; align-content: center; align-items: center; }
.bn-col-l { justify-items: end; }
.bn-col-r { justify-items: start; }
.bn-hub { position: relative; z-index: 3; width: clamp(240px, min(34vw, 62vh), 380px); aspect-ratio: 1; border-radius: 50%; text-align: center; display: grid; gap: clamp(8px, 1.4vh, 14px); justify-items: center; align-content: center; padding: 28px; background: radial-gradient(circle, rgba(140, 242, 255, 0.16), rgba(10, 16, 32, 0.9) 62%); border: 1px solid var(--line); box-shadow: 0 0 120px -10px rgba(90, 168, 255, 0.6); }
.bn-hub h2 { font-family: var(--display); font-size: clamp(22px, min(2.4vw, 4.2vh), 32px); line-height: 1.1; }
.bn-hub h2 b { color: var(--ion); font-weight: 400; font-style: italic; overflow-wrap: anywhere; word-break: normal; }
.bn-hub h2 b.is-long { font-size: 0.78em; }
.bn-hub p { font-size: 13px; color: var(--muted); }
.bn-count { font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--flare); }

.bn-card { --arc: 0px; width: min(100%, 280px); max-height: 100%; overflow: hidden; padding: clamp(10px, 1.6vh, 16px) 16px; border-radius: 16px; text-align: left; cursor: pointer; color: var(--ink); font-family: var(--body); background: var(--panel); border: 1px solid var(--line); backdrop-filter: blur(8px); display: grid; gap: 4px; align-content: start; opacity: 0; transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease; }
.bn-col-l .bn-card[data-row="0"], .bn-col-l .bn-card[data-row="4"] { --arc: 40px; }
.bn-col-l .bn-card[data-row="2"] { --arc: -24px; }
.bn-col-r .bn-card[data-row="0"], .bn-col-r .bn-card[data-row="4"] { --arc: -40px; }
.bn-col-r .bn-card[data-row="2"] { --arc: 24px; }
.bn-col-l .bn-card { --from: 40vw; }
.bn-col-r .bn-card { --from: -40vw; }
.bn-card.is-in { animation: bn-launch 0.9s cubic-bezier(0.2, 0.9, 0.2, 1.1) forwards, bn-drift 7s ease-in-out infinite; animation-delay: var(--d), calc(var(--d) + 0.9s); }
@keyframes bn-launch { from { opacity: 0; transform: translateX(var(--from)) scale(0.25); } to { opacity: 1; transform: translateX(var(--arc)) scale(1); } }
@keyframes bn-drift { 0%, 100% { opacity: 1; transform: translateX(var(--arc)) translateY(0); } 50% { opacity: 1; transform: translateX(var(--arc)) translateY(-6px); } }
.bn-card:hover { border-color: rgba(140, 242, 255, 0.55); box-shadow: 0 0 40px -6px rgba(90, 168, 255, 0.7); }
.bn-card[aria-pressed="true"] { border-color: var(--flare); background: rgba(52, 36, 12, 0.7); box-shadow: 0 0 46px -6px rgba(255, 181, 71, 0.75); }
.bn-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bn-card-tag { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ion); }
.bn-card[aria-pressed="true"] .bn-card-tag { color: var(--flare); }
.bn-check { width: 18px; height: 18px; flex: none; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; font-size: 11px; color: transparent; }
.bn-card[aria-pressed="true"] .bn-check { background: var(--flare); border-color: var(--flare); color: var(--void); }
.bn-card h3 { font-size: clamp(14px, min(1.3vw, 2.2vh), 17px); font-weight: 700; line-height: 1.25; }
.bn-card p { font-size: 12.5px; color: var(--muted); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-height: 640px) { .bn-card p { -webkit-line-clamp: 1; } }
@media (max-height: 540px) { .bn-card p { display: none; } }

/* Step 3: stack + checkout side by side, each scrolls inside itself if the screen is short */
.bn-result { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, 1fr); gap: clamp(16px, 2.5vw, 32px); align-items: stretch; }
.bn-result-main { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 14px; min-height: 0; }
.bn-result-head { display: grid; gap: 6px; justify-items: start; }
.bn-result-head h2 { font-family: var(--display); font-size: clamp(28px, min(3.4vw, 5.5vh), 44px); line-height: 1.05; overflow-wrap: anywhere; }
.bn-result-head h2 span { color: var(--ion); font-style: italic; }
.bn-back { font-size: 13px; }
.bn-stack-list { display: grid; gap: 10px; align-content: start; overflow-y: auto; min-height: 0; padding-right: 4px; }
.bn-stack-item { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 14px; padding: 14px 16px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.bn-stack-item .bn-card-tag { color: var(--flare); padding-top: 3px; }
.bn-stack-item h3 { font-size: 15px; font-weight: 700; }
.bn-stack-item p { font-size: 13px; color: var(--muted); line-height: 1.45; }
.bn-tools { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.bn-tool { font-family: var(--mono); font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(140, 242, 255, 0.3); color: var(--ion); }

.bn-form { display: grid; gap: 12px; align-content: start; padding: clamp(16px, 2.4vh, 24px); border-radius: 18px; background: linear-gradient(180deg, rgba(90, 168, 255, 0.12), rgba(10, 16, 32, 0.92)); border: 1px solid var(--line); overflow-y: auto; min-height: 0; max-height: 100%; }
.bn-form h3 { font-family: var(--display); font-size: 28px; line-height: 1.1; }
.bn-form p { color: var(--muted); font-size: 14px; }
.bn-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.bn-field-wide { grid-column: 1 / -1; }
.bn-field { display: grid; gap: 5px; min-width: 0; }
.bn-field label { font-size: 11px; font-family: var(--mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.bn-field input { width: 100%; padding: 11px 12px; border-radius: 10px; border: 1px solid var(--line); background: rgba(4, 6, 13, 0.6); color: var(--ink); font-family: var(--body); font-size: 15px; }
.bn-field input:focus { outline: none; border-color: var(--ion); }
.bn-form .bn-btn { width: 100%; text-align: center; }
.bn-form-msg { font-size: 14px; min-height: 1.3em; }
.bn-form-msg:empty { display: none; }
.bn-form-msg.ok { color: var(--ion); }
.bn-form-msg.err { color: var(--flare); }

/* Phones: the flow can't fit eight cards on one screen, so it stacks naturally */
@media (max-width: 760px) {
  .bn-stage { height: auto; min-height: calc(100dvh - var(--bn-ab)); padding-block: 20px 40px; }
  .bn-step { height: auto; }
  .bn-orbit { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .bn-col { display: contents; }
  .bn-hub { grid-column: 1 / -1; grid-row: 1; justify-self: center; width: 100%; aspect-ratio: auto; border-radius: 20px; padding: 20px; }
  .bn-card { width: 100%; --arc: 0px !important; --from: 0px !important; }
  .bn-card p { display: none; }
  .bn-result { grid-template-columns: minmax(0, 1fr); }
  .bn-stack-list { overflow: visible; }
  .bn-form { overflow: visible; max-height: none; }
  .bn-stack-item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

.bn-section { position: relative; z-index: 1; padding-block: 96px; }
.bn-section-head { display: grid; gap: 12px; max-width: 640px; margin-bottom: 44px; }
.bn-section-head h2 { font-family: var(--display); font-size: clamp(34px, 5vw, 54px); line-height: 1.05; }
.bn-section-head p { color: var(--muted); }

/* Ladder */
.bn-ladder { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: rung; }
.bn-rung { position: relative; display: grid; gap: 12px; align-content: start; padding: 26px 22px 24px; border-top: 1px solid var(--line); }
.bn-rung::before { counter-increment: rung; content: "Step " counter(rung); font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ion); }
.bn-rung::after { content: ""; position: absolute; top: -1px; left: 0; height: 2px; width: calc(25% * var(--lvl)); min-width: 40px; background: linear-gradient(90deg, var(--ion), var(--flare)); }
.bn-rung h3 { font-family: var(--display); font-size: 28px; line-height: 1.1; }
.bn-rung .bn-price { font-family: var(--mono); font-size: 13px; color: var(--flare); }
.bn-rung p { font-size: 14px; color: var(--muted); }
.bn-rung ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 14px; }
.bn-rung li::before { content: "→ "; color: var(--ion); }
.bn-rung.is-feature { background: var(--panel); border: 1px solid rgba(255, 181, 71, 0.45); border-radius: 16px; }
.bn-rung.is-feature::after { display: none; }
@media (max-width: 980px) { .bn-ladder { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .bn-ladder { grid-template-columns: minmax(0, 1fr); } }

/* Stack catalog */
.bn-catalog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.bn-cat { padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; gap: 10px; align-content: start; min-width: 0; }
.bn-cat h3 { font-size: 15px; font-weight: 700; }
@media (max-width: 860px) { .bn-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .bn-catalog { grid-template-columns: minmax(0, 1fr); } }

.bn-cta { text-align: center; display: grid; gap: 20px; justify-items: center; }
.bn-cta h2 { font-family: var(--display); font-size: clamp(36px, 6vw, 64px); line-height: 1.04; max-width: 16ch; }

.bn-footer { position: relative; z-index: 1; border-top: 1px solid var(--line); }
.bn-footer .bn-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; padding-block: 30px; font-size: 13px; color: var(--muted); }
.bn-footer p { max-width: 70ch; }

.bn-hidden { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .bn-ignite::before, .bn-scan-ring { animation: none; }
  .bn-card.is-in { animation: bn-show 0.01s forwards; animation-delay: 0s; }
  @keyframes bn-show { to { opacity: 1; transform: translateX(var(--arc)); } }
}

/* ---------- v2: checkout, onboarding, Nova chat ---------- */
[hidden] { display: none !important; }
.bn-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.bn-plans { border: 0; margin: 0; padding: 0; display: grid; gap: 10px; }
.bn-plans legend { font-size: 12px; font-family: var(--mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.bn-plan { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(4, 6, 13, 0.5); cursor: pointer; }
.bn-plan:has(input:checked) { border-color: var(--flare); box-shadow: 0 0 24px -8px rgba(255, 181, 71, 0.7); }
.bn-plan input { accent-color: var(--flare); margin-top: 4px; }
.bn-plan-body { display: grid; gap: 2px; min-width: 0; }
.bn-plan-name { font-weight: 700; font-size: 15px; }
.bn-plan-name em { font-style: normal; font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--flare); margin-left: 6px; }
.bn-plan-price { font-family: var(--mono); font-size: 13px; color: var(--ion); }
.bn-fine { font-size: 12px; color: var(--muted); line-height: 1.5; }
.bn-link { background: none; border: 0; padding: 0; color: var(--ion); font: inherit; text-decoration: underline; cursor: pointer; }

.bn-onboard { padding-top: 40px; }
.bn-onboard-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.bn-booker { display: grid; gap: 14px; justify-items: start; }
.bn-booker iframe { width: 100%; height: 720px; border: 1px solid var(--line); border-radius: 16px; background: var(--core); }
.bn-booker-empty { padding: 26px; border-radius: 16px; border: 1px solid var(--line); background: var(--panel); }
.bn-steps { margin: 0; padding-left: 20px; display: grid; gap: 10px; font-size: 14px; color: var(--muted); }
.bn-steps b { color: var(--ink); }
@media (max-width: 860px) { .bn-onboard-grid { grid-template-columns: minmax(0, 1fr); } .bn-booker iframe { height: 640px; } }

.bn-chat { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 70; display: grid; justify-items: end; gap: 12px; }
.bn-chat-fab { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 999px; border: 1px solid rgba(140, 242, 255, 0.4); background: rgba(10, 16, 32, 0.92); color: var(--ink); font-family: var(--body); font-weight: 700; font-size: 15px; cursor: pointer; box-shadow: 0 0 40px -6px rgba(90, 168, 255, 0.8); }
.bn-chat-fab.has-nudge::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--flare); box-shadow: 0 0 10px var(--flare); }
.bn-chat-panel { width: min(380px, calc(100vw - 32px)); max-height: min(620px, calc(100vh - 120px)); display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto auto; border-radius: 18px; overflow: hidden; background: rgba(8, 13, 28, 0.97); border: 1px solid var(--line); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8), 0 0 60px -20px rgba(90, 168, 255, 0.6); }
.bn-chat-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.bn-chat-head div { display: grid; }
.bn-chat-head b { font-family: var(--display); font-weight: 400; font-size: 22px; color: var(--ion); line-height: 1; }
.bn-chat-head span { font-size: 12px; color: var(--muted); }
.bn-chat-close { background: none; border: 0; color: var(--muted); font-size: 24px; cursor: pointer; line-height: 1; }
.bn-chat-log { overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; min-height: 160px; }
.bn-msg { max-width: 86%; padding: 10px 13px; border-radius: 14px; font-size: 14px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.bn-msg.nova { align-self: flex-start; background: rgba(90, 168, 255, 0.12); border: 1px solid var(--line); border-bottom-left-radius: 4px; }
.bn-msg.user { align-self: flex-end; background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(140, 242, 255, 0.92)); color: var(--void); border-bottom-right-radius: 4px; }
.bn-msg.typing { color: var(--muted); font-family: var(--mono); font-size: 12px; }
.bn-msg-actions { display: flex; flex-wrap: wrap; gap: 8px; align-self: flex-start; }
.bn-msg-actions .bn-btn { padding: 10px 16px; font-size: 14px; }
.bn-chips { display: flex; flex-wrap: wrap; gap: 6px; align-self: flex-start; }
.bn-chip { border: 1px solid rgba(140, 242, 255, 0.35); background: transparent; color: var(--ion); border-radius: 999px; padding: 6px 12px; font-family: var(--body); font-size: 13px; cursor: pointer; }
.bn-chip:hover { background: rgba(140, 242, 255, 0.1); }
.bn-chat-call { display: grid; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line); }
.bn-chat-call p { font-size: 13px; color: var(--muted); }
.bn-chat-call input, .bn-chat-form input { width: 100%; min-width: 0; padding: 11px 12px; border-radius: 10px; border: 1px solid var(--line); background: rgba(4, 6, 13, 0.7); color: var(--ink); font-family: var(--body); font-size: 14px; }
.bn-chat-call .bn-btn { padding: 11px; font-size: 14px; }
.bn-chat-form { display: flex; gap: 8px; padding: 12px 16px 6px; border-top: 1px solid var(--line); }
.bn-chat-form button { flex: none; width: 44px; border: 0; border-radius: 10px; background: var(--ion); color: var(--void); font-size: 18px; font-weight: 700; cursor: pointer; }
.bn-chat-note { font-size: 11px; color: var(--muted); text-align: center; padding: 0 16px 12px; }
.bn-booker-plugin { width: 100%; padding: 20px; border-radius: 16px; background: var(--core); color: #111; }

.bn-result.is-paid { display: block; overflow-y: auto; }
.bn-result.is-paid .bn-section-head { margin-bottom: 24px; }

.bn-chat-teaser { max-width: 280px; padding: 12px 14px; border-radius: 14px 14px 4px 14px; background: rgba(10, 16, 32, 0.96); border: 1px solid rgba(140, 242, 255, 0.4); color: var(--ink); font-family: var(--body); font-size: 13.5px; line-height: 1.45; text-align: left; cursor: pointer; box-shadow: 0 0 30px -8px rgba(90, 168, 255, 0.8); animation: bn-line 0.4s ease forwards; }
.bn-chat-teaser b { color: var(--ion); }
/* Nova lives bottom-left: clear of the checkout form and host widgets on the right. */
.bn-chat { right: auto; left: 16px; justify-items: start; }
.bn-chat-teaser { border-radius: 14px 14px 14px 4px; }

/* v6: live estimate, quote, strategist-first */
.bn-estimate { font-family: var(--mono); font-size: 12px; color: var(--ion); min-height: 1.2em; }
.bn-quote { display: grid; gap: 2px; }
.bn-quote:empty { display: none; }
.bn-quote-num { font-family: var(--display); font-size: clamp(34px, 5vh, 46px); line-height: 1; color: var(--flare); }
.bn-quote-sub { font-size: 13px; color: var(--muted); }
.bn-cta-row { display: grid; gap: 8px; }
.bn-btn-alt { border: 1px solid var(--line); background: transparent; color: var(--ink); font-family: var(--body); font-weight: 600; font-size: 14px; padding: 11px; border-radius: 14px; cursor: pointer; }
.bn-btn-alt:hover { border-color: var(--ion); }

/* v7: founder */
.bn-founder-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.bn-founder-photo { margin: 0; position: relative; border-radius: 22px; overflow: hidden; border: 1px solid var(--line); box-shadow: 0 0 120px -30px rgba(90, 168, 255, 0.8); max-width: 100%; }
.bn-founder-photo img { display: block; width: 100%; height: auto; }
.bn-founder-photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; background: linear-gradient(transparent, rgba(4, 6, 13, 0.75)); pointer-events: none; }
.bn-founder-copy { display: grid; gap: 16px; align-content: center; max-width: 56ch; min-width: 0; }
.bn-founder-copy h2 { font-family: var(--display); font-size: clamp(38px, 5.4vw, 64px); line-height: 1.02; }
.bn-founder-copy h2 i { color: var(--ion); }
.bn-founder-name { font-size: 15px; color: var(--muted); }
.bn-founder-name b { color: var(--ink); }
.bn-founder-copy > p:not(.bn-founder-name) { color: var(--muted); font-size: 16px; }
.bn-founder-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.bn-founder-cta .bn-btn-alt { padding: 13px 22px; font-size: 15px; }
@media (max-width: 860px) { .bn-founder-grid { grid-template-columns: minmax(0, 1fr); } .bn-founder-photo { max-width: 420px; } }
.bn-host { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.bn-host img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(140, 242, 255, 0.5); flex: none; }
.bn-host p { font-size: 14px; color: var(--muted); }
.bn-host b { color: var(--ink); }
.bn a.bn-btn { color: var(--void); }

/* v8: energy on interactive elements */
#bn-arcs { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 4; }
.bn-card { position: relative; isolation: isolate; }
.bn-card::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: conic-gradient(from var(--spin, 0deg), transparent 0 62%, var(--ion), var(--core), var(--plasma), transparent 92%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.25s ease; animation: bn-spin 2.4s linear infinite; pointer-events: none; z-index: -1; }
.bn-card:hover::before, .bn-card:focus-visible::before { opacity: 1; }
.bn-card[aria-pressed="true"]::before { opacity: 1; background: conic-gradient(from var(--spin, 0deg), transparent 0 55%, var(--flare), var(--core), var(--flare), transparent 90%); animation-duration: 1.6s; }
.bn-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(105deg, transparent 35%, rgba(140, 242, 255, 0.16) 50%, transparent 65%); background-size: 260% 100%; background-position: 130% 0; animation: bn-sheen 6s ease-in-out infinite; animation-delay: var(--sheen, 0s); pointer-events: none; z-index: -1; }
@keyframes bn-sheen { 0%, 70% { background-position: 130% 0; } 100% { background-position: -130% 0; } }
.bn-card:active { transform: translateX(var(--arc)) scale(0.97); }
#bn-build:not([disabled]) { animation: bn-charge 1.8s ease-in-out infinite; }
@keyframes bn-charge { 0%, 100% { box-shadow: 0 0 18px rgba(140, 242, 255, 0.45), 0 0 0 0 rgba(140, 242, 255, 0.45); } 50% { box-shadow: 0 0 42px rgba(140, 242, 255, 0.9), 0 0 0 10px rgba(140, 242, 255, 0); } }
.bn-ignite button { position: relative; overflow: hidden; }
.bn-ignite button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.85) 50%, transparent 70%); background-size: 250% 100%; animation: bn-sheen 3.2s ease-in-out infinite; }
.bn-sound { display: inline-flex; align-items: center; gap: 8px; background: none; border: 1px solid var(--line); border-radius: 999px; padding: 7px 12px; color: var(--muted); font: 600 13px var(--body); cursor: pointer; }
.bn-sound:hover { color: var(--ink); border-color: var(--ion); }
.bn-sound-bars { display: inline-flex; align-items: flex-end; gap: 2px; height: 12px; }
.bn-sound-bars i { width: 2px; height: 3px; background: currentColor; border-radius: 1px; }
.bn-sound[aria-pressed="true"] { color: var(--ion); border-color: rgba(140, 242, 255, 0.5); }
.bn-sound[aria-pressed="true"] .bn-sound-bars i { animation: bn-eq 0.9s ease-in-out infinite; }
.bn-sound-bars i:nth-child(2) { animation-delay: 0.2s !important; } .bn-sound-bars i:nth-child(3) { animation-delay: 0.45s !important; } .bn-sound-bars i:nth-child(4) { animation-delay: 0.1s !important; }
@keyframes bn-eq { 0%, 100% { height: 3px; } 50% { height: 12px; } }
@media (max-width: 760px) { .bn-sound-label { display: none; } .bn-nav a.bn-btn-ghost { display: none; } }
@media (prefers-reduced-motion: reduce) { .bn-card::before, .bn-card::after, .bn-ignite button::after, #bn-build:not([disabled]) { animation: none; } }

/* v8: TV card sits under the hub */
.bn-center { display: grid; gap: clamp(8px, 1.6vh, 14px); justify-items: center; align-content: center; height: 100%; min-height: 0; }
.bn-center .bn-hub { width: clamp(220px, min(30vw, 46vh), 350px); }
.bn-col-c { display: grid; justify-items: center; width: 100%; }
.bn-col-c .bn-card { --from: 0px; width: min(100%, 300px); }
@media (max-width: 760px) { .bn-center, .bn-col-c { display: contents; } }
.bn-center { width: clamp(240px, min(30vw, 52vh), 350px); }
.bn-center .bn-hub { width: 100%; padding: 20px; }
.bn-col-c .bn-card { width: 100%; }
@media (max-height: 640px) { .bn-center .bn-hub h2 { font-size: 22px; } .bn-center .bn-hub p { display: none; } }
@media (max-width: 760px) { .bn-center { width: auto; } }

/* v9: remove buttons, add-ons */
.bn-stack-item { position: relative; grid-template-columns: 110px minmax(0, 1fr) auto; }
.bn-remove { align-self: start; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 16px; line-height: 1; cursor: pointer; }
.bn-remove:hover { color: var(--flare); border-color: var(--flare); }
.bn-addons { display: grid; gap: 8px; }
.bn-addons:empty { display: none; }
.bn-addon { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; cursor: pointer; border: 1px dashed rgba(140, 242, 255, 0.45); background: rgba(90, 168, 255, 0.06); }
.bn-addon:has(input:checked) { border-style: solid; border-color: var(--flare); background: rgba(52, 36, 12, 0.55); box-shadow: 0 0 24px -8px rgba(255, 181, 71, 0.7); }
.bn-addon input { accent-color: var(--flare); margin-top: 4px; width: 16px; height: 16px; flex: none; }
.bn-addon-body { display: grid; gap: 2px; min-width: 0; }
.bn-addon-kicker { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ion); }
.bn-addon-title { font-weight: 700; font-size: 15px; }
.bn-addon-text { font-size: 12.5px; color: var(--muted); line-height: 1.4; }
.bn-addon-price { font-family: var(--mono); font-size: 12px; color: var(--flare); }
@media (max-width: 480px) { .bn-stack-item { grid-template-columns: minmax(0, 1fr) auto; } .bn-stack-item .bn-card-tag { grid-column: 1 / -1; } }

/* v10: tight purchase screen */
.bn-result { grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr); }
.bn-result-main { gap: 10px; }
.bn-result-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.bn-result-head h2 { font-size: clamp(24px, min(2.6vw, 4.6vh), 36px); }
.bn-result-count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--flare); }
.bn-result-head .bn-back { margin-left: auto; }
.bn-stack-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start; }
.bn-stack-item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 10px 12px; border-radius: 12px; align-content: start; outline: none; transition: border-color 0.2s ease, background 0.2s ease; }
.bn-stack-item:hover, .bn-stack-item:focus-within, .bn-stack-item:focus { border-color: rgba(140, 242, 255, 0.5); background: rgba(20, 34, 66, 0.85); }
.bn-tile-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.bn-stack-item .bn-card-tag { padding-top: 0; font-size: 10.5px; }
.bn-stack-item h3 { font-size: 14px; line-height: 1.25; }
.bn-stack-item p { font-size: 12px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.bn-stack-item:hover p, .bn-stack-item:focus p, .bn-stack-item:focus-within p { -webkit-line-clamp: unset; display: block; }
.bn-stack-item .bn-tools { flex-wrap: nowrap; overflow: hidden; margin-top: 4px; gap: 4px; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
.bn-stack-item:hover .bn-tools, .bn-stack-item:focus .bn-tools, .bn-stack-item:focus-within .bn-tools { flex-wrap: wrap; -webkit-mask-image: none; mask-image: none; }
.bn-stack-item .bn-tool { font-size: 10.5px; padding: 2px 8px; white-space: nowrap; flex: none; }
.bn-remove { width: 22px; height: 22px; font-size: 14px; flex: none; }

.bn-form { gap: 10px; padding: clamp(14px, 2vh, 22px); align-content: center; }
.bn-form h3 { font-size: 24px; }
.bn-quote-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.bn-quote-num, .bn-quote-mo { font-family: var(--display); line-height: 1; color: var(--flare); }
.bn-quote-num { font-size: clamp(32px, 5vh, 44px); }
.bn-quote-mo { font-size: clamp(22px, 3.4vh, 30px); }
.bn-quote-unit { font-size: 12px; color: var(--muted); }
.bn-quote-plus { color: var(--muted); font-size: 18px; }
.bn-addon { align-items: center; gap: 10px; padding: 9px 12px; flex-wrap: wrap; position: relative; }
.bn-addon input { margin-top: 0; }
.bn-addon-title { font-weight: 700; font-size: 14px; }
.bn-addon-badge { font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ion); border: 1px solid rgba(140, 242, 255, 0.35); border-radius: 999px; padding: 1px 8px; }
.bn-addon-price { font-family: var(--mono); font-size: 12px; color: var(--flare); margin-left: auto; }
.bn-info { position: relative; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); display: inline-grid; place-items: center; font: italic 700 11px Georgia, serif; color: var(--muted); cursor: help; flex: none; }
.bn-tip { position: absolute; right: -8px; bottom: calc(100% + 8px); width: 240px; padding: 10px 12px; border-radius: 10px; background: #0b1328; border: 1px solid var(--line); color: var(--ink); font: 400 12.5px/1.45 var(--body); font-style: normal; text-align: left; box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6); opacity: 0; pointer-events: none; transform: translateY(4px); transition: opacity 0.15s ease, transform 0.15s ease; z-index: 5; }
.bn-info:hover .bn-tip, .bn-info:focus .bn-tip { opacity: 1; transform: none; }
.bn-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.bn-field input { padding: 10px 11px; }
.bn-cta-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: stretch; }
.bn-cta-row .bn-btn { padding: 13px 14px; font-size: 15px; }
.bn-cta-row .bn-btn-alt { font-size: 13px; padding: 10px; }
.bn-fine { font-size: 11.5px; }
@media (max-width: 1100px) { .bn-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bn-fields .bn-field:last-child { grid-column: 1 / -1; } }
@media (max-width: 760px) {
  .bn-stack-list { grid-template-columns: minmax(0, 1fr); }
  .bn-stack-item p { -webkit-line-clamp: unset; display: block; }
  .bn-stack-item .bn-tools { flex-wrap: wrap; -webkit-mask-image: none; mask-image: none; }
  .bn-cta-row { grid-template-columns: minmax(0, 1fr); }
  .bn-result-head .bn-back { margin-left: 0; }
}
.bn-result { grid-template-columns: minmax(0, 1.9fr) minmax(320px, 1fr); }
.bn-stack-item { padding: 9px 11px; }
@media (min-width: 1180px) { .bn-stack-list.is-big { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-height: 600px) and (min-width: 761px) { .bn-stack-item p { display: none; } .bn-stack-item:hover p, .bn-stack-item:focus p, .bn-stack-item:focus-within p { display: block; } }
.bn-result { grid-template-columns: minmax(0, 1.75fr) minmax(360px, 1fr); }
.bn-cta-row .bn-btn { white-space: normal; line-height: 1.2; }
.bn-field label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bn-quote-line { column-gap: 6px; }
.bn-quote-line .bn-quote-unit:last-child { flex-basis: auto; }
@media (max-width: 760px) { .bn-result { grid-template-columns: minmax(0, 1fr); } .bn-fields { grid-template-columns: minmax(0, 1fr); } .bn-fields .bn-field:last-child { grid-column: auto; } }

/* v11: Nova presence */
.bn-chat-fab { padding: 5px 16px 5px 5px; gap: 10px; }
.bn-chat-fab.has-nudge::after { margin-left: 2px; }
.bn-nova-face { position: relative; width: 44px; height: 44px; border-radius: 50%; flex: none; display: block; }
.bn-nova-face img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; border: 1.5px solid rgba(140, 242, 255, 0.85); }
.bn-nova-face::before { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid rgba(140, 242, 255, 0.6); animation: bn-ring 2.4s ease-out infinite; }
.bn-nova-face::after { content: ""; position: absolute; right: 1px; bottom: 1px; width: 10px; height: 10px; border-radius: 50%; background: #4ade80; border: 2px solid var(--deep); }
@keyframes bn-ring { 0% { transform: scale(0.95); opacity: 0.9; } 100% { transform: scale(1.35); opacity: 0; } }
.bn-fab-text { display: grid; text-align: left; line-height: 1.15; }
.bn-fab-text b { font-size: 15px; }
.bn-fab-text small { font-size: 11px; font-weight: 500; color: var(--muted); }
.bn-nova-face-sm { width: 34px; height: 34px; }
.bn-nova-face-sm::before { display: none; }
.bn-chat-id { display: flex; align-items: center; gap: 10px; }
.bn-chat-panel { grid-template-rows: auto auto minmax(0, 1fr) auto auto auto; }
.bn-chat-hero { position: relative; height: 150px; overflow: hidden; background: radial-gradient(ellipse at 50% 20%, rgba(90, 168, 255, 0.35), rgba(8, 13, 28, 0) 70%); border-bottom: 1px solid var(--line); }
.bn-chat-hero img { position: absolute; left: 50%; top: 10px; width: 250px; height: auto; transform: translateX(-46%); filter: drop-shadow(0 0 18px rgba(140, 242, 255, 0.45)); }
.bn-chat-hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40px; background: linear-gradient(transparent, rgba(8, 13, 28, 0.97)); }
@media (max-height: 760px) { .bn-chat-hero { display: none; } }
@media (prefers-reduced-motion: reduce) { .bn-nova-face::before { animation: none; } }
.bn-chat-head .bn-chat-id { display: flex; align-items: center; gap: 10px; }
.bn-chat-head .bn-chat-id > div { display: grid; }
.bn-chat-panel { order: -1; }
.bn-chat-teaser { order: -2; }
.bn-chat-hero img { top: 6px; width: 270px; transform: translateX(-40%); }
/* v13: chat panel as a flex column so hidden parts never break the layout */
.bn-chat-panel { display: flex; flex-direction: column; }
.bn-chat-panel[hidden] { display: none !important; }
.bn-chat-panel > * { flex: none; }
.bn-chat-panel > .bn-chat-log { flex: 1 1 auto; min-height: 120px; overflow-y: auto; }

.bn-quote.is-bump .bn-quote-num, .bn-quote.is-bump .bn-quote-mo { animation: bn-bump 0.7s ease; }
@keyframes bn-bump { 0% { text-shadow: 0 0 0 transparent; transform: none; } 30% { text-shadow: 0 0 22px rgba(255, 181, 71, 0.9); transform: scale(1.06); } 100% { text-shadow: 0 0 0 transparent; transform: none; } }
.bn-quote-num, .bn-quote-mo { display: inline-block; transform-origin: left bottom; }

/* ---------- v15: step 1 scorecard ---------- */
:root { --ok: #4ade80; --warn: #ffb547; --bad: #ff6b6b; }
.bn-scorecard { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: clamp(16px, 2.5vw, 32px); align-items: stretch; }
.bn-sc-main { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: clamp(10px, 2vh, 18px); min-height: 0; }
.bn-sc-head { display: flex; align-items: center; gap: 18px; min-width: 0; }
.bn-sc-ring { position: relative; flex: none; width: clamp(84px, 13vh, 112px); aspect-ratio: 1; }
.bn-sc-ring[hidden] { display: none; }
.bn-sc-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.bn-sc-track { fill: none; stroke: rgba(140, 242, 255, 0.12); stroke-width: 9; }
.bn-sc-arc { fill: none; stroke: var(--ion); stroke-width: 9; stroke-linecap: round; filter: drop-shadow(0 0 6px rgba(140, 242, 255, 0.7)); }
.bn-sc-ring[data-band="low"] .bn-sc-arc { stroke: var(--bad); filter: drop-shadow(0 0 6px rgba(255, 107, 107, 0.7)); }
.bn-sc-ring[data-band="mid"] .bn-sc-arc { stroke: var(--warn); filter: drop-shadow(0 0 6px rgba(255, 181, 71, 0.7)); }
.bn-sc-num { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; line-height: 1; }
.bn-sc-num b { font-family: var(--display); font-weight: 400; font-size: clamp(30px, 5vh, 40px); font-variant-numeric: tabular-nums; }
.bn-sc-num small { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.bn-sc-title { display: grid; gap: 6px; min-width: 0; }
.bn-sc-title h2 { font-family: var(--display); font-size: clamp(24px, min(3vw, 5vh), 38px); line-height: 1.05; overflow-wrap: anywhere; }
.bn-sc-title h2 span { color: var(--ion); font-style: italic; }
.bn-sc-title p { color: var(--muted); font-size: 14px; }
.bn-sc-demo { font-style: normal; margin-left: 8px; padding: 1px 8px; border-radius: 999px; border: 1px solid rgba(255, 181, 71, 0.5); color: var(--flare); }
.bn-sc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start; overflow-y: auto; min-height: 0; }
.bn-sc-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: var(--panel); border: 1px solid var(--line); opacity: 0; animation: bn-line 0.35s ease forwards; animation-delay: calc(var(--i) * 70ms + 200ms); min-width: 0; }
.bn-sc-dot { flex: none; width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 10px var(--ok); }
.bn-sc-item.is-amber .bn-sc-dot { background: var(--warn); box-shadow: 0 0 10px var(--warn); }
.bn-sc-item.is-red .bn-sc-dot { background: var(--bad); box-shadow: 0 0 10px var(--bad); }
.bn-sc-item.is-red { border-color: rgba(255, 107, 107, 0.35); }
.bn-sc-txt { display: grid; gap: 2px; min-width: 0; }
.bn-sc-txt b { font-size: 14px; }
.bn-sc-txt span { font-size: 12.5px; line-height: 1.4; color: var(--muted); }
.bn-sc-side { display: grid; gap: 12px; align-content: center; padding: clamp(16px, 2.4vh, 24px); border-radius: 18px; background: linear-gradient(180deg, rgba(90, 168, 255, 0.12), rgba(10, 16, 32, 0.92)); border: 1px solid var(--line); min-height: 0; overflow-y: auto; }
.bn-sc-side h3 { font-family: var(--display); font-weight: 400; font-size: 24px; line-height: 1.1; }
.bn-sc-qs { display: grid; gap: 8px; }
.bn-q { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 10px 9px 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(4, 6, 13, 0.5); }
.bn-q p { font-size: 13.5px; line-height: 1.35; }
.bn-q-btns { display: inline-flex; gap: 4px; }
.bn-q-btns button { border: 1px solid var(--line); background: transparent; color: var(--muted); font: 600 12.5px var(--body); padding: 6px 11px; border-radius: 999px; cursor: pointer; }
.bn-q-btns button[data-v="yes"][aria-pressed="true"] { background: var(--flare); border-color: var(--flare); color: var(--void); }
.bn-q-btns button[data-v="no"][aria-pressed="true"] { background: rgba(140, 242, 255, 0.15); border-color: var(--ion); color: var(--ink); }
.bn-sc-side .bn-btn { width: 100%; text-align: center; padding: 14px; }
.bn-sc-note { font-size: 12px; color: var(--muted); text-align: center; }
@media (max-height: 640px) and (min-width: 761px) { .bn-sc-txt span { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; } .bn-sc-item { padding: 7px 10px; } }
@media (max-width: 980px) { .bn-sc-list { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .bn-scorecard { grid-template-columns: minmax(0, 1fr); } .bn-sc-list { overflow: visible; } .bn-sc-side { overflow: visible; } }

/* Step 2: Nova picks + back to findings */
.bn-rec { margin-left: auto; margin-right: 6px; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--void); background: var(--ion); padding: 1px 6px; border-radius: 999px; white-space: nowrap; }
.bn-card-top { gap: 6px; }
.bn-hub-back { font-size: 12px; }
.bn-hub-back[hidden] { display: none; }

/* Stack tiles: the finding that put each fix there */
.bn-stack-item p.bn-found { color: var(--flare); }
.bn-stack-item p.bn-found::before { content: "Found: "; font-weight: 700; }
.bn-stack-item p.bn-found[data-said]::before { content: ""; }

/* Locked full-report preview */
.bn-locked { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 12px; border: 1px solid rgba(140, 242, 255, 0.28); background: rgba(90, 168, 255, 0.07); }
.bn-lock { color: var(--ion); display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(140, 242, 255, 0.12); }
.bn-locked-text { display: grid; gap: 1px; min-width: 0; }
.bn-locked-text b { font-size: 13.5px; }
.bn-locked-text small { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bn-locked-blur { display: grid; gap: 4px; width: 64px; filter: blur(1.4px); opacity: 0.8; }
.bn-locked-blur i { display: block; height: 5px; border-radius: 3px; background: linear-gradient(90deg, var(--ion), rgba(140, 242, 255, 0.2)); }
.bn-locked-blur i:nth-child(2) { width: 75%; }
.bn-locked-blur i:nth-child(3) { width: 55%; }
@media (max-width: 420px) { .bn-locked-blur { display: none; } .bn-locked { grid-template-columns: auto minmax(0, 1fr); } }
.bn-snap { font-size: 12.5px; text-align: center; margin-top: -4px; }
.bn-snap .bn-link { color: var(--flare); }
.bn-snap .bn-link[disabled] { opacity: 0.6; cursor: wait; }

/* ---------- v15: Nova chat ---------- */
.bn-chat { left: auto; right: 16px; justify-items: end; }
.bn-chat-teaser { position: absolute; right: calc(100% + 10px); bottom: 6px; width: 260px; border-radius: 14px 14px 4px 14px; }
@media (max-width: 640px) { .bn-chat-teaser { right: 0; bottom: calc(100% + 10px); width: min(260px, calc(100vw - 32px)); } }
.bn-chat-panel { width: min(420px, calc(100vw - 32px)); max-height: min(720px, calc(100vh - 110px)); max-height: min(720px, calc(100dvh - 110px)); }
.bn-chat-panel > .bn-chat-log { min-height: 160px; }
.bn-chat-panel.is-call > .bn-chat-log, .bn-chat-panel.is-call > .bn-chat-form, .bn-chat-panel.is-call > .bn-chat-note, .bn-chat-panel.is-call > .bn-chat-hero { display: none; }
.bn-chat-panel > .bn-chat-call { flex: 1 1 auto; overflow-y: auto; display: grid; align-content: start; gap: 12px; padding: 14px 18px 18px; border-top: 0; }
.bn-chat-panel > .bn-chat-call[hidden] { display: none; }
.bn-call-back { justify-self: start; font-size: 13px; }
.bn-call-ask, .bn-call-done { display: grid; gap: 10px; }
.bn-call-ask[hidden], .bn-call-done[hidden], .bn-call-known[hidden], .bn-call-fields[hidden] { display: none; }
.bn-chat-call h3 { font-family: var(--display); font-weight: 400; font-size: 26px; line-height: 1.1; }
.bn-call-sub { font-size: 13.5px; color: var(--muted); }
.bn-call-known { display: grid; gap: 6px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(140, 242, 255, 0.3); background: rgba(90, 168, 255, 0.08); }
.bn-call-known p { font-size: 14px; line-height: 1.5; color: var(--muted); }
.bn-call-known b { color: var(--ink); }
.bn-call-known .bn-link { justify-self: start; font-size: 12.5px; }
.bn-call-fields { display: grid; gap: 8px; }
.bn-chat-call .bn-btn { width: 100%; padding: 13px; font-size: 15px; text-align: center; }
.bn-call-err { font-size: 13px; color: var(--flare); min-height: 1em; }
.bn-call-err:empty { display: none; }
.bn-call-done { justify-items: center; text-align: center; padding-top: 12px; }
.bn-call-check { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; font-size: 26px; color: var(--void); background: var(--ion); box-shadow: 0 0 30px rgba(140, 242, 255, 0.7); }
.bn-call-done p { font-size: 14px; color: var(--muted); }
.bn-call-done .bn-btn-alt { padding: 10px 18px; }

/* Report page */
.bn-report { max-width: 820px; }
.bn-report-head { display: grid; gap: 8px; margin-bottom: 28px; }
.bn-report-head h1 { margin-bottom: 0; overflow-wrap: anywhere; }
.bn-report-meta { color: var(--muted); }
.bn-report-meta b { color: var(--flare); font-weight: 600; }
.bn-report-body { padding: clamp(18px, 3vw, 32px); border-radius: 18px; background: var(--panel); border: 1px solid var(--line); line-height: 1.65; }
.bn-report-body h2 { font-family: var(--display); font-size: 28px; color: var(--ion); margin: 28px 0 10px; }
.bn-report-body h2:first-child { margin-top: 0; }
.bn-report-body h3, .bn-report-body h4 { font-size: 17px; font-weight: 700; margin: 18px 0 6px; }
.bn-report-body p { margin: 0 0 12px; }
.bn-report-body ul, .bn-report-body ol { margin: 0 0 14px; padding-left: 22px; display: grid; gap: 6px; }
.bn-report-body strong { color: var(--ink); }
.bn-report-cta { margin-top: 24px; }
.bn-locked-open small { white-space: normal; }
.bn-locked-open a { color: var(--ion); }
.bn-chat-teaser.is-above { right: 0; bottom: calc(100% + 10px); }
.bn-result .bn-form { align-content: start; }
@media (max-width: 760px) { .bn-sc-txt span { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; } .bn-sc-item { padding: 8px 10px; } .bn-sc-list { gap: 6px; } }

/* ---------- v16: pricing section ---------- */
.bn-price-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 0.9fr); gap: 16px; align-items: stretch; }
.bn-price-card { display: grid; gap: 10px; align-content: start; padding: 26px 24px; border-radius: 18px; background: var(--panel); border: 1px solid var(--line); }
.bn-price-card.is-feature { border-color: rgba(255, 181, 71, 0.45); box-shadow: 0 0 40px -18px rgba(255, 181, 71, 0.7); }
.bn-price-tag { justify-self: start; font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ion); border: 1px solid rgba(140, 242, 255, 0.35); border-radius: 999px; padding: 3px 10px; }
.bn-price-card h3, .bn-price-note h3 { font-family: var(--display); font-size: 30px; line-height: 1.1; }
.bn-price-from { color: var(--muted); }
.bn-price-from b { font-family: var(--display); font-weight: 400; font-size: 40px; color: var(--flare); margin-left: 4px; }
.bn-price-from small { color: var(--muted); font-size: 15px; }
.bn-price-eg { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.bn-price-card ul, .bn-cc-list { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.bn-price-card li { position: relative; padding-left: 22px; font-size: 14.5px; }
.bn-price-card li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 9px; height: 9px; border-radius: 50%; background: var(--ion); box-shadow: 0 0 10px var(--ion); }
.bn-price-note { display: grid; gap: 12px; align-content: start; padding: 26px 24px; border-radius: 18px; border: 1px dashed var(--line); }
.bn-price-note h3 { font-size: 24px; }
.bn-price-note p { color: var(--muted); font-size: 14.5px; }
.bn-price-note .bn-btn { justify-self: start; }
.bn-cc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; align-items: center; margin-top: 64px; }
.bn-cc-copy { display: grid; gap: 14px; }
.bn-cc-copy h3 { font-family: var(--display); font-size: clamp(30px, 3.6vw, 42px); line-height: 1.05; }
.bn-cc-copy > p { color: var(--muted); }
.bn-cc-list li { font-size: 15px; color: var(--muted); }
.bn-cc-list b { color: var(--ink); }
.bn-cc-mock { display: grid; gap: 14px; padding: 18px; border-radius: 20px; background: linear-gradient(180deg, rgba(90, 168, 255, 0.14), rgba(10, 16, 32, 0.95)); border: 1px solid rgba(140, 242, 255, 0.3); box-shadow: 0 30px 80px -40px rgba(90, 168, 255, 0.9); }
.bn-cc-bar { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 11px; color: var(--muted); }
.bn-cc-bar i { width: 9px; height: 9px; border-radius: 50%; background: rgba(233, 238, 251, 0.2); }
.bn-cc-bar span { margin-left: 8px; }
.bn-cc-stages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.bn-cc-stages span { text-align: center; font-size: 12px; padding: 6px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); }
.bn-cc-stages .is-done { color: var(--ink); border-color: rgba(74, 222, 128, 0.5); }
.bn-cc-stages .is-now { color: var(--void); background: var(--ion); border-color: var(--ion); font-weight: 700; }
.bn-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.bn-kpi { display: grid; gap: 2px; padding: 14px; border-radius: 14px; background: rgba(4, 6, 13, 0.55); border: 1px solid var(--line); }
.bn-kpi b { font-family: var(--display); font-weight: 400; font-size: 34px; line-height: 1; color: var(--ion); }
.bn-kpi span { font-size: 12.5px; color: var(--muted); }
.bn-cc-rows { display: grid; gap: 6px; }
.bn-cc-rows span { display: flex; justify-content: space-between; padding: 10px 12px; border-radius: 10px; background: rgba(4, 6, 13, 0.45); font-size: 13.5px; }
.bn-cc-rows i { font-style: normal; color: var(--flare); font-size: 12.5px; }
.bn-cc-cap { font-size: 11.5px; color: var(--muted); text-align: center; }
@media (max-width: 980px) { .bn-price-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .bn-price-note { grid-column: 1 / -1; } .bn-cc { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .bn-price-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- v16: Command Center (client portal) ---------- */
.bn-portal { position: relative; z-index: 1; display: grid; gap: 20px; padding-block: 36px 90px; }
.bn-portal h1 { font-family: var(--display); font-weight: 400; font-size: clamp(34px, 4.6vw, 52px); line-height: 1.05; margin: 6px 0 0; }
.bn-portal h2 { font-family: var(--display); font-weight: 400; font-size: 26px; line-height: 1.1; }
.bn-portal-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.bn-portal-small { font-size: 13px; color: var(--muted); }
.bn-portal-small a, .bn-portal a.bn-portal-small { color: var(--ion); }
.bn-portal-staff { font-size: 13px; padding: 8px 12px; border-radius: 10px; background: rgba(255, 181, 71, 0.12); border: 1px solid rgba(255, 181, 71, 0.4); color: var(--flare); }
.bn-portal-staff a { color: var(--ink); }
.bn-portal-notice { padding: 10px 14px; border-radius: 12px; background: rgba(140, 242, 255, 0.1); border: 1px solid rgba(140, 242, 255, 0.35); }
.bn-portal-stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.bn-portal-stages li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--line); color: var(--muted); font-size: 14px; background: var(--panel); }
.bn-portal-stages span { display: grid; place-items: center; width: 26px; height: 26px; flex: none; border-radius: 50%; border: 1px solid var(--line); font-family: var(--mono); font-size: 12px; }
.bn-portal-stages .is-done { color: var(--ink); }
.bn-portal-stages .is-done span { background: var(--ok); border-color: var(--ok); color: var(--void); }
.bn-portal-stages .is-now { color: var(--ink); border-color: var(--ion); box-shadow: 0 0 30px -12px var(--ion); }
.bn-portal-stages .is-now span { background: var(--ion); border-color: var(--ion); color: var(--void); }
.bn-portal-card { display: grid; gap: 14px; align-content: start; padding: 22px; border-radius: 18px; background: var(--panel); border: 1px solid var(--line); }
.bn-portal-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.bn-portal-card p { color: var(--muted); font-size: 14.5px; }
.bn-portal-card .bn-btn, .bn-portal-card .bn-btn-alt { justify-self: start; text-decoration: none; text-align: center; }
.bn-portal-note b { color: var(--ink); }
.bn-portal-empty { padding: 14px; border-radius: 12px; border: 1px dashed var(--line); }
.bn-portal-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.bn-portal-side { display: grid; gap: 20px; }
.bn-portal-stack { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.bn-portal-stack li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 12px 14px; border-radius: 12px; background: rgba(4, 6, 13, 0.45); border: 1px solid var(--line); }
.bn-portal-stack b { font-size: 14.5px; }
.bn-portal-stack span { grid-column: 1; font-size: 12.5px; color: var(--muted); }
.bn-portal-stack .bn-pill { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.bn-pill { font-style: normal; font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); white-space: nowrap; }
.bn-pill.is-live { color: var(--ok); border-color: rgba(74, 222, 128, 0.5); }
.bn-pill.is-building { color: var(--flare); border-color: rgba(255, 181, 71, 0.5); }
.bn-portal-table-wrap { overflow-x: auto; }
.bn-portal-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.bn-portal-table th, .bn-portal-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.bn-portal-table th { font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); font-weight: 400; }
.bn-portal-req { display: grid; gap: 10px; }
.bn-portal-req textarea { width: 100%; resize: vertical; padding: 12px 14px; border-radius: 12px; background: rgba(4, 6, 13, 0.6); border: 1px solid var(--line); color: var(--ink); font: 15px/1.5 var(--body); }
.bn-portal-reqs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bn-portal-reqs li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; background: rgba(4, 6, 13, 0.45); font-size: 14px; }
.bn-portal-reqs small { color: var(--muted); }
.bn-portal-login { max-width: 460px; margin: 40px auto; display: grid; gap: 14px; text-align: center; }
.bn-portal-login > p { color: var(--muted); }
.bn-portal-login .bn-form { text-align: left; max-height: none; overflow: visible; }
.bn-portal-login form { display: grid; gap: 12px; }
.bn-portal-login form p { margin: 0; display: grid; gap: 6px; }
.bn-portal-login label { font-size: 13px; color: var(--muted); }
.bn-portal-login .login-remember label { display: flex; gap: 8px; align-items: center; }
.bn-portal-login input[type="text"], .bn-portal-login input[type="password"] { width: 100%; padding: 12px 14px; border-radius: 12px; background: rgba(4, 6, 13, 0.6); border: 1px solid var(--line); color: var(--ink); font: 15px var(--body); }
.bn-portal-login input[type="submit"] { width: 100%; border: 0; cursor: pointer; font: 700 16px var(--body); color: var(--void); background: linear-gradient(180deg, var(--core), var(--ion)); padding: 14px; border-radius: 14px; }
.bn-footer-links { display: flex; gap: 16px; }
.bn-footer-links a { color: var(--muted); }
@media (max-width: 860px) { .bn-portal-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .bn-portal-stages { grid-template-columns: minmax(0, 1fr); } }
.bn-price-eg { display: grid; gap: 2px; }

/* ---------- v16.2: Growth Partnership + finance ---------- */
.bn-partner { display: grid; gap: 22px; margin-top: 56px; padding: 30px 28px; border-radius: 22px; border: 1px solid rgba(255, 181, 71, 0.4); background: radial-gradient(120% 140% at 0% 0%, rgba(255, 181, 71, 0.12), transparent 55%), var(--panel); }
.bn-partner-head { display: grid; gap: 10px; max-width: 720px; }
.bn-partner-head h3 { font-family: var(--display); font-weight: 400; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.05; }
.bn-partner-head p, .bn-partner-grid p { color: var(--muted); }
.bn-partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bn-partner-grid article { display: grid; gap: 8px; align-content: start; padding: 18px; border-radius: 16px; background: rgba(4, 6, 13, 0.5); border: 1px solid var(--line); }
.bn-partner-grid .bn-price-tag { color: var(--flare); border-color: rgba(255, 181, 71, 0.45); }
.bn-partner-grid h4 { margin: 0; font-family: var(--display); font-weight: 400; font-size: 24px; }
.bn-partner-grid p { font-size: 14.5px; }
.bn-partner-foot { font-size: 14px; color: var(--muted); }
.bn-partner-foot .bn-link { background: none; border: 0; padding: 0; color: var(--ion); font: inherit; text-decoration: underline; cursor: pointer; }
.bn-partner-line { display: block; width: 100%; margin-top: 6px; padding: 6px 10px; border-radius: 10px; border: 1px solid rgba(255, 181, 71, 0.45); background: rgba(255, 181, 71, 0.08); color: var(--ink); font: 12.5px/1.35 var(--body); text-align: left; cursor: pointer; }
.bn-partner-line b { color: var(--flare); font-weight: 700; }
.bn-partner-line u { color: var(--ion); }
@media (max-width: 760px) { .bn-partner-grid { grid-template-columns: minmax(0, 1fr); } .bn-partner { padding: 22px 18px; } }
@media (max-height: 700px) and (min-width: 761px) { .bn-addon-badge { display: none !important; } .bn-addon { padding: 7px 12px; } .bn-partner-line { padding: 4px 9px; } }

/* ---------- v16.3: Ray "start here" guide ---------- */
/* Ray + the hero form are centered as one group: the hero shifts right by half of Ray's width. */
.bn-core { --w: max(0px, min(460px, 30vw, 100vw - 760px)); left: calc(var(--w) / 2); }
.bn-guide { position: absolute; right: calc(100% + 4px); bottom: calc(70px - var(--w) * 0.245); width: var(--w); padding: 0; border: 0; background: none; cursor: pointer; text-align: left; z-index: 2; animation: bn-guide-in 0.9s 0.3s ease both; }
.bn-guide img { display: block; width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 98%); mask-image: linear-gradient(180deg, #000 72%, transparent 98%); transition: transform 0.3s ease; transform-origin: 30% 100%; }
.bn-guide { filter: drop-shadow(0 0 26px rgba(90, 168, 255, 0.35)); transition: filter 0.3s ease; }
.bn-guide:hover img, .bn-guide:focus-visible img { transform: translateY(-4px); }
.bn-guide:hover, .bn-guide:focus-visible { filter: drop-shadow(0 0 38px rgba(140, 242, 255, 0.6)); }
.bn-guide-bubble { position: absolute; left: 43%; top: 4%; width: min(210px, 50%); display: grid; gap: 4px; padding: 11px 13px; border-radius: 14px 14px 14px 4px; background: rgba(10, 16, 32, 0.92); border: 1px solid rgba(140, 242, 255, 0.45); box-shadow: 0 0 30px -10px rgba(90, 168, 255, 0.9); color: var(--ink); font: 13px/1.4 var(--body); animation: bn-guide-pop 0.5s 1.1s ease both; }
.bn-guide-bubble b { font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--flare); }
.bn-guide-bubble i { font-style: normal; color: var(--muted); font-size: 12px; }
.bn-ignite.is-nudge { animation: bn-nudge 0.7s ease; }
@keyframes bn-guide-in { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: none; } }
@keyframes bn-guide-pop { from { opacity: 0; transform: translateY(8px) scale(0.96); } to { opacity: 1; transform: none; } }
@keyframes bn-nudge { 0%, 100% { box-shadow: none; } 40% { box-shadow: 0 0 0 4px rgba(140, 242, 255, 0.5), 0 0 40px rgba(140, 242, 255, 0.6); } }
@media (max-width: 1180px), (max-height: 600px) { .bn-guide { display: none; } .bn-core { left: 0; } }
@media (prefers-reduced-motion: reduce) { .bn-guide, .bn-guide-bubble { animation: none; } }

/* ---------- v16.6: animated orbital logo (animation lives inside the SVG) ---------- */
.bn-header .bn-wrap { padding-block: 12px; }
.bn-logo { display: block; width: 220px; height: auto; }
@media (max-width: 760px) { .bn-logo { width: 170px; } }

/* ---------- v16.7: how pricing works (no prices before the scan) ---------- */
.bn-how-price { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.bn-how-price li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; padding: 20px; border-radius: 18px; background: var(--panel); border: 1px solid var(--line); }
.bn-how-price li > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(140, 242, 255, 0.12); border: 1px solid rgba(140, 242, 255, 0.4); color: var(--ion); font-family: var(--mono); font-size: 14px; }
.bn-how-price h3 { margin: 4px 0 6px; font-family: var(--display); font-weight: 400; font-size: 24px; line-height: 1.1; }
.bn-how-price p { color: var(--muted); font-size: 14.5px; }
.bn-included .bn-price-card h3 { font-size: 26px; }
.bn-included .bn-price-note { align-content: center; }
@media (max-width: 860px) { .bn-how-price { grid-template-columns: minmax(0, 1fr); } }

/* ---------- v16.8: pull the website box and Ray up toward the headline ---------- */
.bn-core { gap: 12px; }
.bn-core .bn-ignite { margin-top: 6px; }
.bn-core .bn-proof { margin-top: 10px; }
.bn-guide { bottom: calc(118px - var(--w) * 0.245); }
.bn-core { top: clamp(-70px, -6vh, -24px); }

/* ---------- v16.11: Ray's bubble sits above his image, name right-aligned and bolder ---------- */
.bn-guide-bubble { z-index: 3; background: rgba(10, 16, 32, 0.97); }
.bn-guide img { position: relative; z-index: 1; }
.bn-guide-bubble i { justify-self: end; font-style: normal; font-weight: 700; font-size: 13px; color: var(--ink); letter-spacing: 0.02em; }
