/* BennuForge 2.1.0 — opt-in components; no global reset or bundled font URLs. */
.bf-theme { background:var(--bf-color-bg);color:var(--bf-color-ink);font-family:var(--bf-font-body);font-size:var(--bf-size-body);line-height:var(--bf-line-body);color-scheme:dark;-webkit-font-smoothing:antialiased; }
.bf-theme *, .bf-theme *::before, .bf-theme *::after { box-sizing:border-box; }
.bf-container { width:min(calc(100% - 2 * var(--bf-gutter)),var(--bf-width-content));margin-inline:auto; }
.bf-section { padding-block:var(--bf-space-9); }
.bf-rule { border:0;border-top:var(--bf-border);margin-block:0; }
.bf-stack { display:flex;flex-direction:column;gap:var(--bf-space-5); }
.bf-cluster { display:flex;flex-wrap:wrap;align-items:center;gap:var(--bf-space-5); }
.bf-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:var(--bf-space-7); }
.bf-eyebrow { display:block;margin:0;color:var(--bf-color-ink);font-family:var(--bf-font-body);font-size:var(--bf-size-label);font-weight:var(--bf-weight-medium);line-height:1.5;letter-spacing:var(--bf-tracking-label);text-transform:uppercase; }
.bf-display, .bf-heading, .bf-title { margin:0;color:var(--bf-color-ink);font-family:var(--bf-font-display);font-weight:var(--bf-weight-display);letter-spacing:var(--bf-tracking-display);text-transform:uppercase;overflow-wrap:break-word;text-wrap:balance; }
.bf-display { font-size:var(--bf-size-h1);line-height:var(--bf-line-display); }
.bf-heading { font-size:var(--bf-size-h2);line-height:1.08; }
.bf-title { font-size:var(--bf-size-h3);line-height:1.2;letter-spacing:-0.025em; }
.bf-lead { max-width:var(--bf-width-reading);margin:0;color:var(--bf-color-ink);font-size:var(--bf-size-lead);line-height:1.7; }
.bf-copy { max-width:var(--bf-width-reading);margin:0;color:var(--bf-color-muted); }
.bf-accent { color:var(--bf-color-highlight); }
.bf-wordmark { display:inline-block;color:var(--bf-color-ink);font-family:var(--bf-font-body);font-size:1.65rem;font-weight:700;line-height:1.1;letter-spacing:-0.065em;text-decoration:none;white-space:nowrap; }
.bf-wordmark span { color:var(--bf-color-highlight); }
.bf-link { color:var(--bf-color-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em;transition:color var(--bf-duration-fast) var(--bf-ease); }
.bf-link:hover { color:var(--bf-color-highlight); }
.bf-theme a:focus-visible, .bf-theme button:focus-visible, .bf-theme summary:focus-visible { outline:2px solid var(--bf-color-ink);outline-offset:6px; }
.bf-button { position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:var(--bf-space-5);width:fit-content;min-width:11.5rem;min-height:3.5rem;padding:1rem 1.7rem;overflow:hidden;border:1px solid var(--bf-color-ink);border-radius:0;background:transparent;color:var(--bf-color-ink);font-family:var(--bf-font-body);font-size:0.6875rem;font-weight:700;line-height:1.4;letter-spacing:0.035em;text-align:center;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:color var(--bf-duration-standard) var(--bf-ease); }
.bf-button::before { content:'';position:absolute;inset:0;z-index:-1;background:var(--bf-color-ink);transform:translateY(101%);transition:transform var(--bf-duration-standard) var(--bf-ease); }
.bf-button:hover { color:var(--bf-color-bg); }
.bf-button:hover::before { transform:translateY(0); }
.bf-button--secondary { border-color:var(--bf-color-muted); }
.bf-button:disabled, .bf-button[aria-disabled='true'] { opacity:0.45;cursor:not-allowed; }
.bf-button:disabled::before, .bf-button[aria-disabled='true']::before { display:none; }
.bf-button:disabled:hover, .bf-button[aria-disabled='true']:hover { color:var(--bf-color-ink); }
/* A scene is one uninterrupted visual, with readable copy anchored low. */
.bf-scene { position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:var(--bf-scene-height);overflow:hidden;background:var(--bf-color-bg); }
.bf-scene-media { position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%;object-fit:cover;object-position:var(--bf-scene-position,center); }
.bf-scene::before { content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.56),transparent 75%),linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.08) 80%);pointer-events:none; }
.bf-scene-content { padding-block:9rem 6rem; }
.bf-scene-copy { display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;max-width:44rem; }
.bf-scene-copy .bf-lead { max-width:31rem; }
.bf-scene-copy .bf-button { margin-top:0.5rem; }
/* Legacy panel names remain available for functional product UI, never as the company page's default rhythm. */
.bf-panel { min-width:0;padding:var(--bf-space-6);background:transparent;border:var(--bf-border); }
.bf-panel--raised { background:var(--bf-color-surface); }
.bf-panel--interactive { transition:border-color var(--bf-duration-standard) var(--bf-ease); }
.bf-panel--interactive:hover, .bf-panel--interactive:focus-within { border-color:var(--bf-color-ink); }
.bf-status { display:inline-flex;align-items:center;gap:var(--bf-space-2);width:fit-content;color:var(--bf-color-muted);font-family:var(--bf-font-body);font-size:0.6875rem;line-height:1.5;letter-spacing:0.06em;text-transform:uppercase; }
.bf-status::before { content:'';width:0.3rem;height:0.3rem;background:currentColor;flex:0 0 auto; }
.bf-status--live { color:var(--bf-color-highlight); }
.bf-prose { max-width:var(--bf-width-reading);color:var(--bf-color-muted);font-size:var(--bf-size-lead);line-height:1.85; }
.bf-prose p { margin:0 0 1.4em; }
.bf-prose strong { color:var(--bf-color-ink);font-weight:var(--bf-weight-medium); }
.bf-logo { display:block;width:100%;height:auto;object-fit:contain; }
.bf-visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@media (max-width:40rem) { .bf-section { padding-block:var(--bf-space-8); }.bf-scene-content { padding-block:9rem 5rem; }.bf-scene-copy { gap:1.25rem; }.bf-button { min-height:3.5rem; } }
@media (prefers-reduced-motion:reduce) { .bf-button,.bf-button::before,.bf-link,.bf-panel--interactive { transition:none; } }
