miguelgargallo commited on
Commit
3ae4a70
·
1 Parent(s): f6d9bed

Design Update

Browse files
Files changed (7) hide show
  1. README.md +4 -56
  2. assets/avoid.svg +7 -0
  3. assets/correct.svg +4 -0
  4. content.json +118 -0
  5. index.html +25 -260
  6. main.js +99 -0
  7. styles.css +337 -0
README.md CHANGED
@@ -1,62 +1,10 @@
1
  ---
2
- title: License Restrictive
3
- emoji: 😻
4
- colorFrom: pink
5
- colorTo: pink
6
  sdk: static
7
  pinned: false
8
  license: other
9
  ---
10
 
11
- # PYLAR AI CREATIVE ML RESTRICTIVE LICENSE
12
-
13
- Note: The name of the license indicates that this license was written with AI assistance, not that the protected content is AI-generated.
14
-
15
- Version 1.1, Jul 14th 2025
16
-
17
- Permission is hereby granted, free of charge, to any person obtaining a copy of the Pylar AI software and associated documentation files (the "Software"), to visualize and use the Software solely for educational and informative purposes, subject to the following restrictions and conditions:
18
-
19
- ## Redistribution and Use Limitations:
20
- The Software may not be redistributed, sublicensed, sold, or otherwise transferred to any third party without prior written permission from the licensor.
21
- The Software may not be used for any commercial purposes or for any purpose other than education, research, and personal learning.
22
- The end user is strictly prohibited from using any part of the Software's source code, including but not limited to copying, modifying, or creating derivative works based on the code.
23
-
24
- ## No Self-Hosting:
25
- The end user may not host or make the Software available to others via any means, including but not limited to local servers, cloud services, or online platforms.
26
-
27
- ## Visualizing and Educative Purpose:
28
- The end user is granted the right to use the Software solely for visualizing the outputs and results generated by the Software.
29
- The end user may use the Software to provide marks or feedback on the visualized outputs, solely for educational and informative purposes.
30
-
31
- ## Intellectual Property:
32
- All intellectual property rights in the Software, including but not limited to copyrights, trademarks, and patents, shall remain the exclusive property of the licensor.
33
- The end user acknowledges that this license does not grant any ownership or rights to the Software, other than the limited rights expressly stated herein.
34
-
35
- ## No Warranty:
36
- The Software is provided "as is," without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement.
37
- The licensor shall not be liable for any claim, damages, or other liability arising out of or in connection with the use or performance of the Software.
38
-
39
- By using the Software, the end user agrees to be bound by the terms and conditions of this license. If you do not agree to these terms, you are not authorized to use the Software.
40
-
41
- | | ✅ Allowed | ❌ Not Allowed |
42
- | ------------- | ---------------------------------------- | --------------------------------------------- |
43
- | | Visualize educational and informative | Redistribute, sublicense, sell or transfer |
44
- | | results generated by the Software. | the Software without prior written permission |
45
- | | | from the licensor. |
46
- | | | |
47
- | | Use the Software only for educational, | Use any part of the source code, |
48
- | | research and personal learning purposes. | including copying, modifying or creating |
49
- | | | derivative works. |
50
- | | | |
51
- | | Provide marks or feedback on visualized | Host or make the Software available to |
52
- | | results for educational and informative | others on local servers, cloud or online |
53
- | | purposes. | platforms. |
54
- | | | |
55
- | ❌ Not Allowed | Use the Software for commercial or | Claim intellectual property rights over |
56
- | | non-educational purposes. | the Software, except for the limited rights |
57
- | | | expressly stated in the license. |
58
- | | | |
59
- | | Hold the licensor responsible for | |
60
- | | claims, damages or other liabilities | |
61
- | | arising from the use or performance | |
62
- | | of the Software. | |
 
1
  ---
2
+ title: PYLAR AI CREATIVE ML RESTRICTIVE LICENSE
3
+ emoji: 🏛️
4
+ colorFrom: indigo
5
+ colorTo: indigo
6
  sdk: static
7
  pinned: false
8
  license: other
