@layer components{.src-badge{border-radius:var(--radius-pill);height:1.5rem;font-size:var(--text-2xs);white-space:nowrap;background:var(--color-paper-sunken);color:var(--color-ink-muted);align-items:center;gap:.375rem;padding:0 .5rem 0 .4375rem;font-weight:600;line-height:1;display:inline-flex}.src-badge-dot{background:currentColor;border-radius:999px;flex:none;width:.4375rem;height:.4375rem}.src-badge[data-source=catalog]{background:var(--color-accent-soft);color:var(--color-accent)}.src-badge[data-source=storegraph]{background:var(--color-purple-soft);color:var(--color-purple)}.src-badge[data-source=llm]{background:var(--color-ai-soft);color:var(--color-purple)}.src-badge[data-source=llm] .src-badge-dot{background:linear-gradient(135deg, var(--color-ai-from), var(--color-ai-to))}.src-badge[data-source=store]{background:var(--color-positive-soft);color:var(--color-positive)}.src-badge[data-source=derived]{background:var(--color-paper-sunken);color:var(--color-ink-muted)}.src-badge[data-source=missing]{color:var(--color-caution);box-shadow:inset 0 0 0 1px var(--color-caution);background:0 0;border:0}.src-badge[data-source=missing] .src-badge-dot{background:0 0;box-shadow:inset 0 0 0 1.5px}.ff{--ff-bg:var(--color-paper-raised);--ff-raised:var(--color-paper-raised);--ff-sunken:var(--color-paper-sunken);--ff-ink:var(--color-ink);--ff-dim:var(--color-ink-subtle);--ff-line:var(--color-line);--ff-line-strong:var(--color-line-strong);--src-catalog:var(--color-accent);--src-storegraph:var(--color-purple);--src-llm:color-mix(in srgb, var(--color-ai-from) 55%, var(--color-purple));--src-store:var(--color-positive);--src-derived:var(--color-ink-subtle);--src-missing:var(--color-caution);--st-ready:var(--color-positive);--st-account:var(--color-accent);--st-approval:var(--color-caution);--st-unavailable:var(--color-ink-subtle);isolation:isolate;border-radius:var(--radius-lg);background:radial-gradient(60% 50% at 90% 0%, #1078ff0d, transparent 70%), radial-gradient(40% 40% at 0% 100%, #b81ec50a, transparent 72%), var(--ff-bg);color:var(--ff-ink);box-shadow:var(--shadow-hairline), var(--shadow-card);position:relative}.ff-mono{font-family:var(--font-mono)}.ff-dim{color:var(--ff-dim)}.ff-terminal{background:var(--color-chrome);color:var(--color-machine-ink)}[data-source=catalog]{--src-color:var(--src-catalog)}[data-source=storegraph]{--src-color:var(--src-storegraph)}[data-source=llm]{--src-color:var(--src-llm)}[data-source=store]{--src-color:var(--src-store)}[data-source=derived]{--src-color:var(--src-derived)}[data-source=missing]{--src-color:var(--src-missing)}.ffm-rail .src-badge[aria-pressed=true]{box-shadow:0 0 0 2px var(--src-color)}.ff-seg{border-radius:var(--radius-pill);background:var(--color-paper-sunken);box-shadow:inset 0 0 0 1px var(--color-line);grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:inline-grid;position:relative}.ff-seg button{z-index:1;border-radius:var(--radius-pill);height:2rem;font-size:var(--text-xs);color:var(--color-ink-muted);white-space:nowrap;transition:color var(--duration-fast) ease;padding:0 .875rem;font-weight:600;position:relative}.ff-seg button[aria-pressed=true]{color:var(--color-ink)}.ff-seg-thumb{width:calc((100% - 6px) / var(--seg-count,2));border-radius:var(--radius-pill);background:var(--color-paper-raised);box-shadow:var(--shadow-card);transform:translateX(calc(100% * var(--seg-index,0)));transition:transform var(--duration-base) var(--ease-out);position:absolute;top:3px;bottom:3px;left:3px}.ff-seg button:active{transform:scale(.97)}.ffm{--rail-w:9.5rem;--wire-w:4.5rem}@media (min-width:64rem){.ffm{--wire-w:7rem}}.ffm[data-compact]{--rail-w:7.25rem;--wire-w:2.5rem}.ffm-body{grid-template-columns:var(--rail-w) var(--wire-w) minmax(0, 1fr);align-items:start;display:grid;position:relative}.ffm-rail{gap:.5rem;padding-top:.25rem;display:grid;position:sticky;top:6rem}.ffm-rail button{width:100%;height:1.875rem;font-size:var(--text-xs);transition:opacity var(--duration-fast) ease, transform var(--duration-press) var(--ease-out);justify-content:flex-start}.ffm-rail button:active{transform:scale(.97)}.ffm-rail-count{color:var(--ff-dim);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:.5rem;font-weight:500}.ffm-wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ffm-wire{fill:none;stroke:var(--src-color);stroke-width:1.25px;stroke-linecap:round;opacity:.55;transition:opacity var(--duration-fast) ease, stroke-width var(--duration-fast) ease}.ffm-wire[data-source=missing]{stroke-dasharray:3 4}.ffm-rows{grid-column:3;gap:2px;min-width:0;display:grid}.ffm-row{border-radius:var(--radius-sm);min-width:0;transition:opacity var(--duration-fast) ease;position:relative}.ffm-row-main{border-radius:var(--radius-sm);text-align:left;width:100%;min-height:2rem;transition:background-color var(--duration-fast) ease;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;align-items:baseline;gap:.75rem;padding:.375rem .625rem;font-size:.8125rem;line-height:1.35;display:grid}.ffm-row-main:before{content:"";background:var(--src-color);width:6px;height:6px;box-shadow:0 0 0 3px var(--ff-bg);border-radius:999px;position:absolute;top:.875rem;left:-3px}.ffm-row[data-state=missing] .ffm-row-main:before{background:var(--ff-bg);box-shadow:inset 0 0 0 1.5px var(--src-missing), 0 0 0 3px var(--ff-bg)}.ffm-key{font-family:var(--font-mono);color:var(--src-color);white-space:nowrap;font-size:.78rem}.ffm-value{min-width:0;font-family:var(--font-mono);color:var(--ff-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.ffm-row[data-state=missing] .ffm-value{color:var(--src-missing)}.ffm-row[data-state=empty] .ffm-key,.ffm-row[data-state=empty] .ffm-value{color:var(--ff-dim)}.ffm-row[data-state=empty] .ffm-row-main:before{background:var(--ff-line-strong)}.ffm-row[data-state=retired] .ffm-key,.ffm-row[data-state=retired] .ffm-value{color:var(--ff-dim);text-decoration:line-through;-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong)}.ffm-req{letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ff-dim);white-space:nowrap;font-size:.625rem;font-weight:600}.ffm[data-compact] .ffm-req:not([data-req=required],[data-req=retired]){display:none}.ffm-req[data-req=required]{color:var(--ff-ink)}.ffm-req[data-req=retired]{color:var(--src-missing)}.ffm-detail{border-radius:var(--radius-sm);background:var(--color-paper-sunken);box-shadow:inset 0 0 0 1px var(--ff-line);font-size:var(--text-xs);color:var(--ff-dim);gap:.5rem;margin:0 .625rem .5rem;padding:.75rem .875rem;line-height:1.55;display:grid}.ffm-detail strong{color:var(--ff-ink);font-weight:600}.ffm-detail pre{border-radius:var(--radius-xs);background:var(--color-chrome);max-height:14rem;color:var(--color-machine-ink);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:0;padding:.625rem .75rem;font-size:.72rem;line-height:1.5;overflow:auto}.ffm-needs{color:var(--src-missing)}.ffm[data-focus] .ffm-row:not([data-match]){opacity:.32}.ffm[data-focus] .ffm-wire:not([data-match]){opacity:.08}.ffm[data-focus] .ffm-wire[data-match]{opacity:1;stroke-width:1.75px}.ffm[data-focus] .ffm-rail button:not([data-match]){opacity:.45}@media (hover:hover) and (pointer:fine){.ffm-row-main:hover{background:var(--color-paper-sunken)}}.ffm-raw pre{border-radius:var(--radius-md);background:var(--color-chrome);max-height:22rem;font-family:var(--font-mono);color:var(--color-machine-ink);white-space:pre-wrap;word-break:break-all;margin:0;padding:1rem 1.125rem;font-size:.72rem;line-height:1.6;overflow:auto}@media (max-width:40rem){.ffm-body{grid-template-columns:minmax(0,1fr)}.ffm-rail{flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem;display:flex;position:static}.ffm-rail button{width:auto}.ffm-rail-count{padding-left:.375rem}.ffm-wires{display:none}.ffm-rows{grid-column:1}.ffm-row-main{grid-template-columns:minmax(0,1fr) auto;padding-left:.75rem}.ffm-row-main:before{width:2px;height:auto;box-shadow:none;top:.5rem;bottom:.5rem;left:0}.ffm-value{grid-area:2/1/auto/-1}}.ffr{gap:1.5rem;display:grid}@media (min-width:64rem){.ffr{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}}.ffr-graph{aspect-ratio:1;width:100%;max-width:30rem;margin-inline:auto;position:relative}.ffr-graph svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ffr-edge{fill:none;stroke:var(--rel-color);stroke-width:1.5px;opacity:.7;transition:opacity var(--duration-fast) ease}.ffr-edge[data-type=substitute]{stroke-dasharray:4 5}.ffr-node{text-align:center;width:6.5rem;transition:opacity var(--duration-fast) ease;justify-items:center;gap:.375rem;display:grid;position:absolute;transform:translate(-50%,-50%)}.ffr-node img,.ffr-center img{object-fit:cover;background:var(--color-well);width:3.5rem;height:3.5rem;box-shadow:0 0 0 2px var(--ff-bg), 0 0 0 3.5px var(--rel-color,var(--ff-line-strong));border-radius:999px;display:block}.ffr-node span{-webkit-line-clamp:2;color:var(--ff-dim);-webkit-box-orient:vertical;font-size:.6875rem;line-height:1.3;display:-webkit-box;overflow:hidden}.ffr-center{text-align:center;justify-items:center;gap:.5rem;width:8rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ffr-center img{width:5rem;height:5rem;box-shadow:0 0 0 3px var(--ff-bg), 0 0 0 5px transparent, 0 0 28px #f796ff4d;background-clip:padding-box;outline:2px solid #0000}.ffr-center:before{content:"";background:conic-gradient(from 180deg, var(--color-ai-from), var(--color-ai-to), var(--color-ai-from));z-index:-1;opacity:.85;border-radius:999px;width:calc(5rem + 12px);height:calc(5rem + 12px);position:absolute;top:-6px;left:50%;transform:translate(-50%)}.ffr-center span{font-size:var(--text-xs);font-weight:600;line-height:1.3}.ffr-list{gap:.375rem;margin:0;padding:0;list-style:none;display:grid}.ffr-entry{border-radius:var(--radius-sm);background:var(--color-paper);box-shadow:inset 0 0 0 1px var(--ff-line);font-family:var(--font-mono);transition:opacity var(--duration-fast) ease, box-shadow var(--duration-fast) ease;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:.25rem .75rem;padding:.5rem .75rem;font-size:.72rem;line-height:1.45;display:grid}.ffr-type{color:var(--rel-color)}.ffr-entry small{font-family:var(--font-sans);color:var(--ff-dim);grid-column:1/-1;font-size:.6875rem}.ffr[data-hover] .ffr-node:not([data-hot]),.ffr[data-hover] .ffr-entry:not([data-hot]){opacity:.3}.ffr[data-hover] .ffr-edge:not([data-hot]){opacity:.1}.ffr[data-hover] .ffr-entry[data-hot]{box-shadow:inset 0 0 0 1px var(--rel-color)}[data-type=often_bought_with],[data-type=accessory]{--rel-color:var(--color-accent)}[data-type=part_of_set]{--rel-color:var(--color-purple)}[data-type=substitute]{--rel-color:var(--color-ink-subtle)}.ffh{padding:.75rem}@media (min-width:40rem){.ffh{padding:1.25rem}}.ffh-stage{position:relative}.ffh-stage>svg{width:100%;height:auto;display:block;overflow:visible}.ffh-svg-wide{display:none!important}@media (min-width:52rem){.ffh-svg-wide{display:block!important}.ffh-svg-tall{display:none!important}}.ffh-route{fill:none;stroke:var(--ff-line-strong);stroke-width:1.5px;transition:opacity var(--duration-fast) ease, stroke var(--duration-fast) ease}.ffh-route[data-kind=out]{stroke:color-mix(in srgb, var(--st-color) 55%, transparent)}.ffh-route[data-status=unavailable]{stroke-dasharray:3 5}.ffh-flow{fill:none;stroke:var(--st-color,var(--color-accent));stroke-width:1.5px;stroke-dasharray:2 14;stroke-linecap:round;opacity:.9;animation:1.6s linear infinite ffh-flow}@keyframes ffh-flow{to{stroke-dashoffset:-32px}}.ffh-stage{border-radius:var(--radius-md);background-color:var(--color-paper);background-image:linear-gradient(to right, color-mix(in srgb, var(--color-ink) 4%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--color-ink) 4%, transparent) 1px, transparent 1px);background-size:32px 32px;padding:.5rem}@media (min-width:52rem){.ffh-stage{padding:1rem}}.ffh-node rect{fill:var(--color-paper-raised);stroke:var(--ff-line-strong);stroke-width:1px;filter:drop-shadow(0 1px 2px #2a27420f)drop-shadow(0 4px 10px #2a27420d)}.ffh-node text,.ffh-provider text,.ffh-packet text{font-family:var(--font-sans);fill:var(--ff-ink)}.ffh-node .ffh-sub,.ffh-provider .ffh-sub{fill:var(--ff-dim)}.ffh-node[data-accent=ai] rect{stroke:url(#ffh-ai);stroke-width:1.5px}.ffh-node[data-accent=graph] rect{stroke:var(--src-storegraph)}.ffh-node[data-accent=gen] rect{stroke:var(--src-catalog);stroke-width:1.5px}.ffh-provider{cursor:pointer;outline:none}.ffh-provider rect{fill:var(--color-paper-raised);stroke:color-mix(in srgb, var(--st-color) 50%, transparent);stroke-width:1px;transition:fill var(--duration-fast) ease, stroke var(--duration-fast) ease}.ffh-provider .ffh-status{fill:var(--st-color)}.ffh-provider[data-active] rect,.ffh-provider:focus-visible rect{fill:color-mix(in srgb, var(--st-color) 10%, var(--color-paper-raised));stroke:var(--st-color);stroke-width:1.5px}.ffh[data-active] .ffh-route[data-kind=out]:not([data-active]){opacity:.4}.ffh[data-active] .ffh-flow[data-kind=out]:not([data-active]){opacity:.18}.ffh-route[data-kind=out][data-active]{stroke:var(--st-color);stroke-width:2px}.ffh[data-active] .ffh-provider:not([data-active]){opacity:.82}.ffh-packet rect{fill:var(--color-paper-raised);stroke:var(--pk-color,var(--ff-line-strong));filter:drop-shadow(0 2px 4px #2a27421f)}.ffh-packet text{font-family:var(--font-mono);fill:var(--pk-color,var(--ff-ink))}[data-status=ready]{--st-color:var(--st-ready)}[data-status=account]{--st-color:var(--st-account)}[data-status=approval]{--st-color:var(--st-approval)}[data-status=unavailable]{--st-color:var(--st-unavailable)}.ff-status{font-size:var(--text-2xs);color:var(--st-color);white-space:nowrap;align-items:center;gap:.375rem;font-weight:600;display:inline-flex}.ff-status:before{content:"";background:var(--st-color);width:.4375rem;height:.4375rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--st-color) 20%, transparent);border-radius:999px}.ffh-card{transition:opacity var(--duration-base) var(--ease-out)}@starting-style{.ffh-card{opacity:0}}.fp-status{font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:.375rem;font-weight:600;display:inline-flex}.fp-status:before{content:"";background:currentColor;border-radius:999px;width:.5rem;height:.5rem}.fp-status[data-status=ready]{color:var(--color-positive)}.fp-status[data-status=account]{color:var(--color-accent)}.fp-status[data-status=approval]{color:var(--color-caution)}.fp-status[data-status=unavailable]{color:var(--color-ink-subtle)}.fp-card{border-radius:var(--radius-md);background:var(--color-paper-raised);box-shadow:var(--shadow-hairline), var(--shadow-card);transition:box-shadow var(--duration-base) var(--ease-out);scroll-margin-top:6rem}.fp-card:target{box-shadow:0 0 0 2px var(--color-brand), var(--shadow-raise)}.fp-bar{background:var(--color-paper-sunken);border-radius:999px;height:.375rem;position:relative;overflow:hidden}.fp-bar>span{border-radius:inherit;background:var(--bar-color,var(--color-brand));transform-origin:0;transform:scaleX(var(--bar,0));position:absolute;inset:0}.fp-bar[data-source=missing]{background:repeating-linear-gradient(-45deg, var(--color-caution-soft) 0 4px, transparent 4px 8px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-caution) 40%, transparent)}.fp-bar[data-source=catalog]{--bar-color:var(--color-accent)}.fp-bar[data-source=storegraph]{--bar-color:var(--color-purple)}.fp-bar[data-source=llm]{--bar-color:linear-gradient(90deg, var(--color-ai-from), var(--color-ai-to))}.fp-bar[data-source=llm]>span{background:linear-gradient(90deg, var(--color-ai-from), var(--color-ai-to))}.fp-bar[data-source=store]{--bar-color:var(--color-positive)}.fp-bar[data-source=derived]{--bar-color:var(--color-ink-subtle)}.fp-bars .fp-bar>span{transition:transform .72s var(--ease-out);transition-delay:calc(var(--i,0) * 18ms);transform:scaleX(0)}.fp-bars[data-seen] .fp-bar>span{transform:scaleX(var(--bar,0))}.fp-map [data-only=google]{display:none}.fp-map:has(#fp-platform-google:checked) [data-only=openai]{display:none}.fp-map:has(#fp-platform-google:checked) [data-only=google]{display:inline}.fp-map:has(#fp-platform-google:checked) .fp-bars [data-only=google]{display:block}:is(.fp-map:has(#fp-platform-openai:checked) tbody tr:not([data-has~=openai]),.fp-map:has(#fp-platform-google:checked) tbody tr:not([data-has~=google])){display:none}.fp-tabs{border-radius:var(--radius-pill);background:var(--color-paper-sunken);box-shadow:inset 0 0 0 1px var(--color-line);grid-auto-flow:column;padding:3px;display:inline-grid}.fp-tabs label{border-radius:var(--radius-pill);height:2.125rem;font-size:var(--text-sm);color:var(--color-ink-muted);cursor:pointer;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;align-items:center;padding:0 1rem;font-weight:600;display:inline-flex}.fp-tab{border-radius:var(--radius-pill);height:2.125rem;font-size:var(--text-sm);color:var(--color-ink-muted);white-space:nowrap;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;align-items:center;padding:0 1rem;display:inline-flex}.fp-tab[aria-selected=true]{background:var(--color-paper-raised);color:var(--color-ink);box-shadow:var(--shadow-card)}.fp-tab:active{transform:scale(.97)}.fp-tabs input{opacity:0;pointer-events:none;position:absolute}.fp-tabs input:checked+label{background:var(--color-paper-raised);color:var(--color-ink);box-shadow:var(--shadow-card)}.fp-tabs input:focus-visible+label{outline:2px solid var(--color-brand);outline-offset:2px}.fp-heat td[data-cell]{background:color-mix(in srgb, var(--color-brand) calc(var(--v,0) * 22%), transparent)}.fp-heat td[data-cell][data-zero]{background:repeating-linear-gradient(-45deg, var(--color-caution-soft) 0 4px, transparent 4px 8px);color:var(--color-caution)}.feed-dock{box-shadow:-1px 0 0 var(--color-line), -24px 0 48px -12px #2a274238;visibility:hidden;transition:transform .2s var(--ease-out), visibility 0s linear .2s;transform:translate(100%)}.feed-dock[data-open]{visibility:visible;transition:transform var(--duration-slow) var(--ease-drawer), visibility 0s;transform:translate(0)}@media (prefers-reduced-motion:reduce){.feed-dock,.feed-dock[data-open]{transition:none}.ffh-flow,.ffh-packet{animation:none;display:none}.fp-bars .fp-bar>span,.ff-seg-thumb{transition:none}}}
