dsh-desktop-kit 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +87 -2
  3. package/client.js +3349 -0
  4. package/cordis.patch.yml +5 -0
  5. package/index.js +80 -0
  6. package/package.json +60 -4
  7. package/plugins/dsh-gkb-ru-ui/cordis.patch.yml +6 -0
  8. package/plugins/dsh-gkb-ru-ui/lib/client.js +1083 -0
  9. package/plugins/dsh-gkb-ru-ui/lib/index.js +142 -0
  10. package/plugins/dsh-gkb-ru-ui/lib/skills.js +376 -0
  11. package/plugins/dsh-gkb-ru-ui/package.json +28 -0
  12. package/plugins/dsh-peak-guard/README.md +70 -0
  13. package/plugins/dsh-peak-guard/client.js +741 -0
  14. package/plugins/dsh-peak-guard/cordis.patch.yml +5 -0
  15. package/plugins/dsh-peak-guard/icon.svg +12 -0
  16. package/plugins/dsh-peak-guard/index.js +2 -0
  17. package/plugins/dsh-peak-guard/locale/en.json +6 -0
  18. package/plugins/dsh-peak-guard/locale/ru.json +6 -0
  19. package/plugins/dsh-peak-guard/locale/zh.json +6 -0
  20. package/plugins/dsh-peak-guard/package.json +33 -0
  21. package/plugins/dsh-profile-transfer/README.md +62 -0
  22. package/plugins/dsh-profile-transfer/bootstrap/01-INSTALL.cmd +7 -0
  23. package/plugins/dsh-profile-transfer/bootstrap/README-ARCHIVE.md +54 -0
  24. package/plugins/dsh-profile-transfer/bootstrap/README-/320/243/320/241/320/242/320/220/320/235/320/236/320/222/320/232/320/220.md +42 -0
  25. package/plugins/dsh-profile-transfer/bootstrap/install-on-clean-machine.ps1 +119 -0
  26. package/plugins/dsh-profile-transfer/bootstrap//320/243/320/241/320/242/320/220/320/235/320/236/320/222/320/230/320/242/320/254.cmd +5 -0
  27. package/plugins/dsh-profile-transfer/client.js +806 -0
  28. package/plugins/dsh-profile-transfer/cordis.patch.yml +3 -0
  29. package/plugins/dsh-profile-transfer/icon.svg +13 -0
  30. package/plugins/dsh-profile-transfer/index.js +375 -0
  31. package/plugins/dsh-profile-transfer/locale/en.json +6 -0
  32. package/plugins/dsh-profile-transfer/locale/ru.json +6 -0
  33. package/plugins/dsh-profile-transfer/locale/zh.json +6 -0
  34. package/plugins/dsh-profile-transfer/package.json +36 -0
  35. package/plugins/dsh-profile-transfer/transfer.js +1004 -0
  36. package/plugins/dsh-project-memory/README.md +71 -0
  37. package/plugins/dsh-project-memory/cordis.patch.yml +4 -0
  38. package/plugins/dsh-project-memory/icon.svg +12 -0
  39. package/plugins/dsh-project-memory/index.js +1240 -0
  40. package/plugins/dsh-project-memory/locale/en.json +6 -0
  41. package/plugins/dsh-project-memory/locale/ru.json +6 -0
  42. package/plugins/dsh-project-memory/locale/zh.json +6 -0
  43. package/plugins/dsh-project-memory/package.json +26 -0
  44. package/plugins/dsh-session-move/README.md +67 -0
  45. package/plugins/dsh-session-move/client.js +719 -0
  46. package/plugins/dsh-session-move/cordis.patch.yml +5 -0
  47. package/plugins/dsh-session-move/icon.svg +14 -0
  48. package/plugins/dsh-session-move/index.js +497 -0
  49. package/plugins/dsh-session-move/locale/en.json +6 -0
  50. package/plugins/dsh-session-move/locale/ru.json +6 -0
  51. package/plugins/dsh-session-move/locale/zh.json +6 -0
  52. package/plugins/dsh-session-move/package.json +31 -0
  53. package/skills/code-review-checklist/SKILL.md +37 -0
  54. package/skills/content-writing/README.md +87 -0
  55. package/skills/content-writing/SKILL.md +348 -0
  56. package/skills/content-writing/assets/checklists/fact-check.md +53 -0
  57. package/skills/content-writing/assets/checklists/publish.md +65 -0
  58. package/skills/content-writing/assets/checklists/social.md +40 -0
  59. package/skills/content-writing/assets/templates/article.md +47 -0
  60. package/skills/content-writing/assets/templates/brief.md +44 -0
  61. package/skills/content-writing/assets/templates/doctor-card.md +41 -0
  62. package/skills/content-writing/assets/templates/image-prompts.md +128 -0
  63. package/skills/content-writing/assets/templates/post-telegram.md +36 -0
  64. package/skills/content-writing/assets/templates/post-vk.md +42 -0
  65. package/skills/content-writing/assets/templates/press-release.md +56 -0
  66. package/skills/content-writing/assets/templates/science-pop-note.md +55 -0
  67. package/skills/content-writing/assets/templates/service-card.md +46 -0
  68. package/skills/content-writing/references/anti-ai-style.md +248 -0
  69. package/skills/content-writing/references/editing.md +185 -0
  70. package/skills/content-writing/references/fact-checking.md +205 -0
  71. package/skills/content-writing/references/government-medical.md +246 -0
  72. package/skills/content-writing/references/images.md +212 -0
  73. package/skills/content-writing/references/journalism.md +252 -0
  74. package/skills/content-writing/references/science-popular.md +218 -0
  75. package/skills/content-writing/references/seo-content.md +172 -0
  76. package/skills/content-writing/references/social-media.md +253 -0
  77. package/skills/content-writing/references/templates.md +291 -0
  78. package/skills/database-safety/SKILL.md +31 -0
  79. package/skills/debugging-playbook/SKILL.md +39 -0
  80. package/skills/design-critique/SKILL.md +118 -0
  81. package/skills/dev-workflow/SKILL.md +41 -0
  82. package/skills/git-and-ci/SKILL.md +40 -0
  83. package/skills/pg-upgrade-verify/SKILL.md +48 -0
  84. package/skills/project-deep-dive/SKILL.md +170 -0
  85. package/skills/project-deep-dive/references/recon-commands.md +78 -0
  86. package/skills/project-deep-dive/references/section-templates.md +102 -0
  87. package/skills/project-memory-maintenance/SKILL.md +170 -0
  88. package/skills/project-memory-maintenance/references/journal-template.md +48 -0
  89. package/skills/project-memory-maintenance/references/section-rules.md +57 -0
  90. package/skills/release-and-deploy/SKILL.md +39 -0
  91. package/skills/requirements-and-planning/SKILL.md +115 -0
  92. package/skills/security-review/SKILL.md +36 -0
  93. package/skills/seo/README.md +60 -0
  94. package/skills/seo/SKILL.md +329 -0
  95. package/skills/seo/assets/README.md +66 -0
  96. package/skills/seo/assets/scripts/LICENSE-playwright-core.txt +202 -0
  97. package/skills/seo/assets/scripts/README.md +179 -0
  98. package/skills/seo/assets/scripts/lib/args.mjs +105 -0
  99. package/skills/seo/assets/scripts/lib/browser.mjs +620 -0
  100. package/skills/seo/assets/scripts/lib/zip.mjs +191 -0
  101. package/skills/seo/assets/scripts/seo-audit.mjs +1675 -0
  102. package/skills/seo/assets/snippets/jsonld-breadcrumb.json +30 -0
  103. package/skills/seo/assets/snippets/jsonld-faq.json +39 -0
  104. package/skills/seo/assets/snippets/jsonld-medical-clinic.json +49 -0
  105. package/skills/seo/assets/snippets/jsonld-medical-webpage.json +33 -0
  106. package/skills/seo/assets/snippets/jsonld-organization.json +74 -0
  107. package/skills/seo/assets/snippets/jsonld-physician.json +46 -0
  108. package/skills/seo/assets/snippets/meta.blade.php +61 -0
  109. package/skills/seo/assets/snippets/robots.txt +61 -0
  110. package/skills/seo/assets/snippets/sitemap-urlset-example.xml +72 -0
  111. package/skills/seo/assets/snippets/sitemap.xml +36 -0
  112. package/skills/seo/references/audit-checklist.md +305 -0
  113. package/skills/seo/references/content-seo.md +198 -0
  114. package/skills/seo/references/eeat-medical.md +217 -0
  115. package/skills/seo/references/measurement.md +223 -0
  116. package/skills/seo/references/on-page.md +209 -0
  117. package/skills/seo/references/stack-recipes.md +693 -0
  118. package/skills/seo/references/structured-data.md +485 -0
  119. package/skills/seo/references/technical-seo.md +294 -0
  120. package/skills/service-desk-conventions/SKILL.md +40 -0
  121. package/skills/service-desk-db-safety/SKILL.md +52 -0
  122. package/skills/service-desk-release/SKILL.md +43 -0
  123. package/skills/service-desk-testing/SKILL.md +47 -0
  124. package/skills/service-desk-ui/SKILL.md +33 -0
  125. package/skills/skills-router/SKILL.md +91 -0
  126. package/skills/testing-strategy/SKILL.md +37 -0
  127. package/skills/ui-design-system/SKILL.md +45 -0
  128. package/skills/web-research/SKILL.md +40 -0
  129. package/skills/wow-design/SKILL.md +168 -0
  130. package/skills/wow-design/assets/kit/README.md +195 -0
  131. package/skills/wow-design/assets/kit/assets/css/base.css +158 -0
  132. package/skills/wow-design/assets/kit/assets/css/components.css +1001 -0
  133. package/skills/wow-design/assets/kit/assets/css/fonts.css +73 -0
  134. package/skills/wow-design/assets/kit/assets/css/pages.css +737 -0
  135. package/skills/wow-design/assets/kit/assets/css/tokens.css +218 -0
  136. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-golos-text.txt +93 -0
  137. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-lora.txt +93 -0
  138. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-unbounded.txt +93 -0
  139. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-400-normal.woff2 +0 -0
  140. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-500-normal.woff2 +0 -0
  141. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-600-normal.woff2 +0 -0
  142. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-700-normal.woff2 +0 -0
  143. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-400-normal.woff2 +0 -0
  144. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-500-normal.woff2 +0 -0
  145. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-600-normal.woff2 +0 -0
  146. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-700-normal.woff2 +0 -0
  147. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-italic.woff2 +0 -0
  148. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-normal.woff2 +0 -0
  149. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-500-normal.woff2 +0 -0
  150. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-600-normal.woff2 +0 -0
  151. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-400-normal.woff2 +0 -0
  152. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-500-normal.woff2 +0 -0
  153. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-600-normal.woff2 +0 -0
  154. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-400-normal.woff2 +0 -0
  155. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-500-normal.woff2 +0 -0
  156. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-600-normal.woff2 +0 -0
  157. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-400-normal.woff2 +0 -0
  158. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-500-normal.woff2 +0 -0
  159. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-600-normal.woff2 +0 -0
  160. package/skills/wow-design/assets/kit/assets/js/kit.js +550 -0
  161. package/skills/wow-design/assets/kit/pages/dashboard.html +539 -0
  162. package/skills/wow-design/assets/kit/pages/hospital.html +430 -0
  163. package/skills/wow-design/assets/kit/showcase.html +1164 -0
  164. package/skills/wow-design/assets/scripts/LICENSE-axe-core.txt +362 -0
  165. package/skills/wow-design/assets/scripts/LICENSE-playwright-core.txt +202 -0
  166. package/skills/wow-design/assets/scripts/README.md +312 -0
  167. package/skills/wow-design/assets/scripts/audit.mjs +1200 -0
  168. package/skills/wow-design/assets/scripts/capture.mjs +337 -0
  169. package/skills/wow-design/assets/scripts/package.json +30 -0
  170. package/skills/wow-design/references/anti-patterns.md +249 -0
  171. package/skills/wow-design/references/critique-rubric.md +259 -0
  172. package/skills/wow-design/references/design-brief-template.md +46 -0
  173. package/skills/wow-design/references/inspiration.md +200 -0
  174. package/skills/wow-design/references/presets.md +96 -0
  175. package/skills/wow-design/references/principles.md +368 -0
  176. package/skills/wow-design/references/stack-recipes.md +93 -0
  177. package/skills/wow-design/references/visual-qa.md +79 -0