9
  ---
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/avoid.svg ADDED
assets/correct.svg ADDED
content.json ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "title": "PYLAR AI CREATIVE ML RESTRICTIVE LICENSE",
3
+ "version": "Version 1.1, Jul 14th 2025",
4
+ "subtitle": "License limited to visualization for educational purposes only, with strict no-redistribution, no-modification, and no-commercial-use restrictions.",
5
+ "meta": "SOFTWARE LICENSE AGREEMENT / RESTRICTIVE LICENSE",
6
+ "badge": "PYLAR AI RESTRICTIVE LICENSE",
7
+ "sectionLabel": "Overview",
8
+ "sourceUrl": "https://huggingface.co/spaces/superdatas/restrictive-license",
9
+ "sourceText": "Source:",
10
+ "sections": [
11
+ {
12
+ "title": "Note",
13
+ "content": "The name of the license indicates that this license was written with AI assistance, not that the protected content is AI-generated."
14
+ },
15
+ {
16
+ "title": "1. Permission",
17
+ "content": "Permission is hereby granted, free of charge, to any person obtaining a copy of the Pylar AI software and associated documentation files (the \"Software\"), to visualize and use the Software solely for educational and informative purposes, subject to the following restrictions and conditions."
18
+ },
19
+ {
20
+ "title": "2. Redistribution and Use Limitations",
21
+ "content": [
22
+ "The Software may not be redistributed, sublicensed, sold, or otherwise transferred to any third party without prior written permission from the licensor.",
23
+ "The Software may not be used for any commercial purposes or for any purpose other than education, research, and personal learning.",
24
+ "The end user is strictly prohibited from using any part of the Software's source code, including but not limited to copying, modifying, or creating derivative works based on the code."
25
+ ]
26
+ },
27
+ {
28
+ "title": "3. No Self-Hosting",
29
+ "content": "The end user may not host or make the Software available to others via any means, including but not limited to local servers, cloud services, or online platforms."
30
+ },
31
+ {
32
+ "title": "4. Visualizing and Educative Purpose",
33
+ "content": [
34
+ "The end user is granted the right to use the Software solely for visualizing the outputs and results generated by the Software.",
35
+ "The end user may use the Software to provide marks or feedback on the visualized outputs, solely for educational and informative purposes."
36
+ ]
37
+ },
38
+ {
39
+ "title": "5. Intellectual Property",
40
+ "content": [
41
+ "All intellectual property rights in the Software, including but not limited to copyrights, trademarks, and patents, shall remain the exclusive property of the licensor.",
42
+ "The end user acknowledges that this license does not grant any ownership or rights to the Software, other than the limited rights expressly stated herein."
43
+ ]
44
+ },
45
+ {
46
+ "title": "6. No Warranty",
47
+ "content": [
48
+ "The Software is provided \"as is,\" without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement.",
49
+ "The licensor shall not be liable for any claim, damages, or other liability arising out of or in connection with the use or performance of the Software."
50
+ ]
51
+ },
52
+ {
53
+ "title": "7. Acceptance",
54
+ "content": "By using the Software, the end user agrees to be bound by the terms and conditions of this license. If you do not agree to these terms, you are not authorized to use the Software."
55
+ }
56
+ ],
57
+ "sidePanel": {
58
+ "pill": "✅ Visualize | ❌ No Code Use",
59
+ "principles": {
60
+ "title": "Allowed vs Prohibited",
61
+ "items": [
62
+ {
63
+ "type": "allow",
64
+ "text": "Visualize educational results"
65
+ },
66
+ {
67
+ "type": "allow",
68
+ "text": "Educational/research use only"
69
+ },
70
+ {
71
+ "type": "allow",
72
+ "text": "Provide feedback on outputs"
73
+ },
74
+ {
75
+ "type": "avoid",
76
+ "text": "Redistribute/sublicense/sell"
77
+ },
78
+ {
79
+ "type": "avoid",
80
+ "text": "Source code modification"
81
+ },
82
+ {
83
+ "type": "avoid",
84
+ "text": "Self-hosting platforms"
85
+ },
86
+ {
87
+ "type": "avoid",
88
+ "text": "Commercial use"
89
+ }
90
+ ]
91
+ },
92
+ "snapshot": {
93
+ "title": "License Snapshot",
94
+ "items": [
95
+ [
96
+ "Status",
97
+ "Active v1.1"
98
+ ],
99
+ [
100
+ "Scope",
101
+ "Educational Visualization"
102
+ ],
103
+ [
104
+ "Updated",
105
+ "July 14th 2025"
106
+ ],
107
+ [
108
+ "Jurisdiction",
109
+ "Global"
110
+ ]
111
+ ]
112
+ },
113
+ "hint": {
114
+ "title": "License Validity",
115
+ "text": "Always link to source URL below"
116
+ }
117
+ }
118
+ }
index.html CHANGED
@@ -2,277 +2,42 @@
2
  <html lang="en">
