.graph-shell__theme{width:36px;height:36px;border-color:rgb(var(--color-hairline-strong))}.graph-shell__theme:hover{border-color:rgb(var(--color-ink));color:rgb(var(--color-ink));background:rgb(var(--color-ink))}.graph-shell__theme:hover svg{color:rgb(var(--color-paper))}body.graph-page{overflow:hidden;background:rgb(var(--color-canvas));color:rgb(var(--color-ink))}.graph-shell{position:fixed;inset:0;display:grid;grid-template-rows:auto 1fr;height:100dvh;background:rgb(var(--color-canvas))}.graph-shell__topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;padding:1rem clamp(1.25rem,3vw,2rem);border-bottom:1px solid rgb(var(--color-hairline));background:rgb(var(--color-canvas));position:relative;z-index:10}.graph-shell__brand{display:inline-flex;align-items:center;gap:0.55rem;font-family:var(--font-sport);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;font-weight:800;color:rgb(var(--color-ink));padding:0.55rem 0.85rem;border:1px solid rgb(var(--color-hairline-strong));transition:background 200ms,color 200ms,border-color 200ms}.graph-shell__brand:hover{background:rgb(var(--color-ink));color:rgb(var(--color-paper));border-color:rgb(var(--color-ink))}.graph-shell__title{text-align:center;line-height:1.1}.graph-shell__tag{display:inline-block;font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;color:rgb(var(--color-muted));font-weight:600}.graph-shell__h1{margin:0.4rem 0 0;font-family:var(--font-sport);font-size:clamp(0.95rem,1.6vw,1.15rem);font-weight:800;letter-spacing:0.04em;text-transform:uppercase;color:rgb(var(--color-ink))}.graph-shell__actions{display:inline-flex;gap:0.5rem}.graph-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.55rem 0.85rem;background:transparent;border:1px solid rgb(var(--color-hairline-strong));color:rgb(var(--color-ink));font-family:var(--font-sport);font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:800;cursor:pointer;transition:background 200ms,color 200ms,border-color 200ms}.graph-btn:hover{background:rgb(var(--color-ink));color:rgb(var(--color-paper));border-color:rgb(var(--color-ink))}@media (max-width:700px){.graph-shell__topbar{grid-template-columns:auto 1fr}.graph-shell__title{display:none}.graph-btn span{display:none}}.graph-shell__canvas{position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgb(var(--color-paper)) 0%,rgb(var(--color-canvas)) 70%);z-index:1;touch-action:none;overscroll-behavior:contain}.graph-shell__canvas svg{width:100%;height:100%;cursor:grab;overflow:hidden;touch-action:none;display:block;opacity:0;transition:opacity 360ms ease}.graph-shell__canvas.is-ready svg{opacity:1}.graph-shell__canvas svg:active{cursor:grabbing}.graph-shell__hint{position:absolute;bottom:1rem;left:1.25rem;display:inline-flex;align-items:center;gap:0.6rem;padding:0.55rem 1rem;background:rgb(var(--color-paper) / 0.85);border:1px solid rgb(var(--color-hairline));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:rgb(var(--color-muted));pointer-events:none;z-index:5}.graph-shell__hint .dot{width:6px;height:6px;background:rgb(var(--color-cognac));display:inline-block}.graph-shell__brand-mark{position:absolute;bottom:1rem;right:1.25rem;z-index:5;pointer-events:none;opacity:0.85;display:flex;align-items:center}.graph-shell__brand-mark-img{height:56px;width:auto;max-width:260px;display:block;object-fit:contain}.graph-shell__brand-mark-img--dark{display:none}.graph-shell__brand-mark-img--light{display:block}html.theme-dark .graph-shell__brand-mark-img--light{display:none}html.theme-dark .graph-shell__brand-mark-img--dark{display:block}@media (max-width:600px){.graph-shell__brand-mark-img{height:40px}}.graph-edge{stroke:rgb(var(--color-hairline-strong));stroke-width:1;stroke-opacity:0.7;transition:stroke 200ms,stroke-width 200ms,stroke-opacity 200ms}.graph-edge.is-active{stroke:rgb(var(--color-cognac));stroke-width:1.6;stroke-opacity:1}.graph-node{cursor:pointer}.graph-node circle{fill:rgb(var(--color-paper));stroke:rgb(var(--color-hairline-strong));stroke-width:1.2;transition:stroke 200ms,stroke-width 200ms,fill 200ms}.graph-node text{font-family:var(--font-sport);font-size:11px;font-weight:800;letter-spacing:0.04em;text-transform:uppercase;fill:rgb(var(--color-ink));pointer-events:none;text-anchor:middle}.graph-node .graph-node__sub{font-family:var(--font-mono);font-size:7.5px;letter-spacing:0.18em;fill:rgb(var(--color-muted));font-weight:600}.graph-node[data-group="center"] circle{fill:rgb(var(--color-paper));stroke:rgb(var(--color-cognac));stroke-width:2.5}.graph-node[data-group="service"] circle{stroke:rgb(var(--color-ink));stroke-width:1.8}.graph-node[data-group="generation"] circle{stroke:rgb(var(--color-cognac));stroke-width:1.6}.graph-node[data-group="buying-sub"] circle{stroke:rgb(var(--color-ink));stroke-width:1.5;stroke-dasharray:4 3}.graph-node[data-group="car"] circle{stroke:rgb(var(--color-hairline-strong));stroke-dasharray:2 3}.graph-node[data-group="car"] text{font-size:9.5px}.graph-node[data-group="house"] circle{stroke:rgb(var(--color-hairline-strong))}.graph-node[data-group="logistics-sub"] circle{stroke:rgb(var(--color-hairline-strong))}.graph-node[data-group="journal-post"] circle{stroke:rgb(var(--color-hairline-strong));stroke-dasharray:4 3}.graph-node:hover circle,.graph-node.is-active circle{stroke:rgb(var(--color-cognac));stroke-width:2.4;stroke-dasharray:0}.graph-node[data-group="center"] image{clip-path:circle(50%)}.graph-node__logo--dark{display:none}.graph-node__logo--light{display:block}html.theme-dark .graph-node__logo--light{display:none}html.theme-dark .graph-node__logo--dark{display:block}.graph-shell__legend{position:absolute;top:calc(72px + 1rem);left:1.25rem;display:flex;flex-direction:column;gap:0.5rem;padding:0.85rem 1rem;background:rgb(var(--color-paper) / 0.9);border:1px solid rgb(var(--color-hairline));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);max-width:14rem;z-index:4}.graph-shell__legend-row{display:inline-flex;align-items:center;gap:0.55rem;font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:rgb(var(--color-ink-soft));font-weight:600}.graph-shell__legend-dot{width:10px;height:10px;border-radius:50%;background:rgb(var(--color-paper));border:1.5px solid rgb(var(--color-hairline-strong));flex:0 0 auto}.graph-shell__legend-dot--center{border-color:rgb(var(--color-cognac));border-width:2px}.graph-shell__legend-dot--service{border-color:rgb(var(--color-ink));border-width:2px}.graph-shell__legend-dot--gen{border-color:rgb(var(--color-cognac));border-width:1.5px}.graph-shell__legend-dot--buying{border-color:rgb(var(--color-ink));border-width:1.5px;border-style:dashed}.graph-shell__legend-dot--car{border-style:dashed}.graph-shell__legend-dot--post{border-style:dashed;border-width:1.5px}@media (max-width:700px){.graph-shell__legend{display:none}}.graph-shell__panel{position:absolute;top:calc(72px + 1rem);right:1.25rem;width:min(24rem,calc(100vw - 2.5rem));max-height:calc(100vh - 7rem);overflow-y:auto;overflow-x:hidden;background:rgb(var(--color-paper));border:1px solid rgb(var(--color-hairline));box-shadow:0 40px 80px -32px rgb(0 0 0 / 0.45),0 8px 24px -12px rgb(0 0 0 / 0.15);z-index:4;animation:graphPanelIn 360ms cubic-bezier(0.22,0.61,0.36,1)}.graph-shell__panel[hidden]{display:none}.graph-shell__panel::-webkit-scrollbar{width:6px}.graph-shell__panel::-webkit-scrollbar-track{background:transparent}.graph-shell__panel::-webkit-scrollbar-thumb{background:rgb(var(--color-hairline-strong));border-radius:3px}.graph-shell__panel-close{position:absolute;top:0.65rem;right:0.65rem;z-index:3;width:2rem;height:2rem;background:rgb(0 0 0 / 0.55);color:rgb(255 255 255 / 0.95);border:0;border-radius:50%;font-size:1.25rem;line-height:1;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background 200ms,color 200ms}.graph-shell__panel-close:hover{background:rgb(var(--color-cognac));color:#ffffff}.graph-panel__cover{position:relative;margin:0;aspect-ratio:16 / 10;background:rgb(var(--color-surface));overflow:hidden}.graph-panel__cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 700ms var(--ease-editorial)}.graph-shell__panel:hover .graph-panel__cover img{transform:scale(1.03)}.graph-panel__cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgb(0 0 0 / 0.4) 100%);pointer-events:none}.graph-panel__content{padding:1.5rem 1.5rem 1.75rem;display:flex;flex-direction:column}.graph-panel__tag{display:inline-flex;align-items:center;gap:0.5rem;align-self:flex-start;padding:0.4rem 0.85rem;border:1px solid rgb(var(--color-hairline-strong));font-family:var(--font-sport);font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;font-weight:800;color:rgb(var(--color-ink))}.graph-panel__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:rgb(var(--color-cognac));flex:0 0 auto}.graph-panel__title{margin:1rem 0 0;font-family:var(--font-sport);font-size:clamp(1.35rem,2.6vw,1.6rem);font-weight:800;letter-spacing:0.02em;text-transform:uppercase;color:rgb(var(--color-ink));line-height:1.12}.graph-panel__sub{margin:0.55rem 0 0;font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.22em;text-transform:uppercase;color:rgb(var(--color-muted));font-weight:600}.graph-panel__text{margin:1.25rem 0 0;font-size:0.95rem;line-height:1.6;color:rgb(var(--color-ink-soft))}.graph-panel__highlights{margin:1.25rem 0 0;padding:1rem 0;border-top:1px solid rgb(var(--color-hairline));border-bottom:1px solid rgb(var(--color-hairline));list-style:none;display:flex;flex-direction:column;gap:0.65rem}.graph-panel__highlights li{display:flex;align-items:center;gap:0.85rem;font-family:var(--font-sport);font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:700;color:rgb(var(--color-ink))}.graph-panel__highlights li::before{content:"";width:1.25rem;height:1px;background:rgb(var(--color-cognac));flex:0 0 auto}.graph-panel__specs{margin:1.25rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid rgb(var(--color-hairline))}.graph-panel__specs>div{padding:0.85rem 0;border-bottom:1px solid rgb(var(--color-hairline))}.graph-panel__specs>div:nth-child(odd){padding-right:0.85rem;border-right:1px solid rgb(var(--color-hairline))}.graph-panel__specs>div:nth-child(even){padding-left:0.85rem}.graph-panel__specs dt{margin:0;font-family:var(--font-mono);font-size:0.58rem;letter-spacing:0.22em;text-transform:uppercase;color:rgb(var(--color-muted));font-weight:600}.graph-panel__specs dd{margin:0.35rem 0 0;font-family:var(--font-sport);font-size:0.82rem;letter-spacing:0.04em;text-transform:uppercase;color:rgb(var(--color-ink));font-weight:800}.graph-panel__edges{margin:1.25rem 0 0;font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.22em;text-transform:uppercase;color:rgb(var(--color-muted));font-weight:600}.graph-panel__ctas{margin:1.5rem 0 0;display:flex;flex-direction:column;gap:0.55rem}.graph-panel__cta{display:inline-flex;align-items:center;justify-content:center;gap:0.6rem;padding:0.85rem 1.25rem;font-family:var(--font-sport);font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;font-weight:800;transition:background 200ms,color 200ms,border-color 200ms,transform 200ms}.graph-panel__cta--primary{background:rgb(var(--color-cognac));color:#ffffff;border:1px solid rgb(var(--color-cognac))}.graph-panel__cta--primary:hover{background:rgb(var(--color-cognac-deep));border-color:rgb(var(--color-cognac-deep));color:#ffffff;transform:translateY(-1px)}.graph-panel__cta--primary svg{color:#ffffff}.graph-panel__cta--outline{background:transparent;color:rgb(var(--color-ink));border:1px solid rgb(var(--color-hairline-strong))}.graph-panel__cta--outline:hover{background:rgb(var(--color-ink));color:rgb(var(--color-paper));border-color:rgb(var(--color-ink))}@media (max-width:700px){.graph-shell__panel{top:auto;bottom:4rem;right:0.75rem;left:0.75rem;width:auto;max-height:70vh}}@media (prefers-reduced-motion:reduce){.graph-edge,.graph-node circle{transition:none}}.graph-node:focus{outline:none}.graph-node:focus-visible circle{stroke:var(--red,#DB0503);stroke-width:3}.graph-node:focus-visible text{fill:var(--red,#DB0503)}