/* ForgeByte umbrella v2 — identical in every ForgeByte site.
   Owns only: reset, skip link, the lockup bar, the footer, legal/support prose and the
   ProgrammerNeeds badge. Everything else (layout, palette, type, visuals) lives in /theme.css,
   which sets the --fb-* tokens below. */
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fb/space-grotesk.woff2) format("woff2")}
:root{
 --fb-bg:#faf5ee;--fb-surface:#fffdfa;--fb-ink:#1a1714;--fb-muted:#5f554d;--fb-line:rgba(26,23,20,.12);
 --fb-accent:#ff6b2c;--fb-accent-ink:#b33a0b;--fb-on-accent:#fff;--fb-focus:#ff6b2c;
 --fb-bar-bg:rgba(250,245,238,.86);--fb-bar-ink:#1a1714;--fb-bar-muted:#5f554d;--fb-bar-line:rgba(26,23,20,.1);
 --fb-cta-bg:#15110e;--fb-cta-ink:#fff;
 --fb-foot-bg:#15110e;--fb-foot-ink:#e6d9ce;--fb-foot-head:#fff;--fb-foot-muted:#b3a294;--fb-foot-line:rgba(255,244,238,.14);
 --fb-umbrella:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
 --fb-body:var(--fb-umbrella);--fb-display:var(--fb-umbrella);
 --fb-radius:20px;--fb-w:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--fb-bg);color:var(--fb-ink);font-family:var(--fb-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video,canvas{max-width:100%;display:block}img{height:auto}
a{color:inherit}button{font:inherit;color:inherit}
h1,h2,h3{margin:0 0 .5em;line-height:1.08}p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--fb-focus);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--fb-cta-bg);color:var(--fb-cta-ink);padding:10px 14px;border-radius:10px;font-family:var(--fb-umbrella);font-weight:700}
.skip:focus{left:8px}
.wrap{width:min(var(--fb-w),calc(100% - 32px));margin-inline:auto}
main{display:block;overflow-x:clip}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ── lockup bar ─────────────────────────────────────────── */
.fbbar{position:sticky;top:0;z-index:100;background:var(--fb-bar-bg);color:var(--fb-bar-ink);border-bottom:1px solid var(--fb-bar-line);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);font-family:var(--fb-umbrella)}
.fbbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px}
.lockup{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;font-weight:700;letter-spacing:-.01em}
.lockup img{width:34px;height:34px;border-radius:10px;flex:none}
.lockup .sep{color:var(--fb-bar-muted);font-weight:400}
.lockup .app{white-space:nowrap}
.nav{display:flex;align-items:center;gap:2px}
.nav a{text-decoration:none;color:var(--fb-bar-muted);font-weight:600;font-size:.94rem;padding:8px 12px;border-radius:999px}
.nav a:hover,.nav a[aria-current=page]{color:var(--fb-bar-ink);background:color-mix(in srgb,var(--fb-bar-ink) 8%,transparent)}
.nav a.cta{background:var(--fb-cta-bg);color:var(--fb-cta-ink);white-space:nowrap;margin-left:6px}
.nav a.cta:hover{background:var(--fb-cta-bg);filter:brightness(1.12)}
details.mnav{position:relative}
details.mnav summary{list-style:none;cursor:pointer;padding:8px 14px;border-radius:999px;font-weight:600;border:1px solid var(--fb-bar-line)}
details.mnav summary::-webkit-details-marker{display:none}
details.mnav>div{position:absolute;right:0;top:46px;display:grid;min-width:210px;padding:8px;background:var(--fb-surface);color:var(--fb-ink);border:1px solid var(--fb-line);border-radius:16px;box-shadow:0 24px 50px -20px rgba(0,0,0,.45)}
details.mnav>div a{display:block;color:var(--fb-ink)}
@media(max-width:720px){.nav>a:not(.cta){display:none}.nav a.cta{padding:8px 12px;font-size:.88rem}}
@media(min-width:721px){details.mnav{display:none}}
@media(max-width:380px){.lockup{gap:7px;font-size:.95rem}.lockup img{width:30px;height:30px}.nav a.cta{margin-left:2px}}