3
 
4
  <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>PYLAR AI CREATIVE ML RESTRICTIVE LICENSE</title>
8
- <style>
9
- :root {
10
- --primary: #4361ee;
11
- --secondary: #3a0ca3;
12
- --accent: #f72585;
13
- --allowed: #4cc9f0;
14
- --prohibited: #f72585;
15
- --light: #f8f9fa;
16
- --dark: #212529;
17
- }
18
-
19
- * {
20
- margin: 0;
21
- padding: 0;
22
- box-sizing: border-box;
23
- }
24
-
25
- body {
26
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
27
- line-height: 1.6;
28
- color: var(--dark);
29
- background-color: var(--light);
30
- padding: 2rem;
31
- }
32
-
33
- .container {
34
- max-width: 900px;
35
- margin: 0 auto;
36
- background-color: white;
37
- border-radius: 12px;
38
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
39
- overflow: hidden;
40
- }
41
-
42
- header {
43
- background: linear-gradient(135deg, var(--primary), var(--secondary));
44
- color: white;
45
- padding: 2.5rem 2rem;
46
- text-align: center;
47
- }
48
-
49
- h1 {
50
- font-size: 2.2rem;
51
- margin-bottom: 0.5rem;
52
- font-weight: 800;
53
- }
54
-
55
- .version {
56
- display: inline-block;
57
- background-color: rgba(255, 255, 255, 0.2);
58
- padding: 0.3rem 0.8rem;
59
- border-radius: 20px;
60
- font-size: 0.9rem;
61
- }
62
-
63
- .content {
64
- padding: 2rem;
65
- }
66
-
67
- .intro {
68
- margin-bottom: 2rem;
69
- font-size: 1.1rem;
70
- line-height: 1.7;
71
- }
72
-
73
- .section {
74
- margin-bottom: 1.8rem;
75
- }
76
-
77
- h2 {
78
- font-size: 1.4rem;
79
- color: var(--secondary);
80
- margin-bottom: 0.8rem;
81
- border-bottom: 2px solid rgba(67, 97, 238, 0.2);
82
- padding-bottom: 0.5rem;
83
- }
84
-
85
- ul {
86
- padding-left: 1.5rem;
87
- margin-bottom: 1rem;
88
- }
89
-
90
- li {
91
- margin-bottom: 0.5rem;
92
- }
93
-
94
- .table-container {
95
- margin: 2rem 0;
96
- overflow-x: auto;
97
- }
98
-
99
- table {
100
- width: 100%;
101
- border-collapse: collapse;
102
- border-radius: 8px;
103
- overflow: hidden;
104
- }
105
-
106
- th,
107
- td {
108
- padding: 1rem;
109
- text-align: left;
110
- border: 1px solid #e9ecef;
111
- }
112
-
113
- th {
114
- background-color: var(--secondary);
115
- color: white;
116
- }
117
-
118
- tr:nth-child(even) {
119
- background-color: #f8f9fa;
120
- }
121
-
122
- .allowed {
123
- color: var(--allowed);
124
- font-weight: bold;
125
- }
126
-
127
- .prohibited {
128
- color: var(--prohibited);
129
- font-weight: bold;
130
- }
131
-
132
- @media (max-width: 768px) {
133
- body {
134
- padding: 1rem;
135
- }
136
-
137
- header {
138
- padding: 1.5rem 1rem;
139
- }
140
-
141
- h1 {
142
- font-size: 1.8rem;
143
- }
144
-
145
- .content {
146
- padding: 1.5rem;
147
- }
148
-
149
- th,
150
- td {
151
- padding: 0.8rem;
152
- font-size: 0.9rem;
153
- }
154
- }
155
- </style>
156
  </head>
