@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/catalog-galaxy/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/catalog-galaxy/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/catalog-galaxy/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/catalog-galaxy/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/catalog-galaxy/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--green:#0b4a35;--emerald:#12a06a;--emerald-soft:#49d3a0;--paper:#f7f8f5;--ink:#0b2e22;--night:#071d15;--night-2:#0d3527;--line:#0b2e221f;--line-dark:#f7f8f51f;--muted:#5a6f66;--muted-dark:#a3b9af;--glass:#071d15cc;--radius:12px;--ease:cubic-bezier(.16, 1, .3, 1);--font:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--panel-w:400px}*,:before,:after{box-sizing:border-box}html{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}body{grid-template-rows:auto 1fr;min-height:100dvh;margin:0;font-size:15px;line-height:1.5;display:grid}html[data-view=galaxy],html[data-view=galaxy] body{overscroll-behavior:none;height:100dvh;overflow:hidden}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}button,input{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--emerald);outline-offset:2px;border-radius:6px}.stage :focus-visible,.panel :focus-visible{outline-color:var(--emerald-soft)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:30;background:var(--ink);color:var(--paper);border-radius:8px;padding:8px 12px;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.dot{background:var(--c);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 1px #0b2e2240}.top{z-index:20;background:var(--paper);border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) minmax(220px,320px) auto;align-items:center;gap:12px 28px;padding:12px 24px;display:grid;position:relative}html[data-view=list] .top{position:sticky;top:0}.brand{border-radius:6px;line-height:0;display:block}.brand img{width:auto;height:26px}.lede{border-left:1px solid var(--line);gap:1px;min-width:0;padding-left:28px;display:grid}.lede h1{letter-spacing:-.01em;font-size:15px;font-weight:620}.lede p{color:var(--muted);text-wrap:pretty;max-width:78ch;font-size:13px}.lede a{color:var(--green);text-underline-offset:3px;font-weight:560}.search{position:relative}.search input{border:1px solid var(--line);width:100%;height:38px;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);background:#fff;border-radius:10px;padding:0 36px}.search input::placeholder{color:#7d8f87}.search input:focus{border-color:var(--emerald);outline:none;box-shadow:0 0 0 3px #12a06a2e}.search-icon{color:var(--muted);pointer-events:none;position:absolute;top:11px;left:12px}.search-key{min-width:22px;height:22px;font:12px var(--mono);color:var(--muted);border:1px solid var(--line);pointer-events:none;border-radius:6px;place-items:center;display:grid;position:absolute;top:8px;right:9px}.search input:focus~.search-key,.search input:not(:placeholder-shown)~.search-key{display:none}.results{border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:min(440px,100vw - 32px);max-height:min(60dvh,520px);padding:6px;position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 18px 40px -18px #0b2e2259}.results-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:600}.results-note{color:var(--muted);padding:10px;font-size:13px}.result{cursor:pointer;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:10px;padding:7px 10px;display:grid}.result .dot{grid-row:span 2}.result-main{text-overflow:ellipsis;white-space:nowrap;font-weight:540;overflow:hidden}.result-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:12px;overflow:hidden}.result[aria-selected=true]{background:#e9f3ee}.links{align-items:center;gap:4px;display:flex}.links a{color:var(--green);transition:background .2s var(--ease);border-radius:8px;padding:8px 10px;font-weight:560;text-decoration:none}.links a:hover{background:#e9f3ee}.toggle{height:38px;color:var(--paper);background:var(--green);white-space:nowrap;transition:background .2s var(--ease), transform .15s var(--ease);border:0;border-radius:10px;margin-left:8px;padding:0 14px;font-weight:560}.toggle:hover{background:#0d5a41}.toggle:active,.btn:active,.zoom button:active{transform:scale(.97)}.toggle:disabled{opacity:.5;cursor:not-allowed}main{grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:relative}html[data-view=galaxy] main{background:radial-gradient(120% 90% at 42% 40%, var(--night-2) 0%, #0a281d 45%, var(--night) 100%);color:var(--paper)}html[data-view=galaxy][data-panel=open] main{grid-template-columns:minmax(0, 1fr) var(--panel-w)}.stage{min-width:0;min-height:0;position:relative;overflow:hidden}#scene{touch-action:none;outline-offset:-4px;width:100%;height:100%;display:block;position:absolute;inset:0}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.label{white-space:nowrap;will-change:transform;position:absolute;top:0;left:0}.label-category{pointer-events:auto;letter-spacing:.005em;color:var(--paper);border:1px solid var(--line-dark);transition:opacity .3s var(--ease), background .2s var(--ease), border-color .2s var(--ease);background:#071d159e;border-radius:999px;align-items:center;gap:7px;padding:3px 9px 3px 8px;font-size:12.5px;font-weight:560;display:inline-flex}.label-category:before{content:"";background:var(--c);border-radius:50%;width:7px;height:7px}.label-category:hover,.label-category.is-on{border-color:var(--c);background:#071d15eb}.label-category.is-dim{opacity:.38}.label-platform{color:#f7f8f5d1;text-shadow:0 1px 6px var(--night), 0 0 2px var(--night);font-size:11.5px}.label-platform.is-on{color:#fff;font-weight:620}.ring{pointer-events:none;opacity:0;border-radius:50%;transition:opacity .15s linear;position:absolute;top:0;left:0}.ring-hover{border:1.5px solid #f7f8f5b3}.ring-selected{border:2px solid var(--paper);box-shadow:0 0 0 3px #f7f8f529}.tooltip{z-index:5;max-width:280px;color:var(--muted-dark);border:1px solid var(--line-dark);pointer-events:none;background:#071d15f0;border-radius:10px;gap:2px;padding:9px 12px;font-size:12.5px;display:grid;position:absolute;top:0;left:0}.tooltip strong{color:var(--paper);font-size:14px;font-weight:600}.tooltip-cat{align-items:center;gap:6px;display:flex}.legend{z-index:3;background:var(--glass);border:1px solid var(--line-dark);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);width:224px;max-height:calc(100% - 96px);padding:10px 8px 8px;position:absolute;top:16px;left:16px;overflow:auto;box-shadow:inset 0 1px #f7f8f50f}.legend-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted-dark);justify-content:space-between;padding:0 8px 6px;font-size:11px;font-weight:600;display:flex}.legend-title span{letter-spacing:.02em;text-transform:none;font-weight:500}.legend-item{text-align:left;width:100%;color:var(--paper);transition:background .2s var(--ease), opacity .2s var(--ease);background:0 0;border:0;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:5px 8px;font-size:13px;display:grid}.legend-item:hover{background:#f7f8f514}.legend-item[aria-pressed=true]{background:#f7f8f521}.legend-item.is-dim{opacity:.55}.legend-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.legend-count{font-variant-numeric:tabular-nums;color:var(--muted-dark)}.hud{z-index:2;color:var(--muted-dark);pointer-events:none;gap:2px;font-size:12px;display:grid;position:absolute;bottom:14px;left:16px;right:76px}.totals{color:#f7f8f5e6;font-variant-numeric:tabular-nums}.zoom{z-index:3;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:10px;gap:1px;display:grid;position:absolute;bottom:14px;right:16px;overflow:hidden}.zoom button{width:38px;height:36px;color:var(--paper);transition:background .2s var(--ease), transform .15s var(--ease);background:#071d15e6;border:0;place-items:center;display:grid}.zoom button:hover{background:#143c2df2}.stage-note{color:var(--muted-dark);pointer-events:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.panel{z-index:4;border-left:1px solid var(--line-dark);min-height:0;color:var(--paper);animation:panel-in .4s var(--ease);background:#082219;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:relative}@keyframes panel-in{0%{opacity:0;transform:translate(16px)}}.panel-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 16px 12px 20px;display:flex}.panel-title{gap:4px;min-width:0;display:grid}.panel h2{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:24px;font-weight:620;line-height:1.15}.eyebrow,.back{color:var(--muted-dark);align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.back{transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:7px;justify-self:start;margin-left:-6px;padding:3px 8px 3px 2px}.back:hover{color:var(--paper);background:#f7f8f514}.icon-btn{width:34px;height:34px;color:var(--muted-dark);border:1px solid var(--line-dark);transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border-radius:9px;flex:none;place-items:center;display:grid}.icon-btn:hover{color:var(--paper);background:#f7f8f514}.panel-body{overscroll-behavior:contain;padding:0 20px 16px;overflow:auto}.stats{color:var(--muted-dark);font-variant-numeric:tabular-nums;font-size:13px}.price-line{color:var(--emerald-soft);font-variant-numeric:tabular-nums;margin:2px 0 14px;font-size:14px;font-weight:560}.platforms li+li,.jobs li+li{border-top:1px solid var(--line-dark)}.platform-row{text-align:left;width:calc(100% + 16px);transition:background .2s var(--ease);background:0 0;border:0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;margin:0 -8px;padding:9px 8px;display:grid}.platform-row:hover{background:#f7f8f512}.platform-name{text-overflow:ellipsis;white-space:nowrap;font-weight:560;overflow:hidden}.platform-jobs{font-variant-numeric:tabular-nums;color:var(--muted-dark);text-align:right;font-size:13px}.platform-price{color:var(--muted-dark);font-variant-numeric:tabular-nums;grid-column:1/-1;font-size:12.5px}.field{gap:8px;margin-bottom:8px;display:grid}.field label{color:var(--muted-dark);font-size:12.5px}.field input{height:36px;color:var(--paper);border:1px solid var(--line-dark);background:#f7f8f50f;border-radius:9px;padding:0 12px}.field input::placeholder{color:#a3b9af99}.field input:focus{border-color:var(--emerald-soft);outline:none}.job{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:9px 0;display:grid}.job-title{text-wrap:pretty;grid-column:1/-1;font-weight:520}.job-price{color:var(--emerald-soft);font-variant-numeric:tabular-nums;font-size:13px;font-weight:560}.job-id{font:11.5px var(--mono);color:var(--muted-dark);overflow-wrap:anywhere;grid-column:1/-1}.job-providers{color:var(--muted-dark);text-align:right;white-space:nowrap;font-size:12px}.job.is-hit{background:#49d3a01f;border-top-color:#0000;border-radius:8px;margin:0 -8px;padding:9px 8px}.empty{color:var(--muted-dark);padding:14px 0;font-size:13px}.error{border:1px solid #ff6b4a73;border-radius:10px;justify-items:start;gap:10px;margin-top:6px;padding:12px;font-size:13px;display:grid}.btn{height:34px;color:var(--ink);background:var(--paper);transition:transform .15s var(--ease);border:0;border-radius:8px;padding:0 12px;font-weight:560}.skeleton{gap:14px;padding:12px 0;display:grid}.skeleton span{background:linear-gradient(90deg,#80968c24 20%,#80968c47 50%,#80968c24 80%) 0 0/220% 100%;border-radius:7px;height:30px;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-220% 0}}.panel-foot{padding:12px 20px calc(14px + env(safe-area-inset-bottom));color:var(--muted-dark);border-top:1px solid var(--line-dark);font-size:12px}.panel-foot a{color:var(--emerald-soft);text-underline-offset:3px;align-items:center;gap:3px;font-weight:560;display:inline-flex}.list{width:100%;max-width:1040px;margin:0 auto;padding:40px 24px 96px}.list-intro{gap:8px;max-width:68ch;display:grid}.list-intro h2{letter-spacing:-.03em;font-size:clamp(28px,4vw,40px);font-weight:620;line-height:1.08}.list-intro p{color:var(--muted)}.list-note{background:#e9f3ee;border-radius:10px;padding:10px 12px;font-size:13.5px;color:var(--ink)!important}.toc{flex-wrap:wrap;gap:6px;margin:24px 0 8px;display:flex}.toc a{color:var(--ink);border:1px solid var(--line);transition:border-color .2s var(--ease);background:#fff;border-radius:999px;align-items:center;gap:7px;padding:5px 11px;font-size:13px;text-decoration:none;display:inline-flex}.toc a:hover{border-color:var(--emerald)}.list-cat{padding-top:36px;scroll-margin-top:96px}.list-cat>header{border-bottom:1px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;padding-bottom:10px;display:flex}.list-cat h3{letter-spacing:-.015em;align-items:center;gap:10px;font-size:20px;font-weight:620;display:flex}.list-cat h3 .dot{width:11px;height:11px}.list-cat>header p{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.list-platform{border-bottom:1px solid var(--line);scroll-margin-top:96px}.list-platform summary{cursor:pointer;transition:background .2s var(--ease);border-radius:6px;grid-template-columns:minmax(0,1.2fr) 90px minmax(0,1.4fr) 16px;align-items:center;gap:12px;padding:10px 4px;list-style:none;display:grid}.list-platform summary::-webkit-details-marker{display:none}.list-platform summary:after{content:"";border-right:1.75px solid var(--muted);border-bottom:1.75px solid var(--muted);width:7px;height:7px;transition:transform .25s var(--ease);transform:rotate(45deg)}.list-platform[open] summary:after{transform:rotate(-135deg)}.list-platform summary:hover{background:#eef3ef}.list .platform-jobs,.list .platform-price{color:var(--muted);text-align:left;grid-column:auto;font-size:13px}.list .jobs-box{border-left:2px solid var(--emerald);margin:0 0 12px 4px;padding:4px 4px 16px 20px}.list .jobs li+li{border-top-color:var(--line)}.list .job-price{color:var(--green)}.list .job-id,.list .job-providers,.list .empty,.list .field label{color:var(--muted)}.list .field input{max-width:320px;color:var(--ink);border-color:var(--line);background:#fff}.list .field input:focus{border-color:var(--emerald)}.list .job.is-hit{background:#e3f4ec}.list .btn{color:var(--paper);background:var(--green)}.noscript{background:var(--paper);padding:24px}@media (max-width:1180px){.top{grid-template-columns:auto minmax(0,1fr) auto}.lede{border-left:0;grid-area:2/1/auto/-1;padding-left:0}.search{grid-column:2;justify-self:end;width:min(100%,340px)}}@media (max-width:760px){body{font-size:15px}.top{grid-template-columns:auto 1fr;gap:8px 12px;padding:10px 16px 12px}.brand img{height:22px}.links{grid-area:1/2;justify-self:end;gap:0}.links a{padding:8px;font-size:14px}.toggle{height:36px;margin-left:4px;padding:0 11px;font-size:14px}.lede{grid-row:2}.lede h1{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.lede p{font-size:12.5px;line-height:1.4}.search{grid-area:3/1/auto/-1;width:100%}.search input{height:40px;font-size:16px}.search-key{display:none}.results{width:auto;left:0;right:0}html[data-view=galaxy][data-panel=open] main{grid-template-rows:minmax(0,1fr) min(54dvh,460px);grid-template-columns:minmax(0,1fr)}.legend{width:auto;max-height:none;padding:8px 0 calc(10px + env(safe-area-inset-bottom));box-shadow:none;-webkit-backdrop-filter:none;background:linear-gradient(#071d1500 0%,#071d15e6 38%);border:0;border-radius:0;inset:auto 0 0;overflow:visible}.legend-title{display:none}.legend-list{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;padding:0 16px;display:flex;overflow-x:auto}.legend-list::-webkit-scrollbar{display:none}.legend-item{white-space:nowrap;border:1px solid var(--line-dark);background:#071d15e6;border-radius:999px;flex:none;width:auto;padding:7px 11px;display:flex}.legend-item[aria-pressed=true]{background:#285040f2;border-color:#f7f8f566}html[data-panel=open] .legend,html[data-panel=open] .hud{display:none}.hud{font-size:11.5px;inset:10px 16px auto}.hint{display:none}.zoom{bottom:64px}html[data-panel=open] .zoom{bottom:12px}.zoom button{width:40px;height:40px}.label-category{padding:2px 7px;font-size:11px}.panel{border-left:0;border-top:1px solid var(--line-dark);border-radius:16px 16px 0 0;animation-name:sheet-in}.panel-head{padding:14px 12px 8px 16px}.panel h2{font-size:20px}.panel-body{padding:0 16px 12px}.panel-foot{padding:10px 16px calc(12px + env(safe-area-inset-bottom))}html[data-view=list] .top{position:static}.list-cat,.list-platform{scroll-margin-top:8px}.list{padding:28px 16px 72px}.list-platform summary{grid-template-columns:minmax(0,1fr) auto 14px;gap:2px 10px}.list .platform-price{grid-area:2/1/auto/-1}.list .jobs-box{padding-left:12px}}@keyframes sheet-in{0%{opacity:0;transform:translateY(20px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