@@ -0,0 +1,158 @@
1
+ /* ==========================================================================
2
+ AURORA · BASE — reset, типографика, сетка, утилиты, эффекты
3
+ ========================================================================== */
4
+
5
+ *,*::before,*::after{box-sizing:border-box}
6
+ html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
7
+ @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
8
+
9
+ html,body{margin:0;padding:0}
10
+ body{
11
+ min-height:100svh;
12
+ background:var(--bg);
13
+ color:var(--ink);
14
+ font-family:var(--font-body);
15
+ font-size:var(--text-md);
16
+ font-weight:400;
17
+ line-height:var(--lh-relaxed);
18
+ letter-spacing:-.006em;
19
+ -webkit-font-smoothing:antialiased;
20
+ -moz-osx-font-smoothing:grayscale;
21
+ text-rendering:optimizeLegibility;
22
+ transition:background-color var(--dur-slow) var(--ease),color var(--dur-slow) var(--ease);
23
+ }
24
+ body::before{
25
+ content:"";position:fixed;inset:0;z-index:var(--z-toast);pointer-events:none;
26
+ opacity:var(--grain-opacity);
27
+ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
28
+ mix-blend-mode:multiply;
29
+ }
30
+ [data-theme="dark"] body::before{mix-blend-mode:screen}
31
+
32
+ ::selection{background:var(--selection-bg);color:var(--ink)}
33
+ :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}
34
+ :focus:not(:focus-visible){outline:none}
35
+
36
+ img,svg,video,canvas{display:block;max-width:100%}
37
+ img{height:auto}
38
+ button,input,select,textarea{font:inherit;color:inherit}
39
+ button{background:none;border:0;padding:0;cursor:pointer}
40
+ a{color:inherit;text-decoration-color:color-mix(in oklab,var(--accent) 45%,transparent);text-underline-offset:.22em;transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease)}
41
+ a:hover{color:var(--accent-ink);text-decoration-color:var(--accent-ink)}
42
+ ul,ol{margin:0;padding:0;list-style:none}
43
+ hr{border:0;border-top:var(--hairline);margin:0}
44
+ ::placeholder{color:var(--faint);opacity:1}
45
+ [hidden]{display:none!important}
46
+
47
+ /* ---- Типографика ---- */
48
+ h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:var(--lh-snug);letter-spacing:-.015em;text-wrap:balance}
49
+ h1,h2{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:var(--lh-tight)}
50
+ p{margin:0}
51
+ strong,b{font-weight:600}
52
+ small{font-size:var(--text-sm)}
53
+ code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}
54
+ .kbd{display:inline-flex;align-items:center;gap:2px;min-width:22px;height:22px;padding:0 6px;border:var(--hairline);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:1}
55
+
56
+ .display-xl{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--display-xl);line-height:var(--lh-none);letter-spacing:var(--display-tracking)}
57
+ .display-l{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--display-l);line-height:1.02;letter-spacing:var(--display-tracking)}
58
+ .display-m{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--display-m);line-height:1.06;letter-spacing:var(--display-tracking)}
59
+ .display-s{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--display-s);line-height:1.1;letter-spacing:var(--display-tracking)}
60
+ .lead{font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.6;color:var(--ink-2);max-width:var(--measure)}
61
+ .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
62
+ .eyebrow::before{content:"";width:24px;height:1px;background:var(--accent)}
63
+ .eyebrow--plain::before{display:none}
64
+ .muted{color:var(--muted)}
65
+ .faint{color:var(--faint)}
66
+ .measure{max-width:var(--measure)}
67
+ .measure-narrow{max-width:var(--measure-narrow)}
68
+ .tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
69
+ .serif{font-family:var(--font-display)}
70
+ .mono{font-family:var(--font-mono)}
71
+ .italic{font-style:italic}
72
+ .caps{text-transform:uppercase;letter-spacing:.12em;font-size:var(--text-xs);font-weight:600}
73
+ .text-balance{text-wrap:balance}
74
+ .text-pretty{text-wrap:pretty}
75
+
76
+ /* ---- Сетка / раскладка ---- */
77
+ .container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
78
+ .container-wide{width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--gutter)}
79
+ .container-narrow{width:100%;max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--gutter)}
80
+ .section{padding-block:var(--section-y)}
81
+ .section--tight{padding-block:clamp(40px,5vw,72px)}
82
+ .section--flush-top{padding-top:0}
83
+ .section--surface{background:var(--surface)}
84
+ .section--alt{background:var(--bg-alt)}
85
+ .grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap-inline)}
86
+ .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-inline)}
87
+ .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-inline)}
88
+ .stack{display:flex;flex-direction:column}
89
+ .stack-2{gap:var(--sp-2)} .stack-3{gap:var(--sp-3)} .stack-4{gap:var(--sp-4)}
90
+ .stack-5{gap:var(--sp-5)} .stack-6{gap:var(--sp-6)} .stack-7{gap:var(--sp-7)}
91
+ .stack-8{gap:var(--sp-8)} .stack-10{gap:var(--sp-10)}
92
+ .cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4)}
93
+ .cluster--tight{gap:var(--sp-2)}
94
+ .between{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
95
+ .center{display:flex;align-items:center;justify-content:center}
96
+ .full{width:100%}
97
+ .rule{border-top:var(--hairline)}
98
+ .rule--strong{border-top:1px solid var(--line-strong)}
99
+
100
+ .section-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--gap-inline);align-items:end;margin-bottom:clamp(32px,4vw,56px)}
101
+ .section-head .lead{max-width:52ch}
102
+ .section-head--center{grid-template-columns:1fr;justify-items:center;text-align:center}
103
+ .section-head--center .lead{max-width:60ch}
104
+
105
+ /* Асимметричные сплиты */
106
+ .split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center}
107
+ .split--wide-left{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
108
+ .split--wide-right{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
109
+ .split--top{align-items:start}
110
+
111
+ /* Декоративная сетка-фон */
112
+ .grid-bg{position:relative;isolation:isolate}
113
+ .grid-bg::before{
114
+ content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
115
+ background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px);
116
+ background-size:calc(100% / 6) 100%;
117
+ mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
118
+ }
119
+
120
+ /* ---- Reveal on scroll ---- */
121
+ .reveal{opacity:0;transform:translateY(var(--reveal-shift));transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
122
+ .reveal.is-in{opacity:1;transform:none}
123
+ .reveal[data-delay="1"]{transition-delay:60ms}
124
+ .reveal[data-delay="2"]{transition-delay:120ms}
125
+ .reveal[data-delay="3"]{transition-delay:180ms}
126
+ .reveal[data-delay="4"]{transition-delay:240ms}
127
+ .reveal[data-delay="5"]{transition-delay:300ms}
128
+
129
+ /* ---- Доступность ---- */
130
+ .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
131
+ .skip-link{position:fixed;left:16px;top:-120px;z-index:var(--z-toast);padding:10px 16px;border-radius:var(--radius-control);background:var(--accent);color:var(--accent-contrast);font-weight:600;transition:top var(--dur) var(--ease)}
132
+ .skip-link:focus{top:16px;color:var(--accent-contrast)}
133
+
134
+ /* ---- Скроллбар ---- */
135
+ *{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
136
+ ::-webkit-scrollbar{width:10px;height:10px}
137
+ ::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:2px solid var(--bg)}
138
+ ::-webkit-scrollbar-track{background:transparent}
139
+
140
+ /* ---- Адаптив ---- */
141
+ @media (max-width:1024px){
142
+ .split,.split--wide-left,.split--wide-right{grid-template-columns:1fr;gap:clamp(24px,4vw,40px)}
143
+ .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
144
+ .section-head{grid-template-columns:1fr;align-items:start}
145
+ }
146
+ @media (max-width:720px){
147
+ :root{--header-h:64px}
148
+ .grid-2,.grid-3{grid-template-columns:1fr}
149
+ .section-head{margin-bottom:32px}
150
+ .hide-mobile{display:none!important}
151
+ }
152
+ @media (prefers-reduced-motion:reduce){
153
+ *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
154
+ .reveal{opacity:1;transform:none}
155
+ }
156
+ @media print{
157
+ body::before,.skip-link{display:none}
158
+ }