157
 
158
  <body>
159
- <div class="container">
 
 
160
  <header>
161
- <h1>PYLAR AI CREATIVE ML RESTRICTIVE LICENSE</h1>
162
- <div class="version">Version 1.1, Jul 14th 2025</div>
163
- </header>
164
-
165
- <div class="content">
166
- <p class="clarification">
167
- Note: The name of the license indicates that this license was written with AI assistance, not that the protected content is AI-generated.
168
- </p>
169
-
170
- <p class="intro">
171
- Permission is hereby granted, free of charge, to any person obtaining a copy of the Pylar AI software
172
- and associated documentation files (the "Software"), to visualize and use the Software solely for
173
- educational and informative purposes, subject to the following restrictions and conditions:
174
- </p>
175
-
176
- <div class="section">
177
- <h2>Redistribution and Use Limitations</h2>
178
- <ul>
179
- <li>The Software may not be redistributed, sublicensed, sold, or otherwise transferred to any third
180
- party without prior written permission from the licensor.</li>
181
- <li>The Software may not be used for any commercial purposes or for any purpose other than
182
- education, research, and personal learning.</li>
183
- <li>The end user is strictly prohibited from using any part of the Software's source code, including
184
- but not limited to copying, modifying, or creating derivative works based on the code.</li>
185
- </ul>
186
- </div>
187
 
188
- <div class="section">
189
- <h2>No Self-Hosting</h2>
190
- <ul>
191
- <li>The end user may not host or make the Software available to others via any means, including but
192
- not limited to local servers, cloud services, or online platforms.</li>
193
- </ul>
194
- </div>
195
 
196
- <div class="section">
197
- <h2>Visualizing and Educative Purpose</h2>
198
- <ul>
199
- <li>The end user is granted the right to use the Software solely for visualizing the outputs and
200
- results generated by the Software.</li>
201
- <li>The end user may use the Software to provide marks or feedback on the visualized outputs, solely
202
- for educational and informative purposes.</li>
203
- </ul>
204
- </div>
205
-
206
- <div class="section">
207
- <h2>Intellectual Property</h2>
208
- <ul>
209
- <li>All intellectual property rights in the Software, including but not limited to copyrights,
210
- trademarks, and patents, shall remain the exclusive property of the licensor.</li>
211
- <li>The end user acknowledges that this license does not grant any ownership or rights to the
212
- Software, other than the limited rights expressly stated herein.</li>
213
- </ul>
214
- </div>
215
 
216
- <div class="section">
217
- <h2>No Warranty</h2>
218
- <ul>
219
- <li>The Software is provided "as is," without warranty of any kind, express or implied, including
220
- but not limited to the warranties of merchantability, fitness for a particular purpose, and
221
- non-infringement.</li>
222
- <li>The licensor shall not be liable for any claim, damages, or other liability arising out of or in
223
- connection with the use or performance of the Software.</li>
224
- </ul>
225
- </div>
226
 
227
- <p>By using the Software, the end user agrees to be bound by the terms and conditions of this license. If
228
- you do not agree to these terms, you are not authorized to use the Software.</p>
229
 
