@import"https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;450;500;600;650;700&display=swap";:root{font-family:Golos Text,Arial,sans-serif;color:#21211f;background:#eeede8;font-synthesis:none;color-scheme:light;--paper:#eeede8;--ink:#21211f;--red:#ed492f;--gray:#7b7f82}*{box-sizing:border-box}body,h1,h2,p{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:6px}button:disabled{opacity:.3;cursor:default}a:hover{color:var(--red)}.canvas-page{position:fixed;top:0;right:0;bottom:0;left:0;min-height:0;height:100dvh;overflow:clip;background-color:var(--paper);background-image:radial-gradient(#21211f .8px,transparent .85px);background-size:33px 32px;cursor:grab;touch-action:none;isolation:isolate}.is-dragging{cursor:grabbing}.map-world{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:absolute;left:50%;top:50%;width:1536px;height:1024px;transform-origin:center;will-change:transform}.map-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.map-lines path,.map-lines ellipse{fill:none;stroke-width:1;transition:stroke .25s,opacity .3s,stroke-width .25s}.technology-lines path{stroke:#9fa4a7;opacity:.32}.technology-lines .lit{stroke:var(--red);opacity:.9;stroke-width:1.6}.technology-lines .hovered{stroke:#636c70;opacity:.6}.project-lines path,.project-lines ellipse{stroke:var(--red);opacity:.9}.project-lines .hovered{stroke-width:2.2}.project-lines .muted{opacity:.12}.signal{fill:var(--red)}.identity{position:absolute;left:768px;top:402px;transform:translate(-50%);text-align:center;z-index:2;white-space:nowrap;cursor:default}.identity h1{font-size:126px;font-weight:700;letter-spacing:-.075em;line-height:.94}.identity p{font-size:18px;letter-spacing:-.5px;margin-top:4px}.identity-connection{top:409px;white-space:normal;width:540px}.identity-connection h1{font-size:62px;letter-spacing:-.045em;line-height:1.05;margin-top:8px}.connection-kind{display:flex;align-items:center;justify-content:center;gap:16px;font-size:12px;color:#73777a}.connection-kind button{display:grid;place-items:center;padding:3px}.identity-connection p{font-size:16px}.project-node{position:absolute;text-align:left;padding:18px 0 0;z-index:3;white-space:nowrap;transition:opacity .3s,color .2s;max-width:390px}.project-node.muted{opacity:.22}.project-node:hover,.project-node:focus-visible{color:var(--red);opacity:1}.node-marker{position:absolute;top:-8px;left:0;display:block;width:0;height:16px;color:var(--ink)}.node-marker>span{position:absolute;right:16px;top:-1px;font-size:14px;line-height:16px;letter-spacing:-.4px}.node-marker i{position:absolute;left:-6px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--red)}.node-title{display:flex;align-items:center;gap:11px;font-size:var(--title-size);font-weight:650;letter-spacing:-2.2px;line-height:1.04}.node-title svg{width:30px;height:30px;transition:transform .25s}.project-node:hover svg{transform:translate(3px,-3px)}.node-description{display:block;font-size:18px;letter-spacing:-.45px;margin-top:6px;color:var(--ink)}.connection-node{position:absolute;display:flex;align-items:center;gap:12px;font-size:16px;line-height:22px;white-space:nowrap;padding:0;transform:translate(-7px,-11px);z-index:4;color:#4c535b;transition:color .2s}.connection-node i{width:14px;height:14px;border:2px solid #657078;border-radius:50%;background:var(--paper);flex-shrink:0}.connection-node:hover,.connection-node.active{color:var(--red)}.connection-node.active i{border-color:var(--red);background:var(--red)}.contacts{position:absolute;left:24px;top:45%;border-left:1px solid var(--ink);padding:3px 0 3px 13px;display:flex;flex-direction:column;gap:17px;z-index:5;cursor:default;font-size:14px}.zoom-controls{position:absolute;right:33px;top:27px;display:flex;gap:19px;z-index:5;cursor:default}.zoom-controls button{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;border:1px solid var(--ink);background:var(--paper)}.zoom-controls button:hover:not(:disabled){color:var(--red);border-color:var(--red)}.project-dialog{border:0;padding:0 0 30px;width:770px;max-width:calc(100vw - 80px);max-height:calc(72svh - 24px);top:28svh;bottom:auto;margin:0 auto;background:transparent;color:var(--ink);overflow-y:auto;animation:open-detail .3s ease both}.project-dialog::backdrop{background:#eeede8ed;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.detail-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:var(--red);font-size:23px}.detail-top button{color:var(--ink);padding:4px;display:grid;place-items:center}.detail-top button:hover{color:var(--red)}.project-dialog h2{font-size:clamp(70px,9vw,138px);font-weight:650;letter-spacing:-.06em;line-height:1.03;overflow-wrap:anywhere}.detail-summary{font-size:26px;line-height:1.4;letter-spacing:-.7px;margin-top:35px;max-width:750px}.detail-role{font-size:22px;margin-top:22px;letter-spacing:-.4px}.detail-features{font-size:22px;line-height:1.45;border-top:1px solid #8c8f88;padding-top:26px;margin-top:35px;letter-spacing:-.4px}.detail-connections{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:21px}.detail-connections button{font-size:12px;padding:0 0 3px;border-bottom:1px solid #b7b8b0;color:#5d625f}.detail-connections button:hover{color:var(--red);border-color:var(--red)}.source{display:inline-flex;gap:8px;align-items:center;margin-top:28px;font-size:14px}.close-hint{display:block;margin-top:30px;font-size:12px;color:#797d77}@keyframes open-detail{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:800px){.contacts{left:22px;top:27px;border-left:0;padding:0;gap:20px;flex-direction:row;font-size:12px}.zoom-controls{display:none}.project-dialog{width:calc(100vw - 40px);max-width:none;max-height:calc(100dvh - 40px);top:0;bottom:0;margin:auto;padding:0 0 20px}.project-dialog h2{font-size:clamp(38px,11vw,65px);line-height:1.07}.detail-top{font-size:16px;margin-bottom:12px}.detail-top button svg{width:25px}.detail-summary{font-size:18px;line-height:1.45;margin-top:26px;letter-spacing:-.35px}.detail-role{font-size:16px;margin-top:19px}.detail-features{font-size:16px;line-height:1.5;margin-top:25px;padding-top:22px}.detail-connections{gap:10px 15px;margin-top:19px}.detail-connections button{font-size:11px}.source{font-size:12px;margin-top:25px}.close-hint{font-size:10px;margin-top:25px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.signal{display:none}}.all-network{display:flex;align-items:center;gap:6px;font-size:11px;padding:0;text-align:left;color:#777d78;white-space:nowrap}.all-network:hover,.all-network[aria-pressed=true]{color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.extra-node{max-width:270px}.extra-node .node-title{font-size:28px;letter-spacing:-1px}.extra-node .node-description{font-size:13px;max-width:250px;white-space:normal;line-height:1.4}.extra-node .node-marker i{width:8px;height:8px;left:-4px}.extra-node .node-title svg{width:22px;height:22px}@media(max-width:800px){.contacts{gap:16px}.all-network{font-size:10px;gap:4px}.all-network svg{width:12px}.extra-node .node-title{font-size:28px}}.search-dialog{width:620px;max-width:calc(100vw - 48px);max-height:80svh;top:12svh;bottom:auto;margin:0 auto;padding:26px 30px 18px;border:1px solid #a7a89f;background:var(--paper);color:var(--ink);overflow:hidden;box-shadow:0 18px 80px #21211f12;animation:open-detail .2s ease both}.search-dialog::backdrop{background:#eeede8d9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.search-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.search-top h2{font-size:28px;letter-spacing:-1px;font-weight:500}.search-top button{padding:4px;display:grid;place-items:center}.search-top button:hover{color:var(--red)}.search-field{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:13px;color:var(--red)}.search-field input{min-width:0;width:100%;border:0;background:none;color:var(--ink);font:inherit;font-size:18px;outline:0}.search-field input::placeholder{color:#75786f}.search-field:focus-within{border-bottom-color:var(--red)}.search-results{list-style:none;margin:13px 0 0;padding:0;max-height:45svh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.search-results li+li{border-top:1px solid #d7d7ce}.search-results button{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 8px;width:100%;text-align:left}.search-results button[aria-selected=true]{background:#21211f06;color:var(--red)}.search-results strong{font-weight:500;font-size:20px;letter-spacing:-.5px;overflow-wrap:anywhere}.search-results small{display:block;font-size:12px;line-height:1.4;color:#74776f;margin-top:4px}.search-kind{display:flex;align-items:center;gap:12px;font-size:11px;color:#72766e;white-space:nowrap}.search-kind svg{color:var(--ink);flex-shrink:0}.search-hint{font-size:11px;color:#777b71;margin-top:17px}.search-empty{padding:30px 8px;color:#6d7168;font-size:16px}@media(max-width:800px){.zoom-controls{display:flex;top:20px;right:17px;gap:0}.zoom-controls .zoom-button{display:none}.zoom-controls .search-trigger{width:32px;height:32px;border-color:#868980}.contacts{max-width:calc(100vw - 76px);gap:14px;align-items:center}.contacts a{flex-shrink:0}.all-network{font-size:10px}.search-dialog{top:6svh;width:calc(100vw - 28px);max-width:none;max-height:86svh;padding:20px 16px 16px}.search-top{margin-bottom:20px}.search-top h2{font-size:25px}.search-field{gap:8px}.search-field input{font-size:14px}.search-field svg{width:18px;flex-shrink:0}.search-results{max-height:56svh}.search-results button{gap:10px;padding:13px 4px}.search-results strong{font-size:17px}.search-results small{font-size:11px}.search-kind{font-size:10px;gap:6px}.search-hint{font-size:10px}.search-results button:focus-visible{outline-offset:-2px}}.search-results button>span:first-child{min-width:0;flex:1}.search-results small{overflow-wrap:anywhere}.search-dialog,.project-dialog{position:fixed}@media(max-width:800px){.zoom-controls{position:fixed}}.project-dialog::backdrop{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}.detail-top button,.search-top button{min-width:44px;min-height:44px}.search-trigger{position:relative}.search-trigger:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.technology-lines .previewed{stroke:var(--red);opacity:.55;stroke-width:1.4}.technology-lines .lit{stroke-dasharray:7 5;animation:flow-path 3s linear infinite}@keyframes flow-path{to{stroke-dashoffset:-24}}html,body,#app{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}.canvas-page{overscroll-behavior:none}.connection-node:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}@media(max-width:800px){.zoom-controls .search-trigger{width:40px;height:40px;top:-4px}.zoom-controls .zoom-button[aria-label="Вернуть всё полотно"]{display:grid;position:fixed;right:17px;bottom:max(20px,env(safe-area-inset-bottom));width:40px;height:40px}.contacts{left:max(22px,env(safe-area-inset-left));top:max(27px,env(safe-area-inset-top))}.zoom-controls{right:max(17px,env(safe-area-inset-right))}}@media(max-width:800px){.search-field input{font-size:16px}}.map-lines path,.map-lines ellipse{vector-effect:non-scaling-stroke}.technology-lines path{opacity:.22}.technology-lines .quiet{opacity:.045}.project-lines ellipse.muted{opacity:.08}.project-node.muted{opacity:.32}.node-title,.node-description,.connection-node{text-shadow:2px 0 var(--paper),-2px 0 var(--paper),0 2px var(--paper),0 -2px var(--paper)}.node-marker i{box-shadow:0 0 #ed492f20;transition:box-shadow .2s,transform .2s}.project-node:hover .node-marker i,.project-node:focus-visible .node-marker i{box-shadow:0 0 0 7px #ed492f15;transform:scale(1.12)}.project-node:active .node-title{transform:translateY(1px)}.node-title{transition:transform .15s}.connection-node{transition:opacity .25s,color .2s}.connection-node.muted{opacity:.42}.connection-node.muted:hover,.connection-node.muted:focus-visible{opacity:1}.connection-node i{transition:border-color .2s,background .2s,box-shadow .2s}.connection-node:hover i,.connection-node:focus-visible i{box-shadow:0 0 0 5px #ed492f10}.zoom-controls button{transition:color .18s,border-color .18s,transform .18s}.zoom-controls button:active:not(:disabled){transform:scale(.93)}.contacts a,.all-network{position:relative}.contacts a:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .18s}.contacts a:hover:after,.contacts a:focus-visible:after{transform:scaleX(1)}.selection-chip{display:none}@media(max-width:800px){.selection-chip{position:fixed;z-index:5;left:16px;bottom:max(20px,env(safe-area-inset-bottom));max-width:calc(100vw - 84px);display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid #c0c1b7;border-radius:24px;padding:0 5px 0 13px;font-size:12px;box-shadow:0 3px 18px #21211f08}.selection-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-chip small{color:#74786f;font-size:10px}.selection-chip button{display:grid;place-items:center;flex-shrink:0;min-width:38px;min-height:38px;color:var(--red)}}.is-overview .project-node{transform:scale(var(--node-scale));transform-origin:top left;padding-top:9px;max-width:180px}.is-overview .node-title{display:block;font-size:28px;letter-spacing:-1px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.is-overview .node-title svg,.is-overview .node-description,.is-overview .node-marker>span{display:none}.is-overview .node-marker i{width:6px;height:6px;left:-3px;top:5px}.is-overview .connection-node{opacity:.45}.project-dialog,.search-dialog,.search-results{touch-action:pan-y;overscroll-behavior:contain}.project-lines .extra-link{opacity:.22}.is-wide .project-lines .extra-link{opacity:.65}.project-lines .extra-link.hovered{opacity:1}.project-lines .extra-link.muted{opacity:.06}.project-dialog{scrollbar-width:thin;scrollbar-color:#969a8d transparent;scrollbar-gutter:stable;padding-right:14px}.project-dialog::-webkit-scrollbar,.search-results::-webkit-scrollbar{width:5px}.project-dialog::-webkit-scrollbar-track,.search-results::-webkit-scrollbar-track{background:transparent}.project-dialog::-webkit-scrollbar-thumb,.search-results::-webkit-scrollbar-thumb{background:#a4a79b;border-radius:8px}.project-dialog::-webkit-scrollbar-thumb:hover,.search-results::-webkit-scrollbar-thumb:hover{background:var(--red)}.detail-top{position:sticky;top:0;z-index:2;background:var(--paper)}.detail-connections{gap:9px 12px}.detail-connections button{font-size:13px;border:1px solid #bfc2b6;border-radius:20px;padding:8px 12px;color:#5d625f;transition:color .18s,border-color .18s,background .18s}.detail-connections button:hover,.detail-connections button:focus-visible{border-color:var(--red);color:var(--red);background:#ed492f06}@media(max-width:800px),(pointer:coarse){.close-hint,.search-hint{display:none}.detail-connections button{min-height:40px}}@media(max-width:800px){.project-dialog{padding-right:8px}.detail-connections{gap:8px}.detail-connections button{font-size:12px;padding:8px 11px}}.activity-streams{pointer-events:none}.map-lines .activity-branch{stroke:var(--red);stroke-width:1.8;opacity:.55}.activity-signal{fill:var(--red);stroke:var(--paper);stroke-width:1}.activity-current{fill:var(--red);stroke:var(--paper);stroke-width:.8}.recent-node:not(.muted) .node-marker i:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px solid var(--red);border-radius:50%;animation:activity-ripple var(--pulse-duration) ease-out infinite}@keyframes activity-ripple{0%,55%{transform:scale(.6);opacity:0}60%{opacity:.35}90%,to{transform:scale(1.7);opacity:0}}@media(prefers-reduced-motion:reduce){.activity-current,.recent-node .node-marker i:after{animation:none}.recent-node .node-marker i{box-shadow:0 0 0 5px #ed492f13}}.map-world{animation:canvas-arrive .48s ease-out both}.contacts,.zoom-controls{animation:canvas-arrive .32s ease-out both}@keyframes canvas-arrive{0%{opacity:0}to{opacity:1}}.identity h1,.identity p{text-shadow:2px 0 var(--paper),-2px 0 var(--paper),0 2px var(--paper),0 -2px var(--paper)}.extra-node .node-marker i{top:4px}.is-overview .node-marker i{top:5px}.map-lines path{stroke-linecap:round;stroke-linejoin:round}.activity-current,.activity-signal{vector-effect:non-scaling-stroke}.contacts a.is-syncing:after{transform:scaleX(1);animation:sync-breath 1.1s ease-in-out infinite}@keyframes sync-breath{0%,to{opacity:.12}50%{opacity:.5}}.contacts a:before,.all-network:before{content:"";position:absolute;top:-14px;right:-3px;bottom:-14px;left:-3px}.zoom-controls button{position:relative}.zoom-controls button:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%}.detail-top button,.search-top button,.selection-chip button{transition:color .18s,transform .18s}.detail-top button:active,.search-top button:active,.selection-chip button:active{transform:scale(.94)}.detail-connections button:active{background:#ed492f0d}.source svg{transition:transform .18s}.source:hover svg,.source:focus-visible svg{transform:translate(2px,-2px)}.project-dialog::backdrop,.search-dialog::backdrop{animation:canvas-arrive .18s ease-out both}.is-surface-open .recent-node .node-marker i:after{animation-play-state:paused}.is-surface-open .activity-streams{visibility:hidden}@media(hover:none){.project-node:hover:not(:focus-visible){color:var(--ink)}.project-node:hover:not(:focus-visible) .node-marker i{box-shadow:none;transform:none}.project-node:hover:not(:focus-visible) .node-title svg{transform:none}.connection-node:hover:not(.active):not(:focus-visible){color:#4c535b}.connection-node:hover:not(:focus-visible) i{box-shadow:none}}.extra-node{animation:node-arrive .28s ease-out}@keyframes node-arrive{0%{opacity:0}}@media(max-width:380px){.contacts{left:max(16px,env(safe-area-inset-left));gap:10px}}.connection-node{transform:translate(-7px,-11px) scale(var(--connection-scale,1));transform-origin:7px 11px}.is-distant .connection-node:not(.active):not(:hover):not(:focus-visible) .connection-label{display:none}@media(hover:none){.is-distant .connection-node:not(.active):not(:focus-visible) .connection-label{display:none}}.is-overview.has-connection .project-node:not(.muted){transform:scale(var(--selected-node-scale))}
