Inkvec 0.2: the presentation page, and Inkvec Studio Lite under studio/
Browse files- studio/LICENSE +201 -201
- studio/STUDIO_THIRD_PARTY.md +200 -137
- studio/THIRD_PARTY.md +2 -3
- studio/assets/main--3-Ll9JM.js +0 -0
- studio/assets/main-C8vHcyec.css +1 -0
- studio/assets/main-DOUNaj7B.css +0 -1
- studio/assets/main-Dn0s9OJH.js +0 -0
- studio/index.html +3 -3
- studio/pkg-threads/inkvec_studio_wasm.js +1 -1
- studio/pkg-threads/inkvec_studio_wasm_bg.wasm +2 -2
- studio/pkg-threads/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.js +1 -1
- studio/pkg/inkvec_studio_wasm.js +1 -1
- studio/pkg/inkvec_studio_wasm_bg.wasm +2 -2
studio/LICENSE
CHANGED
|
@@ -1,201 +1,201 @@
|
|
| 1 |
-
Apache License
|
| 2 |
-
Version 2.0, January 2004
|
| 3 |
-
http://www.apache.org/licenses/
|
| 4 |
-
|
| 5 |
-
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
-
|
| 7 |
-
1. Definitions.
|
| 8 |
-
|
| 9 |
-
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
-
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
-
|
| 12 |
-
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
-
the copyright owner that is granting the License.
|
| 14 |
-
|
| 15 |
-
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
-
other entities that control, are controlled by, or are under common
|
| 17 |
-
control with that entity. For the purposes of this definition,
|
| 18 |
-
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
-
direction or management of such entity, whether by contract or
|
| 20 |
-
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
-
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
-
|
| 23 |
-
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
-
exercising permissions granted by this License.
|
| 25 |
-
|
| 26 |
-
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
-
including but not limited to software source code, documentation
|
| 28 |
-
source, and configuration files.
|
| 29 |
-
|
| 30 |
-
"Object" form shall mean any form resulting from mechanical
|
| 31 |
-
transformation or translation of a Source form, including but
|
| 32 |
-
not limited to compiled object code, generated documentation,
|
| 33 |
-
and conversions to other media types.
|
| 34 |
-
|
| 35 |
-
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
-
Object form, made available under the License, as indicated by a
|
| 37 |
-
copyright notice that is included in or attached to the work
|
| 38 |
-
(an example is provided in the Appendix below).
|
| 39 |
-
|
| 40 |
-
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
-
form, that is based on (or derived from) the Work and for which the
|
| 42 |
-
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
-
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
-
of this License, Derivative Works shall not include works that remain
|
| 45 |
-
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
-
the Work and Derivative Works thereof.
|
| 47 |
-
|
| 48 |
-
"Contribution" shall mean any work of authorship, including
|
| 49 |
-
the original version of the Work and any modifications or additions
|
| 50 |
-
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
-
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
-
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
-
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
-
means any form of electronic, verbal, or written communication sent
|
| 55 |
-
to the Licensor or its representatives, including but not limited to
|
| 56 |
-
communication on electronic mailing lists, source code control systems,
|
| 57 |
-
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
-
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
-
excluding communication that is conspicuously marked or otherwise
|
| 60 |
-
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
-
|
| 62 |
-
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
-
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
-
subsequently incorporated within the Work.
|
| 65 |
-
|
| 66 |
-
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
-
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
-
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
-
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
-
Work and such Derivative Works in Source or Object form.
|
| 72 |
-
|
| 73 |
-
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
-
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
-
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
-
(except as stated in this section) patent license to make, have made,
|
| 77 |
-
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
-
where such license applies only to those patent claims licensable
|
| 79 |
-
by such Contributor that are necessarily infringed by their
|
| 80 |
-
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
-
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
-
institute patent litigation against any entity (including a
|
| 83 |
-
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
-
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
-
or contributory patent infringement, then any patent licenses
|
| 86 |
-
granted to You under this License for that Work shall terminate
|
| 87 |
-
as of the date such litigation is filed.
|
| 88 |
-
|
| 89 |
-
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
-
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
-
modifications, and in Source or Object form, provided that You
|
| 92 |
-
meet the following conditions:
|
| 93 |
-
|
| 94 |
-
(a) You must give any other recipients of the Work or
|
| 95 |
-
Derivative Works a copy of this License; and
|
| 96 |
-
|
| 97 |
-
(b) You must cause any modified files to carry prominent notices
|
| 98 |
-
stating that You changed the files; and
|
| 99 |
-
|
| 100 |
-
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
-
that You distribute, all copyright, patent, trademark, and
|
| 102 |
-
attribution notices from the Source form of the Work,
|
| 103 |
-
excluding those notices that do not pertain to any part of
|
| 104 |
-
the Derivative Works; and
|
| 105 |
-
|
| 106 |
-
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
-
distribution, then any Derivative Works that You distribute must
|
| 108 |
-
include a readable copy of the attribution notices contained
|
| 109 |
-
within such NOTICE file, excluding those notices that do not
|
| 110 |
-
pertain to any part of the Derivative Works, in at least one
|
| 111 |
-
of the following places: within a NOTICE text file distributed
|
| 112 |
-
as part of the Derivative Works; within the Source form or
|
| 113 |
-
documentation, if provided along with the Derivative Works; or,
|
| 114 |
-
within a display generated by the Derivative Works, if and
|
| 115 |
-
wherever such third-party notices normally appear. The contents
|
| 116 |
-
of the NOTICE file are for informational purposes only and
|
| 117 |
-
do not modify the License. You may add Your own attribution
|
| 118 |
-
notices within Derivative Works that You distribute, alongside
|
| 119 |
-
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
-
that such additional attribution notices cannot be construed
|
| 121 |
-
as modifying the License.
|
| 122 |
-
|
| 123 |
-
You may add Your own copyright statement to Your modifications and
|
| 124 |
-
may provide additional or different license terms and conditions
|
| 125 |
-
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
-
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
-
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
-
the conditions stated in this License.
|
| 129 |
-
|
| 130 |
-
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
-
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
-
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
-
this License, without any additional terms or conditions.
|
| 134 |
-
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
-
the terms of any separate license agreement you may have executed
|
| 136 |
-
with Licensor regarding such Contributions.
|
| 137 |
-
|
| 138 |
-
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
-
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
-
except as required for reasonable and customary use in describing the
|
| 141 |
-
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
-
|
| 143 |
-
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
-
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
-
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
-
implied, including, without limitation, any warranties or conditions
|
| 148 |
-
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
-
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
-
appropriateness of using or redistributing the Work and assume any
|
| 151 |
-
risks associated with Your exercise of permissions under this License.
|
| 152 |
-
|
| 153 |
-
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
-
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
-
unless required by applicable law (such as deliberate and grossly
|
| 156 |
-
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
-
liable to You for damages, including any direct, indirect, special,
|
| 158 |
-
incidental, or consequential damages of any character arising as a
|
| 159 |
-
result of this License or out of the use or inability to use the
|
| 160 |
-
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
-
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
-
other commercial damages or losses), even if such Contributor
|
| 163 |
-
has been advised of the possibility of such damages.
|
| 164 |
-
|
| 165 |
-
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
-
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
-
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
-
or other liability obligations and/or rights consistent with this
|
| 169 |
-
License. However, in accepting such obligations, You may act only
|
| 170 |
-
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
-
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
-
defend, and hold each Contributor harmless for any liability
|
| 173 |
-
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
-
of your accepting any such warranty or additional liability.
|
| 175 |
-
|
| 176 |
-
END OF TERMS AND CONDITIONS
|
| 177 |
-
|
| 178 |
-
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
-
|
| 180 |
-
To apply the Apache License to your work, attach the following
|
| 181 |
-
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
-
replaced with your own identifying information. (Don't include
|
| 183 |
-
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
-
comment syntax for the file format. We also recommend that a
|
| 185 |
-
file or class name and description of purpose be included on the
|
| 186 |
-
same "printed page" as the copyright notice for easier
|
| 187 |
-
identification within third-party archives.
|
| 188 |
-
|
| 189 |
-
Copyright [yyyy] [name of copyright owner]
|
| 190 |
-
|
| 191 |
-
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
-
you may not use this file except in compliance with the License.
|
| 193 |
-
You may obtain a copy of the License at
|
| 194 |
-
|
| 195 |
-
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
-
|
| 197 |
-
Unless required by applicable law or agreed to in writing, software
|
| 198 |
-
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
-
See the License for the specific language governing permissions and
|
| 201 |
-
limitations under the License.
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or
|
| 95 |
+
Derivative Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Don't include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
studio/STUDIO_THIRD_PARTY.md
CHANGED
|
@@ -3,15 +3,15 @@
|
|
| 3 |
Generated by `studio/tools/third_party.py`. Regenerate it after changing dependencies.
|
| 4 |
Inkvec Studio itself is licensed under Apache-2.0 (`LICENSE`); Inkvec Studio Lite, its browser build, is the same code and the same licence.
|
| 5 |
|
| 6 |
-
|
| 7 |
|
| 8 |
Not under a plainly permissive licence, with the smallest build that compiles them. None is copyleft in a way that reaches this app: MPL-2.0 is file-level and these crates are used unmodified.
|
| 9 |
|
| 10 |
-
- `cssparser` — MPL-2.0 (
|
| 11 |
-
- `cssparser-macros` — MPL-2.0 (
|
| 12 |
-
- `dtoa-short` — MPL-2.0 (
|
| 13 |
- `option-ext` — MPL-2.0 (default)
|
| 14 |
-
- `selectors` — MPL-2.0 (
|
| 15 |
|
| 16 |
## Trademarks
|
| 17 |
|
|
@@ -42,18 +42,18 @@ removed from the showcases and the benchmark data.
|
|
| 42 |
| `async-io` | Apache-2.0 OR MIT | linux |
|
| 43 |
| `async-lock` | Apache-2.0 OR MIT | linux |
|
| 44 |
| `async-process` | Apache-2.0 OR MIT | linux |
|
| 45 |
-
| `async-recursion` | MIT OR Apache-2.0 |
|
| 46 |
| `async-signal` | Apache-2.0 OR MIT | linux |
|
| 47 |
| `async-task` | Apache-2.0 OR MIT | linux |
|
| 48 |
-
| `async-trait` | MIT OR Apache-2.0 |
|
| 49 |
| `atk` | MIT | linux |
|
| 50 |
| `atk-sys` | MIT | linux |
|
| 51 |
| `atomic-waker` | Apache-2.0 OR MIT | linux |
|
| 52 |
-
| `autocfg` | Apache-2.0 OR MIT |
|
| 53 |
| `base64` | MIT OR Apache-2.0 | default |
|
| 54 |
-
| `base64ct` | Apache-2.0 OR MIT |
|
| 55 |
-
| `bit-set` | Apache-2.0 OR MIT |
|
| 56 |
-
| `bit-vec` | Apache-2.0 OR MIT |
|
| 57 |
| `bitflags` | MIT OR Apache-2.0 | default |
|
| 58 |
| `block-buffer` | MIT OR Apache-2.0 | default |
|
| 59 |
| `block2` | MIT | macos |
|
|
@@ -67,16 +67,18 @@ removed from the showcases and the benchmark data.
|
|
| 67 |
| `bytes` | MIT | default |
|
| 68 |
| `cairo-rs` | MIT | linux |
|
| 69 |
| `cairo-sys-rs` | MIT | linux |
|
| 70 |
-
| `camino` | MIT OR Apache-2.0 |
|
| 71 |
-
| `cargo-platform` | MIT OR Apache-2.0 |
|
| 72 |
-
| `cargo_metadata` | MIT |
|
| 73 |
-
| `cargo_toml` | Apache-2.0 OR MIT |
|
| 74 |
-
| `cc` | MIT OR Apache-2.0 |
|
|
|
|
| 75 |
| `cfb` | MIT | default |
|
| 76 |
-
| `cfg-expr` | MIT OR Apache-2.0 |
|
| 77 |
| `cfg-if` | MIT OR Apache-2.0 | default |
|
| 78 |
-
| `clipboard-win` | BSL-1.0 |
|
| 79 |
| `color_quant` | MIT | default |
|
|
|
|
| 80 |
| `concurrent-queue` | Apache-2.0 OR MIT | linux |
|
| 81 |
| `console_error_panic_hook` | Apache-2.0/MIT | browser |
|
| 82 |
| `const-oid` | Apache-2.0 OR MIT | default |
|
|
@@ -91,58 +93,59 @@ removed from the showcases and the benchmark data.
|
|
| 91 |
| `crossbeam-deque` | MIT OR Apache-2.0 | default |
|
| 92 |
| `crossbeam-epoch` | MIT OR Apache-2.0 | default |
|
| 93 |
| `crossbeam-utils` | MIT OR Apache-2.0 | default |
|
|
|
|
| 94 |
| `crypto-common` | MIT OR Apache-2.0 | default |
|
| 95 |
-
| `cssparser` | MPL-2.0 |
|
| 96 |
-
| `cssparser-macros` | MPL-2.0 |
|
| 97 |
| `ctor` | Apache-2.0 OR MIT | default |
|
| 98 |
-
| `ctor-proc-macro` | Apache-2.0 OR MIT |
|
| 99 |
-
| `darling` | MIT |
|
| 100 |
-
| `darling_core` | MIT |
|
| 101 |
-
| `darling_macro` | MIT |
|
| 102 |
| `data-url` | MIT OR Apache-2.0 | default |
|
| 103 |
| `dbus` | Apache-2.0/MIT | linux |
|
| 104 |
-
| `der` | Apache-2.0 OR MIT |
|
| 105 |
| `deranged` | MIT OR Apache-2.0 | default |
|
| 106 |
-
| `derive_more` | MIT |
|
| 107 |
-
| `derive_more-impl` | MIT |
|
| 108 |
| `digest` | MIT OR Apache-2.0 | default |
|
| 109 |
| `dirs` | MIT OR Apache-2.0 | default |
|
| 110 |
| `dirs-sys` | MIT OR Apache-2.0 | default |
|
| 111 |
| `dispatch2` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 112 |
-
| `displaydoc` | MIT OR Apache-2.0 |
|
| 113 |
| `dlopen2` | MIT | linux |
|
| 114 |
-
| `dlopen2_derive` | MIT |
|
| 115 |
-
| `dom_query` | MIT |
|
| 116 |
| `downcast-rs` | MIT/Apache-2.0 | linux |
|
| 117 |
| `dpi` | Apache-2.0 AND MIT | default |
|
| 118 |
-
| `dtoa` | MIT OR Apache-2.0 |
|
| 119 |
-
| `dtoa-short` | MPL-2.0 |
|
| 120 |
| `dunce` | CC0-1.0 OR MIT-0 OR Apache-2.0 | default |
|
| 121 |
-
| `dyn-clone` | MIT OR Apache-2.0 |
|
| 122 |
| `either` | MIT OR Apache-2.0 | default |
|
| 123 |
-
| `embed-resource` | MIT |
|
| 124 |
| `embed_plist` | MIT OR Apache-2.0 | macos |
|
| 125 |
| `endi` | MIT | linux |
|
| 126 |
| `enumflags2` | MIT OR Apache-2.0 | linux |
|
| 127 |
-
| `enumflags2_derive` | MIT OR Apache-2.0 |
|
| 128 |
| `equivalent` | Apache-2.0 OR MIT | default |
|
| 129 |
| `erased-serde` | MIT OR Apache-2.0 | default |
|
| 130 |
| `errno` | MIT OR Apache-2.0 | linux |
|
| 131 |
-
| `error-code` | BSL-1.0 |
|
| 132 |
| `event-listener` | Apache-2.0 OR MIT | linux |
|
| 133 |
| `event-listener-strategy` | Apache-2.0 OR MIT | linux |
|
| 134 |
-
| `fastrand` | Apache-2.0 OR MIT |
|
| 135 |
| `fax` | MIT | default |
|
| 136 |
| `fdeflate` | MIT OR Apache-2.0 | default |
|
| 137 |
| `field-offset` | MIT OR Apache-2.0 | linux |
|
| 138 |
-
| `find-msvc-tools` | MIT OR Apache-2.0 |
|
| 139 |
| `fixedbitset` | MIT OR Apache-2.0 | linux |
|
| 140 |
| `flate2` | MIT OR Apache-2.0 | default |
|
| 141 |
| `float-cmp` | MIT | default |
|
| 142 |
| `fnv` | Apache-2.0 / MIT | default |
|
| 143 |
-
| `foldhash` | Zlib |
|
| 144 |
| `foreign-types` | MIT/Apache-2.0 | macos |
|
| 145 |
-
| `foreign-types-macros` | MIT/Apache-2.0 |
|
| 146 |
| `foreign-types-shared` | MIT/Apache-2.0 | macos |
|
| 147 |
| `form_urlencoded` | MIT OR Apache-2.0 | default |
|
| 148 |
| `futures-channel` | MIT OR Apache-2.0 | linux |
|
|
@@ -150,7 +153,8 @@ removed from the showcases and the benchmark data.
|
|
| 150 |
| `futures-executor` | MIT OR Apache-2.0 | linux |
|
| 151 |
| `futures-io` | MIT OR Apache-2.0 | linux |
|
| 152 |
| `futures-lite` | Apache-2.0 OR MIT | linux |
|
| 153 |
-
| `futures-macro` | MIT OR Apache-2.0 |
|
|
|
|
| 154 |
| `futures-task` | MIT OR Apache-2.0 | linux |
|
| 155 |
| `futures-util` | MIT OR Apache-2.0 | linux |
|
| 156 |
| `gdk` | MIT | linux |
|
|
@@ -167,29 +171,34 @@ removed from the showcases and the benchmark data.
|
|
| 167 |
| `gio` | MIT | linux |
|
| 168 |
| `gio-sys` | MIT | linux |
|
| 169 |
| `glib` | MIT | linux |
|
| 170 |
-
| `glib-macros` | MIT |
|
| 171 |
| `glib-sys` | MIT | linux |
|
| 172 |
| `glob` | MIT OR Apache-2.0 | default |
|
| 173 |
| `gobject-sys` | MIT | linux |
|
| 174 |
| `gtk` | MIT | linux |
|
| 175 |
| `gtk-sys` | MIT | linux |
|
| 176 |
-
| `gtk3-macros` | MIT |
|
| 177 |
| `half` | MIT OR Apache-2.0 | default |
|
| 178 |
| `hashbrown` | MIT OR Apache-2.0 | default |
|
| 179 |
| `heck` | MIT OR Apache-2.0 | default |
|
|
|
|
| 180 |
| `hex` | MIT OR Apache-2.0 | linux |
|
| 181 |
-
| `hmac-sha256` | ISC |
|
| 182 |
-
| `html5ever` | MIT OR Apache-2.0 |
|
| 183 |
| `http` | MIT OR Apache-2.0 | default |
|
|
|
|
|
|
|
| 184 |
| `http-range` | MIT | default |
|
| 185 |
| `httparse` | MIT OR Apache-2.0 | default |
|
| 186 |
| `hybrid-array` | MIT OR Apache-2.0 | default |
|
|
|
|
|
|
|
| 187 |
| `i_float` | MIT | default |
|
| 188 |
| `i_key_sort` | MIT | default |
|
| 189 |
| `i_overlay` | MIT OR Apache-2.0 | default |
|
| 190 |
| `i_shape` | MIT | default |
|
| 191 |
| `i_tree` | MIT | default |
|
| 192 |
-
| `ico` | MIT |
|
| 193 |
| `icu_collections` | Unicode-3.0 | default |
|
| 194 |
| `icu_locale_core` | Unicode-3.0 | default |
|
| 195 |
| `icu_normalizer` | Unicode-3.0 | default |
|
|
@@ -197,7 +206,7 @@ removed from the showcases and the benchmark data.
|
|
| 197 |
| `icu_properties` | Unicode-3.0 | default |
|
| 198 |
| `icu_properties_data` | Unicode-3.0 | default |
|
| 199 |
| `icu_provider` | Unicode-3.0 | default |
|
| 200 |
-
| `ident_case` | MIT/Apache-2.0 |
|
| 201 |
| `idna` | MIT OR Apache-2.0 | default |
|
| 202 |
| `idna_adapter` | Apache-2.0 OR MIT | default |
|
| 203 |
| `image` | MIT OR Apache-2.0 | default |
|
|
@@ -205,11 +214,15 @@ removed from the showcases and the benchmark data.
|
|
| 205 |
| `imagesize` | MIT | default |
|
| 206 |
| `indexmap` | Apache-2.0 OR MIT | default |
|
| 207 |
| `infer` | MIT | default |
|
|
|
|
| 208 |
| `is-docker` | MIT | linux |
|
| 209 |
| `is-wsl` | MIT | linux |
|
| 210 |
| `itoa` | MIT OR Apache-2.0 | default |
|
| 211 |
| `javascriptcore-rs` | MIT | linux |
|
| 212 |
| `javascriptcore-rs-sys` | MIT | linux |
|
|
|
|
|
|
|
|
|
|
| 213 |
| `js-sys` | MIT OR Apache-2.0 | browser |
|
| 214 |
| `json-patch` | MIT/Apache-2.0 | default |
|
| 215 |
| `jsonptr` | MIT OR Apache-2.0 | default |
|
|
@@ -218,12 +231,13 @@ removed from the showcases and the benchmark data.
|
|
| 218 |
| `libc` | MIT OR Apache-2.0 | default |
|
| 219 |
| `libdbus-sys` | Apache-2.0/MIT | linux |
|
| 220 |
| `libm` | MIT | default |
|
|
|
|
| 221 |
| `linux-raw-sys` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | linux |
|
| 222 |
| `litemap` | Unicode-3.0 | default |
|
| 223 |
-
| `lock_api` | MIT OR Apache-2.0 |
|
| 224 |
| `log` | MIT OR Apache-2.0 | default |
|
| 225 |
-
| `lzma-rust2` | Apache-2.0 |
|
| 226 |
-
| `markup5ever` | MIT OR Apache-2.0 |
|
| 227 |
| `memchr` | Unlicense OR MIT | default |
|
| 228 |
| `memoffset` | MIT | linux |
|
| 229 |
| `mime` | MIT OR Apache-2.0 | default |
|
|
@@ -231,21 +245,37 @@ removed from the showcases and the benchmark data.
|
|
| 231 |
| `mio` | MIT | default |
|
| 232 |
| `moxcms` | BSD-3-Clause OR Apache-2.0 | default |
|
| 233 |
| `muda` | Apache-2.0 OR MIT | default |
|
| 234 |
-
| `native-tls` | MIT OR Apache-2.0 |
|
| 235 |
-
| `
|
|
|
|
|
|
|
| 236 |
| `nom` | MIT | linux |
|
| 237 |
| `num-conv` | MIT OR Apache-2.0 | default |
|
| 238 |
| `num-traits` | MIT OR Apache-2.0 | default |
|
|
|
|
|
|
|
| 239 |
| `objc2` | MIT | macos |
|
| 240 |
| `objc2-app-kit` | Zlib OR Apache-2.0 OR MIT | macos |
|
|
|
|
|
|
|
| 241 |
| `objc2-core-foundation` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 242 |
| `objc2-core-graphics` | Zlib OR Apache-2.0 OR MIT | macos |
|
|
|
|
|
|
|
|
|
|
| 243 |
| `objc2-encode` | MIT | macos |
|
| 244 |
| `objc2-exception-helper` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 245 |
| `objc2-foundation` | MIT | macos |
|
|
|
|
|
|
|
|
|
|
| 246 |
| `objc2-web-kit` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 247 |
| `once_cell` | MIT OR Apache-2.0 | default |
|
| 248 |
| `open` | MIT | default |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 249 |
| `option-ext` | MPL-2.0 | default |
|
| 250 |
| `ordered-stream` | MIT OR Apache-2.0 | linux |
|
| 251 |
| `ort` | MIT OR Apache-2.0 | default |
|
|
@@ -254,76 +284,82 @@ removed from the showcases and the benchmark data.
|
|
| 254 |
| `pango` | MIT | linux |
|
| 255 |
| `pango-sys` | MIT | linux |
|
| 256 |
| `parking` | Apache-2.0 OR MIT | linux |
|
| 257 |
-
| `parking_lot` | MIT OR Apache-2.0 |
|
| 258 |
-
| `parking_lot_core` | MIT OR Apache-2.0 |
|
| 259 |
-
| `pem-rfc7468` | Apache-2.0 OR MIT |
|
| 260 |
| `percent-encoding` | MIT OR Apache-2.0 | default |
|
| 261 |
| `petgraph` | MIT OR Apache-2.0 | linux |
|
| 262 |
| `phf` | MIT | default |
|
| 263 |
-
| `phf_codegen` | MIT |
|
| 264 |
-
| `phf_generator` | MIT |
|
| 265 |
-
| `phf_macros` | MIT |
|
| 266 |
| `phf_shared` | MIT | default |
|
| 267 |
| `pico-args` | MIT | default |
|
| 268 |
| `pin-project-lite` | Apache-2.0 OR MIT | default |
|
| 269 |
| `piper` | MIT OR Apache-2.0 | linux |
|
| 270 |
-
| `pkg-config` | MIT OR Apache-2.0 |
|
| 271 |
| `plist` | MIT | default |
|
| 272 |
| `png` | MIT OR Apache-2.0 | default |
|
| 273 |
| `polling` | Apache-2.0 OR MIT | linux |
|
| 274 |
| `polycool` | MIT OR Apache-2.0 | default |
|
| 275 |
| `potential_utf` | Unicode-3.0 | default |
|
| 276 |
| `powerfmt` | MIT OR Apache-2.0 | default |
|
| 277 |
-
| `precomputed-hash` | MIT |
|
| 278 |
-
| `proc-macro-crate` | MIT OR Apache-2.0 |
|
| 279 |
-
| `proc-macro-error` | MIT OR Apache-2.0 |
|
| 280 |
-
| `proc-macro-error-attr` | MIT OR Apache-2.0 |
|
| 281 |
-
| `proc-macro2` | MIT OR Apache-2.0 |
|
| 282 |
| `pxfm` | BSD-3-Clause OR Apache-2.0 | default |
|
| 283 |
| `quick-error` | MIT/Apache-2.0 | default |
|
| 284 |
| `quick-xml` | MIT | default |
|
| 285 |
-
| `quote` | MIT OR Apache-2.0 |
|
|
|
|
| 286 |
| `raw-window-handle` | MIT OR Apache-2.0 OR Zlib | default |
|
| 287 |
| `rayon` | MIT OR Apache-2.0 | default |
|
| 288 |
| `rayon-core` | MIT OR Apache-2.0 | default |
|
|
|
|
|
|
|
| 289 |
| `regex` | MIT OR Apache-2.0 | default |
|
| 290 |
| `regex-automata` | MIT OR Apache-2.0 | default |
|
| 291 |
| `regex-syntax` | MIT OR Apache-2.0 | default |
|
|
|
|
| 292 |
| `resvg` | Apache-2.0 OR MIT | default |
|
| 293 |
| `rfd` | MIT | default |
|
| 294 |
| `rgb` | MIT | default |
|
| 295 |
| `ring` | Apache-2.0 AND ISC | default |
|
| 296 |
| `robust` | MIT OR Apache-2.0 | default |
|
| 297 |
| `roxmltree` | MIT OR Apache-2.0 | default |
|
| 298 |
-
| `rustc-hash` | Apache-2.0 OR MIT |
|
| 299 |
-
| `rustc_version` | MIT OR Apache-2.0 |
|
| 300 |
| `rustix` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | linux |
|
| 301 |
| `rustls` | Apache-2.0 OR ISC OR MIT | default |
|
| 302 |
| `rustls-pki-types` | MIT OR Apache-2.0 | default |
|
| 303 |
| `rustls-webpki` | ISC | default |
|
| 304 |
-
| `rustversion` | MIT OR Apache-2.0 |
|
| 305 |
| `same-file` | Unlicense/MIT | default |
|
| 306 |
-
| `schannel` | MIT |
|
| 307 |
-
| `schemars` | MIT |
|
| 308 |
-
| `schemars_derive` | MIT |
|
| 309 |
-
| `scopeguard` | MIT OR Apache-2.0 |
|
| 310 |
-
| `
|
|
|
|
|
|
|
| 311 |
| `semver` | MIT OR Apache-2.0 | default |
|
| 312 |
| `serde` | MIT OR Apache-2.0 | default |
|
| 313 |
| `serde-untagged` | MIT OR Apache-2.0 | default |
|
| 314 |
| `serde_core` | MIT OR Apache-2.0 | default |
|
| 315 |
-
| `serde_derive` | MIT OR Apache-2.0 |
|
| 316 |
-
| `serde_derive_internals` | MIT OR Apache-2.0 |
|
| 317 |
| `serde_json` | MIT OR Apache-2.0 | default |
|
| 318 |
-
| `serde_repr` | MIT OR Apache-2.0 |
|
| 319 |
| `serde_spanned` | MIT OR Apache-2.0 | default |
|
| 320 |
| `serde_with` | MIT OR Apache-2.0 | default |
|
| 321 |
-
| `serde_with_macros` | MIT OR Apache-2.0 |
|
| 322 |
| `serialize-to-javascript` | MIT OR Apache-2.0 | default |
|
| 323 |
-
| `serialize-to-javascript-impl` | MIT OR Apache-2.0 |
|
| 324 |
-
| `servo_arc` | MIT OR Apache-2.0 |
|
| 325 |
| `sha2` | MIT OR Apache-2.0 | default |
|
| 326 |
-
| `shlex` | MIT OR Apache-2.0 |
|
| 327 |
| `signal-hook-registry` | MIT OR Apache-2.0 | linux |
|
| 328 |
| `simd-adler32` | MIT | default |
|
| 329 |
| `simplecss` | Apache-2.0 OR MIT | default |
|
|
@@ -331,27 +367,30 @@ removed from the showcases and the benchmark data.
|
|
| 331 |
| `slab` | MIT | linux |
|
| 332 |
| `smallvec` | MIT OR Apache-2.0 | default |
|
| 333 |
| `socket2` | MIT OR Apache-2.0 | default |
|
| 334 |
-
| `socks` | MIT/Apache-2.0 |
|
| 335 |
-
| `softbuffer` | MIT OR Apache-2.0 |
|
| 336 |
| `soup3` | MIT | linux |
|
| 337 |
| `soup3-sys` | MIT | linux |
|
| 338 |
| `stable_deref_trait` | MIT OR Apache-2.0 | default |
|
| 339 |
| `strict-num` | MIT | default |
|
| 340 |
-
| `string_cache` | MIT OR Apache-2.0 |
|
| 341 |
-
| `string_cache_codegen` | MIT OR Apache-2.0 |
|
| 342 |
-
| `strsim` | MIT |
|
| 343 |
| `subtle` | BSD-3-Clause | default |
|
| 344 |
| `svgtypes` | Apache-2.0 OR MIT | default |
|
| 345 |
-
| `
|
| 346 |
-
| `
|
| 347 |
-
| `
|
|
|
|
|
|
|
| 348 |
| `tao` | Apache-2.0 | default |
|
| 349 |
-
| `
|
|
|
|
| 350 |
| `tauri` | Apache-2.0 OR MIT | default |
|
| 351 |
-
| `tauri-build` | Apache-2.0 OR MIT |
|
| 352 |
-
| `tauri-codegen` | Apache-2.0 OR MIT |
|
| 353 |
-
| `tauri-macros` | Apache-2.0 OR MIT |
|
| 354 |
-
| `tauri-plugin` | Apache-2.0 OR MIT |
|
| 355 |
| `tauri-plugin-clipboard-manager` | Apache-2.0 OR MIT | default |
|
| 356 |
| `tauri-plugin-dialog` | Apache-2.0 OR MIT | default |
|
| 357 |
| `tauri-plugin-fs` | Apache-2.0 OR MIT | default |
|
|
@@ -360,36 +399,44 @@ removed from the showcases and the benchmark data.
|
|
| 360 |
| `tauri-runtime` | Apache-2.0 OR MIT | default |
|
| 361 |
| `tauri-runtime-wry` | Apache-2.0 OR MIT | default |
|
| 362 |
| `tauri-utils` | Apache-2.0 OR MIT | default |
|
| 363 |
-
| `tauri-winres` | MIT |
|
| 364 |
-
| `
|
|
|
|
| 365 |
| `thiserror` | MIT OR Apache-2.0 | default |
|
| 366 |
-
| `thiserror-impl` | MIT OR Apache-2.0 |
|
| 367 |
| `tiff` | MIT | default |
|
| 368 |
| `time` | MIT OR Apache-2.0 | default |
|
| 369 |
| `time-core` | MIT OR Apache-2.0 | default |
|
| 370 |
-
| `time-macros` | MIT OR Apache-2.0 |
|
| 371 |
| `tiny-skia` | BSD-3-Clause | default |
|
| 372 |
| `tiny-skia-path` | BSD-3-Clause | default |
|
| 373 |
| `tinystr` | Unicode-3.0 | default |
|
| 374 |
| `tokio` | MIT | default |
|
|
|
|
| 375 |
| `toml` | MIT OR Apache-2.0 | default |
|
| 376 |
| `toml_datetime` | MIT OR Apache-2.0 | default |
|
| 377 |
-
| `toml_edit` | MIT OR Apache-2.0 |
|
| 378 |
| `toml_parser` | MIT OR Apache-2.0 | default |
|
| 379 |
| `toml_writer` | MIT OR Apache-2.0 | default |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 380 |
| `tracing` | MIT | default |
|
| 381 |
-
| `tracing-attributes` | MIT |
|
| 382 |
| `tracing-core` | MIT | default |
|
| 383 |
| `tree_magic_mini` | MIT | linux |
|
|
|
|
| 384 |
| `typed-path` | MIT OR Apache-2.0 | default |
|
| 385 |
| `typeid` | MIT OR Apache-2.0 | default |
|
| 386 |
| `typenum` | MIT OR Apache-2.0 | default |
|
|
|
|
| 387 |
| `unic-char-property` | MIT/Apache-2.0 | default |
|
| 388 |
| `unic-char-range` | MIT/Apache-2.0 | default |
|
| 389 |
| `unic-common` | MIT/Apache-2.0 | default |
|
| 390 |
| `unic-ucd-ident` | MIT/Apache-2.0 | default |
|
| 391 |
| `unic-ucd-version` | MIT/Apache-2.0 | default |
|
| 392 |
-
| `unicode-ident` | (MIT OR Apache-2.0) AND Unicode-3.0 |
|
| 393 |
| `unicode-segmentation` | MIT OR Apache-2.0 | default |
|
| 394 |
| `untrusted` | ISC | default |
|
| 395 |
| `ureq` | MIT OR Apache-2.0 | default |
|
|
@@ -400,54 +447,70 @@ removed from the showcases and the benchmark data.
|
|
| 400 |
| `utf8-zero` | MIT OR Apache-2.0 | default |
|
| 401 |
| `utf8_iter` | Apache-2.0 OR MIT | default |
|
| 402 |
| `uuid` | Apache-2.0 OR MIT | default |
|
| 403 |
-
| `
|
| 404 |
-
| `
|
| 405 |
-
| `
|
| 406 |
-
| `vswhom
|
|
|
|
| 407 |
| `walkdir` | Unlicense/MIT | default |
|
|
|
|
|
|
|
|
|
|
| 408 |
| `wasm-bindgen` | MIT OR Apache-2.0 | browser |
|
| 409 |
-
| `wasm-bindgen-
|
| 410 |
-
| `wasm-bindgen-macro
|
|
|
|
| 411 |
| `wasm-bindgen-rayon` | Apache-2.0 | browser, threads |
|
| 412 |
| `wasm-bindgen-shared` | MIT OR Apache-2.0 | browser |
|
|
|
|
| 413 |
| `wasm_sync` | MIT OR Apache-2.0 | browser, threads |
|
| 414 |
| `wayland-backend` | MIT | linux |
|
| 415 |
| `wayland-client` | MIT | linux |
|
| 416 |
| `wayland-protocols` | MIT | linux |
|
| 417 |
| `wayland-protocols-wlr` | MIT | linux |
|
| 418 |
-
| `wayland-scanner` | MIT |
|
| 419 |
| `wayland-sys` | MIT | linux |
|
| 420 |
| `web-sys` | MIT OR Apache-2.0 | browser, threads |
|
| 421 |
| `web-time` | MIT OR Apache-2.0 | browser |
|
| 422 |
-
| `web_atoms` | MIT OR Apache-2.0 |
|
| 423 |
| `webkit2gtk` | MIT | linux |
|
| 424 |
| `webkit2gtk-sys` | MIT | linux |
|
| 425 |
-
| `webpki-root-certs` | CDLA-Permissive-2.0 |
|
| 426 |
| `webpki-roots` | CDLA-Permissive-2.0 | default |
|
| 427 |
-
| `webview2-com` | MIT |
|
| 428 |
-
| `webview2-com-macros` | MIT |
|
| 429 |
-
| `webview2-com-sys` | MIT |
|
| 430 |
| `weezl` | MIT OR Apache-2.0 | default |
|
| 431 |
-
| `winapi` | MIT/Apache-2.0 |
|
| 432 |
-
| `winapi-
|
| 433 |
-
| `
|
| 434 |
-
| `windows` | MIT
|
| 435 |
-
| `
|
| 436 |
-
| `windows
|
| 437 |
-
| `windows-
|
| 438 |
-
| `windows-
|
| 439 |
-
| `windows-
|
| 440 |
-
| `windows-
|
| 441 |
-
| `windows-
|
| 442 |
-
| `windows-
|
| 443 |
-
| `windows-
|
| 444 |
-
| `windows-
|
| 445 |
-
| `windows-
|
| 446 |
-
| `windows-
|
| 447 |
-
| `windows-
|
| 448 |
-
| `
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 449 |
| `winnow` | MIT | default |
|
| 450 |
-
| `winreg` | MIT |
|
|
|
|
| 451 |
| `wl-clipboard-rs` | MIT/Apache-2.0 | linux |
|
| 452 |
| `writeable` | Unicode-3.0 | default |
|
| 453 |
| `wry` | Apache-2.0 OR MIT | default |
|
|
@@ -456,19 +519,19 @@ removed from the showcases and the benchmark data.
|
|
| 456 |
| `x11rb` | MIT OR Apache-2.0 | linux |
|
| 457 |
| `x11rb-protocol` | MIT OR Apache-2.0 | linux |
|
| 458 |
| `yoke` | Unicode-3.0 | default |
|
| 459 |
-
| `yoke-derive` | Unicode-3.0 |
|
| 460 |
| `zbus` | MIT | linux |
|
| 461 |
-
| `zbus_macros` | MIT |
|
| 462 |
| `zbus_names` | MIT | linux |
|
| 463 |
| `zcheapstr` | MIT | linux |
|
| 464 |
| `zerocopy` | BSD-2-Clause OR Apache-2.0 OR MIT | default |
|
| 465 |
-
| `zerocopy-derive` | BSD-2-Clause OR Apache-2.0 OR MIT |
|
| 466 |
| `zerofrom` | Unicode-3.0 | default |
|
| 467 |
-
| `zerofrom-derive` | Unicode-3.0 |
|
| 468 |
| `zeroize` | Apache-2.0 OR MIT | default |
|
| 469 |
| `zerotrie` | Unicode-3.0 | default |
|
| 470 |
| `zerovec` | Unicode-3.0 | default |
|
| 471 |
-
| `zerovec-derive` | Unicode-3.0 |
|
| 472 |
| `zip` | MIT | default |
|
| 473 |
| `zlib-rs` | Zlib | default |
|
| 474 |
| `zmij` | MIT | default |
|
|
@@ -476,7 +539,7 @@ removed from the showcases and the benchmark data.
|
|
| 476 |
| `zune-core` | MIT OR Apache-2.0 OR Zlib | default |
|
| 477 |
| `zune-jpeg` | MIT OR Apache-2.0 OR Zlib | default |
|
| 478 |
| `zvariant` | MIT | linux |
|
| 479 |
-
| `zvariant_derive` | MIT |
|
| 480 |
| `zvariant_utils` | MIT | linux |
|
| 481 |
|
| 482 |
## Bundled fonts
|
|
|
|
| 3 |
Generated by `studio/tools/third_party.py`. Regenerate it after changing dependencies.
|
| 4 |
Inkvec Studio itself is licensed under Apache-2.0 (`LICENSE`); Inkvec Studio Lite, its browser build, is the same code and the same licence.
|
| 5 |
|
| 6 |
+
513 Rust crates are compiled into the app (206 in every build; the rest only with the optional denoiser, only on the platform the Build column names, only in the browser build, or, marked build, only by a build script or macro while compiling).
|
| 7 |
|
| 8 |
Not under a plainly permissive licence, with the smallest build that compiles them. None is copyleft in a way that reaches this app: MPL-2.0 is file-level and these crates are used unmodified.
|
| 9 |
|
| 10 |
+
- `cssparser` — MPL-2.0 (build)
|
| 11 |
+
- `cssparser-macros` — MPL-2.0 (build)
|
| 12 |
+
- `dtoa-short` — MPL-2.0 (build)
|
| 13 |
- `option-ext` — MPL-2.0 (default)
|
| 14 |
+
- `selectors` — MPL-2.0 (build)
|
| 15 |
|
| 16 |
## Trademarks
|
| 17 |
|
|
|
|
| 42 |
| `async-io` | Apache-2.0 OR MIT | linux |
|
| 43 |
| `async-lock` | Apache-2.0 OR MIT | linux |
|
| 44 |
| `async-process` | Apache-2.0 OR MIT | linux |
|
| 45 |
+
| `async-recursion` | MIT OR Apache-2.0 | build |
|
| 46 |
| `async-signal` | Apache-2.0 OR MIT | linux |
|
| 47 |
| `async-task` | Apache-2.0 OR MIT | linux |
|
| 48 |
+
| `async-trait` | MIT OR Apache-2.0 | build |
|
| 49 |
| `atk` | MIT | linux |
|
| 50 |
| `atk-sys` | MIT | linux |
|
| 51 |
| `atomic-waker` | Apache-2.0 OR MIT | linux |
|
| 52 |
+
| `autocfg` | Apache-2.0 OR MIT | build |
|
| 53 |
| `base64` | MIT OR Apache-2.0 | default |
|
| 54 |
+
| `base64ct` | Apache-2.0 OR MIT | build |
|
| 55 |
+
| `bit-set` | Apache-2.0 OR MIT | build |
|
| 56 |
+
| `bit-vec` | Apache-2.0 OR MIT | build |
|
| 57 |
| `bitflags` | MIT OR Apache-2.0 | default |
|
| 58 |
| `block-buffer` | MIT OR Apache-2.0 | default |
|
| 59 |
| `block2` | MIT | macos |
|
|
|
|
| 67 |
| `bytes` | MIT | default |
|
| 68 |
| `cairo-rs` | MIT | linux |
|
| 69 |
| `cairo-sys-rs` | MIT | linux |
|
| 70 |
+
| `camino` | MIT OR Apache-2.0 | build |
|
| 71 |
+
| `cargo-platform` | MIT OR Apache-2.0 | build |
|
| 72 |
+
| `cargo_metadata` | MIT | build |
|
| 73 |
+
| `cargo_toml` | Apache-2.0 OR MIT | build |
|
| 74 |
+
| `cc` | MIT OR Apache-2.0 | build |
|
| 75 |
+
| `cesu8` | Apache-2.0/MIT | build |
|
| 76 |
| `cfb` | MIT | default |
|
| 77 |
+
| `cfg-expr` | MIT OR Apache-2.0 | build |
|
| 78 |
| `cfg-if` | MIT OR Apache-2.0 | default |
|
| 79 |
+
| `clipboard-win` | BSL-1.0 | windows |
|
| 80 |
| `color_quant` | MIT | default |
|
| 81 |
+
| `combine` | MIT | build |
|
| 82 |
| `concurrent-queue` | Apache-2.0 OR MIT | linux |
|
| 83 |
| `console_error_panic_hook` | Apache-2.0/MIT | browser |
|
| 84 |
| `const-oid` | Apache-2.0 OR MIT | default |
|
|
|
|
| 93 |
| `crossbeam-deque` | MIT OR Apache-2.0 | default |
|
| 94 |
| `crossbeam-epoch` | MIT OR Apache-2.0 | default |
|
| 95 |
| `crossbeam-utils` | MIT OR Apache-2.0 | default |
|
| 96 |
+
| `crunchy` | MIT | build |
|
| 97 |
| `crypto-common` | MIT OR Apache-2.0 | default |
|
| 98 |
+
| `cssparser` | MPL-2.0 | build |
|
| 99 |
+
| `cssparser-macros` | MPL-2.0 | build |
|
| 100 |
| `ctor` | Apache-2.0 OR MIT | default |
|
| 101 |
+
| `ctor-proc-macro` | Apache-2.0 OR MIT | build |
|
| 102 |
+
| `darling` | MIT | build |
|
| 103 |
+
| `darling_core` | MIT | build |
|
| 104 |
+
| `darling_macro` | MIT | build |
|
| 105 |
| `data-url` | MIT OR Apache-2.0 | default |
|
| 106 |
| `dbus` | Apache-2.0/MIT | linux |
|
| 107 |
+
| `der` | Apache-2.0 OR MIT | build |
|
| 108 |
| `deranged` | MIT OR Apache-2.0 | default |
|
| 109 |
+
| `derive_more` | MIT | build |
|
| 110 |
+
| `derive_more-impl` | MIT | build |
|
| 111 |
| `digest` | MIT OR Apache-2.0 | default |
|
| 112 |
| `dirs` | MIT OR Apache-2.0 | default |
|
| 113 |
| `dirs-sys` | MIT OR Apache-2.0 | default |
|
| 114 |
| `dispatch2` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 115 |
+
| `displaydoc` | MIT OR Apache-2.0 | build |
|
| 116 |
| `dlopen2` | MIT | linux |
|
| 117 |
+
| `dlopen2_derive` | MIT | build |
|
| 118 |
+
| `dom_query` | MIT | build |
|
| 119 |
| `downcast-rs` | MIT/Apache-2.0 | linux |
|
| 120 |
| `dpi` | Apache-2.0 AND MIT | default |
|
| 121 |
+
| `dtoa` | MIT OR Apache-2.0 | build |
|
| 122 |
+
| `dtoa-short` | MPL-2.0 | build |
|
| 123 |
| `dunce` | CC0-1.0 OR MIT-0 OR Apache-2.0 | default |
|
| 124 |
+
| `dyn-clone` | MIT OR Apache-2.0 | build |
|
| 125 |
| `either` | MIT OR Apache-2.0 | default |
|
| 126 |
+
| `embed-resource` | MIT | build |
|
| 127 |
| `embed_plist` | MIT OR Apache-2.0 | macos |
|
| 128 |
| `endi` | MIT | linux |
|
| 129 |
| `enumflags2` | MIT OR Apache-2.0 | linux |
|
| 130 |
+
| `enumflags2_derive` | MIT OR Apache-2.0 | build |
|
| 131 |
| `equivalent` | Apache-2.0 OR MIT | default |
|
| 132 |
| `erased-serde` | MIT OR Apache-2.0 | default |
|
| 133 |
| `errno` | MIT OR Apache-2.0 | linux |
|
| 134 |
+
| `error-code` | BSL-1.0 | windows |
|
| 135 |
| `event-listener` | Apache-2.0 OR MIT | linux |
|
| 136 |
| `event-listener-strategy` | Apache-2.0 OR MIT | linux |
|
| 137 |
+
| `fastrand` | Apache-2.0 OR MIT | linux |
|
| 138 |
| `fax` | MIT | default |
|
| 139 |
| `fdeflate` | MIT OR Apache-2.0 | default |
|
| 140 |
| `field-offset` | MIT OR Apache-2.0 | linux |
|
| 141 |
+
| `find-msvc-tools` | MIT OR Apache-2.0 | build |
|
| 142 |
| `fixedbitset` | MIT OR Apache-2.0 | linux |
|
| 143 |
| `flate2` | MIT OR Apache-2.0 | default |
|
| 144 |
| `float-cmp` | MIT | default |
|
| 145 |
| `fnv` | Apache-2.0 / MIT | default |
|
| 146 |
+
| `foldhash` | Zlib | linux |
|
| 147 |
| `foreign-types` | MIT/Apache-2.0 | macos |
|
| 148 |
+
| `foreign-types-macros` | MIT/Apache-2.0 | build |
|
| 149 |
| `foreign-types-shared` | MIT/Apache-2.0 | macos |
|
| 150 |
| `form_urlencoded` | MIT OR Apache-2.0 | default |
|
| 151 |
| `futures-channel` | MIT OR Apache-2.0 | linux |
|
|
|
|
| 153 |
| `futures-executor` | MIT OR Apache-2.0 | linux |
|
| 154 |
| `futures-io` | MIT OR Apache-2.0 | linux |
|
| 155 |
| `futures-lite` | Apache-2.0 OR MIT | linux |
|
| 156 |
+
| `futures-macro` | MIT OR Apache-2.0 | build |
|
| 157 |
+
| `futures-sink` | MIT OR Apache-2.0 | build |
|
| 158 |
| `futures-task` | MIT OR Apache-2.0 | linux |
|
| 159 |
| `futures-util` | MIT OR Apache-2.0 | linux |
|
| 160 |
| `gdk` | MIT | linux |
|
|
|
|
| 171 |
| `gio` | MIT | linux |
|
| 172 |
| `gio-sys` | MIT | linux |
|
| 173 |
| `glib` | MIT | linux |
|
| 174 |
+
| `glib-macros` | MIT | build |
|
| 175 |
| `glib-sys` | MIT | linux |
|
| 176 |
| `glob` | MIT OR Apache-2.0 | default |
|
| 177 |
| `gobject-sys` | MIT | linux |
|
| 178 |
| `gtk` | MIT | linux |
|
| 179 |
| `gtk-sys` | MIT | linux |
|
| 180 |
+
| `gtk3-macros` | MIT | build |
|
| 181 |
| `half` | MIT OR Apache-2.0 | default |
|
| 182 |
| `hashbrown` | MIT OR Apache-2.0 | default |
|
| 183 |
| `heck` | MIT OR Apache-2.0 | default |
|
| 184 |
+
| `hermit-abi` | MIT OR Apache-2.0 | build |
|
| 185 |
| `hex` | MIT OR Apache-2.0 | linux |
|
| 186 |
+
| `hmac-sha256` | ISC | build |
|
| 187 |
+
| `html5ever` | MIT OR Apache-2.0 | build |
|
| 188 |
| `http` | MIT OR Apache-2.0 | default |
|
| 189 |
+
| `http-body` | MIT | build |
|
| 190 |
+
| `http-body-util` | MIT | build |
|
| 191 |
| `http-range` | MIT | default |
|
| 192 |
| `httparse` | MIT OR Apache-2.0 | default |
|
| 193 |
| `hybrid-array` | MIT OR Apache-2.0 | default |
|
| 194 |
+
| `hyper` | MIT | build |
|
| 195 |
+
| `hyper-util` | MIT | build |
|
| 196 |
| `i_float` | MIT | default |
|
| 197 |
| `i_key_sort` | MIT | default |
|
| 198 |
| `i_overlay` | MIT OR Apache-2.0 | default |
|
| 199 |
| `i_shape` | MIT | default |
|
| 200 |
| `i_tree` | MIT | default |
|
| 201 |
+
| `ico` | MIT | build |
|
| 202 |
| `icu_collections` | Unicode-3.0 | default |
|
| 203 |
| `icu_locale_core` | Unicode-3.0 | default |
|
| 204 |
| `icu_normalizer` | Unicode-3.0 | default |
|
|
|
|
| 206 |
| `icu_properties` | Unicode-3.0 | default |
|
| 207 |
| `icu_properties_data` | Unicode-3.0 | default |
|
| 208 |
| `icu_provider` | Unicode-3.0 | default |
|
| 209 |
+
| `ident_case` | MIT/Apache-2.0 | build |
|
| 210 |
| `idna` | MIT OR Apache-2.0 | default |
|
| 211 |
| `idna_adapter` | Apache-2.0 OR MIT | default |
|
| 212 |
| `image` | MIT OR Apache-2.0 | default |
|
|
|
|
| 214 |
| `imagesize` | MIT | default |
|
| 215 |
| `indexmap` | Apache-2.0 OR MIT | default |
|
| 216 |
| `infer` | MIT | default |
|
| 217 |
+
| `ipnet` | MIT OR Apache-2.0 | build |
|
| 218 |
| `is-docker` | MIT | linux |
|
| 219 |
| `is-wsl` | MIT | linux |
|
| 220 |
| `itoa` | MIT OR Apache-2.0 | default |
|
| 221 |
| `javascriptcore-rs` | MIT | linux |
|
| 222 |
| `javascriptcore-rs-sys` | MIT | linux |
|
| 223 |
+
| `jni` | MIT/Apache-2.0 | build |
|
| 224 |
+
| `jni-sys` | MIT OR Apache-2.0 | build |
|
| 225 |
+
| `jni-sys-macros` | MIT OR Apache-2.0 | build |
|
| 226 |
| `js-sys` | MIT OR Apache-2.0 | browser |
|
| 227 |
| `json-patch` | MIT/Apache-2.0 | default |
|
| 228 |
| `jsonptr` | MIT OR Apache-2.0 | default |
|
|
|
|
| 231 |
| `libc` | MIT OR Apache-2.0 | default |
|
| 232 |
| `libdbus-sys` | Apache-2.0/MIT | linux |
|
| 233 |
| `libm` | MIT | default |
|
| 234 |
+
| `libredox` | MIT | build |
|
| 235 |
| `linux-raw-sys` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | linux |
|
| 236 |
| `litemap` | Unicode-3.0 | default |
|
| 237 |
+
| `lock_api` | MIT OR Apache-2.0 | windows |
|
| 238 |
| `log` | MIT OR Apache-2.0 | default |
|
| 239 |
+
| `lzma-rust2` | Apache-2.0 | build |
|
| 240 |
+
| `markup5ever` | MIT OR Apache-2.0 | build |
|
| 241 |
| `memchr` | Unlicense OR MIT | default |
|
| 242 |
| `memoffset` | MIT | linux |
|
| 243 |
| `mime` | MIT OR Apache-2.0 | default |
|
|
|
|
| 245 |
| `mio` | MIT | default |
|
| 246 |
| `moxcms` | BSD-3-Clause OR Apache-2.0 | default |
|
| 247 |
| `muda` | Apache-2.0 OR MIT | default |
|
| 248 |
+
| `native-tls` | MIT OR Apache-2.0 | build |
|
| 249 |
+
| `ndk` | MIT OR Apache-2.0 | build |
|
| 250 |
+
| `ndk-sys` | MIT OR Apache-2.0 | build |
|
| 251 |
+
| `new_debug_unreachable` | MIT | build |
|
| 252 |
| `nom` | MIT | linux |
|
| 253 |
| `num-conv` | MIT OR Apache-2.0 | default |
|
| 254 |
| `num-traits` | MIT OR Apache-2.0 | default |
|
| 255 |
+
| `num_enum` | BSD-3-Clause OR MIT OR Apache-2.0 | build |
|
| 256 |
+
| `num_enum_derive` | BSD-3-Clause OR MIT OR Apache-2.0 | build |
|
| 257 |
| `objc2` | MIT | macos |
|
| 258 |
| `objc2-app-kit` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 259 |
+
| `objc2-cloud-kit` | Zlib OR Apache-2.0 OR MIT | build |
|
| 260 |
+
| `objc2-core-data` | Zlib OR Apache-2.0 OR MIT | build |
|
| 261 |
| `objc2-core-foundation` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 262 |
| `objc2-core-graphics` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 263 |
+
| `objc2-core-image` | Zlib OR Apache-2.0 OR MIT | build |
|
| 264 |
+
| `objc2-core-location` | Zlib OR Apache-2.0 OR MIT | build |
|
| 265 |
+
| `objc2-core-text` | Zlib OR Apache-2.0 OR MIT | build |
|
| 266 |
| `objc2-encode` | MIT | macos |
|
| 267 |
| `objc2-exception-helper` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 268 |
| `objc2-foundation` | MIT | macos |
|
| 269 |
+
| `objc2-quartz-core` | Zlib OR Apache-2.0 OR MIT | build |
|
| 270 |
+
| `objc2-ui-kit` | Zlib OR Apache-2.0 OR MIT | build |
|
| 271 |
+
| `objc2-user-notifications` | Zlib OR Apache-2.0 OR MIT | build |
|
| 272 |
| `objc2-web-kit` | Zlib OR Apache-2.0 OR MIT | macos |
|
| 273 |
| `once_cell` | MIT OR Apache-2.0 | default |
|
| 274 |
| `open` | MIT | default |
|
| 275 |
+
| `openssl` | Apache-2.0 | build |
|
| 276 |
+
| `openssl-macros` | MIT/Apache-2.0 | build |
|
| 277 |
+
| `openssl-probe` | MIT OR Apache-2.0 | build |
|
| 278 |
+
| `openssl-sys` | MIT | build |
|
| 279 |
| `option-ext` | MPL-2.0 | default |
|
| 280 |
| `ordered-stream` | MIT OR Apache-2.0 | linux |
|
| 281 |
| `ort` | MIT OR Apache-2.0 | default |
|
|
|
|
| 284 |
| `pango` | MIT | linux |
|
| 285 |
| `pango-sys` | MIT | linux |
|
| 286 |
| `parking` | Apache-2.0 OR MIT | linux |
|
| 287 |
+
| `parking_lot` | MIT OR Apache-2.0 | windows |
|
| 288 |
+
| `parking_lot_core` | MIT OR Apache-2.0 | windows |
|
| 289 |
+
| `pem-rfc7468` | Apache-2.0 OR MIT | build |
|
| 290 |
| `percent-encoding` | MIT OR Apache-2.0 | default |
|
| 291 |
| `petgraph` | MIT OR Apache-2.0 | linux |
|
| 292 |
| `phf` | MIT | default |
|
| 293 |
+
| `phf_codegen` | MIT | build |
|
| 294 |
+
| `phf_generator` | MIT | build |
|
| 295 |
+
| `phf_macros` | MIT | build |
|
| 296 |
| `phf_shared` | MIT | default |
|
| 297 |
| `pico-args` | MIT | default |
|
| 298 |
| `pin-project-lite` | Apache-2.0 OR MIT | default |
|
| 299 |
| `piper` | MIT OR Apache-2.0 | linux |
|
| 300 |
+
| `pkg-config` | MIT OR Apache-2.0 | build |
|
| 301 |
| `plist` | MIT | default |
|
| 302 |
| `png` | MIT OR Apache-2.0 | default |
|
| 303 |
| `polling` | Apache-2.0 OR MIT | linux |
|
| 304 |
| `polycool` | MIT OR Apache-2.0 | default |
|
| 305 |
| `potential_utf` | Unicode-3.0 | default |
|
| 306 |
| `powerfmt` | MIT OR Apache-2.0 | default |
|
| 307 |
+
| `precomputed-hash` | MIT | build |
|
| 308 |
+
| `proc-macro-crate` | MIT OR Apache-2.0 | build |
|
| 309 |
+
| `proc-macro-error` | MIT OR Apache-2.0 | build |
|
| 310 |
+
| `proc-macro-error-attr` | MIT OR Apache-2.0 | build |
|
| 311 |
+
| `proc-macro2` | MIT OR Apache-2.0 | linux |
|
| 312 |
| `pxfm` | BSD-3-Clause OR Apache-2.0 | default |
|
| 313 |
| `quick-error` | MIT/Apache-2.0 | default |
|
| 314 |
| `quick-xml` | MIT | default |
|
| 315 |
+
| `quote` | MIT OR Apache-2.0 | linux |
|
| 316 |
+
| `r-efi` | MIT OR Apache-2.0 OR LGPL-2.1-or-later | build |
|
| 317 |
| `raw-window-handle` | MIT OR Apache-2.0 OR Zlib | default |
|
| 318 |
| `rayon` | MIT OR Apache-2.0 | default |
|
| 319 |
| `rayon-core` | MIT OR Apache-2.0 | default |
|
| 320 |
+
| `redox_syscall` | MIT | build |
|
| 321 |
+
| `redox_users` | MIT | build |
|
| 322 |
| `regex` | MIT OR Apache-2.0 | default |
|
| 323 |
| `regex-automata` | MIT OR Apache-2.0 | default |
|
| 324 |
| `regex-syntax` | MIT OR Apache-2.0 | default |
|
| 325 |
+
| `reqwest` | MIT OR Apache-2.0 | build |
|
| 326 |
| `resvg` | Apache-2.0 OR MIT | default |
|
| 327 |
| `rfd` | MIT | default |
|
| 328 |
| `rgb` | MIT | default |
|
| 329 |
| `ring` | Apache-2.0 AND ISC | default |
|
| 330 |
| `robust` | MIT OR Apache-2.0 | default |
|
| 331 |
| `roxmltree` | MIT OR Apache-2.0 | default |
|
| 332 |
+
| `rustc-hash` | Apache-2.0 OR MIT | build |
|
| 333 |
+
| `rustc_version` | MIT OR Apache-2.0 | build |
|
| 334 |
| `rustix` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | linux |
|
| 335 |
| `rustls` | Apache-2.0 OR ISC OR MIT | default |
|
| 336 |
| `rustls-pki-types` | MIT OR Apache-2.0 | default |
|
| 337 |
| `rustls-webpki` | ISC | default |
|
| 338 |
+
| `rustversion` | MIT OR Apache-2.0 | build |
|
| 339 |
| `same-file` | Unlicense/MIT | default |
|
| 340 |
+
| `schannel` | MIT | build |
|
| 341 |
+
| `schemars` | MIT | build |
|
| 342 |
+
| `schemars_derive` | MIT | build |
|
| 343 |
+
| `scopeguard` | MIT OR Apache-2.0 | windows |
|
| 344 |
+
| `security-framework` | MIT OR Apache-2.0 | build |
|
| 345 |
+
| `security-framework-sys` | MIT OR Apache-2.0 | build |
|
| 346 |
+
| `selectors` | MPL-2.0 | build |
|
| 347 |
| `semver` | MIT OR Apache-2.0 | default |
|
| 348 |
| `serde` | MIT OR Apache-2.0 | default |
|
| 349 |
| `serde-untagged` | MIT OR Apache-2.0 | default |
|
| 350 |
| `serde_core` | MIT OR Apache-2.0 | default |
|
| 351 |
+
| `serde_derive` | MIT OR Apache-2.0 | build |
|
| 352 |
+
| `serde_derive_internals` | MIT OR Apache-2.0 | build |
|
| 353 |
| `serde_json` | MIT OR Apache-2.0 | default |
|
| 354 |
+
| `serde_repr` | MIT OR Apache-2.0 | build |
|
| 355 |
| `serde_spanned` | MIT OR Apache-2.0 | default |
|
| 356 |
| `serde_with` | MIT OR Apache-2.0 | default |
|
| 357 |
+
| `serde_with_macros` | MIT OR Apache-2.0 | build |
|
| 358 |
| `serialize-to-javascript` | MIT OR Apache-2.0 | default |
|
| 359 |
+
| `serialize-to-javascript-impl` | MIT OR Apache-2.0 | build |
|
| 360 |
+
| `servo_arc` | MIT OR Apache-2.0 | build |
|
| 361 |
| `sha2` | MIT OR Apache-2.0 | default |
|
| 362 |
+
| `shlex` | MIT OR Apache-2.0 | build |
|
| 363 |
| `signal-hook-registry` | MIT OR Apache-2.0 | linux |
|
| 364 |
| `simd-adler32` | MIT | default |
|
| 365 |
| `simplecss` | Apache-2.0 OR MIT | default |
|
|
|
|
| 367 |
| `slab` | MIT | linux |
|
| 368 |
| `smallvec` | MIT OR Apache-2.0 | default |
|
| 369 |
| `socket2` | MIT OR Apache-2.0 | default |
|
| 370 |
+
| `socks` | MIT/Apache-2.0 | build |
|
| 371 |
+
| `softbuffer` | MIT OR Apache-2.0 | windows |
|
| 372 |
| `soup3` | MIT | linux |
|
| 373 |
| `soup3-sys` | MIT | linux |
|
| 374 |
| `stable_deref_trait` | MIT OR Apache-2.0 | default |
|
| 375 |
| `strict-num` | MIT | default |
|
| 376 |
+
| `string_cache` | MIT OR Apache-2.0 | build |
|
| 377 |
+
| `string_cache_codegen` | MIT OR Apache-2.0 | build |
|
| 378 |
+
| `strsim` | MIT | build |
|
| 379 |
| `subtle` | BSD-3-Clause | default |
|
| 380 |
| `svgtypes` | Apache-2.0 OR MIT | default |
|
| 381 |
+
| `swift-rs` | MIT OR Apache-2.0 | build |
|
| 382 |
+
| `syn` | MIT OR Apache-2.0 | linux |
|
| 383 |
+
| `sync_wrapper` | Apache-2.0 | build |
|
| 384 |
+
| `synstructure` | MIT | build |
|
| 385 |
+
| `system-deps` | MIT OR Apache-2.0 | build |
|
| 386 |
| `tao` | Apache-2.0 | default |
|
| 387 |
+
| `tao-macros` | MIT OR Apache-2.0 | build |
|
| 388 |
+
| `target-lexicon` | Apache-2.0 WITH LLVM-exception | build |
|
| 389 |
| `tauri` | Apache-2.0 OR MIT | default |
|
| 390 |
+
| `tauri-build` | Apache-2.0 OR MIT | build |
|
| 391 |
+
| `tauri-codegen` | Apache-2.0 OR MIT | build |
|
| 392 |
+
| `tauri-macros` | Apache-2.0 OR MIT | build |
|
| 393 |
+
| `tauri-plugin` | Apache-2.0 OR MIT | build |
|
| 394 |
| `tauri-plugin-clipboard-manager` | Apache-2.0 OR MIT | default |
|
| 395 |
| `tauri-plugin-dialog` | Apache-2.0 OR MIT | default |
|
| 396 |
| `tauri-plugin-fs` | Apache-2.0 OR MIT | default |
|
|
|
|
| 399 |
| `tauri-runtime` | Apache-2.0 OR MIT | default |
|
| 400 |
| `tauri-runtime-wry` | Apache-2.0 OR MIT | default |
|
| 401 |
| `tauri-utils` | Apache-2.0 OR MIT | default |
|
| 402 |
+
| `tauri-winres` | MIT | build |
|
| 403 |
+
| `tempfile` | MIT OR Apache-2.0 | build |
|
| 404 |
+
| `tendril` | MIT OR Apache-2.0 | build |
|
| 405 |
| `thiserror` | MIT OR Apache-2.0 | default |
|
| 406 |
+
| `thiserror-impl` | MIT OR Apache-2.0 | build |
|
| 407 |
| `tiff` | MIT | default |
|
| 408 |
| `time` | MIT OR Apache-2.0 | default |
|
| 409 |
| `time-core` | MIT OR Apache-2.0 | default |
|
| 410 |
+
| `time-macros` | MIT OR Apache-2.0 | build |
|
| 411 |
| `tiny-skia` | BSD-3-Clause | default |
|
| 412 |
| `tiny-skia-path` | BSD-3-Clause | default |
|
| 413 |
| `tinystr` | Unicode-3.0 | default |
|
| 414 |
| `tokio` | MIT | default |
|
| 415 |
+
| `tokio-util` | MIT | build |
|
| 416 |
| `toml` | MIT OR Apache-2.0 | default |
|
| 417 |
| `toml_datetime` | MIT OR Apache-2.0 | default |
|
| 418 |
+
| `toml_edit` | MIT OR Apache-2.0 | build |
|
| 419 |
| `toml_parser` | MIT OR Apache-2.0 | default |
|
| 420 |
| `toml_writer` | MIT OR Apache-2.0 | default |
|
| 421 |
+
| `tower` | MIT | build |
|
| 422 |
+
| `tower-http` | MIT | build |
|
| 423 |
+
| `tower-layer` | MIT | build |
|
| 424 |
+
| `tower-service` | MIT | build |
|
| 425 |
| `tracing` | MIT | default |
|
| 426 |
+
| `tracing-attributes` | MIT | build |
|
| 427 |
| `tracing-core` | MIT | default |
|
| 428 |
| `tree_magic_mini` | MIT | linux |
|
| 429 |
+
| `try-lock` | MIT | build |
|
| 430 |
| `typed-path` | MIT OR Apache-2.0 | default |
|
| 431 |
| `typeid` | MIT OR Apache-2.0 | default |
|
| 432 |
| `typenum` | MIT OR Apache-2.0 | default |
|
| 433 |
+
| `uds_windows` | MIT | build |
|
| 434 |
| `unic-char-property` | MIT/Apache-2.0 | default |
|
| 435 |
| `unic-char-range` | MIT/Apache-2.0 | default |
|
| 436 |
| `unic-common` | MIT/Apache-2.0 | default |
|
| 437 |
| `unic-ucd-ident` | MIT/Apache-2.0 | default |
|
| 438 |
| `unic-ucd-version` | MIT/Apache-2.0 | default |
|
| 439 |
+
| `unicode-ident` | (MIT OR Apache-2.0) AND Unicode-3.0 | linux |
|
| 440 |
| `unicode-segmentation` | MIT OR Apache-2.0 | default |
|
| 441 |
| `untrusted` | ISC | default |
|
| 442 |
| `ureq` | MIT OR Apache-2.0 | default |
|
|
|
|
| 447 |
| `utf8-zero` | MIT OR Apache-2.0 | default |
|
| 448 |
| `utf8_iter` | Apache-2.0 OR MIT | default |
|
| 449 |
| `uuid` | Apache-2.0 OR MIT | default |
|
| 450 |
+
| `vcpkg` | MIT/Apache-2.0 | build |
|
| 451 |
+
| `version-compare` | MIT | build |
|
| 452 |
+
| `version_check` | MIT/Apache-2.0 | build |
|
| 453 |
+
| `vswhom` | MIT | build |
|
| 454 |
+
| `vswhom-sys` | MIT | build |
|
| 455 |
| `walkdir` | Unlicense/MIT | default |
|
| 456 |
+
| `want` | MIT | build |
|
| 457 |
+
| `wasi` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | build |
|
| 458 |
+
| `wasip2` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | build |
|
| 459 |
| `wasm-bindgen` | MIT OR Apache-2.0 | browser |
|
| 460 |
+
| `wasm-bindgen-futures` | MIT OR Apache-2.0 | build |
|
| 461 |
+
| `wasm-bindgen-macro` | MIT OR Apache-2.0 | build |
|
| 462 |
+
| `wasm-bindgen-macro-support` | MIT OR Apache-2.0 | build |
|
| 463 |
| `wasm-bindgen-rayon` | Apache-2.0 | browser, threads |
|
| 464 |
| `wasm-bindgen-shared` | MIT OR Apache-2.0 | browser |
|
| 465 |
+
| `wasm-streams` | MIT OR Apache-2.0 | build |
|
| 466 |
| `wasm_sync` | MIT OR Apache-2.0 | browser, threads |
|
| 467 |
| `wayland-backend` | MIT | linux |
|
| 468 |
| `wayland-client` | MIT | linux |
|
| 469 |
| `wayland-protocols` | MIT | linux |
|
| 470 |
| `wayland-protocols-wlr` | MIT | linux |
|
| 471 |
+
| `wayland-scanner` | MIT | build |
|
| 472 |
| `wayland-sys` | MIT | linux |
|
| 473 |
| `web-sys` | MIT OR Apache-2.0 | browser, threads |
|
| 474 |
| `web-time` | MIT OR Apache-2.0 | browser |
|
| 475 |
+
| `web_atoms` | MIT OR Apache-2.0 | build |
|
| 476 |
| `webkit2gtk` | MIT | linux |
|
| 477 |
| `webkit2gtk-sys` | MIT | linux |
|
| 478 |
+
| `webpki-root-certs` | CDLA-Permissive-2.0 | build |
|
| 479 |
| `webpki-roots` | CDLA-Permissive-2.0 | default |
|
| 480 |
+
| `webview2-com` | MIT | windows |
|
| 481 |
+
| `webview2-com-macros` | MIT | build |
|
| 482 |
+
| `webview2-com-sys` | MIT | windows |
|
| 483 |
| `weezl` | MIT OR Apache-2.0 | default |
|
| 484 |
+
| `winapi` | MIT/Apache-2.0 | build |
|
| 485 |
+
| `winapi-i686-pc-windows-gnu` | MIT/Apache-2.0 | build |
|
| 486 |
+
| `winapi-util` | Unlicense OR MIT | windows |
|
| 487 |
+
| `winapi-x86_64-pc-windows-gnu` | MIT/Apache-2.0 | build |
|
| 488 |
+
| `window-vibrancy` | Apache-2.0 OR MIT | windows |
|
| 489 |
+
| `windows` | MIT OR Apache-2.0 | windows |
|
| 490 |
+
| `windows-collections` | MIT OR Apache-2.0 | windows |
|
| 491 |
+
| `windows-core` | MIT OR Apache-2.0 | windows |
|
| 492 |
+
| `windows-future` | MIT OR Apache-2.0 | windows |
|
| 493 |
+
| `windows-implement` | MIT OR Apache-2.0 | build |
|
| 494 |
+
| `windows-interface` | MIT OR Apache-2.0 | build |
|
| 495 |
+
| `windows-link` | MIT OR Apache-2.0 | windows |
|
| 496 |
+
| `windows-numerics` | MIT OR Apache-2.0 | windows |
|
| 497 |
+
| `windows-result` | MIT OR Apache-2.0 | windows |
|
| 498 |
+
| `windows-strings` | MIT OR Apache-2.0 | windows |
|
| 499 |
+
| `windows-sys` | MIT OR Apache-2.0 | windows |
|
| 500 |
+
| `windows-targets` | MIT OR Apache-2.0 | windows |
|
| 501 |
+
| `windows-threading` | MIT OR Apache-2.0 | windows |
|
| 502 |
+
| `windows-version` | MIT OR Apache-2.0 | windows |
|
| 503 |
+
| `windows_aarch64_gnullvm` | MIT OR Apache-2.0 | build |
|
| 504 |
+
| `windows_aarch64_msvc` | MIT OR Apache-2.0 | build |
|
| 505 |
+
| `windows_i686_gnu` | MIT OR Apache-2.0 | build |
|
| 506 |
+
| `windows_i686_gnullvm` | MIT OR Apache-2.0 | build |
|
| 507 |
+
| `windows_i686_msvc` | MIT OR Apache-2.0 | build |
|
| 508 |
+
| `windows_x86_64_gnu` | MIT OR Apache-2.0 | build |
|
| 509 |
+
| `windows_x86_64_gnullvm` | MIT OR Apache-2.0 | build |
|
| 510 |
+
| `windows_x86_64_msvc` | MIT OR Apache-2.0 | windows |
|
| 511 |
| `winnow` | MIT | default |
|
| 512 |
+
| `winreg` | MIT | windows |
|
| 513 |
+
| `wit-bindgen` | Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT | build |
|
| 514 |
| `wl-clipboard-rs` | MIT/Apache-2.0 | linux |
|
| 515 |
| `writeable` | Unicode-3.0 | default |
|
| 516 |
| `wry` | Apache-2.0 OR MIT | default |
|
|
|
|
| 519 |
| `x11rb` | MIT OR Apache-2.0 | linux |
|
| 520 |
| `x11rb-protocol` | MIT OR Apache-2.0 | linux |
|
| 521 |
| `yoke` | Unicode-3.0 | default |
|
| 522 |
+
| `yoke-derive` | Unicode-3.0 | build |
|
| 523 |
| `zbus` | MIT | linux |
|
| 524 |
+
| `zbus_macros` | MIT | build |
|
| 525 |
| `zbus_names` | MIT | linux |
|
| 526 |
| `zcheapstr` | MIT | linux |
|
| 527 |
| `zerocopy` | BSD-2-Clause OR Apache-2.0 OR MIT | default |
|
| 528 |
+
| `zerocopy-derive` | BSD-2-Clause OR Apache-2.0 OR MIT | build |
|
| 529 |
| `zerofrom` | Unicode-3.0 | default |
|
| 530 |
+
| `zerofrom-derive` | Unicode-3.0 | build |
|
| 531 |
| `zeroize` | Apache-2.0 OR MIT | default |
|
| 532 |
| `zerotrie` | Unicode-3.0 | default |
|
| 533 |
| `zerovec` | Unicode-3.0 | default |
|
| 534 |
+
| `zerovec-derive` | Unicode-3.0 | build |
|
| 535 |
| `zip` | MIT | default |
|
| 536 |
| `zlib-rs` | Zlib | default |
|
| 537 |
| `zmij` | MIT | default |
|
|
|
|
| 539 |
| `zune-core` | MIT OR Apache-2.0 OR Zlib | default |
|
| 540 |
| `zune-jpeg` | MIT OR Apache-2.0 OR Zlib | default |
|
| 541 |
| `zvariant` | MIT | linux |
|
| 542 |
+
| `zvariant_derive` | MIT | build |
|
| 543 |
| `zvariant_utils` | MIT | linux |
|
| 544 |
|
| 545 |
## Bundled fonts
|
studio/THIRD_PARTY.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
Generated by `tools/third_party.py` on 2026-09-26. Regenerate it after changing dependencies.
|
| 4 |
Inkvec itself is licensed under Apache-2.0 (`LICENSE`).
|
| 5 |
|
| 6 |
-
|
| 7 |
|
| 8 |
Not under a permissive licence (or no licence declared), with the smallest build that compiles them:
|
| 9 |
|
|
@@ -57,7 +57,7 @@ them. An owner who objects to a mark being shown can open an issue at
|
|
| 57 |
https://github.com/logolabs/inkvec/issues or write to office@incorpo.ro, and it will be
|
| 58 |
removed from the showcases and the benchmark data.
|
| 59 |
|
| 60 |
-
## Rust crates (
|
| 61 |
|
| 62 |
`builds` is the smallest build that compiles the crate: `default` (every workspace build),
|
| 63 |
`restore-model` (only with the ONNX Runtime restorer), or `all features` (only with an optional
|
|
@@ -500,7 +500,6 @@ listed here is compiled but not necessarily linked into the binary.
|
|
| 500 |
| toml_parser | 1.1.3+spec-1.1.0 | MIT OR Apache-2.0 | all features |
|
| 501 |
| toml_writer | 1.1.2+spec-1.1.0 | MIT OR Apache-2.0 | all features |
|
| 502 |
| tower | 0.5.3 | MIT | default |
|
| 503 |
-
| tower-http | 0.7.1 | MIT | default |
|
| 504 |
| tower-layer | 0.3.3 | MIT | default |
|
| 505 |
| tower-service | 0.3.3 | MIT | default |
|
| 506 |
| tracing | 0.1.44 | MIT | default |
|
|
|
|
| 3 |
Generated by `tools/third_party.py` on 2026-09-26. Regenerate it after changing dependencies.
|
| 4 |
Inkvec itself is licensed under Apache-2.0 (`LICENSE`).
|
| 5 |
|
| 6 |
+
517 Rust crates are compiled across all builds: 162 in every build, 42 more with the ONNX Runtime restorer, 313 more only with other optional features.
|
| 7 |
|
| 8 |
Not under a permissive licence (or no licence declared), with the smallest build that compiles them:
|
| 9 |
|
|
|
|
| 57 |
https://github.com/logolabs/inkvec/issues or write to office@incorpo.ro, and it will be
|
| 58 |
removed from the showcases and the benchmark data.
|
| 59 |
|
| 60 |
+
## Rust crates (517)
|
| 61 |
|
| 62 |
`builds` is the smallest build that compiles the crate: `default` (every workspace build),
|
| 63 |
`restore-model` (only with the ONNX Runtime restorer), or `all features` (only with an optional
|
|
|
|
| 500 |
| toml_parser | 1.1.3+spec-1.1.0 | MIT OR Apache-2.0 | all features |
|
| 501 |
| toml_writer | 1.1.2+spec-1.1.0 | MIT OR Apache-2.0 | all features |
|
| 502 |
| tower | 0.5.3 | MIT | default |
|
|
|
|
| 503 |
| tower-layer | 0.3.3 | MIT | default |
|
| 504 |
| tower-service | 0.3.3 | MIT | default |
|
| 505 |
| tracing | 0.1.44 | MIT | default |
|
studio/assets/main--3-Ll9JM.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
studio/assets/main-C8vHcyec.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
@font-face{font-family:Inter Studio;src:url(../fonts/inter-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Studio;src:url(../fonts/playfair-latin.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=dark]{color-scheme:dark;--void: #0c0a09;--stage: #141210;--paper: #1a1816;--card: #211f1c;--surface: #2a2724;--highlight: #35322e;--ink: #faf8f5;--dim: rgba(250, 248, 245, .75);--faint: rgba(250, 248, 245, .55);--muted: rgba(250, 248, 245, .4);--rule: rgba(250, 248, 245, .08);--rule2: #2a2724;--accent: #c9754a;--accent-text: #d4896a;--accent-hover: #d4896a;--accent-ink: #1a1816;--accent-soft: rgba(201, 117, 74, .12);--accent-subtle: rgba(201, 117, 74, .08);--gold: #b8976c;--gold-soft: rgba(184, 151, 108, .15);--good: #34d399;--goodbg: rgba(52, 211, 153, .15);--bad: #f87171;--badbg: rgba(248, 113, 113, .15);--anchor: #f87171;--handle: #b8976c;--wire: #faf8f5;--vt: #9a938c;--checker-a: #191715;--checker-b: #141210;--focus: rgba(201, 117, 74, .35);--focus-line: #c9754a;--state-draft: #b8976c;--state-final: #34d399;--state-stale: #c9754a;--shadow-sm: 0 4px 12px -2px rgba(12, 10, 9, .4);--shadow: 0 8px 24px -4px rgba(12, 10, 9, .5);--shadow-lg: 0 20px 50px -12px rgba(12, 10, 9, .6);--shadow-xl: 0 30px 70px -20px rgba(12, 10, 9, .7);--glow: 0 6px 20px rgba(201, 117, 74, .25)}:root[data-theme=light]{color-scheme:light;--void: #e6e1d9;--stage: #f0ece6;--paper: #faf8f5;--card: #ffffff;--surface: #eae5dd;--highlight: #ded8ce;--ink: #1a1816;--dim: rgba(26, 24, 22, .75);--faint: rgba(26, 24, 22, .58);--muted: rgba(26, 24, 22, .46);--rule: rgba(26, 24, 22, .1);--rule2: #d8d2c8;--accent: #c9754a;--accent-text: #9c5730;--accent-hover: #b3603a;--accent-ink: #faf8f5;--accent-soft: rgba(201, 117, 74, .14);--accent-subtle: rgba(201, 117, 74, .08);--gold: #8a6a3f;--gold-soft: rgba(138, 106, 63, .14);--good: #1c7a55;--goodbg: rgba(28, 122, 85, .14);--bad: #b83232;--badbg: rgba(184, 50, 50, .13);--anchor: #b83232;--handle: #8a6a3f;--wire: #1a1816;--vt: #6f6862;--checker-a: #ffffff;--checker-b: #e8e3db;--focus: rgba(201, 117, 74, .45);--focus-line: #9c5730;--state-draft: #8a6a3f;--state-final: #1c7a55;--state-stale: #9c5730;--shadow-sm: 0 4px 12px -2px rgba(90, 76, 60, .12);--shadow: 0 8px 24px -4px rgba(90, 76, 60, .16);--shadow-lg: 0 20px 50px -12px rgba(90, 76, 60, .2);--shadow-xl: 0 30px 70px -20px rgba(90, 76, 60, .24);--glow: 0 6px 20px rgba(201, 117, 74, .28)}:root{--font-display: "Playfair Studio", "Playfair Display", Georgia, serif;--font-body: "Inter Studio", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--h-compact: 28px;--h-control: 32px;--h-pill: 36px;--h-appbar: 46px;--h-status: 26px;--h-row: 30px;--t-chrome: 12.5px;--t-panel: 13px;--t-label: 11.5px;--t-eyebrow: 10px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--rail-pad: 14px;--rail-w: 352px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--d-micro: .15s;--d-fast: .2s;--d-normal: .4s}@media(prefers-reduced-motion:reduce){:root{--d-micro: 0ms;--d-fast: 0ms;--d-normal: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);font:400 var(--t-panel) / 1.5 var(--font-body);-webkit-font-smoothing:antialiased;user-select:none;cursor:default}#app{height:100%;display:flex;flex-direction:column}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-line);outline-offset:2px;border-radius:var(--radius-sm)}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.serif{font-family:var(--font-display);letter-spacing:-.03em}.eyebrow{font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.dim{color:var(--dim)}.faint{color:var(--faint)}.muted{color:var(--muted)}.sep{width:1px;height:18px;background:var(--rule2);flex:none}.spacer{flex:1}kbd{font:500 10.5px var(--font-mono);border:1px solid var(--highlight);border-radius:4px;padding:1px 5px;color:var(--faint)}.btn{height:var(--h-control);padding:0 16px;border-radius:var(--radius-full);border:1px solid var(--rule2);background:transparent;color:var(--dim);font-weight:500;font-size:var(--t-chrome);display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:transform var(--d-micro) var(--ease-smooth),background var(--d-micro),border-color var(--d-micro),box-shadow var(--d-micro)}.btn:hover:not(:disabled){border-color:var(--highlight);color:var(--ink)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{height:var(--h-pill);border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:var(--t-panel);box-shadow:var(--glow)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink);transform:translateY(-2px)}.btn.ghost{border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface)}.btn.compact{height:var(--h-compact);padding:0 11px;border-radius:var(--radius);font-size:var(--t-chrome)}.btn.icon{width:var(--h-control);padding:0}.btn.icon.compact{width:var(--h-compact)}.btn.danger{color:var(--bad)}.seg{display:inline-flex;gap:2px;padding:2px;background:var(--card);border:1px solid var(--rule2);border-radius:7px}.seg>button{font-size:var(--t-label);padding:4px 11px;border-radius:5px;color:var(--faint);white-space:nowrap;transition:background var(--d-micro),color var(--d-micro)}.seg>button:hover{color:var(--dim)}.seg>button[aria-pressed=true]{background:var(--highlight);color:var(--ink);font-weight:500}.seg>button:disabled{color:var(--muted);cursor:default}.toggle{font-size:var(--t-label);padding:3px 9px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--faint)}.toggle:hover{color:var(--dim)}.toggle[aria-pressed=true]{border-color:var(--highlight);background:var(--rule2);color:var(--ink)}.switch{width:32px;height:18px;flex:none;border-radius:var(--radius-full);background:var(--highlight);position:relative;transition:background var(--d-micro)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--faint);transition:transform var(--d-micro) var(--ease-smooth),background var(--d-micro)}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(14px);background:var(--accent-ink)}.checkbox{width:15px;height:15px;flex:none;border-radius:4px;border:1px solid var(--highlight);display:grid;place-items:center;color:var(--accent-ink)}.checkbox[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.checkbox:not([aria-checked=true])>svg{visibility:hidden}.appbar{height:var(--h-appbar);flex:none;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--stage);border-bottom:1px solid var(--rule2);-webkit-app-region:drag}.appbar button,.appbar .seg,.appbar .filechip,.appbar .nodrag{-webkit-app-region:no-drag}.brand{display:flex;align-items:center;gap:8px;font-size:var(--t-chrome);font-weight:600;letter-spacing:-.01em;padding-right:4px}.brand>svg{color:var(--accent)}.filechip{display:flex;align-items:center;gap:8px;height:var(--h-compact);padding:0 10px;background:var(--card);border:1px solid var(--rule2);border-radius:var(--radius-sm);font-size:var(--t-chrome);max-width:340px}.filechip .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wincontrols{display:flex;gap:2px;margin-left:4px}.wincontrols button{width:30px;height:26px;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--faint)}.wincontrols button:hover{background:var(--surface);color:var(--ink)}.wincontrols button.close:hover{background:var(--bad);color:#fff}.wincontrols i{display:block;background:currentColor}.wincontrols .min i{width:10px;height:1px}.wincontrols .max i{width:9px;height:9px;background:none;border:1px solid currentColor;border-radius:2px}.body{flex:1;min-height:0;display:flex}.stage{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--stage);position:relative}.viewertools{min-height:38px;flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:5px 12px;border-bottom:1px solid var(--rule2);background:color-mix(in srgb,var(--stage) 92%,transparent)}.legend{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--faint)}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:block}.legend .anchor{width:7px;height:7px;border-radius:50%;background:var(--anchor)}.legend .handle{width:7px;height:7px;background:var(--handle);transform:rotate(45deg)}.legend .band{width:12px;height:6px;border-radius:2px}.legend .band.sure,.overlay .certainty .sure{--band: #30a46c}.legend .band.soft,.overlay .certainty .soft{--band: #f5a524}.legend .band.unsure,.overlay .certainty .unsure{--band: #e5484d}.legend .band{background:var(--band)}.overlay .certainty path{fill:var(--band);fill-rule:evenodd;fill-opacity:.45;stroke:var(--band);stroke-width:1;vector-effect:non-scaling-stroke}.legend .wire{width:12px;height:2px;background:var(--wire)}.panes{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.pane{flex:1;min-width:0;position:relative;overflow:hidden;display:grid;place-items:center;background-color:var(--stage);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:16px 16px;cursor:grab;touch-action:none}.pane:active{cursor:grabbing}.pane.hidden{display:none}.panes.stacked .pane{position:absolute;inset:0}.panelabel{position:absolute;top:10px;left:12px;z-index:3;pointer-events:none}.chip{position:absolute;top:8px;right:12px;z-index:3;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--radius-full);font-size:var(--t-label);border:1px solid;pointer-events:none}.chip i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block}.chip.draft{color:var(--state-draft);border-color:color-mix(in srgb,var(--state-draft) 45%,transparent);background:color-mix(in srgb,var(--state-draft) 15%,transparent)}.chip.final{color:var(--state-final);border-color:color-mix(in srgb,var(--state-final) 40%,transparent);background:color-mix(in srgb,var(--state-final) 15%,transparent)}.chip.stale{color:var(--state-stale);border-color:color-mix(in srgb,var(--state-stale) 45%,transparent);background:color-mix(in srgb,var(--state-stale) 15%,transparent)}.chip.swapped:after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:1.5px;background:var(--accent);border-radius:1px;transform-origin:left;animation:sweep var(--d-normal) var(--ease-out-expo)}@keyframes sweep{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.art{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;pointer-events:none}.art img{display:block;image-rendering:pixelated}.art svg{display:block;overflow:visible}.art.swapping{animation:crossfade var(--d-normal) var(--ease-out-expo)}@keyframes crossfade{0%{opacity:.25}to{opacity:1}}.art.centred{position:static;place-self:stretch;min-width:0;min-height:0;padding:44px 32px 32px}.panes.onlight{--stage: #f3f0ea;--checker-a: #ffffff;--checker-b: #ebe7df}.panes.ondark{--stage: #1a1816;--checker-a: #26231f;--checker-b: #211f1c}.overlay{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.overlay .wireframe path{fill:none;stroke:var(--wire);stroke-width:1px;vector-effect:non-scaling-stroke}.overlay .handles path{fill:none;stroke:var(--handle);vector-effect:non-scaling-stroke}.overlay .handles .lines{stroke-width:.8px}.overlay .handles .knobs{stroke-width:2.4px;stroke-linecap:square}.pane>canvas.anchors{position:absolute;left:0;top:0;pointer-events:none}.wipehandle{position:absolute;top:0;bottom:0;width:2px;background:var(--ink);z-index:4;cursor:ew-resize;opacity:.7}.wipehandle:after{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2px solid var(--ink);background:var(--stage)}.detailpane{position:absolute;inset:0;z-index:5;background:var(--stage);display:flex;flex-direction:column}.detailhead{flex:none;display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--rule2);font-size:var(--t-label);color:var(--dim)}.detailbody{flex:1;min-height:0;position:relative;overflow:hidden;display:grid;place-items:center}.detailfoot{flex:none;padding:8px 12px;border-top:1px solid var(--rule2);font-size:var(--t-label);color:var(--faint)}.pixelgrid{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(250,248,245,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(250,248,245,.07) 1px,transparent 1px);pointer-events:none}:root[data-theme=light] .pixelgrid{background-image:linear-gradient(to right,rgba(26,24,22,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(26,24,22,.1) 1px,transparent 1px)}.stagestate{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:32px;text-align:center;background:var(--stage)}.stagestate .title{font-size:16px;font-weight:500}.stagestate .body{display:block;font-size:var(--t-chrome);line-height:1.6;color:var(--faint);max-width:46ch}.stagestate .action{font-size:var(--t-chrome);color:var(--accent-text);margin-top:2px}.statusstrip{height:var(--h-status);flex:none;display:flex;align-items:center;gap:10px;padding:0 12px;border-top:1px solid var(--rule2);background:var(--stage);font-size:var(--t-label);color:var(--faint);font-variant-numeric:tabular-nums}.statusstrip .lead{color:var(--dim)}.statusstrip .privacy{margin-left:auto}.statusstrip .updatechip{display:inline-flex;align-items:center;gap:6px;color:var(--gold)}.statusstrip .updatechip i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block}.statusstrip .fetchchip{display:inline-flex;align-items:center;gap:8px;margin-left:12px;color:var(--faint);white-space:nowrap}.statusstrip .fetchchip.bad{color:var(--bad)}.fetchbar{width:64px;flex:none}.fetchnote{display:flex;flex-direction:column;gap:6px;font-size:11.5px;line-height:1.45;color:var(--faint)}.fetchnote .fetchbar{width:100%}.fetchnote .fetchline{color:var(--dim);font-variant-numeric:tabular-nums}.rail{width:var(--rail-w);flex:none;border-left:1px solid var(--rule2);background:var(--paper);display:flex;flex-direction:column;position:relative}.railscroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--rail-pad);display:flex;flex-direction:column;gap:var(--rail-pad)}.railscroll::-webkit-scrollbar{width:10px}.railscroll::-webkit-scrollbar-thumb{background:var(--rule2);border-radius:5px;border:3px solid var(--paper)}.railscroll::-webkit-scrollbar-thumb:hover{background:var(--highlight)}.card{border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg);padding:13px;display:flex;flex-direction:column;gap:10px}.cardhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.railfoot{flex:none;border-top:1px solid var(--rule2);background:var(--stage);padding:12px var(--rail-pad);display:flex;flex-direction:column;gap:8px}.railfoot .row{display:flex;gap:8px}.railfoot .note{display:flex;justify-content:space-between;font-size:var(--t-label);color:var(--muted)}.presets{display:flex;flex-wrap:wrap;gap:5px}.preset{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid var(--rule2);background:var(--card);font-size:var(--t-chrome);color:var(--dim);transition:border-color var(--d-micro),background var(--d-micro),color var(--d-micro)}.preset:hover{border-color:var(--highlight);color:var(--ink)}.preset[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:500}.preset.saved{padding-right:22px}.preset{position:relative}.preset .forget{position:absolute;top:50%;margin-top:-8px;right:4px;width:16px;height:16px;border-radius:5px;opacity:0;transition:opacity var(--d-micro),background var(--d-micro)}.preset .forget:before,.preset .forget:after{content:"";position:absolute;left:4px;top:7.5px;width:8px;height:1.5px;border-radius:1px;background:var(--muted)}.preset .forget:before{transform:rotate(45deg)}.preset .forget:after{transform:rotate(-45deg)}.preset:hover .forget,.preset .forget:focus-visible{opacity:1}.preset .forget:hover{background:var(--highlight)}.preset .forget:hover:before,.preset .forget:hover:after{background:var(--bad)}.traybar{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px}.railmodes{flex:none;display:flex;flex-direction:column;gap:8px;padding:10px var(--rail-pad) 0}.railmodes-row{display:grid;grid-template-columns:1.75fr 1fr;gap:8px}.mode.mode-engine{background:var(--paper);border-color:var(--rule)}.mode{min-width:0;display:flex;flex-direction:column;gap:8px;padding:10px 11px 11px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card)}.modehead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:16px}.modetitle{font-size:12.5px;font-weight:600;color:var(--ink)}.modestate{font-size:10.5px;color:var(--muted);white-space:nowrap}.seg.big{display:flex;width:100%;padding:3px}.seg.big>button{flex:1;padding:7px 0;font-size:12.5px;text-align:center}.seg.big>button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.bigswitch{display:flex;align-items:center;gap:8px;height:34px;padding:0 4px;border:1px solid var(--rule2);border-radius:999px;background:var(--paper);color:var(--dim);font-size:12.5px;font-weight:600;transition:background var(--d-micro),border-color var(--d-micro),color var(--d-micro)}.bigswitch .knob{flex:none;width:24px;height:24px;border-radius:50%;background:var(--highlight);transition:background var(--d-micro)}.bigswitch .state{flex:1;text-align:center;padding-right:4px}.bigswitch[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.bigswitch[aria-checked=true]{flex-direction:row-reverse}.bigswitch[aria-checked=true] .knob{background:var(--accent-ink)}.bigswitch[aria-checked=true] .state{padding-right:0;padding-left:4px}.railtabs{flex:none;background:var(--stage);border-bottom:1px solid var(--rule2)}.railseg{display:flex;width:100%}.railseg>button{position:relative;flex:1;display:flex;align-items:baseline;justify-content:center;gap:8px;height:46px;padding:14px 12px 0;color:var(--muted);transition:color var(--d-micro),background var(--d-micro)}.railseg>button:hover:not([aria-selected=true]){color:var(--dim);background:color-mix(in srgb,var(--ink) 4%,transparent)}.railseg>button[aria-selected=true]{color:var(--ink);background:var(--paper)}.railseg>button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;transition:background var(--d-micro)}.railseg>button[aria-selected=true]:after{background:var(--accent)}.railseg .tablabel{font-size:14px;font-weight:600;letter-spacing:-.005em}.railseg .tabnote{font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--faint)}.railseg .tabnote:empty{display:none}.railseg>button[aria-selected=true] .tabnote{color:var(--accent-text)}.tabcaption{margin:0;padding:7px var(--rail-pad) 9px;background:var(--paper);font-size:11.5px;color:var(--muted)}.presetblock{display:flex;flex-direction:column;gap:8px}.presetblock .traybar .faint{min-width:0}.rail section.group{gap:0;border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg)}.rail section.group .grouphead{align-items:center;padding-right:13px}.groupbtn{flex:1;display:flex;align-items:center;gap:7px;padding:11px 9px 11px 13px;color:var(--muted);text-align:left;border-radius:var(--radius-lg)}.groupbtn:hover{color:var(--dim)}.groupbtn .changed{font-size:10.5px;color:var(--accent-text)}.groupbody{display:flex;flex-direction:column;gap:13px;padding:2px 13px 14px}.control.changed .controlhead .label:before{content:"";display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:var(--accent);vertical-align:1px}.emptycard p{margin:0;font-size:var(--t-chrome);line-height:1.55;color:var(--dim)}.structure .srow{display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:5px;align-items:baseline}.structure .srow .k{font-size:var(--t-chrome);color:var(--dim)}.structure .srow .v{font-size:var(--t-panel);font-variant-numeric:tabular-nums}.structure .srow .v .of{margin-left:6px;font-size:10.5px;color:var(--muted)}.sbar{grid-column:1 / -1;position:relative;height:4px;margin-bottom:4px;border-radius:2px;background:var(--highlight)}.sbar i{position:absolute;inset:0 auto 0 0;border-radius:2px;background:var(--accent);transition:width var(--d-normal) var(--ease-out-expo)}.sbar b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px;background:var(--dim)}.readout{display:flex;flex-direction:column;min-height:54px;background:var(--rule2);border:1px solid var(--rule2);border-radius:var(--radius);overflow:hidden}.readout-badge-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 10px;background:var(--card);border-bottom:1px solid var(--rule2)}.engine-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all var(--d-micro);line-height:1.4;font-family:inherit}.engine-pill.fast{background:color-mix(in srgb,var(--accent) 15%,var(--paper));border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.engine-pill.quality{background:color-mix(in srgb,var(--accent) 10%,var(--paper));border-color:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--ink)}.engine-pill:hover{filter:brightness(1.08);border-color:var(--accent)}.time-pill{font-size:11px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.readout-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}.fastmode-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;background:color-mix(in srgb,var(--accent) 10%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--rule2));border-radius:var(--radius-lg)}.fastmode-banner-icon{font-size:16px;line-height:1;flex:none}.fastmode-banner-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fastmode-banner-title{font-weight:600;color:var(--ink);font-size:12px}.fastmode-banner-desc{color:var(--muted);font-size:11px;line-height:1.35}.fastmode-banner-btn{flex:none;padding:4px 8px;font-size:11px;font-weight:500;background:var(--paper);border:1px solid var(--rule2);border-radius:var(--radius);color:var(--ink);cursor:pointer;white-space:nowrap;transition:all var(--d-micro)}.fastmode-banner-btn:hover{background:var(--hover);border-color:var(--accent);color:var(--accent)}.quality-only-tag{display:inline-block;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);line-height:1.3}.readout .cell{min-width:0;display:flex;flex-direction:column;gap:1px;padding:6px 10px;background:var(--paper)}.readout .v{font-size:15px;font-weight:500;line-height:1.25}.readout .k{font-size:10px;color:var(--muted)}.delta{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--muted)}.delta.better{color:var(--good)}.delta.worse{color:var(--gold)}.readout.busy,.readout.idle{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--paper);font-size:var(--t-chrome)}.readout .stage{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--state-stale)}.pulse{flex:none;width:7px;height:7px;border-radius:50%;background:var(--state-stale);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.headline{display:flex;align-items:flex-end;gap:12px}.headline .figure{font-family:var(--font-display);font-size:52px;line-height:.85;letter-spacing:-.03em}.headline .of{display:flex;flex-direction:column;gap:2px;padding-bottom:4px}.meter{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--good),var(--gold) 55%,var(--bad))}.meter .threshold{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--dim)}.meter .needle{position:absolute;top:-4px;width:2px;height:14px;background:var(--ink);border-radius:1px;transition:left var(--d-normal) var(--ease-out-expo)}.meterscale{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule2);border:1px solid var(--rule2);border-radius:var(--radius);overflow:hidden;font-variant-numeric:tabular-nums}.stats>div{background:var(--paper);padding:8px 10px;display:flex;flex-direction:column;gap:2px}.stats .k{font-size:10.5px;color:var(--muted)}.stats .v{font-size:var(--t-panel)}.benchmark{display:flex;gap:8px;padding:8px 10px;border:1px dashed var(--highlight);border-radius:var(--radius);background:color-mix(in srgb,var(--ink) 2%,transparent)}.benchmark .label{flex:none;padding-top:1px}.benchmark p{margin:0;font-size:var(--t-label);line-height:1.45;color:var(--faint)}.loss{display:flex;gap:9px;padding-bottom:9px;border-bottom:1px solid var(--rule2)}.loss:last-of-type{border-bottom:none;padding-bottom:0}.loss .glyph{flex:none;padding-top:2px;color:var(--gold)}.loss .text{font-size:var(--t-chrome);line-height:1.45;color:var(--dim)}.loss .meta{font-size:var(--t-label);color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}.loss .why{font-size:var(--t-label);line-height:1.5;color:var(--faint);margin-top:4px;padding-left:9px;border-left:1px solid var(--rule2)}.loss .expand{color:var(--muted)}.loss .expand:hover{color:var(--dim)}.nothinglost{display:flex;gap:9px;align-items:center;font-size:var(--t-chrome);color:var(--faint)}.nothinglost .glyph{color:var(--good);flex:none;display:flex}.ink{display:flex;align-items:center;gap:9px;padding:2px 0;border-radius:var(--radius-sm);width:100%;text-align:left}.ink:hover{background:var(--surface)}.swatch{width:22px;height:22px;flex:none;border-radius:5px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:8px 8px;position:relative;overflow:hidden}.swatch i{position:absolute;inset:0;display:block}.swatch.snapped{border:2px solid var(--accent)}.ink .hex{font-size:var(--t-chrome);font-variant-numeric:tabular-nums;color:var(--dim);width:72px}.ink .share{font-size:var(--t-label);color:var(--muted);font-variant-numeric:tabular-nums;width:44px}.ink .snap{margin-left:auto;font-size:var(--t-label);color:var(--muted)}.ink .snap.on{color:var(--accent-text)}.ink{gap:6px;touch-action:none}.ink.grouped .hex{color:var(--accent-text)}.inkpick{width:16px;height:16px;flex:none;border-radius:4px;border:1px solid var(--highlight);display:grid;place-items:center;color:var(--accent-ink)}.inkpick[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.inkmain{display:flex;align-items:center;gap:9px;flex:1;min-width:0;text-align:left}.inkmain[aria-disabled=true]{cursor:grab}.swatch.mini{width:16px;height:16px;border-radius:4px}.swatch.mini.ramp{width:26px}.inklist{display:flex;flex-direction:column;gap:1px;border-radius:var(--radius-sm)}.inklist,.cgroup{transition:box-shadow var(--d-fast),background var(--d-fast)}.mergebar{display:flex;align-items:center;gap:10px;font-size:var(--t-label)}.cgroups{display:flex;flex-direction:column;gap:7px}.cgroupshead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cgroup{border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper);padding:8px;display:flex;flex-direction:column;gap:7px}.cgroup.suggested{border-style:dashed;background:transparent}.cchips{display:flex;flex-wrap:wrap;gap:4px}.cchip{display:inline-flex;align-items:center;border:1px solid var(--highlight);border-radius:999px;background:var(--card);touch-action:none;font-size:var(--t-label);color:var(--dim)}.cchip.target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.cchip.unmatched{border-color:var(--gold);border-style:dashed}.cchipmain{display:inline-flex;align-items:center;gap:5px;padding:2px 4px 2px 3px;border-radius:999px}.cchipmain .swatch.mini{border-radius:999px}.cchipx{display:grid;place-items:center;width:18px;height:18px;margin-right:2px;border-radius:999px;color:var(--muted)}.cchipx:hover{color:var(--ink);background:var(--surface)}.cresult{display:flex;align-items:center;gap:6px;font-size:var(--t-label)}.cresult>span{white-space:nowrap}.cresult .arrow{color:var(--muted)}.cresultchip{display:inline-flex;align-items:center;gap:5px;color:var(--dim)}.cactions{display:flex;align-items:center;gap:6px}.creport{font-size:11px;line-height:1.4;display:inline-flex;align-items:center;gap:5px;min-width:0}.creport.warn{color:var(--gold)}.creport.warn svg{flex:none}.simplifyrow{display:flex;align-items:center;gap:5px;font-size:var(--t-label)}.numberfield.simplify{min-width:0;width:40px;text-align:center}.dragghost{position:fixed;z-index:60;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}body.dragging-ink,body.dragging-ink *{cursor:grabbing!important}body.dragging-ink [data-drop=list]{box-shadow:0 0 0 1px var(--rule2)}.dropping{box-shadow:0 0 0 2px var(--accent)!important;background:var(--accent-subtle)!important}.control{display:flex;flex-direction:column;gap:5px}.controlhead{display:flex;align-items:baseline;gap:8px}.controlhead .label{flex:1;font-size:var(--t-chrome);color:var(--dim)}.controlhead .unit{font-size:var(--t-label);color:var(--muted)}.numberfield{height:24px;min-width:58px;padding:0 6px;border:1px solid var(--highlight);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:400 var(--t-chrome) var(--font-body);font-variant-numeric:tabular-nums;text-align:center}.numberfield:focus-visible{border-color:var(--accent)}.slider{appearance:none;-webkit-appearance:none;width:100%;height:14px;background:none;margin:2px 0 0;cursor:pointer}.slider::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--highlight)}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;margin-top:-4px;border-radius:50%;background:var(--ink);border:none}.slider::-moz-range-track{height:3px;border-radius:2px;background:var(--highlight)}.slider::-moz-range-thumb{width:11px;height:11px;border:none;border-radius:50%;background:var(--ink)}.stops{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted);white-space:nowrap}.group{display:flex;flex-direction:column;gap:9px}.grouphead{display:flex;align-items:baseline;justify-content:space-between}.reset{font-size:var(--t-label);color:var(--accent-text)}.reset:disabled{color:var(--muted);cursor:default}.stagelist{display:flex;flex-direction:column;gap:5px;font-variant-numeric:tabular-nums}.stagerow{display:flex;align-items:baseline;gap:8px;font-size:var(--t-label);color:var(--muted)}.stagerow.done{color:var(--dim)}.stagerow .mark{width:10px;text-align:center;color:var(--muted)}.stagerow.done .mark{color:var(--good)}.stagerow .name{flex:1}.sweep{height:2px;background:var(--rule2);border-radius:2px;overflow:hidden}.sweep i{display:block;width:30%;height:100%;background:var(--accent);animation:sweepacross 1.6s var(--ease-out-expo) infinite}@keyframes sweepacross{0%{transform:translate(-100%)}to{transform:translate(340%)}}@media(prefers-reduced-motion:reduce){.sweep i{animation:none;width:100%;opacity:.4}.chip.swapped:after,.art.swapping,.callout,.pulse{animation:none}.dragging .drop{transition:none}}.firstrun{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;background:var(--stage);padding:24px}.drop{width:min(620px,80%);padding:44px 24px;min-height:220px;justify-content:center;border:1.5px dashed var(--highlight);border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;gap:16px;background:color-mix(in srgb,var(--ink) 1.5%,transparent);text-align:center;transition:border-color var(--d-fast),background var(--d-fast)}.drop .glyph{color:var(--muted)}[hidden]{display:none!important}.drop.solid{background:var(--paper);border-style:solid;border-color:var(--rule2)}.panehint{max-width:34ch;text-align:center;font-size:12.5px;line-height:1.55}.drop .headline{font-family:var(--font-display);font-size:26px;letter-spacing:-.02em;display:block}.drop .release,.dragging .drop .resting{display:none}.dragging .drop .release{display:block}.dragging .drop{width:min(640px,90%);min-height:320px;transition:width var(--d-fast) var(--ease-out-expo),min-height var(--d-fast) var(--ease-out-expo),border-color var(--d-fast),background var(--d-fast)}.samples{display:flex;flex-direction:column;align-items:center;gap:12px}.samplerow{display:flex;gap:12px}.sample{width:112px;display:flex;flex-direction:column;gap:7px;align-items:center}.sample .thumb{width:112px;height:88px;border:1px solid var(--rule2);border-radius:10px;background-color:var(--card);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:12px 12px;display:grid;place-items:center;overflow:hidden;transition:border-color var(--d-micro),transform var(--d-micro)}.sample:hover .thumb{border-color:var(--accent);transform:translateY(-2px)}.sample img{max-width:76px;max-height:68px}.sample .label{font-size:var(--t-label);color:var(--faint)}.dragging .drop{border-color:var(--accent);background:var(--accent-soft)}.dragging .drop .glyph{color:var(--accent)}.dragging:after{content:"";position:fixed;inset:0;border:2px solid var(--accent);pointer-events:none;z-index:60}.dragging .stage>*:not(.stagestate){opacity:.6}.callout{position:absolute;left:20px;bottom:20px;z-index:8;max-width:320px;display:flex;flex-direction:column;gap:5px;padding:10px 13px;border-radius:var(--radius-lg);border:1px solid var(--rule2);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(8px);font-size:11.5px;line-height:1.5;color:var(--dim);animation:rise var(--d-fast) var(--ease-out-expo)}.callout .head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}#overlays:empty{display:none}.scrim{position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--void) 62%,transparent);display:grid;place-items:center;padding:24px}.modal{width:min(460px,100%);max-height:86vh;overflow-y:auto;background:var(--card);border:1px solid var(--highlight);border-radius:var(--radius-xl);padding:22px;display:flex;flex-direction:column;gap:13px;box-shadow:var(--shadow-xl)}.modal h2{margin:0;font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.02em}.modal p{margin:0;font-size:var(--t-panel);line-height:1.7;color:var(--dim)}.modal .actions{display:flex;gap:8px;justify-content:flex-end}.modal.composer{width:min(1040px,100%);max-height:92vh;padding:0;gap:0;overflow:hidden}.composerhead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 15px;border-bottom:1px solid var(--rule2)}.composerhead p{margin-top:3px;font-size:var(--t-chrome)}.composerbody{display:grid;grid-template-columns:minmax(0,1fr) 312px;min-height:0;overflow-y:auto}.composerpreview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:22px;min-width:0;background:var(--stage)}.cardstage{--ar: 1.7778;position:relative;width:min(100%,calc(58vh * var(--ar)));aspect-ratio:var(--ar);border-radius:var(--radius);overflow:hidden;background:var(--paper);box-shadow:var(--shadow-lg)}.cardstage img{display:block;width:100%;height:100%;object-fit:contain}.cardbusy{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none;background:color-mix(in srgb,var(--paper) 45%,transparent);transition:opacity var(--d-micro)}.cardstage.busy .cardbusy{opacity:1;transition-delay:.26s}.cardspin{width:20px;height:20px;border-radius:50%;border:2px solid var(--highlight);border-top-color:var(--accent);animation:cardspin .8s linear infinite}@keyframes cardspin{to{transform:rotate(360deg)}}.composerside{display:flex;flex-direction:column;gap:18px;padding:20px 22px;border-left:1px solid var(--rule2)}.optgroup{display:flex;flex-direction:column;gap:8px}.cardseg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:2px;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper)}.cardseg button{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 8px;border-radius:calc(var(--radius) - 2px);font-size:var(--t-chrome);color:var(--faint)}.cardseg button small{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.cardseg button:hover:not([aria-checked=true]){color:var(--ink)}.cardseg button[aria-checked=true]{color:var(--ink);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.optlist{display:flex;flex-direction:column;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper)}.optlist>*+*{border-top:1px solid var(--rule2)}.optrow{display:flex;align-items:center;gap:12px;width:100%;padding:9px 11px;text-align:left}.optrow:hover{background:var(--rule2)}.optext{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.optlabel{font-size:12.5px;color:var(--ink)}.optnote{font-size:11px;line-height:1.4;color:var(--muted)}.optslider{display:flex;flex-direction:column;gap:4px;padding:9px 11px 8px;transition:opacity var(--d-micro)}.optslider.off{opacity:.4}.optslider.off .slider{cursor:default}.optsliderhead{display:flex;justify-content:space-between;font-size:12px;color:var(--dim)}.composeractions{display:flex;flex-direction:column;gap:8px;margin-top:auto}.composeractions .btn{justify-content:center;gap:7px}@media(max-width:860px){.composerbody{grid-template-columns:minmax(0,1fr)}.composerside{border-left:0;border-top:1px solid var(--rule2)}}.popover{position:fixed;z-index:45;background:var(--card);border:1px solid var(--highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.menu{padding:6px;min-width:260px}.menu .item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius);width:100%;text-align:left;font-size:var(--t-chrome);color:var(--dim)}.menu .item:hover{background:var(--surface);color:var(--ink)}.menu .item .when{margin-left:auto;font-size:var(--t-label);color:var(--muted)}.menu .rule{height:1px;background:var(--rule2);margin:5px 0}.sheet{position:absolute;inset:0;z-index:20;background:color-mix(in srgb,var(--void) 55%,transparent);display:flex;align-items:flex-end}.sheetbody{width:100%;max-height:100%;overflow-y:auto;background:var(--card);border-top:1px solid var(--highlight);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:14px;display:flex;flex-direction:column;gap:11px;box-shadow:0 -20px 50px color-mix(in srgb,var(--void) 60%,transparent);animation:rise var(--d-fast) var(--ease-out-expo)}@keyframes rise{0%{transform:translateY(12px);opacity:0}}.format{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper);width:100%;text-align:left;font-size:var(--t-chrome);color:var(--dim)}.format:hover{border-color:var(--highlight)}.format .size{margin-left:auto;font-size:var(--t-label);color:var(--muted);font-variant-numeric:tabular-nums}.tooltip{position:fixed;z-index:70;max-width:300px;background:var(--highlight);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius);padding:10px 12px;font-size:var(--t-chrome);line-height:1.6;color:var(--dim);box-shadow:var(--shadow);pointer-events:none}#toasts{position:fixed;left:50%;bottom:40px;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{width:min(460px,90vw);background:var(--highlight);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:10px;padding:11px 13px;display:flex;align-items:center;gap:11px;box-shadow:var(--shadow-lg);animation:risein var(--d-fast) var(--ease-out-expo)}@keyframes risein{0%{transform:translateY(8px);opacity:0}}.toast .text{flex:1;font-size:var(--t-chrome);color:var(--dim)}.toast .glyph{display:flex}.toast .glyph.good{color:var(--good)}.toast .glyph.bad{color:var(--bad)}.screen{position:absolute;inset:0;z-index:30;background:var(--paper);display:flex;flex-direction:column}.screenbar{height:var(--h-appbar);flex:none;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--stage);border-bottom:1px solid var(--rule2);-webkit-app-region:drag}.screenbar button{-webkit-app-region:no-drag}.screenbody{flex:1;min-height:0;overflow-y:auto;background:var(--stage)}.settingsgrid{width:min(1128px,100%);margin:0 auto;padding:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;align-content:start}.settinggroup{border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg);overflow:hidden;align-self:start}.settinggroup>.head{padding:11px 14px;border-bottom:1px solid var(--rule2)}.settingrow{display:flex;align-items:center;gap:16px;padding:11px 14px;border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.settingrow:last-child{border-bottom:none}.settingrow .about{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.settingrow .label{font-size:var(--t-panel);color:var(--dim)}.settingrow .help{font-size:var(--t-label);line-height:1.5;color:var(--muted)}.settingrow .control{flex:none}.settingrow select,.settingrow input[type=text],.settingrow input[type=number]{height:var(--h-compact);padding:0 8px;border:1px solid var(--rule2);border-radius:7px;background:var(--paper);color:var(--ink);font:400 var(--t-chrome) var(--font-body);font-variant-numeric:tabular-nums;max-width:220px}.privacycard{border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;gap:8px;align-self:start}.privacycard .line{font-family:var(--font-display);font-size:19px;letter-spacing:-.02em}.about{display:flex;min-height:100%}.aboutleft{width:520px;flex:none;background:var(--stage);border-right:1px solid var(--rule2);display:flex;flex-direction:column;justify-content:center;gap:22px;padding:56px}.aboutleft .mark{color:var(--accent)}.aboutright{flex:1;padding:56px;display:flex;flex-direction:column;gap:20px;justify-content:center;background:var(--paper)}.credit{border:1px solid var(--highlight);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:10px;background:var(--gold-soft)}.notices{border:1px solid var(--rule2);border-radius:var(--radius-lg);overflow:hidden}.notices .head{padding:11px 14px;border-bottom:1px solid var(--rule2);font-size:var(--t-chrome);color:var(--dim);display:flex;justify-content:space-between}.notices pre{margin:0;height:220px;overflow:auto;padding:12px 14px;font:11.5px / 1.75 var(--font-mono);color:var(--muted);background:var(--stage);white-space:pre-wrap;user-select:text}.minifyrail{width:400px;flex:none;border-left:1px solid var(--rule2);background:var(--paper);display:flex;flex-direction:column}.minifyresult{display:flex;flex-direction:column;gap:5px}.minifyresult .figure{font-family:var(--font-display);font-size:66px;line-height:.85;letter-spacing:-.04em;color:var(--accent-text)}.sentence{font-size:var(--t-panel);line-height:2;color:var(--dim)}.sentence .inlinefield{display:inline-flex;align-items:center;height:24px;padding:0 4px;border:1px solid var(--rule2);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:400 var(--t-chrome) var(--font-body);font-variant-numeric:tabular-nums;width:58px;text-align:center}.sentence .inlinefield.accent{border-color:var(--accent);background:var(--accent-soft)}.batchbar{height:44px;flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--rule2);background:var(--stage)}.batchhead,.batchrow{display:grid;grid-template-columns:24px minmax(0,1.4fr) 120px 104px 84px 104px 96px minmax(0,1.2fr);align-items:center;gap:12px;padding:0 14px}.batchhead{height:34px;flex:none;border-bottom:1px solid var(--rule2)}.batchrow{height:var(--h-row);border-bottom:1px solid color-mix(in srgb,var(--ink) 4%,transparent);font-size:var(--t-chrome);font-variant-numeric:tabular-nums}.batchrow.failed{background:color-mix(in srgb,var(--bad) 8%,transparent)}.batchrow.running{background:var(--accent-subtle)}.batchrow .trunc,.batchhead .trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batchrow .right,.batchhead .right{text-align:right}.batchrow .state{display:flex;align-items:center;gap:6px}.batchrow .state i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block;flex:none}.state.queued,.state.skipped{color:var(--muted)}.state.running{color:var(--accent-text)}.state.done{color:var(--good)}.state.failed{color:var(--bad)}.batchviewport{flex:1;min-height:0;overflow-y:auto;position:relative}.batchfoot{height:52px;flex:none;display:flex;align-items:center;gap:18px;padding:0 14px;border-top:1px solid var(--rule2);background:var(--stage);font-size:var(--t-chrome);font-variant-numeric:tabular-nums}.progress{height:3px;border-radius:2px;background:var(--highlight);overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);transition:width var(--d-fast) var(--ease-smooth)}@media(max-width:1400px){:root{--rail-w: 330px}}@media(max-width:1180px){:root{--rail-w: 310px}.legend{display:none}}.chooser{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:8;width:min(560px,calc(100% - 32px));max-height:calc(100% - 70px);overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding:10px 12px 11px;background:var(--card);border:1px solid var(--highlight);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:rise var(--d-fast) var(--ease-out-expo)}.choosehead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.choosehead .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chooseintro{font-size:var(--t-label);line-height:1.5;color:var(--dim);padding:7px 10px;border-radius:var(--radius);background:var(--accent-subtle);border:1px solid var(--accent-soft)}.choices{display:flex;flex-direction:column;gap:6px}.choice{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:12px;padding:8px 8px 8px 12px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--paper);min-width:0}.choice .btn{min-width:104px}.choicename{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:17px;letter-spacing:-.02em;color:var(--ink)}.choicename svg{color:var(--accent-text)}.choicebody{font-size:var(--t-chrome);line-height:1.5;color:var(--faint)}.choosenews{display:flex;flex-direction:column;gap:6px;padding-top:9px;border-top:1px solid var(--rule2)}.remember{display:flex;align-items:center;gap:7px;font-size:var(--t-label);color:var(--faint);cursor:pointer;align-self:flex-start}.remember input{accent-color:var(--accent);margin:0}.autochose{display:flex;flex-direction:column;gap:7px;font-size:var(--t-chrome)}.autolead{color:var(--dim);line-height:1.5}.autorow{display:flex;align-items:center;gap:10px;justify-content:space-between}.autorow.moved{padding-top:7px;border-top:1px dashed var(--rule2)}.autotext{display:flex;flex-direction:column;gap:2px;min-width:0}.autotitle{color:var(--ink)}.autotext .muted{font-size:var(--t-label)}.autobtns{display:flex;align-items:center;gap:10px;flex:none}.autorow .btn{flex:none}.autotaken{font-size:var(--t-label);color:var(--state-final);flex:none}.card.autocard{border-color:var(--accent-soft);background:color-mix(in srgb,var(--accent) 4%,var(--card))}.guideline{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:var(--t-label)}.rail.wizarding{width:max(var(--rail-w),400px)}.sheet.wizsheet{align-items:stretch;background:var(--paper)}.sheetbody.wizbody{height:100%;border-radius:0;border-top:none;box-shadow:none;padding:0;gap:0;overflow:hidden;background:var(--paper)}.wizhead{flex:none;display:flex;flex-direction:column;gap:9px;padding:14px 16px 12px;border-bottom:1px solid var(--rule2)}.wiztitle{font-size:24px;font-weight:500;line-height:1.1;color:var(--ink)}.wizdots{display:flex;gap:6px}.wizdots button{flex:1;height:4px;border-radius:2px;background:var(--highlight);transition:background var(--d-micro)}.wizdots button.done{background:color-mix(in srgb,var(--accent) 45%,var(--highlight))}.wizdots button[aria-selected=true]{background:var(--accent)}.wizdots button:hover{background:var(--accent-hover)}.wizcompare{display:flex;align-items:center;gap:8px;font-size:var(--t-label)}.wizcompare .seg>button{padding:3px 9px}.wizscroll{flex:1;min-height:0;overflow-y:auto;padding:14px 16px 18px;display:flex;flex-direction:column;gap:14px}.wizlead{font-size:var(--t-panel);line-height:1.55;color:var(--dim)}.wizguide{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--rule2)}.wizexplain{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0;font-size:var(--t-chrome);line-height:1.5}.wizexplain dt{font-size:var(--t-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px;white-space:nowrap}.wizexplain dd{margin:0;color:var(--dim)}.wizlearn{font-size:var(--t-label);color:var(--accent-text);align-self:flex-start;text-decoration:none}.wizlearn:hover{text-decoration:underline}.wizcontrols{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card)}.wizlive{display:flex;flex-direction:column;gap:12px}.wizrow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--t-chrome)}.wizsmall{font-size:var(--t-label);line-height:1.5}.wizwhy{font-size:var(--t-chrome);line-height:1.5;color:var(--dim)}.wizchoices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wizchoice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 11px;text-align:left;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper);font-size:var(--t-label);line-height:1.45}.wizchoice .name{font-size:13px;font-weight:600;color:var(--ink)}.wizchoice:hover{border-color:var(--highlight)}.wizchoice[aria-pressed=true]{border-color:var(--accent);background:var(--accent-subtle)}.wiznote{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 11px;border-radius:var(--radius);background:var(--accent-subtle);font-size:var(--t-label);line-height:1.5;color:var(--dim)}.wiznav{flex:none;display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--rule2);background:var(--paper)}.kinds{display:grid;grid-template-columns:1fr 1fr;gap:9px}.kind{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:7px 7px 9px;text-align:left;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card);min-width:0;transition:border-color var(--d-micro),background var(--d-micro)}.kind:hover{border-color:var(--highlight)}.kind[aria-checked=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card));box-shadow:0 0 0 1px var(--accent)}.kthumb{position:relative;height:104px;border-radius:var(--radius);background-color:var(--stage);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:10px 10px;display:grid;place-items:center;overflow:hidden;margin-bottom:3px}.kthumb img{max-width:92%;max-height:92%;object-fit:contain;image-rendering:auto}.kspin{position:absolute;inset:auto 0 0;height:2px;overflow:hidden;display:none}.kind.busy .kspin{display:block}.kspin:after{content:"";position:absolute;top:0;bottom:0;left:0;width:30%;background:var(--accent);animation:sweepacross 1.6s var(--ease-out-expo) infinite}@media(prefers-reduced-motion:reduce){.kspin:after{animation:none;width:100%;opacity:.5}}.kname{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink);padding:0 2px}.ksugg{font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}.kwhy,.knote,.kstat{font-size:11px;line-height:1.4;padding:0 2px}.kwhy{color:var(--faint)}.knote{color:var(--muted);font-style:italic}.kstat{color:var(--muted);margin-top:2px}.wizreadout table{width:100%;border-collapse:collapse;font-size:var(--t-chrome)}.wizreadout th,.wizreadout td{padding:4px 0;text-align:right;font-weight:400}.wizreadout thead th{font-size:var(--t-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.wizreadout tbody th{text-align:left;color:var(--faint)}.wizreadout td{color:var(--ink);padding-left:10px}.wizreadout td.delta{width:70px}.wizreadout td.delta.same{color:var(--muted)}.wizchanges .wizchange{display:flex;justify-content:space-between;gap:10px;font-size:var(--t-chrome);color:var(--faint)}.wizchanges .wizchange .num{color:var(--ink)}.pane.source.comparing .panelabel{color:var(--accent-text)}.intro{width:min(620px,80%);display:flex;flex-direction:column;gap:12px;padding:16px 18px;border:1px solid var(--accent-soft);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--accent) 5%,var(--paper))}.intro ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.intro li{display:flex;gap:11px;align-items:baseline;font-size:var(--t-chrome);line-height:1.5}.intro li>div{display:flex;flex-direction:column}.introstep{width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;background:var(--accent);color:var(--accent-ink)}.introtitle{color:var(--ink);font-weight:500}.introfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--t-label)}html.framed:not(.fullscreen) body{padding-top:6px;background:var(--void)}html.framed:not(.fullscreen) #app{position:relative;border-top:1px solid rgba(201,117,74,.35)}.desktopnote{margin:14px 0 0;font-size:12.5px;text-align:center}.webcontrols{display:flex;gap:2px;margin-left:4px}.webcontrols .btn{gap:6px}.phonenote{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--void) 82%,transparent)}.phonecard{max-width:420px;display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:var(--radius-lg, 12px);background:var(--card);box-shadow:var(--shadow-lg)}.phonecard p{margin:0;font-size:13.5px;line-height:1.65;color:var(--dim)}.sc-loading{padding:40px;text-align:center}.sc-page{width:min(1320px,100%);margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:18px}.sc-head h1{margin:0 0 6px;font-size:28px;font-weight:600}.sc-head p,.sc-results>p{margin:0;max-width:96ch;font-size:13px;line-height:1.6}.sc-main{display:grid;grid-template-columns:300px 1fr;gap:16px;min-height:0;align-items:start}.sc-list{height:560px;overflow-y:auto;overscroll-behavior:contain;padding:0 10px 10px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card);scrollbar-width:thin}.sc-sethead{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;padding:10px 2px 8px;background:var(--card);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}.sc-sethead span{color:var(--faint);font-weight:600}.sc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:6px}.sc-case{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;overflow:hidden;padding:5px;border:1px solid var(--rule2);border-radius:var(--radius-sm);background:var(--stage);color:var(--dim);cursor:pointer;text-align:left}.sc-case[aria-pressed=true]{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.sc-thumb{aspect-ratio:1;width:100%;border-radius:5px;background:#fff;display:grid;place-items:center;overflow:hidden}.sc-thumb img{width:100%;height:100%;object-fit:contain}.sc-name{width:100%;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-caption{margin:0;font-size:12.5px;color:var(--dim)}.sc-stagecol{display:flex;flex-direction:column;gap:10px;min-width:0}.sc-tools{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap}.sc-tools .eyebrow{margin-left:6px}.sc-legend{margin-right:4px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px}.sc-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.sc-dot.a{background:var(--anchor)}.sc-dot.hd{background:var(--handle);margin-left:6px}.sc-viewer{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sc-pane{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--rule2);border-radius:var(--radius-sm);background-color:var(--stage);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:16px 16px;cursor:grab;touch-action:none;user-select:none}.sc-pane:active{cursor:grabbing}.sc-cam{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0}.sc-cam>img,.sc-layer,.sc-layer>svg{position:absolute;inset:0;width:100%;height:100%;display:block}.sc-cam>img{object-fit:contain}.sc-tag{position:absolute;top:8px;left:8px;padding:4px 7px;border-radius:6px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--paper) 85%,transparent);color:var(--ink);pointer-events:none}.sc-wire path,.sc-wire circle,.sc-wire ellipse,.sc-wire rect,.sc-wire polygon{fill:none!important;stroke:var(--wire);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-opacity:.9}.sc-ov{pointer-events:none}.sc-ov .h{stroke:var(--handle);stroke-width:1px;vector-effect:non-scaling-stroke;fill:none;stroke-opacity:.85}.sc-ov .hd{stroke:var(--handle);stroke-width:3.5px;vector-effect:non-scaling-stroke;stroke-linecap:round;fill:none}.sc-ov .a{stroke:var(--anchor);stroke-width:5px;vector-effect:non-scaling-stroke;stroke-linecap:round;fill:none}.sc-chips{display:flex;flex-wrap:wrap;gap:6px}.sc-chip{font-size:12px;padding:4px 9px;border-radius:999px;border:1px solid var(--rule2);color:var(--dim);font-variant-numeric:tabular-nums}.sc-chip.win{border-color:transparent;background:var(--goodbg);color:var(--good)}.sc-results{display:flex;flex-direction:column;gap:12px;padding-top:8px;border-top:1px solid var(--rule2)}.sc-results h2{margin:8px 0 0;font-size:22px;font-weight:600}.sc-bignums{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sc-bignum{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card);font-size:12px}.sc-bignum .v{font-size:28px;color:var(--accent);line-height:1.1}.sc-table{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--card);border:1px solid var(--rule2);border-radius:var(--radius-lg);overflow:hidden}.sc-table th,.sc-table td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--rule2);white-space:nowrap}.sc-table th:first-child,.sc-table td:first-child{text-align:left}.sc-table th{font-size:11px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.04em}.sc-table td.num{font-variant-numeric:tabular-nums;color:var(--dim)}.sc-table tr.win td{color:var(--ink)}.sc-table tr.win td:first-child{color:var(--accent);font-weight:600}.sc-note{font-size:12px!important}.sc-table caption{text-align:left;padding:10px 12px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
|
studio/assets/main-DOUNaj7B.css
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
@font-face{font-family:Inter Studio;src:url(../fonts/inter-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Studio;src:url(../fonts/playfair-latin.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=dark]{color-scheme:dark;--void: #0c0a09;--stage: #141210;--paper: #1a1816;--card: #211f1c;--surface: #2a2724;--highlight: #35322e;--ink: #faf8f5;--dim: rgba(250, 248, 245, .75);--faint: rgba(250, 248, 245, .55);--muted: rgba(250, 248, 245, .4);--rule: rgba(250, 248, 245, .08);--rule2: #2a2724;--accent: #c9754a;--accent-text: #d4896a;--accent-hover: #d4896a;--accent-ink: #1a1816;--accent-soft: rgba(201, 117, 74, .12);--accent-subtle: rgba(201, 117, 74, .08);--gold: #b8976c;--gold-soft: rgba(184, 151, 108, .15);--good: #34d399;--goodbg: rgba(52, 211, 153, .15);--bad: #f87171;--badbg: rgba(248, 113, 113, .15);--anchor: #f87171;--handle: #b8976c;--wire: #faf8f5;--vt: #9a938c;--checker-a: #191715;--checker-b: #141210;--focus: rgba(201, 117, 74, .35);--focus-line: #c9754a;--state-draft: #b8976c;--state-final: #34d399;--state-stale: #c9754a;--shadow-sm: 0 4px 12px -2px rgba(12, 10, 9, .4);--shadow: 0 8px 24px -4px rgba(12, 10, 9, .5);--shadow-lg: 0 20px 50px -12px rgba(12, 10, 9, .6);--shadow-xl: 0 30px 70px -20px rgba(12, 10, 9, .7);--glow: 0 6px 20px rgba(201, 117, 74, .25)}:root[data-theme=light]{color-scheme:light;--void: #e6e1d9;--stage: #f0ece6;--paper: #faf8f5;--card: #ffffff;--surface: #eae5dd;--highlight: #ded8ce;--ink: #1a1816;--dim: rgba(26, 24, 22, .75);--faint: rgba(26, 24, 22, .58);--muted: rgba(26, 24, 22, .46);--rule: rgba(26, 24, 22, .1);--rule2: #d8d2c8;--accent: #c9754a;--accent-text: #9c5730;--accent-hover: #b3603a;--accent-ink: #faf8f5;--accent-soft: rgba(201, 117, 74, .14);--accent-subtle: rgba(201, 117, 74, .08);--gold: #8a6a3f;--gold-soft: rgba(138, 106, 63, .14);--good: #1c7a55;--goodbg: rgba(28, 122, 85, .14);--bad: #b83232;--badbg: rgba(184, 50, 50, .13);--anchor: #b83232;--handle: #8a6a3f;--wire: #1a1816;--vt: #6f6862;--checker-a: #ffffff;--checker-b: #e8e3db;--focus: rgba(201, 117, 74, .45);--focus-line: #9c5730;--state-draft: #8a6a3f;--state-final: #1c7a55;--state-stale: #9c5730;--shadow-sm: 0 4px 12px -2px rgba(90, 76, 60, .12);--shadow: 0 8px 24px -4px rgba(90, 76, 60, .16);--shadow-lg: 0 20px 50px -12px rgba(90, 76, 60, .2);--shadow-xl: 0 30px 70px -20px rgba(90, 76, 60, .24);--glow: 0 6px 20px rgba(201, 117, 74, .28)}:root{--font-display: "Playfair Studio", "Playfair Display", Georgia, serif;--font-body: "Inter Studio", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--h-compact: 28px;--h-control: 32px;--h-pill: 36px;--h-appbar: 46px;--h-status: 26px;--h-row: 30px;--t-chrome: 12.5px;--t-panel: 13px;--t-label: 11.5px;--t-eyebrow: 10px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--rail-pad: 14px;--rail-w: 352px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--d-micro: .15s;--d-fast: .2s;--d-normal: .4s}@media(prefers-reduced-motion:reduce){:root{--d-micro: 0ms;--d-fast: 0ms;--d-normal: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);font:400 var(--t-panel) / 1.5 var(--font-body);-webkit-font-smoothing:antialiased;user-select:none;cursor:default}#app{height:100%;display:flex;flex-direction:column}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-line);outline-offset:2px;border-radius:var(--radius-sm)}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.serif{font-family:var(--font-display);letter-spacing:-.03em}.eyebrow{font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.dim{color:var(--dim)}.faint{color:var(--faint)}.muted{color:var(--muted)}.sep{width:1px;height:18px;background:var(--rule2);flex:none}.spacer{flex:1}kbd{font:500 10.5px var(--font-mono);border:1px solid var(--highlight);border-radius:4px;padding:1px 5px;color:var(--faint)}.btn{height:var(--h-control);padding:0 16px;border-radius:var(--radius-full);border:1px solid var(--rule2);background:transparent;color:var(--dim);font-weight:500;font-size:var(--t-chrome);display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:transform var(--d-micro) var(--ease-smooth),background var(--d-micro),border-color var(--d-micro),box-shadow var(--d-micro)}.btn:hover:not(:disabled){border-color:var(--highlight);color:var(--ink)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{height:var(--h-pill);border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:var(--t-panel);box-shadow:var(--glow)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink);transform:translateY(-2px)}.btn.ghost{border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface)}.btn.compact{height:var(--h-compact);padding:0 11px;border-radius:var(--radius);font-size:var(--t-chrome)}.btn.icon{width:var(--h-control);padding:0}.btn.icon.compact{width:var(--h-compact)}.btn.danger{color:var(--bad)}.seg{display:inline-flex;gap:2px;padding:2px;background:var(--card);border:1px solid var(--rule2);border-radius:7px}.seg>button{font-size:var(--t-label);padding:4px 11px;border-radius:5px;color:var(--faint);white-space:nowrap;transition:background var(--d-micro),color var(--d-micro)}.seg>button:hover{color:var(--dim)}.seg>button[aria-pressed=true]{background:var(--highlight);color:var(--ink);font-weight:500}.seg>button:disabled{color:var(--muted);cursor:default}.toggle{font-size:var(--t-label);padding:3px 9px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--faint)}.toggle:hover{color:var(--dim)}.toggle[aria-pressed=true]{border-color:var(--highlight);background:var(--rule2);color:var(--ink)}.switch{width:32px;height:18px;flex:none;border-radius:var(--radius-full);background:var(--highlight);position:relative;transition:background var(--d-micro)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--faint);transition:transform var(--d-micro) var(--ease-smooth),background var(--d-micro)}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(14px);background:var(--accent-ink)}.checkbox{width:15px;height:15px;flex:none;border-radius:4px;border:1px solid var(--highlight);display:grid;place-items:center;color:var(--accent-ink)}.checkbox[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.checkbox:not([aria-checked=true])>svg{visibility:hidden}.appbar{height:var(--h-appbar);flex:none;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--stage);border-bottom:1px solid var(--rule2);-webkit-app-region:drag}.appbar button,.appbar .seg,.appbar .filechip,.appbar .nodrag{-webkit-app-region:no-drag}.brand{display:flex;align-items:center;gap:8px;font-size:var(--t-chrome);font-weight:600;letter-spacing:-.01em;padding-right:4px}.brand>svg{color:var(--accent)}.filechip{display:flex;align-items:center;gap:8px;height:var(--h-compact);padding:0 10px;background:var(--card);border:1px solid var(--rule2);border-radius:var(--radius-sm);font-size:var(--t-chrome);max-width:340px}.filechip .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wincontrols{display:flex;gap:2px;margin-left:4px}.wincontrols button{width:30px;height:26px;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--faint)}.wincontrols button:hover{background:var(--surface);color:var(--ink)}.wincontrols button.close:hover{background:var(--bad);color:#fff}.wincontrols i{display:block;background:currentColor}.wincontrols .min i{width:10px;height:1px}.wincontrols .max i{width:9px;height:9px;background:none;border:1px solid currentColor;border-radius:2px}.body{flex:1;min-height:0;display:flex}.stage{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--stage);position:relative}.viewertools{min-height:38px;flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:5px 12px;border-bottom:1px solid var(--rule2);background:color-mix(in srgb,var(--stage) 92%,transparent)}.legend{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--faint)}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:block}.legend .anchor{width:7px;height:7px;border-radius:50%;background:var(--anchor)}.legend .handle{width:7px;height:7px;background:var(--handle);transform:rotate(45deg)}.legend .band{width:12px;height:6px;border-radius:2px}.legend .band.sure,.overlay .certainty .sure{--band: #30a46c}.legend .band.soft,.overlay .certainty .soft{--band: #f5a524}.legend .band.unsure,.overlay .certainty .unsure{--band: #e5484d}.legend .band{background:var(--band)}.overlay .certainty path{fill:var(--band);fill-rule:evenodd;fill-opacity:.45;stroke:var(--band);stroke-width:1;vector-effect:non-scaling-stroke}.legend .wire{width:12px;height:2px;background:var(--wire)}.panes{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.pane{flex:1;min-width:0;position:relative;overflow:hidden;display:grid;place-items:center;background-color:var(--stage);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:16px 16px;cursor:grab;touch-action:none}.pane:active{cursor:grabbing}.pane.hidden{display:none}.panes.stacked .pane{position:absolute;inset:0}.panelabel{position:absolute;top:10px;left:12px;z-index:3;pointer-events:none}.chip{position:absolute;top:8px;right:12px;z-index:3;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--radius-full);font-size:var(--t-label);border:1px solid;pointer-events:none}.chip i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block}.chip.draft{color:var(--state-draft);border-color:color-mix(in srgb,var(--state-draft) 45%,transparent);background:color-mix(in srgb,var(--state-draft) 15%,transparent)}.chip.final{color:var(--state-final);border-color:color-mix(in srgb,var(--state-final) 40%,transparent);background:color-mix(in srgb,var(--state-final) 15%,transparent)}.chip.stale{color:var(--state-stale);border-color:color-mix(in srgb,var(--state-stale) 45%,transparent);background:color-mix(in srgb,var(--state-stale) 15%,transparent)}.chip.swapped:after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:1.5px;background:var(--accent);border-radius:1px;transform-origin:left;animation:sweep var(--d-normal) var(--ease-out-expo)}@keyframes sweep{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.art{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;pointer-events:none}.art img{display:block;image-rendering:pixelated}.art svg{display:block;overflow:visible}.art.swapping{animation:crossfade var(--d-normal) var(--ease-out-expo)}@keyframes crossfade{0%{opacity:.25}to{opacity:1}}.art.centred{position:static;place-self:stretch;min-width:0;min-height:0;padding:44px 32px 32px}.panes.onlight{--stage: #f3f0ea;--checker-a: #ffffff;--checker-b: #ebe7df}.panes.ondark{--stage: #1a1816;--checker-a: #26231f;--checker-b: #211f1c}.overlay{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.overlay .wireframe path{fill:none;stroke:var(--wire);stroke-width:1px;vector-effect:non-scaling-stroke}.overlay .handles path{fill:none;stroke:var(--handle);vector-effect:non-scaling-stroke}.overlay .handles .lines{stroke-width:.8px}.overlay .handles .knobs{stroke-width:2.4px;stroke-linecap:square}.pane>canvas.anchors{position:absolute;left:0;top:0;pointer-events:none}.wipehandle{position:absolute;top:0;bottom:0;width:2px;background:var(--ink);z-index:4;cursor:ew-resize;opacity:.7}.wipehandle:after{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2px solid var(--ink);background:var(--stage)}.detailpane{position:absolute;inset:0;z-index:5;background:var(--stage);display:flex;flex-direction:column}.detailhead{flex:none;display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--rule2);font-size:var(--t-label);color:var(--dim)}.detailbody{flex:1;min-height:0;position:relative;overflow:hidden;display:grid;place-items:center}.detailfoot{flex:none;padding:8px 12px;border-top:1px solid var(--rule2);font-size:var(--t-label);color:var(--faint)}.pixelgrid{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(250,248,245,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(250,248,245,.07) 1px,transparent 1px);pointer-events:none}:root[data-theme=light] .pixelgrid{background-image:linear-gradient(to right,rgba(26,24,22,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(26,24,22,.1) 1px,transparent 1px)}.stagestate{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:32px;text-align:center;background:var(--stage)}.stagestate .title{font-size:16px;font-weight:500}.stagestate .body{display:block;font-size:var(--t-chrome);line-height:1.6;color:var(--faint);max-width:46ch}.stagestate .action{font-size:var(--t-chrome);color:var(--accent-text);margin-top:2px}.statusstrip{height:var(--h-status);flex:none;display:flex;align-items:center;gap:10px;padding:0 12px;border-top:1px solid var(--rule2);background:var(--stage);font-size:var(--t-label);color:var(--faint);font-variant-numeric:tabular-nums}.statusstrip .lead{color:var(--dim)}.statusstrip .privacy{margin-left:auto}.statusstrip .updatechip{display:inline-flex;align-items:center;gap:6px;color:var(--gold)}.statusstrip .updatechip i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block}.statusstrip .fetchchip{display:inline-flex;align-items:center;gap:8px;margin-left:12px;color:var(--faint);white-space:nowrap}.statusstrip .fetchchip.bad{color:var(--bad)}.fetchbar{width:64px;flex:none}.fetchnote{display:flex;flex-direction:column;gap:6px;font-size:11.5px;line-height:1.45;color:var(--faint)}.fetchnote .fetchbar{width:100%}.fetchnote .fetchline{color:var(--dim);font-variant-numeric:tabular-nums}.rail{width:var(--rail-w);flex:none;border-left:1px solid var(--rule2);background:var(--paper);display:flex;flex-direction:column;position:relative}.railscroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--rail-pad);display:flex;flex-direction:column;gap:var(--rail-pad)}.railscroll::-webkit-scrollbar{width:10px}.railscroll::-webkit-scrollbar-thumb{background:var(--rule2);border-radius:5px;border:3px solid var(--paper)}.railscroll::-webkit-scrollbar-thumb:hover{background:var(--highlight)}.card{border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg);padding:13px;display:flex;flex-direction:column;gap:10px}.cardhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.railfoot{flex:none;border-top:1px solid var(--rule2);background:var(--stage);padding:12px var(--rail-pad);display:flex;flex-direction:column;gap:8px}.railfoot .row{display:flex;gap:8px}.railfoot .note{display:flex;justify-content:space-between;font-size:var(--t-label);color:var(--muted)}.presets{display:flex;flex-wrap:wrap;gap:5px}.preset{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid var(--rule2);background:var(--card);font-size:var(--t-chrome);color:var(--dim);transition:border-color var(--d-micro),background var(--d-micro),color var(--d-micro)}.preset:hover{border-color:var(--highlight);color:var(--ink)}.preset[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:500}.preset.saved{padding-right:22px}.preset{position:relative}.preset .forget{position:absolute;top:50%;margin-top:-8px;right:4px;width:16px;height:16px;border-radius:5px;opacity:0;transition:opacity var(--d-micro),background var(--d-micro)}.preset .forget:before,.preset .forget:after{content:"";position:absolute;left:4px;top:7.5px;width:8px;height:1.5px;border-radius:1px;background:var(--muted)}.preset .forget:before{transform:rotate(45deg)}.preset .forget:after{transform:rotate(-45deg)}.preset:hover .forget,.preset .forget:focus-visible{opacity:1}.preset .forget:hover{background:var(--highlight)}.preset .forget:hover:before,.preset .forget:hover:after{background:var(--bad)}.traybar{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px}.railmodes{flex:none;display:grid;grid-template-columns:1.75fr 1fr;gap:8px;padding:10px var(--rail-pad) 0}.mode{min-width:0;display:flex;flex-direction:column;gap:8px;padding:10px 11px 11px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card)}.modehead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:16px}.modetitle{font-size:12.5px;font-weight:600;color:var(--ink)}.modestate{font-size:10.5px;color:var(--muted);white-space:nowrap}.seg.big{display:flex;width:100%;padding:3px}.seg.big>button{flex:1;padding:7px 0;font-size:12.5px;text-align:center}.seg.big>button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.bigswitch{display:flex;align-items:center;gap:8px;height:34px;padding:0 4px;border:1px solid var(--rule2);border-radius:999px;background:var(--paper);color:var(--dim);font-size:12.5px;font-weight:600;transition:background var(--d-micro),border-color var(--d-micro),color var(--d-micro)}.bigswitch .knob{flex:none;width:24px;height:24px;border-radius:50%;background:var(--highlight);transition:background var(--d-micro)}.bigswitch .state{flex:1;text-align:center;padding-right:4px}.bigswitch[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.bigswitch[aria-checked=true]{flex-direction:row-reverse}.bigswitch[aria-checked=true] .knob{background:var(--accent-ink)}.bigswitch[aria-checked=true] .state{padding-right:0;padding-left:4px}.railtabs{flex:none;background:var(--stage);border-bottom:1px solid var(--rule2)}.railseg{display:flex;width:100%}.railseg>button{position:relative;flex:1;display:flex;align-items:baseline;justify-content:center;gap:8px;height:46px;padding:14px 12px 0;color:var(--muted);transition:color var(--d-micro),background var(--d-micro)}.railseg>button:hover:not([aria-selected=true]){color:var(--dim);background:color-mix(in srgb,var(--ink) 4%,transparent)}.railseg>button[aria-selected=true]{color:var(--ink);background:var(--paper)}.railseg>button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;transition:background var(--d-micro)}.railseg>button[aria-selected=true]:after{background:var(--accent)}.railseg .tablabel{font-size:14px;font-weight:600;letter-spacing:-.005em}.railseg .tabnote{font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--faint)}.railseg .tabnote:empty{display:none}.railseg>button[aria-selected=true] .tabnote{color:var(--accent-text)}.tabcaption{margin:0;padding:7px var(--rail-pad) 9px;background:var(--paper);font-size:11.5px;color:var(--muted)}.presetblock{display:flex;flex-direction:column;gap:8px}.presetblock .traybar .faint{min-width:0}.rail section.group{gap:0;border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg)}.rail section.group .grouphead{align-items:center;padding-right:13px}.groupbtn{flex:1;display:flex;align-items:center;gap:7px;padding:11px 9px 11px 13px;color:var(--muted);text-align:left;border-radius:var(--radius-lg)}.groupbtn:hover{color:var(--dim)}.groupbtn .changed{font-size:10.5px;color:var(--accent-text)}.groupbody{display:flex;flex-direction:column;gap:13px;padding:2px 13px 14px}.control.changed .controlhead .label:before{content:"";display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:var(--accent);vertical-align:1px}.emptycard p{margin:0;font-size:var(--t-chrome);line-height:1.55;color:var(--dim)}.structure .srow{display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:5px;align-items:baseline}.structure .srow .k{font-size:var(--t-chrome);color:var(--dim)}.structure .srow .v{font-size:var(--t-panel);font-variant-numeric:tabular-nums}.structure .srow .v .of{margin-left:6px;font-size:10.5px;color:var(--muted)}.sbar{grid-column:1 / -1;position:relative;height:4px;margin-bottom:4px;border-radius:2px;background:var(--highlight)}.sbar i{position:absolute;inset:0 auto 0 0;border-radius:2px;background:var(--accent);transition:width var(--d-normal) var(--ease-out-expo)}.sbar b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px;background:var(--dim)}.readout{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;min-height:54px;background:var(--rule2);border:1px solid var(--rule2);border-radius:var(--radius);overflow:hidden}.readout .cell{min-width:0;display:flex;flex-direction:column;gap:1px;padding:6px 10px;background:var(--paper)}.readout .v{font-size:15px;font-weight:500;line-height:1.25}.readout .k{font-size:10px;color:var(--muted)}.delta{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--muted)}.delta.better{color:var(--good)}.delta.worse{color:var(--gold)}.readout.busy,.readout.idle{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--paper);font-size:var(--t-chrome)}.readout .stage{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--state-stale)}.pulse{flex:none;width:7px;height:7px;border-radius:50%;background:var(--state-stale);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.headline{display:flex;align-items:flex-end;gap:12px}.headline .figure{font-family:var(--font-display);font-size:52px;line-height:.85;letter-spacing:-.03em}.headline .of{display:flex;flex-direction:column;gap:2px;padding-bottom:4px}.meter{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--good),var(--gold) 55%,var(--bad))}.meter .threshold{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--dim)}.meter .needle{position:absolute;top:-4px;width:2px;height:14px;background:var(--ink);border-radius:1px;transition:left var(--d-normal) var(--ease-out-expo)}.meterscale{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule2);border:1px solid var(--rule2);border-radius:var(--radius);overflow:hidden;font-variant-numeric:tabular-nums}.stats>div{background:var(--paper);padding:8px 10px;display:flex;flex-direction:column;gap:2px}.stats .k{font-size:10.5px;color:var(--muted)}.stats .v{font-size:var(--t-panel)}.benchmark{display:flex;gap:8px;padding:8px 10px;border:1px dashed var(--highlight);border-radius:var(--radius);background:color-mix(in srgb,var(--ink) 2%,transparent)}.benchmark .label{flex:none;padding-top:1px}.benchmark p{margin:0;font-size:var(--t-label);line-height:1.45;color:var(--faint)}.loss{display:flex;gap:9px;padding-bottom:9px;border-bottom:1px solid var(--rule2)}.loss:last-of-type{border-bottom:none;padding-bottom:0}.loss .glyph{flex:none;padding-top:2px;color:var(--gold)}.loss .text{font-size:var(--t-chrome);line-height:1.45;color:var(--dim)}.loss .meta{font-size:var(--t-label);color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}.loss .why{font-size:var(--t-label);line-height:1.5;color:var(--faint);margin-top:4px;padding-left:9px;border-left:1px solid var(--rule2)}.loss .expand{color:var(--muted)}.loss .expand:hover{color:var(--dim)}.nothinglost{display:flex;gap:9px;align-items:center;font-size:var(--t-chrome);color:var(--faint)}.nothinglost .glyph{color:var(--good);flex:none;display:flex}.ink{display:flex;align-items:center;gap:9px;padding:2px 0;border-radius:var(--radius-sm);width:100%;text-align:left}.ink:hover{background:var(--surface)}.swatch{width:22px;height:22px;flex:none;border-radius:5px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:8px 8px;position:relative;overflow:hidden}.swatch i{position:absolute;inset:0;display:block}.swatch.snapped{border:2px solid var(--accent)}.ink .hex{font-size:var(--t-chrome);font-variant-numeric:tabular-nums;color:var(--dim);width:72px}.ink .share{font-size:var(--t-label);color:var(--muted);font-variant-numeric:tabular-nums;width:44px}.ink .snap{margin-left:auto;font-size:var(--t-label);color:var(--muted)}.ink .snap.on{color:var(--accent-text)}.ink{gap:6px;touch-action:none}.ink.grouped .hex{color:var(--accent-text)}.inkpick{width:16px;height:16px;flex:none;border-radius:4px;border:1px solid var(--highlight);display:grid;place-items:center;color:var(--accent-ink)}.inkpick[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.inkmain{display:flex;align-items:center;gap:9px;flex:1;min-width:0;text-align:left}.inkmain[aria-disabled=true]{cursor:grab}.swatch.mini{width:16px;height:16px;border-radius:4px}.swatch.mini.ramp{width:26px}.inklist{display:flex;flex-direction:column;gap:1px;border-radius:var(--radius-sm)}.inklist,.cgroup{transition:box-shadow var(--d-fast),background var(--d-fast)}.mergebar{display:flex;align-items:center;gap:10px;font-size:var(--t-label)}.cgroups{display:flex;flex-direction:column;gap:7px}.cgroupshead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cgroup{border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper);padding:8px;display:flex;flex-direction:column;gap:7px}.cgroup.suggested{border-style:dashed;background:transparent}.cchips{display:flex;flex-wrap:wrap;gap:4px}.cchip{display:inline-flex;align-items:center;border:1px solid var(--highlight);border-radius:999px;background:var(--card);touch-action:none;font-size:var(--t-label);color:var(--dim)}.cchip.target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.cchip.unmatched{border-color:var(--gold);border-style:dashed}.cchipmain{display:inline-flex;align-items:center;gap:5px;padding:2px 4px 2px 3px;border-radius:999px}.cchipmain .swatch.mini{border-radius:999px}.cchipx{display:grid;place-items:center;width:18px;height:18px;margin-right:2px;border-radius:999px;color:var(--muted)}.cchipx:hover{color:var(--ink);background:var(--surface)}.cresult{display:flex;align-items:center;gap:6px;font-size:var(--t-label)}.cresult>span{white-space:nowrap}.cresult .arrow{color:var(--muted)}.cresultchip{display:inline-flex;align-items:center;gap:5px;color:var(--dim)}.cactions{display:flex;align-items:center;gap:6px}.creport{font-size:11px;line-height:1.4;display:inline-flex;align-items:center;gap:5px;min-width:0}.creport.warn{color:var(--gold)}.creport.warn svg{flex:none}.simplifyrow{display:flex;align-items:center;gap:5px;font-size:var(--t-label)}.numberfield.simplify{min-width:0;width:40px;text-align:center}.dragghost{position:fixed;z-index:60;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}body.dragging-ink,body.dragging-ink *{cursor:grabbing!important}body.dragging-ink [data-drop=list]{box-shadow:0 0 0 1px var(--rule2)}.dropping{box-shadow:0 0 0 2px var(--accent)!important;background:var(--accent-subtle)!important}.control{display:flex;flex-direction:column;gap:5px}.controlhead{display:flex;align-items:baseline;gap:8px}.controlhead .label{flex:1;font-size:var(--t-chrome);color:var(--dim)}.controlhead .unit{font-size:var(--t-label);color:var(--muted)}.numberfield{height:24px;min-width:58px;padding:0 6px;border:1px solid var(--highlight);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:400 var(--t-chrome) var(--font-body);font-variant-numeric:tabular-nums;text-align:center}.numberfield:focus-visible{border-color:var(--accent)}.slider{appearance:none;-webkit-appearance:none;width:100%;height:14px;background:none;margin:2px 0 0;cursor:pointer}.slider::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--highlight)}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;margin-top:-4px;border-radius:50%;background:var(--ink);border:none}.slider::-moz-range-track{height:3px;border-radius:2px;background:var(--highlight)}.slider::-moz-range-thumb{width:11px;height:11px;border:none;border-radius:50%;background:var(--ink)}.stops{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted);white-space:nowrap}.group{display:flex;flex-direction:column;gap:9px}.grouphead{display:flex;align-items:baseline;justify-content:space-between}.reset{font-size:var(--t-label);color:var(--accent-text)}.reset:disabled{color:var(--muted);cursor:default}.stagelist{display:flex;flex-direction:column;gap:5px;font-variant-numeric:tabular-nums}.stagerow{display:flex;align-items:baseline;gap:8px;font-size:var(--t-label);color:var(--muted)}.stagerow.done{color:var(--dim)}.stagerow .mark{width:10px;text-align:center;color:var(--muted)}.stagerow.done .mark{color:var(--good)}.stagerow .name{flex:1}.sweep{height:2px;background:var(--rule2);border-radius:2px;overflow:hidden}.sweep i{display:block;width:30%;height:100%;background:var(--accent);animation:sweepacross 1.6s var(--ease-out-expo) infinite}@keyframes sweepacross{0%{transform:translate(-100%)}to{transform:translate(340%)}}@media(prefers-reduced-motion:reduce){.sweep i{animation:none;width:100%;opacity:.4}.chip.swapped:after,.art.swapping,.callout,.pulse{animation:none}.dragging .drop{transition:none}}.firstrun{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;background:var(--stage);padding:24px}.drop{width:min(620px,80%);padding:44px 24px;min-height:220px;justify-content:center;border:1.5px dashed var(--highlight);border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;gap:16px;background:color-mix(in srgb,var(--ink) 1.5%,transparent);text-align:center;transition:border-color var(--d-fast),background var(--d-fast)}.drop .glyph{color:var(--muted)}[hidden]{display:none!important}.drop.solid{background:var(--paper);border-style:solid;border-color:var(--rule2)}.panehint{max-width:34ch;text-align:center;font-size:12.5px;line-height:1.55}.drop .headline{font-family:var(--font-display);font-size:26px;letter-spacing:-.02em;display:block}.drop .release,.dragging .drop .resting{display:none}.dragging .drop .release{display:block}.dragging .drop{width:min(640px,90%);min-height:320px;transition:width var(--d-fast) var(--ease-out-expo),min-height var(--d-fast) var(--ease-out-expo),border-color var(--d-fast),background var(--d-fast)}.samples{display:flex;flex-direction:column;align-items:center;gap:12px}.samplerow{display:flex;gap:12px}.sample{width:112px;display:flex;flex-direction:column;gap:7px;align-items:center}.sample .thumb{width:112px;height:88px;border:1px solid var(--rule2);border-radius:10px;background-color:var(--card);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:12px 12px;display:grid;place-items:center;overflow:hidden;transition:border-color var(--d-micro),transform var(--d-micro)}.sample:hover .thumb{border-color:var(--accent);transform:translateY(-2px)}.sample img{max-width:76px;max-height:68px}.sample .label{font-size:var(--t-label);color:var(--faint)}.dragging .drop{border-color:var(--accent);background:var(--accent-soft)}.dragging .drop .glyph{color:var(--accent)}.dragging:after{content:"";position:fixed;inset:0;border:2px solid var(--accent);pointer-events:none;z-index:60}.dragging .stage>*:not(.stagestate){opacity:.6}.callout{position:absolute;left:20px;bottom:20px;z-index:8;max-width:320px;display:flex;flex-direction:column;gap:5px;padding:10px 13px;border-radius:var(--radius-lg);border:1px solid var(--rule2);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(8px);font-size:11.5px;line-height:1.5;color:var(--dim);animation:rise var(--d-fast) var(--ease-out-expo)}.callout .head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}#overlays:empty{display:none}.scrim{position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--void) 62%,transparent);display:grid;place-items:center;padding:24px}.modal{width:min(460px,100%);max-height:86vh;overflow-y:auto;background:var(--card);border:1px solid var(--highlight);border-radius:var(--radius-xl);padding:22px;display:flex;flex-direction:column;gap:13px;box-shadow:var(--shadow-xl)}.modal h2{margin:0;font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.02em}.modal p{margin:0;font-size:var(--t-panel);line-height:1.7;color:var(--dim)}.modal .actions{display:flex;gap:8px;justify-content:flex-end}.modal.composer{width:min(1040px,100%);max-height:92vh;padding:0;gap:0;overflow:hidden}.composerhead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 15px;border-bottom:1px solid var(--rule2)}.composerhead p{margin-top:3px;font-size:var(--t-chrome)}.composerbody{display:grid;grid-template-columns:minmax(0,1fr) 312px;min-height:0;overflow-y:auto}.composerpreview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:22px;min-width:0;background:var(--stage)}.cardstage{--ar: 1.7778;position:relative;width:min(100%,calc(58vh * var(--ar)));aspect-ratio:var(--ar);border-radius:var(--radius);overflow:hidden;background:var(--paper);box-shadow:var(--shadow-lg)}.cardstage img{display:block;width:100%;height:100%;object-fit:contain}.cardbusy{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none;background:color-mix(in srgb,var(--paper) 45%,transparent);transition:opacity var(--d-micro)}.cardstage.busy .cardbusy{opacity:1;transition-delay:.26s}.cardspin{width:20px;height:20px;border-radius:50%;border:2px solid var(--highlight);border-top-color:var(--accent);animation:cardspin .8s linear infinite}@keyframes cardspin{to{transform:rotate(360deg)}}.composerside{display:flex;flex-direction:column;gap:18px;padding:20px 22px;border-left:1px solid var(--rule2)}.optgroup{display:flex;flex-direction:column;gap:8px}.cardseg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:2px;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper)}.cardseg button{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 8px;border-radius:calc(var(--radius) - 2px);font-size:var(--t-chrome);color:var(--faint)}.cardseg button small{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.cardseg button:hover:not([aria-checked=true]){color:var(--ink)}.cardseg button[aria-checked=true]{color:var(--ink);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.optlist{display:flex;flex-direction:column;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper)}.optlist>*+*{border-top:1px solid var(--rule2)}.optrow{display:flex;align-items:center;gap:12px;width:100%;padding:9px 11px;text-align:left}.optrow:hover{background:var(--rule2)}.optext{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.optlabel{font-size:12.5px;color:var(--ink)}.optnote{font-size:11px;line-height:1.4;color:var(--muted)}.optslider{display:flex;flex-direction:column;gap:4px;padding:9px 11px 8px;transition:opacity var(--d-micro)}.optslider.off{opacity:.4}.optslider.off .slider{cursor:default}.optsliderhead{display:flex;justify-content:space-between;font-size:12px;color:var(--dim)}.composeractions{display:flex;flex-direction:column;gap:8px;margin-top:auto}.composeractions .btn{justify-content:center;gap:7px}@media(max-width:860px){.composerbody{grid-template-columns:minmax(0,1fr)}.composerside{border-left:0;border-top:1px solid var(--rule2)}}.popover{position:fixed;z-index:45;background:var(--card);border:1px solid var(--highlight);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.menu{padding:6px;min-width:260px}.menu .item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius);width:100%;text-align:left;font-size:var(--t-chrome);color:var(--dim)}.menu .item:hover{background:var(--surface);color:var(--ink)}.menu .item .when{margin-left:auto;font-size:var(--t-label);color:var(--muted)}.menu .rule{height:1px;background:var(--rule2);margin:5px 0}.sheet{position:absolute;inset:0;z-index:20;background:color-mix(in srgb,var(--void) 55%,transparent);display:flex;align-items:flex-end}.sheetbody{width:100%;max-height:100%;overflow-y:auto;background:var(--card);border-top:1px solid var(--highlight);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:14px;display:flex;flex-direction:column;gap:11px;box-shadow:0 -20px 50px color-mix(in srgb,var(--void) 60%,transparent);animation:rise var(--d-fast) var(--ease-out-expo)}@keyframes rise{0%{transform:translateY(12px);opacity:0}}.format{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper);width:100%;text-align:left;font-size:var(--t-chrome);color:var(--dim)}.format:hover{border-color:var(--highlight)}.format .size{margin-left:auto;font-size:var(--t-label);color:var(--muted);font-variant-numeric:tabular-nums}.tooltip{position:fixed;z-index:70;max-width:300px;background:var(--highlight);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius);padding:10px 12px;font-size:var(--t-chrome);line-height:1.6;color:var(--dim);box-shadow:var(--shadow);pointer-events:none}#toasts{position:fixed;left:50%;bottom:40px;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{width:min(460px,90vw);background:var(--highlight);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:10px;padding:11px 13px;display:flex;align-items:center;gap:11px;box-shadow:var(--shadow-lg);animation:risein var(--d-fast) var(--ease-out-expo)}@keyframes risein{0%{transform:translateY(8px);opacity:0}}.toast .text{flex:1;font-size:var(--t-chrome);color:var(--dim)}.toast .glyph{display:flex}.toast .glyph.good{color:var(--good)}.toast .glyph.bad{color:var(--bad)}.screen{position:absolute;inset:0;z-index:30;background:var(--paper);display:flex;flex-direction:column}.screenbar{height:var(--h-appbar);flex:none;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--stage);border-bottom:1px solid var(--rule2);-webkit-app-region:drag}.screenbar button{-webkit-app-region:no-drag}.screenbody{flex:1;min-height:0;overflow-y:auto;background:var(--stage)}.settingsgrid{width:min(1128px,100%);margin:0 auto;padding:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;align-content:start}.settinggroup{border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg);overflow:hidden;align-self:start}.settinggroup>.head{padding:11px 14px;border-bottom:1px solid var(--rule2)}.settingrow{display:flex;align-items:center;gap:16px;padding:11px 14px;border-bottom:1px solid color-mix(in srgb,var(--ink) 5%,transparent)}.settingrow:last-child{border-bottom:none}.settingrow .about{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.settingrow .label{font-size:var(--t-panel);color:var(--dim)}.settingrow .help{font-size:var(--t-label);line-height:1.5;color:var(--muted)}.settingrow .control{flex:none}.settingrow select,.settingrow input[type=text],.settingrow input[type=number]{height:var(--h-compact);padding:0 8px;border:1px solid var(--rule2);border-radius:7px;background:var(--paper);color:var(--ink);font:400 var(--t-chrome) var(--font-body);font-variant-numeric:tabular-nums;max-width:220px}.privacycard{border:1px solid var(--rule2);background:var(--card);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;gap:8px;align-self:start}.privacycard .line{font-family:var(--font-display);font-size:19px;letter-spacing:-.02em}.about{display:flex;min-height:100%}.aboutleft{width:520px;flex:none;background:var(--stage);border-right:1px solid var(--rule2);display:flex;flex-direction:column;justify-content:center;gap:22px;padding:56px}.aboutleft .mark{color:var(--accent)}.aboutright{flex:1;padding:56px;display:flex;flex-direction:column;gap:20px;justify-content:center;background:var(--paper)}.credit{border:1px solid var(--highlight);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:10px;background:var(--gold-soft)}.notices{border:1px solid var(--rule2);border-radius:var(--radius-lg);overflow:hidden}.notices .head{padding:11px 14px;border-bottom:1px solid var(--rule2);font-size:var(--t-chrome);color:var(--dim);display:flex;justify-content:space-between}.notices pre{margin:0;height:220px;overflow:auto;padding:12px 14px;font:11.5px / 1.75 var(--font-mono);color:var(--muted);background:var(--stage);white-space:pre-wrap;user-select:text}.minifyrail{width:400px;flex:none;border-left:1px solid var(--rule2);background:var(--paper);display:flex;flex-direction:column}.minifyresult{display:flex;flex-direction:column;gap:5px}.minifyresult .figure{font-family:var(--font-display);font-size:66px;line-height:.85;letter-spacing:-.04em;color:var(--accent-text)}.sentence{font-size:var(--t-panel);line-height:2;color:var(--dim)}.sentence .inlinefield{display:inline-flex;align-items:center;height:24px;padding:0 4px;border:1px solid var(--rule2);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:400 var(--t-chrome) var(--font-body);font-variant-numeric:tabular-nums;width:58px;text-align:center}.sentence .inlinefield.accent{border-color:var(--accent);background:var(--accent-soft)}.batchbar{height:44px;flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--rule2);background:var(--stage)}.batchhead,.batchrow{display:grid;grid-template-columns:24px minmax(0,1.4fr) 120px 104px 84px 104px 96px minmax(0,1.2fr);align-items:center;gap:12px;padding:0 14px}.batchhead{height:34px;flex:none;border-bottom:1px solid var(--rule2)}.batchrow{height:var(--h-row);border-bottom:1px solid color-mix(in srgb,var(--ink) 4%,transparent);font-size:var(--t-chrome);font-variant-numeric:tabular-nums}.batchrow.failed{background:color-mix(in srgb,var(--bad) 8%,transparent)}.batchrow.running{background:var(--accent-subtle)}.batchrow .trunc,.batchhead .trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batchrow .right,.batchhead .right{text-align:right}.batchrow .state{display:flex;align-items:center;gap:6px}.batchrow .state i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block;flex:none}.state.queued,.state.skipped{color:var(--muted)}.state.running{color:var(--accent-text)}.state.done{color:var(--good)}.state.failed{color:var(--bad)}.batchviewport{flex:1;min-height:0;overflow-y:auto;position:relative}.batchfoot{height:52px;flex:none;display:flex;align-items:center;gap:18px;padding:0 14px;border-top:1px solid var(--rule2);background:var(--stage);font-size:var(--t-chrome);font-variant-numeric:tabular-nums}.progress{height:3px;border-radius:2px;background:var(--highlight);overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);transition:width var(--d-fast) var(--ease-smooth)}@media(max-width:1400px){:root{--rail-w: 330px}}@media(max-width:1180px){:root{--rail-w: 310px}.legend{display:none}}.chooser{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:8;width:min(560px,calc(100% - 32px));max-height:calc(100% - 70px);overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding:10px 12px 11px;background:var(--card);border:1px solid var(--highlight);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:rise var(--d-fast) var(--ease-out-expo)}.choosehead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.choosehead .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chooseintro{font-size:var(--t-label);line-height:1.5;color:var(--dim);padding:7px 10px;border-radius:var(--radius);background:var(--accent-subtle);border:1px solid var(--accent-soft)}.choices{display:flex;flex-direction:column;gap:6px}.choice{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:12px;padding:8px 8px 8px 12px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--paper);min-width:0}.choice .btn{min-width:104px}.choicename{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:17px;letter-spacing:-.02em;color:var(--ink)}.choicename svg{color:var(--accent-text)}.choicebody{font-size:var(--t-chrome);line-height:1.5;color:var(--faint)}.choosenews{display:flex;flex-direction:column;gap:6px;padding-top:9px;border-top:1px solid var(--rule2)}.remember{display:flex;align-items:center;gap:7px;font-size:var(--t-label);color:var(--faint);cursor:pointer;align-self:flex-start}.remember input{accent-color:var(--accent);margin:0}.autochose{display:flex;flex-direction:column;gap:7px;font-size:var(--t-chrome)}.autolead{color:var(--dim);line-height:1.5}.autorow{display:flex;align-items:center;gap:10px;justify-content:space-between}.autorow.moved{padding-top:7px;border-top:1px dashed var(--rule2)}.autotext{display:flex;flex-direction:column;gap:2px;min-width:0}.autotitle{color:var(--ink)}.autotext .muted{font-size:var(--t-label)}.autobtns{display:flex;align-items:center;gap:10px;flex:none}.autorow .btn{flex:none}.autotaken{font-size:var(--t-label);color:var(--state-final);flex:none}.card.autocard{border-color:var(--accent-soft);background:color-mix(in srgb,var(--accent) 4%,var(--card))}.guideline{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:var(--t-label)}.rail.wizarding{width:max(var(--rail-w),400px)}.sheet.wizsheet{align-items:stretch;background:var(--paper)}.sheetbody.wizbody{height:100%;border-radius:0;border-top:none;box-shadow:none;padding:0;gap:0;overflow:hidden;background:var(--paper)}.wizhead{flex:none;display:flex;flex-direction:column;gap:9px;padding:14px 16px 12px;border-bottom:1px solid var(--rule2)}.wiztitle{font-size:24px;font-weight:500;line-height:1.1;color:var(--ink)}.wizdots{display:flex;gap:6px}.wizdots button{flex:1;height:4px;border-radius:2px;background:var(--highlight);transition:background var(--d-micro)}.wizdots button.done{background:color-mix(in srgb,var(--accent) 45%,var(--highlight))}.wizdots button[aria-selected=true]{background:var(--accent)}.wizdots button:hover{background:var(--accent-hover)}.wizcompare{display:flex;align-items:center;gap:8px;font-size:var(--t-label)}.wizcompare .seg>button{padding:3px 9px}.wizscroll{flex:1;min-height:0;overflow-y:auto;padding:14px 16px 18px;display:flex;flex-direction:column;gap:14px}.wizlead{font-size:var(--t-panel);line-height:1.55;color:var(--dim)}.wizguide{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--rule2)}.wizexplain{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0;font-size:var(--t-chrome);line-height:1.5}.wizexplain dt{font-size:var(--t-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px;white-space:nowrap}.wizexplain dd{margin:0;color:var(--dim)}.wizlearn{font-size:var(--t-label);color:var(--accent-text);align-self:flex-start;text-decoration:none}.wizlearn:hover{text-decoration:underline}.wizcontrols{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card)}.wizlive{display:flex;flex-direction:column;gap:12px}.wizrow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--t-chrome)}.wizsmall{font-size:var(--t-label);line-height:1.5}.wizwhy{font-size:var(--t-chrome);line-height:1.5;color:var(--dim)}.wizchoices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wizchoice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 11px;text-align:left;border:1px solid var(--rule2);border-radius:var(--radius);background:var(--paper);font-size:var(--t-label);line-height:1.45}.wizchoice .name{font-size:13px;font-weight:600;color:var(--ink)}.wizchoice:hover{border-color:var(--highlight)}.wizchoice[aria-pressed=true]{border-color:var(--accent);background:var(--accent-subtle)}.wiznote{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 11px;border-radius:var(--radius);background:var(--accent-subtle);font-size:var(--t-label);line-height:1.5;color:var(--dim)}.wiznav{flex:none;display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--rule2);background:var(--paper)}.kinds{display:grid;grid-template-columns:1fr 1fr;gap:9px}.kind{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:7px 7px 9px;text-align:left;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card);min-width:0;transition:border-color var(--d-micro),background var(--d-micro)}.kind:hover{border-color:var(--highlight)}.kind[aria-checked=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card));box-shadow:0 0 0 1px var(--accent)}.kthumb{position:relative;height:104px;border-radius:var(--radius);background-color:var(--stage);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:10px 10px;display:grid;place-items:center;overflow:hidden;margin-bottom:3px}.kthumb img{max-width:92%;max-height:92%;object-fit:contain;image-rendering:auto}.kspin{position:absolute;inset:auto 0 0;height:2px;overflow:hidden;display:none}.kind.busy .kspin{display:block}.kspin:after{content:"";position:absolute;top:0;bottom:0;left:0;width:30%;background:var(--accent);animation:sweepacross 1.6s var(--ease-out-expo) infinite}@media(prefers-reduced-motion:reduce){.kspin:after{animation:none;width:100%;opacity:.5}}.kname{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink);padding:0 2px}.ksugg{font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}.kwhy,.knote,.kstat{font-size:11px;line-height:1.4;padding:0 2px}.kwhy{color:var(--faint)}.knote{color:var(--muted);font-style:italic}.kstat{color:var(--muted);margin-top:2px}.wizreadout table{width:100%;border-collapse:collapse;font-size:var(--t-chrome)}.wizreadout th,.wizreadout td{padding:4px 0;text-align:right;font-weight:400}.wizreadout thead th{font-size:var(--t-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.wizreadout tbody th{text-align:left;color:var(--faint)}.wizreadout td{color:var(--ink);padding-left:10px}.wizreadout td.delta{width:70px}.wizreadout td.delta.same{color:var(--muted)}.wizchanges .wizchange{display:flex;justify-content:space-between;gap:10px;font-size:var(--t-chrome);color:var(--faint)}.wizchanges .wizchange .num{color:var(--ink)}.pane.source.comparing .panelabel{color:var(--accent-text)}.intro{width:min(620px,80%);display:flex;flex-direction:column;gap:12px;padding:16px 18px;border:1px solid var(--accent-soft);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--accent) 5%,var(--paper))}.intro ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.intro li{display:flex;gap:11px;align-items:baseline;font-size:var(--t-chrome);line-height:1.5}.intro li>div{display:flex;flex-direction:column}.introstep{width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;background:var(--accent);color:var(--accent-ink)}.introtitle{color:var(--ink);font-weight:500}.introfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--t-label)}html.framed:not(.fullscreen) body{padding-top:6px;background:var(--void)}html.framed:not(.fullscreen) #app{position:relative;border-top:1px solid rgba(201,117,74,.35)}.desktopnote{margin:14px 0 0;font-size:12.5px;text-align:center}.webcontrols{display:flex;gap:2px;margin-left:4px}.webcontrols .btn{gap:6px}.phonenote{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--void) 82%,transparent)}.phonecard{max-width:420px;display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:var(--radius-lg, 12px);background:var(--card);box-shadow:var(--shadow-lg)}.phonecard p{margin:0;font-size:13.5px;line-height:1.65;color:var(--dim)}.sc-loading{padding:40px;text-align:center}.sc-page{width:min(1320px,100%);margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:18px}.sc-head h1{margin:0 0 6px;font-size:28px;font-weight:600}.sc-head p,.sc-results>p{margin:0;max-width:96ch;font-size:13px;line-height:1.6}.sc-main{display:grid;grid-template-columns:300px 1fr;gap:16px;min-height:0;align-items:start}.sc-list{height:560px;overflow-y:auto;overscroll-behavior:contain;padding:0 10px 10px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card);scrollbar-width:thin}.sc-sethead{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;padding:10px 2px 8px;background:var(--card);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}.sc-sethead span{color:var(--faint);font-weight:600}.sc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:6px}.sc-case{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;overflow:hidden;padding:5px;border:1px solid var(--rule2);border-radius:var(--radius-sm);background:var(--stage);color:var(--dim);cursor:pointer;text-align:left}.sc-case[aria-pressed=true]{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.sc-thumb{aspect-ratio:1;width:100%;border-radius:5px;background:#fff;display:grid;place-items:center;overflow:hidden}.sc-thumb img{width:100%;height:100%;object-fit:contain}.sc-name{width:100%;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-caption{margin:0;font-size:12.5px;color:var(--dim)}.sc-stagecol{display:flex;flex-direction:column;gap:10px;min-width:0}.sc-tools{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap}.sc-tools .eyebrow{margin-left:6px}.sc-legend{margin-right:4px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px}.sc-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.sc-dot.a{background:var(--anchor)}.sc-dot.hd{background:var(--handle);margin-left:6px}.sc-viewer{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sc-pane{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--rule2);border-radius:var(--radius-sm);background-color:var(--stage);background-image:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%);background-size:16px 16px;cursor:grab;touch-action:none;user-select:none}.sc-pane:active{cursor:grabbing}.sc-cam{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0}.sc-cam>img,.sc-layer,.sc-layer>svg{position:absolute;inset:0;width:100%;height:100%;display:block}.sc-cam>img{object-fit:contain}.sc-tag{position:absolute;top:8px;left:8px;padding:4px 7px;border-radius:6px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--paper) 85%,transparent);color:var(--ink);pointer-events:none}.sc-wire path,.sc-wire circle,.sc-wire ellipse,.sc-wire rect,.sc-wire polygon{fill:none!important;stroke:var(--wire);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-opacity:.9}.sc-ov{pointer-events:none}.sc-ov .h{stroke:var(--handle);stroke-width:1px;vector-effect:non-scaling-stroke;fill:none;stroke-opacity:.85}.sc-ov .hd{stroke:var(--handle);stroke-width:3.5px;vector-effect:non-scaling-stroke;stroke-linecap:round;fill:none}.sc-ov .a{stroke:var(--anchor);stroke-width:5px;vector-effect:non-scaling-stroke;stroke-linecap:round;fill:none}.sc-chips{display:flex;flex-wrap:wrap;gap:6px}.sc-chip{font-size:12px;padding:4px 9px;border-radius:999px;border:1px solid var(--rule2);color:var(--dim);font-variant-numeric:tabular-nums}.sc-chip.win{border-color:transparent;background:var(--goodbg);color:var(--good)}.sc-results{display:flex;flex-direction:column;gap:12px;padding-top:8px;border-top:1px solid var(--rule2)}.sc-results h2{margin:8px 0 0;font-size:22px;font-weight:600}.sc-bignums{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sc-bignum{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--rule2);border-radius:var(--radius-lg);background:var(--card);font-size:12px}.sc-bignum .v{font-size:28px;color:var(--accent);line-height:1.1}.sc-table{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--card);border:1px solid var(--rule2);border-radius:var(--radius-lg);overflow:hidden}.sc-table th,.sc-table td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--rule2);white-space:nowrap}.sc-table th:first-child,.sc-table td:first-child{text-align:left}.sc-table th{font-size:11px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.04em}.sc-table td.num{font-variant-numeric:tabular-nums;color:var(--dim)}.sc-table tr.win td{color:var(--ink)}.sc-table tr.win td:first-child{color:var(--accent);font-weight:600}.sc-note{font-size:12px!important}.sc-table caption{text-align:left;padding:10px 12px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
|
|
|
|
|
|
studio/assets/main-Dn0s9OJH.js
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
studio/index.html
CHANGED
|
@@ -11,8 +11,8 @@
|
|
| 11 |
<meta name="description" content="Turn a raster logo into an exact SVG, in your browser. Nothing is uploaded." />
|
| 12 |
<link rel="icon" href="./favicon.svg" type="image/svg+xml" />
|
| 13 |
<title>Inkvec Studio Lite</title>
|
| 14 |
-
<script type="module" crossorigin src="./assets/main-
|
| 15 |
-
<link rel="stylesheet" crossorigin href="./assets/main-
|
| 16 |
<link rel="preload" href="./fonts/playfair-latin.woff2" as="font" type="font/woff2" crossorigin />
|
| 17 |
<link rel="preload" href="./fonts/inter-latin.woff2" as="font" type="font/woff2" crossorigin />
|
| 18 |
<style>
|
|
@@ -356,7 +356,7 @@ html.boot-go .boot-progress {
|
|
| 356 |
</div>
|
| 357 |
<footer class="boot-foot">
|
| 358 |
<span>Runs in your browser. Your image never leaves this computer.</span>
|
| 359 |
-
<span>Version 0.2.
|
| 360 |
</footer>
|
| 361 |
</div>
|
| 362 |
<div id="app"></div>
|
|
|
|
| 11 |
<meta name="description" content="Turn a raster logo into an exact SVG, in your browser. Nothing is uploaded." />
|
| 12 |
<link rel="icon" href="./favicon.svg" type="image/svg+xml" />
|
| 13 |
<title>Inkvec Studio Lite</title>
|
| 14 |
+
<script type="module" crossorigin src="./assets/main--3-Ll9JM.js"></script>
|
| 15 |
+
<link rel="stylesheet" crossorigin href="./assets/main-C8vHcyec.css">
|
| 16 |
<link rel="preload" href="./fonts/playfair-latin.woff2" as="font" type="font/woff2" crossorigin />
|
| 17 |
<link rel="preload" href="./fonts/inter-latin.woff2" as="font" type="font/woff2" crossorigin />
|
| 18 |
<style>
|
|
|
|
| 356 |
</div>
|
| 357 |
<footer class="boot-foot">
|
| 358 |
<span>Runs in your browser. Your image never leaves this computer.</span>
|
| 359 |
+
<span>Version 0.2.1 · Apache-2.0 · logolabs.org</span>
|
| 360 |
</footer>
|
| 361 |
</div>
|
| 362 |
<div id="app"></div>
|
studio/pkg-threads/inkvec_studio_wasm.js
CHANGED
|
@@ -442,7 +442,7 @@ function __wbg_get_imports(memory) {
|
|
| 442 |
const ret = Reflect.get(getObject(arg0), getObject(arg1));
|
| 443 |
return addHeapObject(ret);
|
| 444 |
}, arguments); },
|
| 445 |
-
|
| 446 |
const ret = globalThis.inkvecDenoiseSync(getArrayF32FromWasm0(arg0, arg1), arg2 >>> 0, arg3 >>> 0);
|
| 447 |
return addHeapObject(ret);
|
| 448 |
}, arguments); },
|
|
|
|
| 442 |
const ret = Reflect.get(getObject(arg0), getObject(arg1));
|
| 443 |
return addHeapObject(ret);
|
| 444 |
}, arguments); },
|
| 445 |
+
__wbg_inkvecDenoiseSync_9b982eb59f0480ef: function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
| 446 |
const ret = globalThis.inkvecDenoiseSync(getArrayF32FromWasm0(arg0, arg1), arg2 >>> 0, arg3 >>> 0);
|
| 447 |
return addHeapObject(ret);
|
| 448 |
}, arguments); },
|
studio/pkg-threads/inkvec_studio_wasm_bg.wasm
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b5de05eb83836d1dd2ba57ecc43cc743b10d0f69d2cdb4ccd7440dc5aefedccf
|
| 3 |
+
size 5733382
|
studio/pkg-threads/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.js
CHANGED
|
@@ -51,7 +51,7 @@ waitForMsgType(self, 'wasm_bindgen_worker_init').then(async ({ init, receiver })
|
|
| 51 |
// OTOH, even though it can't be inlined, it should be still reasonably
|
| 52 |
// cheap since the requested file is already in cache (it was loaded by
|
| 53 |
// the main thread).
|
| 54 |
-
const pkg = await import('../../../inkvec_studio_wasm.js?v=
|
| 55 |
await pkg.default(init);
|
| 56 |
postMessage({ type: 'wasm_bindgen_worker_ready' });
|
| 57 |
pkg.wbg_rayon_start_worker(receiver);
|
|
|
|
| 51 |
// OTOH, even though it can't be inlined, it should be still reasonably
|
| 52 |
// cheap since the requested file is already in cache (it was loaded by
|
| 53 |
// the main thread).
|
| 54 |
+
const pkg = await import('../../../inkvec_studio_wasm.js?v=b192891e1025');
|
| 55 |
await pkg.default(init);
|
| 56 |
postMessage({ type: 'wasm_bindgen_worker_ready' });
|
| 57 |
pkg.wbg_rayon_start_worker(receiver);
|
studio/pkg/inkvec_studio_wasm.js
CHANGED
|
@@ -379,7 +379,7 @@ function __wbg_get_imports() {
|
|
| 379 |
const ret = Reflect.get(getObject(arg0), getObject(arg1));
|
| 380 |
return addHeapObject(ret);
|
| 381 |
}, arguments); },
|
| 382 |
-
|
| 383 |
const ret = globalThis.inkvecDenoiseSync(getArrayF32FromWasm0(arg0, arg1), arg2 >>> 0, arg3 >>> 0);
|
| 384 |
return addHeapObject(ret);
|
| 385 |
}, arguments); },
|
|
|
|
| 379 |
const ret = Reflect.get(getObject(arg0), getObject(arg1));
|
| 380 |
return addHeapObject(ret);
|
| 381 |
}, arguments); },
|
| 382 |
+
__wbg_inkvecDenoiseSync_9b982eb59f0480ef: function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
| 383 |
const ret = globalThis.inkvecDenoiseSync(getArrayF32FromWasm0(arg0, arg1), arg2 >>> 0, arg3 >>> 0);
|
| 384 |
return addHeapObject(ret);
|
| 385 |
}, arguments); },
|
studio/pkg/inkvec_studio_wasm_bg.wasm
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b9ac51390a9a4e76b2d89f7fff0093c66bb2ecd560ca5ad8267b10a5d6141396
|
| 3 |
+
size 5700735
|