230
- <div class="table-container">
231
- <table>
232
- <thead>
233
- <tr>
234
- <th></th>
235
- <th>✅ Allowed</th>
236
- <th>❌ Not Allowed</th>
237
- </tr>
238
- </thead>
239
- <tbody>
240
- <tr>
241
- <td></td>
242
- <td>View educational and informative results generated by the Software.</td>
243
- <td>Redistribute, sublicense, sell, or transfer the Software without prior written
244
- permission from the licensor.</td>
245
- </tr>
246
- <tr>
247
- <td></td>
248
- <td>Use the Software only for educational purposes, research, and personal learning.</td>
249
- <td>Use any part of the source code, including copying, modifying, or creating derivative
250
- works.</td>
251
- </tr>
252
- <tr>
253
- <td></td>
254
- <td>Provide marks or feedback on visualized results for educational and informative
255
- purposes.</td>
256
- <td>Host or make the Software available to others via local servers, cloud services, or
257
- online platforms.</td>
258
- </tr>
259
- <tr>
260
- <td>❌ Not Allowed</td>
261
- <td>Use the Software for commercial or non-educational purposes.</td>
262
- <td>Claim intellectual property rights to the Software, except for the limited rights
263
- expressly stated in the license.</td>
264
- </tr>
265
- <tr>
266
- <td></td>
267
- <td>Hold the licensor liable for claims, damages, or other liabilities arising from the use
268
- or performance of the Software.</td>
269
- <td></td>
270
- </tr>
271
- </tbody>
272
- </table>
273
- </div>
274
  </div>
 
275
  </div>
 
 
 
276
  </body>
277
 
278
  </html>
 
2
  <html lang="en">
3
 
4
  <head>
5
+ <meta charset="UTF-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title data-title></title>
8
+ <link rel="stylesheet" href="styles.css" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  </head>
10
 
11
  <body>
12
+ <div class="page">
13
+ <div class="frame">
14
+ <div class="card">
15
  <header>
16
+ <h1 class="htitle" data-badge></h1>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ <hpill>
19
+ <span class="title-version" data-version></span>
20
+ </hpill>
 
 
 
 
21
 
22
+ <p class="subtitle" data-subtitle></p>
23
+ <p class="meta" data-meta></p>
24
+ </header>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
+ <main>
27
+ <section class="license-content" data-sections></section>
 
 
 
 
 
 
 
 
28
 
29
+ <aside class="side-panel" data-sidepanel></aside>
30
+ </main>
31
 
32
+ <div class="source-block" data-source>
33
+ <strong data-source-text></strong>
34
+ <a data-source-url href="#" target="_blank" rel="noreferrer"></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  </div>
36
+ </div>
37
  </div>
38
+ </div>
39
+
40
+ <script src="main.js"></script>
41
  </body>
42
 
43
  </html>
