.fg{--fg-line:#283146;--fg-blue:#4d7dff;color:#f5f5f5}
.fg-wrap{max-width:1320px;margin:auto;padding:0 56px}
.fg-hero{max-width:1320px;margin:auto;padding:130px 56px 40px}
.fg-hero h1{font-family:var(--font-syne),Arial,sans-serif;font-weight:800;font-size:clamp(2rem,4.3vw,3.6rem);max-width:1050px;text-wrap:balance;line-height:1.05;margin:18px 0}
.fg-hero p{font-size:1rem;line-height:1.65;max-width:760px;margin:12px 0;color:#a8a8ad;text-wrap:pretty}
.fg-hero .font-eyebrow{margin:0}
.fg-hero .meta,.fg-hero .mt-10{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0}
.fg-hero .pill{border:1px solid #283146;border-radius:24px;padding:6px 12px;font-size:12px;color:#a8a8ad}
.fg-hero a[href="/"]{display:none}
.fg-overview-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.fg h2,.fg h3{font-family:var(--font-syne),Arial,sans-serif;text-wrap:balance}
.fg-overview-heading h2,.fg-resource-heading h2{font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.25;margin-top:10px}
.fg button{cursor:pointer}
.fg-motion,.fg-controls button{border:1px solid var(--fg-line);background:#0b101a;color:#d2ddf5;padding:10px 16px;min-height:44px;font:inherit;font-size:12px}
.fg button:disabled{opacity:.4;cursor:not-allowed}
.fg :is(a,button,summary):focus-visible,.fg h2:focus-visible,.fg-skip:focus-visible{outline:2px solid #90aeff;outline-offset:4px}
.fg-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--fg-line);background:var(--fg-line)}
.fg-card{display:flex;flex-direction:column;gap:14px;padding:20px;background:#090b10;min-height:175px;text-decoration:none}
.fg-card:hover,.fg-card[aria-current="true"]{background:#0b1c44}
.fg-card[aria-current="true"]{box-shadow:inset 0 2px var(--fg-blue)}
.fg-number{display:flex;justify-content:space-between;color:#99b4f4;font-size:12px;font-variant-numeric:tabular-nums}
.fg-card strong{font-family:var(--font-syne),Arial,sans-serif;font-size:17px;color:#eef2ff}
.fg-card>span:last-child{font-size:12px;line-height:1.6;color:#aeb8cc;text-wrap:pretty}
.fg-hint{font-size:12px;color:#a8a8ad;margin:16px 0 24px}
.fg-panel{display:grid;grid-template-columns:1fr 1.05fr;background:#090b10;border:1px solid var(--fg-line);margin-bottom:16px;scroll-margin-top:95px}
.fg-panel[hidden],.fg [hidden]{display:none!important}
.fg-copy{padding:32px}
.fg-copy h2{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.15;margin:15px 0}
.fg-copy p{color:#b2bbcd;line-height:1.65;font-size:14px;text-wrap:pretty}
.fg-move{border-top:1px solid var(--fg-line);margin:24px 0 18px;padding-top:18px}
.fg-move>span{font-size:10px}
.fg-move>p{color:#e0e6f3;margin-top:10px}
.fg-deeper{color:#93b2ff;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.fg-diagram{background:#0b101a;border-left:1px solid var(--fg-line);margin:0;display:flex;flex-direction:column;justify-content:center;padding:16px;min-width:0}
.fg-diagram svg{width:100%;height:auto;display:block}
.fg-diagram rect{fill:#101720;stroke:#34415a}
.fg-diagram text{fill:#c3cee5;font-family:var(--font-space-grotesk),Arial,sans-serif;font-size:12px}
.fg-diagram .fg-active rect{fill:#0047ff;stroke:#7398ff}
.fg-diagram .fg-active text{fill:white}
.fg-diagram path{stroke:#4d7dff;stroke-width:1.5;fill:none}
.fg-diagram figcaption{font-size:11px;line-height:1.6;color:#aebbd5;padding:12px 4px 0}
.fg-packet{fill:#90aeff;animation:fg-packet 2s ease-out infinite;animation-play-state:paused}
.fg[data-motion="on"] .fg-diagram[data-visible="true"] .fg-packet{animation-play-state:running}
.fg-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0}
.fg-position{font-size:12px;color:#a8a8ad;font-variant-numeric:tabular-nums}
.fg-resources{scroll-margin-top:90px;margin-top:40px}
.fg-resource-heading{padding:24px 0}
.fg-resource-heading p{color:#a8a8ad;font-size:13px;line-height:1.6;margin-top:12px}
.fg-reference{border-top:1px solid var(--fg-line);scroll-margin-top:90px}
.fg-reference>summary{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;padding:22px 0;font-size:15px;line-height:1.5;min-height:56px}
.fg-reference>summary::-webkit-details-marker{display:none}
.fg-reference>summary>span{font-size:22px;color:#93b2ff}
.fg-reference[open]>summary>span{transform:rotate(45deg)}
.fg-original{background:#090b10;border:1px solid var(--fg-line);padding:24px;margin-bottom:24px;overflow-wrap:anywhere}
.fg-original section{padding:0!important;border:0!important}
.fg-original section>div{max-width:none}
.fg-original h2{font-size:24px!important;line-height:1.3!important;margin:12px 0}
.fg-original h3{font-size:18px!important;line-height:1.4!important}
.fg-original p,.fg-original li,.fg-original dd,.fg-original div.text-sm{font-size:14px;line-height:1.7;color:#b8c1d4;text-wrap:pretty}
.fg-original :is(ul,ol){margin:16px 0}
.fg-original .mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.fg-original .mini-card,.fg-original .repo-card,.fg-original .source-card{border:1px solid var(--fg-line);padding:20px}
.fg-original a{color:#93b2ff;text-decoration:underline;text-underline-offset:3px}
.fg-original pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.7;max-height:360px;overflow:auto}
.fg-original dt{font-weight:600;margin-top:16px}
.fg-original .repo-meta{font-size:12px;margin:8px 0;color:#9caecb}
.fg-original .glossary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fg-back{border-top:1px solid var(--fg-line);padding:28px 0;font-size:13px;color:#93b2ff}
.fg-skip{position:fixed;top:-100px;left:16px;z-index:100;background:#0047ff;color:white;padding:12px}
.fg-skip:focus{top:8px}
.fg-menu{color:#f5f5f5;background:#000;border:1px solid #283146;margin:80px auto 0;padding:28px;width:calc(100% - 32px);max-width:420px;max-height:calc(100dvh - 110px);overflow:auto;padding-bottom:max(28px,env(safe-area-inset-bottom))}
.fg-menu::backdrop{background:rgba(0,0,0,.85)}
.fg-menu a{display:block;padding:16px;font-family:var(--font-syne),Arial,sans-serif;font-size:22px;text-align:center}
.fg-menu button{display:block;margin-left:auto;min-height:44px;padding:8px 16px;background:#101720;color:#f5f5f5;border:1px solid #34415a}
@keyframes fg-packet{0%,100%{opacity:.25;transform:translateX(-24px)}50%{opacity:1;transform:translateX(24px)}}
@media(min-width:1200px){.fg-cards:has(>.fg-card:nth-child(7)){grid-template-columns:repeat(7,minmax(0,1fr))}.fg-cards:has(>.fg-card:nth-child(8)){grid-template-columns:repeat(8,minmax(0,1fr))}.fg-cards:has(>.fg-card:nth-child(5)):not(:has(>.fg-card:nth-child(6))){grid-template-columns:repeat(5,minmax(0,1fr))}.fg-card{padding:18px 14px}.fg-card strong{font-size:15px}}
@media(max-width:900px){.fg-wrap{padding:0 32px}.fg-hero{padding:115px 32px 32px}.fg-panel{grid-template-columns:1fr}.fg-diagram{border-left:0;border-top:1px solid var(--fg-line)}.fg-diagram svg{max-height:300px}.fg-card{min-height:155px}.fg-original .mini-grid{grid-template-columns:1fr}}
@media(max-width:600px){.fg-wrap{padding:0 24px}.fg-hero{padding:100px 24px 28px}.fg-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.fg-overview-heading{align-items:start;flex-direction:column;gap:16px}.fg-copy{padding:24px}.fg-original{padding:16px}.fg-original .glossary{grid-template-columns:1fr}.fg-controls button{padding:10px;font-size:11px}.fg-card{padding:16px;min-height:160px}.fg-hero h1{font-size:2rem;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.fg-packet{animation:none!important}.fg *, .fg-menu *{scroll-behavior:auto!important}}