/* ── footer ─────────────────────────────────────────────── */
footer.fb{background:var(--fb-foot-bg);color:var(--fb-foot-ink);padding:56px 0 32px;font-family:var(--fb-umbrella);font-size:.95rem}
footer.fb .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:28px}
@media(max-width:800px){footer.fb .cols{grid-template-columns:1fr 1fr}footer.fb .cols>div:first-child{grid-column:1/-1}}
@media(max-width:480px){footer.fb .cols>div:last-child{grid-column:1/-1}}
footer.fb b{display:block;margin-bottom:10px;color:var(--fb-foot-head);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
footer.fb a{display:block;padding:4px 0;color:var(--fb-foot-ink);text-decoration:none;overflow-wrap:anywhere}
footer.fb a:hover{color:var(--fb-foot-head);text-decoration:underline;text-underline-offset:3px}
footer.fb .lockup{display:flex;color:var(--fb-foot-head);margin-bottom:12px}
footer.fb p{color:var(--fb-foot-muted);max-width:36ch}
footer.fb small{display:block;margin-top:32px;padding-top:20px;border-top:1px solid var(--fb-foot-line);color:var(--fb-foot-muted)}

/* ── ProgrammerNeeds badge ─────────────────────────────── */
.pn-badge{display:block;margin-top:24px}
.pn-badge .pn-label{display:block;margin:0 0 8px;font-family:var(--fb-umbrella);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fb-muted)}
footer.fb .pn-badge .pn-label{color:var(--fb-foot-muted)}
.pn-badge a,footer.fb .pn-badge a{display:inline-block;padding:0;width:220px;height:54px}
.pn-badge img{display:block;width:220px;height:54px;max-width:none}

/* ── support / legal documents ─────────────────────────── */
.eyebrow{display:inline-block;margin-bottom:16px;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fb-accent-ink)}
.doc-hero{padding:clamp(40px,7vw,72px) 0 24px}
.doc-hero h1{font-family:var(--fb-display);font-size:clamp(2.2rem,6vw,3.8rem);letter-spacing:-.02em}
.doc-hero p{color:var(--fb-muted);max-width:60ch}
.doc{display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px;padding-bottom:88px}
@media(max-width:900px){.doc{grid-template-columns:1fr}.toc{display:none}}
.toc{position:sticky;top:88px;align-self:start;font-size:.9rem;border-left:2px solid var(--fb-line);padding-left:16px}
.toc b{display:block;margin-bottom:8px;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fb-muted)}
.toc a{display:block;padding:4px 0;color:var(--fb-muted);text-decoration:none}
.toc a:hover{color:var(--fb-ink)}
.prose{max-width:820px;min-width:0;background:var(--fb-surface);border:1px solid var(--fb-line);border-radius:var(--fb-radius);padding:clamp(22px,4vw,52px);overflow-wrap:break-word}
.prose h1{display:none}
.prose h2{font-family:var(--fb-display);font-size:1.55rem;margin:1.8em 0 .6em;scroll-margin-top:90px}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.4em 0 .4em;font-size:1.15rem}
.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.3em 0}
.prose a{color:var(--fb-accent-ink);text-underline-offset:3px}
.prose table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;font-size:.95rem}
.prose td,.prose th{border:1px solid var(--fb-line);padding:8px;text-align:left;vertical-align:top}
.prose .button,.prose a.button{display:inline-block;background:var(--fb-cta-bg);color:var(--fb-cta-ink);text-decoration:none;padding:12px 20px;border-radius:999px;font-weight:700}
.contact{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:28px;padding:16px 20px;border-radius:calc(var(--fb-radius) * .7);background:color-mix(in srgb,var(--fb-accent) 14%,var(--fb-surface))}
.contact a{font-weight:700;color:var(--fb-accent-ink);overflow-wrap:anywhere}

@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