main.js ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ async function loadContent() {
2
+ try {
3
+ const response = await fetch("content.json");
4
+ const content = await response.json();
5
+
6
+ // Header
7
+ document.querySelector("[data-title]").textContent = content.title;
8
+ document.querySelector("[data-version]").textContent = content.version;
9
+ document.querySelector("[data-subtitle]").textContent = content.subtitle;
10
+ document.querySelector("[data-meta]").textContent = content.meta;
11
+ document.querySelector("[data-badge]").textContent = content.badge;
12
+ document.title = content.title;
13
+
14
+ // Source
15
+ const sourceUrlEl = document.querySelector("[data-source-url]");
16
+ sourceUrlEl.href = content.sourceUrl;
17
+ sourceUrlEl.textContent = content.sourceUrl || "No source available";
18
+ document.querySelector("[data-source-text]").textContent = content.sourceText;
19
+
20
+ // Sections
21
+ const sectionsContainer = document.querySelector("[data-sections]");
22
+ content.sections.forEach((section) => {
23
+ const sectionEl = document.createElement("div");
24
+ sectionEl.className = "section";
25
+ sectionEl.innerHTML = `
26
+ <div class="section-label">${content.sectionLabel}</div>
27
+ <h2>${section.title}</h2>
28
+ ${Array.isArray(section.content)
29
+ ? `<ul>${section.content.map((item) => `<li>${item}</li>`).join("")}</ul>`
30
+ : `<p>${section.content}</p>`
31
+ }
32
+ `;
33
+ sectionsContainer.appendChild(sectionEl);
34
+ });
35
+
36
+ // Side panel
37
+ const sidePanel = document.querySelector("[data-sidepanel]");
38
+ sidePanel.innerHTML = `
39
+ <div class="side-card">
40
+ <div class="pill">
41
+ <span class="pill-dot"></span>
42
+ ${content.sidePanel.pill}
43
+ </div>
44
+ <h3 class="side-title">${content.sidePanel.principles.title}</h3>
45
+ <div class="principles-list" data-principles></div>
46
+ </div>
47
+ <div class="side-card">
48
+ <h3 class="side-title">${content.sidePanel.snapshot.title}</h3>
49
+ <div class="meta-grid">
50
+ ${content.sidePanel.snapshot.items
51
+ .map(([key, value]) => `
52
+ <div class="meta-item">
53
+ <span>${key}</span>
54
+ <span>${value}</span>
55
+ </div>
56
+ `)
57
+ .join("")}
58
+ </div>
59
+ </div>
60
+ <div class="side-card">
61
+ <h3 class="side-title">${content.sidePanel.hint.title}</h3>
62
+ <p class="side-text">${content.sidePanel.hint.text}</p>
63
+ </div>
64
+ `;
65
+
66
+ // Render principles with SVG icons
67
+ const principlesList = document.querySelector("[data-principles]");
68
+ if (content.sidePanel.principles.items) {
69
+ const items = content.sidePanel.principles.items;
70
+ const allowedItems = items.filter(item => item.type === 'allow');
71
+ const avoidItems = items.filter(item => item.type === 'avoid');
72
+
73
+ principlesList.innerHTML = `
74
+ <div class="permissions-group">
75
+ ${allowedItems.map(item => `
76
+ <div class="permission-item">
77
+ <img src="assets/correct.svg" width="16" height="16" alt="Allowed" />
78
+ <span>${item.text}</span>
79
+ </div>
80
+ `).join('')}
81
+ </div>
82
+ <div class="permissions-group avoid">
83
+ ${avoidItems.map(item => `
84
+ <div class="permission-item">
85
+ <img src="assets/avoid.svg" width="16" height="16" alt="Prohibited" />
86
+ <span>${item.text}</span>
87
+ </div>
88
+ `).join('')}
89
+ </div>
90
+ `;
91
+ }
92
+
93
+ } catch (error) {
94
+ console.error("Error loading content:", error);
95
+ document.body.innerHTML = "<h1>Error loading license content</h1>";
96
+ }
97
+ }
98
+
99
+ loadContent();
styles.css ADDED
@@ -0,0 +1,337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --bg: #050608;
3
+ --card-bg: #0d0f14;
4
+ --accent: #e63946;
5
+ --accent-soft: rgba(230, 57, 70, 0.18);
6
+ --text-main: #f5f5f7;
7
+ --text-muted: #9ea3b5;
8
+ --border-soft: rgba(255, 255, 255, 0.06);
9
+ --code-bg: #11141c;
10
+ --shadow-soft: 0 18px 40px rgba(0, 0, 0, 0.6);
11
+ --radius-lg: 18px;
12
+ --radius-sm: 8px;
13
+ --font-main: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text",
14
+ Segoe UI, sans-serif;
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ margin: 0;
20
+ padding: 0;
21
+ }
22
+
23
+ html,
24
+ body {
25
+ height: 100%;
26
+ background: radial-gradient(circle at top, #151824 0%, #050608 55%);
27
+ color: var(--text-main);
28
+ font-family: var(--font-main);
29
+ -webkit-font-smoothing: antialiased;
30
+ }
31
+
32
+ body {
33
+ display: flex;
34
+ justify-content: center;
35
+ padding: 24px 12px;
36
+ overflow-y: auto;
37
+ }
38
+
39
+ .page {
40
+ width: 100%;
41
+ max-width: 960px;
42
+ }
43
+
44
+ .frame {
45
+ background: linear-gradient(135deg, rgba(230, 57, 70, 0.08), transparent);
46
+ border-radius: 24px;
47
+ padding: 1px;
48
+ box-shadow: var(--shadow-soft);
49
+ }
50
+
51
+ .card {
52
+ background: radial-gradient(circle at top left, #151926 0%, #050609 60%);
53
+ border-radius: 22px;
54
+ padding: 24px 20px 22px;
55
+ border: 1px solid var(--border-soft);
56
+ backdrop-filter: blur(16px);
57
+ }
58
+
59
+ /* Header styles */
60
+ header {
61
+ display: flex;
62
+ flex-direction: column;
63
+ gap: 8px;
64
+ margin-bottom: 20px;
65
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
66
+ padding-bottom: 16px;
67
+ }
68
+
69
+ .htitle {
70
+ font-size: 22px;
71
+ font-weight: 650;
72
+ letter-spacing: 0.04em;
73
+ text-transform: uppercase;
74
+ display: flex;
75
+ flex-wrap: wrap;
76
+ align-items: center;
77
+ gap: 8px;
78
+ }
79
+
80
+ hpill {
81
+ font-size: 22px;
82
+ font-weight: 650;
83
+ letter-spacing: 0.04em;
84
+ text-transform: uppercase;
85
+ display: flex;
86
+ flex-wrap: wrap;
87
+ align-items: center;
88
+ gap: 8px;
89
+ }
90
+
91
+ .title-version {
92
+ font-size: 12px;
93
+ font-weight: 400;
94
+ color: var(--accent);
95
+ padding: 3px 9px;
96
+ border-radius: 999px;
97
+ background: var(--accent-soft);
98
+ border: 1px solid rgba(230, 57, 70, 0.45);
99
+ }
100
+
101
+ .subtitle {
102
+ font-size: 13px;
103
+ color: var(--text-muted);
104
+ max-width: 580px;
105
+ line-height: 1.5;
106
+ }
107
+
108
+ .meta {
109
+ font-size: 10px;
110
+ color: var(--text-muted);
111
+ text-transform: uppercase;
112
+ letter-spacing: 0.16em;
113
+ margin-top: 2px;
114
+ }
115
+
116
+ /* Main content */
117
+ main {
118
+ display: grid;
119
+ grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr);
120
+ gap: 20px;
121
+ }
122
+
123
+ .license-content {
124
+ font-size: 14px;
125
+ line-height: 1.7;
126
+ color: var(--text-main);
127
+ }
128
+
129
+ .license-content h2 {
130
+ font-size: 15px;
131
+ font-weight: 600;
132
+ margin: 16px 0 8px;
133
+ display: flex;
134
+ align-items: center;
135
+ gap: 8px;
136
+ }
137
+
138
+ .license-content h2::before {
139
+ content: "";
140
+ width: 18px;
141
+ height: 1px;
142
+ background: linear-gradient(90deg, var(--accent), transparent);
143
+ }
144
+
145
+ .license-content p {
146
+ margin-bottom: 10px;
147
+ color: var(--text-main);
148
+ }
149
+
150
+ .license-content ul {
151
+ margin: 6px 0 12px 18px;
152
+ list-style: none;
153
+ }
154
+
155
+ .license-content li {
156
+ position: relative;
157
+ margin-bottom: 6px;
158
+ color: var(--text-muted);
159
+ }
160
+
161
+ .license-content li::before {
162
+ content: "→";
163
+ position: absolute;
164
+ left: -14px;
165
+ color: var(--accent);
166
+ }
167
+
168
+ .section-label {
169
+ font-size: 11px;
170
+ text-transform: uppercase;
171
+ letter-spacing: 0.18em;
172
+ color: var(--text-muted);
173
+ margin-bottom: 2px;
174
+ }
175
+
176
+ /* Side panel */
177
+ .pill {
178
+ display: inline-flex;
179
+ align-items: center;
180
+ gap: 6px;
181
+ font-size: 11px;
182
+ color: var(--accent);
183
+ background: rgba(230, 57, 70, 0.08);
184
+ border-radius: 999px;
185
+ padding: 4px 10px;
186
+ border: 1px solid rgba(230, 57, 70, 0.3);
187
+ margin-bottom: 8px;
188
+ }
189
+
190
+ .pill-dot {
191
+ width: 6px;
192
+ height: 6px;
193
+ border-radius: 999px;
194
+ background: var(--accent);
195
+ }
196
+
197
+ .side-panel {
198
+ border-radius: 16px;
199
+ padding: 14px 14px 12px;
200
+ background: linear-gradient(
201
+ 145deg,
202
+ rgba(255, 255, 255, 0.02),
203
+ rgba(0, 0, 0, 0.4)
204
+ );
205
+ border: 1px solid var(--border-soft);
206
+ display: flex;
207
+ flex-direction: column;
208
+ gap: 12px;
209
+ }
210
+
211
+ .side-card {
212
+ padding: 10px 10px 9px;
213
+ border-radius: 13px;
214
+ background: rgba(5, 7, 12, 0.9);
215
+ border: 1px solid rgba(255, 255, 255, 0.04);
216
+ }
217
+
218
+ .side-title {
219
+ font-size: 12px;
220
+ font-weight: 600;
221
+ margin-bottom: 4px;
222
+ }
223
+
224
+ .side-text {
225
+ font-size: 12px;
226
+ color: var(--text-muted);
227
+ line-height: 1.5;
228
+ }
229
+
230
+ /* Permissions list */
231
+ .permissions-group {
232
+ margin-bottom: 12px;
233
+ }
234
+
235
+ .permissions-group:last-child {
236
+ margin-bottom: 0;
237
+ }
238
+
239
+ .permissions-group.avoid {
240
+ padding-top: 8px;
241
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
242
+ }
243
+
244
+ .permission-item {
245
+ display: flex;
246
+ align-items: center;
247
+ gap: 8px;
248
+ margin-bottom: 6px;
249
+ font-family: monospace;
250
+ font-size: 13px;
251
+ }
252
+
253
+ .permission-item span {
254
+ color: var(--text-muted);
255
+ }
256
+
257
+ .permissions-group.avoid .permission-item span {
258
+ color: #fca5a5;
259
+ }
260
+
261
+ .meta-grid {
262
+ display: grid;
263
+ grid-template-columns: repeat(2, minmax(0, 1fr));
264
+ gap: 8px;
265
+ margin-top: 6px;
266
+ }
267
+
268
+ .meta-item {
269
+ font-size: 11px;
270
+ color: var(--text-muted);
271
+ display: flex;
272
+ flex-direction: column;
273
+ gap: 2px;
274
+ }
275
+
276
+ .meta-item span:first-child {
277
+ text-transform: uppercase;
278
+ letter-spacing: 0.16em;
279
+ font-size: 10px;
280
+ color: rgba(158, 163, 181, 0.75);
281
+ }
282
+
283
+ a {
284
+ color: var(--accent);
285
+ text-decoration: none;
286
+ border-bottom: 1px solid rgba(230, 57, 70, 0.4);
287
+ }
288
+
289
+ a:hover {
290
+ border-bottom-color: var(--accent);
291
+ }
292
+
293
+ .source-block {
294
+ margin-top: 10px;
295
+ font-size: 12px;
296
+ padding: 8px 10px;
297
+ border-radius: var(--radius-sm);
298
+ background: var(--code-bg);
299
+ border: 1px solid rgba(255, 255, 255, 0.04);
300
+ color: var(--text-muted);
301
+ word-break: break-all;
302
+ }
303
+
304
+ /* Responsive */
305
+ @media (min-width: 900px) {
306
+ .htitle {
307
+ font-size: 28px;
308
+ }
309
+ }
310
+
311
+ @media (max-width: 900px) {
312
+ body {
313
+ padding: 16px 10px;
314
+ }
315
+
316
+ .card {
317
+ padding: 20px 16px 18px;
318
+ }
319
+
320
+ main {
321
+ grid-template-columns: minmax(0, 1fr);
322
+ }
323
+ }
324
+
325
+ @media (max-width: 600px) {
326
+ .htitle {
327
+ font-size: 18px;
328
+ }
329
+
330
+ .subtitle {
331
+ font-size: 12px;
332
+ }
333
+
334
+ .license-content {
335
+ font-size: 13px;
336
+ }
337
+ }