├── CNAME
├── cursors
├── Help.cur
├── Pointer.cur
└── Precision.cur
├── fonts
├── mononoki.ttf
└── mononoki.woff2
├── icons
└── main
│ ├── favicon.ico
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── mstile-70x70.png
│ ├── apple-touch-icon.png
│ ├── favicon-194x194.png
│ ├── mstile-144x144.png
│ ├── mstile-150x150.png
│ ├── mstile-310x150.png
│ ├── mstile-310x310.png
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ ├── browserconfig.xml
│ ├── site.webmanifest
│ └── safari-pinned-tab.svg
├── .vscode
└── launch.json
├── dscalc
├── index.html
├── ds.css
├── ds.js
└── ds2_levels.js
├── index.html
├── index.js
├── .gitignore
└── index.css
/CNAME:
--------------------------------------------------------------------------------
1 | wyspr.xyz
--------------------------------------------------------------------------------
/cursors/Help.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/cursors/Help.cur
--------------------------------------------------------------------------------
/fonts/mononoki.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/fonts/mononoki.ttf
--------------------------------------------------------------------------------
/cursors/Pointer.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/cursors/Pointer.cur
--------------------------------------------------------------------------------
/cursors/Precision.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/cursors/Precision.cur
--------------------------------------------------------------------------------
/fonts/mononoki.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/fonts/mononoki.woff2
--------------------------------------------------------------------------------
/icons/main/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/favicon.ico
--------------------------------------------------------------------------------
/icons/main/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/favicon-16x16.png
--------------------------------------------------------------------------------
/icons/main/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/favicon-32x32.png
--------------------------------------------------------------------------------
/icons/main/mstile-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/mstile-70x70.png
--------------------------------------------------------------------------------
/icons/main/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/apple-touch-icon.png
--------------------------------------------------------------------------------
/icons/main/favicon-194x194.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/favicon-194x194.png
--------------------------------------------------------------------------------
/icons/main/mstile-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/mstile-144x144.png
--------------------------------------------------------------------------------
/icons/main/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/mstile-150x150.png
--------------------------------------------------------------------------------
/icons/main/mstile-310x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/mstile-310x150.png
--------------------------------------------------------------------------------
/icons/main/mstile-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/mstile-310x310.png
--------------------------------------------------------------------------------
/icons/main/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/android-chrome-192x192.png
--------------------------------------------------------------------------------
/icons/main/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/preprocessor/preprocessor.github.io/main/icons/main/android-chrome-512x512.png
--------------------------------------------------------------------------------
/icons/main/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #2b5797
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/icons/main/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wyspr.xyz",
3 | "short_name": "wyspr.xyz",
4 | "icons": [
5 | {
6 | "src": "/icons/main/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/icons/main/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "theme_color": "#4a4a4a",
17 | "background_color": "#4a4a4a",
18 | "display": "standalone"
19 | }
20 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Chromium",
6 | "type": "chrome",
7 | "request": "launch",
8 | "reAttach": true,
9 | "runtimeExecutable": "C:\\Program Files\\Chromium\\Application\\Chrome.exe",
10 | "url": "${fileDirname}/${fileBasenameNoExtension}.html",
11 | "webRoot": "${fileDirname}"
12 | },
13 | {
14 | "name": "Firefox",
15 | "type": "firefox",
16 | "request": "launch",
17 | "reAttach": true,
18 | "file": "${fileDirname}/${fileBasenameNoExtension}.html",
19 | "reloadOnChange": "${workspaceFolder}/**/*.*",
20 | "clearConsoleOnReload": true
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/dscalc/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Dark Souls Level Calculator
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
22 |
23 |
24 | Dark Souls Level Calculator
25 | by wyspr
26 |
38 |
39 |
40 | Level
41 | Souls Required
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [s]hell
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
S hell
38 |
tree ~/xyz/pages
39 |
40 |
41 |
┌───────────┐
42 | │~/xyz/pages│
43 | └┬──────────┘
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/icons/main/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 | Created by potrace 1.14, written by Peter Selinger 2001-2017
9 |
10 |
12 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | function glitchText() {
2 | for (i = 0; i < 9; i++) {
3 | items.glitchRef.innerHTML += 'wyspr.xyz
';
4 | }
5 | return;
6 | }
7 |
8 | function treeFill() {
9 | var symbol;
10 | let links = new Map([
11 | ['ds-level-calculator', './dscalc/'],
12 | ['src', 'https://github.com/preprocessor/preprocessor.github.io']
13 | ]);//src needs to be the last one for the tree to work properly 🤪
14 |
15 | for (let [name, link] of links) {
16 | if (name != 'src') {
17 | symbol = '├─';
18 | } else {
19 | symbol = '└─';
20 | }
21 |
22 | items.treeRef.innerHTML += '';
23 | }
24 | return;
25 | }
26 |
27 | async function openTerminal() {
28 |
29 | var titlebar = document.getElementsByClassName('titleBar')[0],
30 | prompts = document.getElementsByClassName('prompt'),
31 | activePrompt = prompts[1],
32 | message = prompts[0].innerText;
33 |
34 | items.glitchRef.outerHTML = items.glitchRef.outerHTML.replace(/style=\"[^"]*" onclick=\"[^"]*"/, '') // removes ? cursor and onclick event from glitch text
35 | items.terminal.classList.add('opened'); // open terminal
36 |
37 | await waitForMs(randInterval(1500,1700)).then(() => {titlebar.classList.add('revealed')}); // reveal titlebar
38 | await waitForMs(randInterval(100, 200)).then(() => {activePrompt.classList.add('blinking')}); // add cursor to prompt
39 | await waitForMs(randInterval(300, 400)).then(() => {typeSentence(message, activePrompt)}); // type some words
40 | await waitForMs(randInterval(250, 350)+message.length*75).then(() => {activePrompt.classList.replace('blinking', 'ran')}); // wait until message is finished (message.length*75) and remove the cursor
41 | await waitForMs(randInterval(100, 200)).then(() => {items.treeRef.style.opacity = 1}); // reveal the tree
42 | await waitForMs(randInterval(100, 200)).then(() => {prompts[2].classList.add('blinking')}); // add cursor to next prompt
43 |
44 | return;
45 | }
46 |
47 | async function typeSentence(sentence, ref, delay = 75) {
48 | for (i = 0; i < sentence.length; i++) {
49 | ref.innerHTML += sentence.split("")[i];
50 | await waitForMs(delay);
51 | }
52 | return;
53 | }
54 |
55 | function waitForMs(ms) {
56 | return new Promise(resolve => setTimeout(resolve, ms))
57 | }
58 |
59 | function randInterval(min, max) {
60 | return Math.floor(min + Math.random() * (max - min));
61 | }
62 |
63 | var items = {};
64 |
65 | function init() {
66 | items.glitchRef = document.getElementsByClassName('glitch')[0];
67 | items.treeRef = document.getElementsByClassName('tree')[0];
68 | items.terminal = document.getElementsByClassName('terminal')[0];
69 | glitchText();
70 | treeFill();
71 | return;
72 | }
--------------------------------------------------------------------------------
/dscalc/ds.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --bg-color: rgb(20, 20, 20);
3 | --body-text-color: rgb(180, 178, 176);
4 | --title-color: rgb(216, 190, 140);
5 | --subtitle-color: rgb(140, 10, 10);
6 | --table-main-border: rgb(60, 60, 60);
7 | --table-alt-border: rgb(171, 150, 111);
8 | --hover-bg: rgba(199, 199, 199, 0.4);
9 | --alt-bg: rgb(34, 34, 34);
10 | --table-font-n: 14px;
11 | --table-font-l: 18px;
12 | }
13 |
14 |
15 | html, tr:last-of-type td {
16 | font-family: 'Cormorant SC', serif;
17 | }
18 |
19 | body {
20 | align-items: center;
21 | background-color: var(--bg-color);
22 | color: var(--body-text-color);
23 | display: flex;
24 | flex-direction: column;
25 | }
26 |
27 | h1 {
28 | color: var(--title-color);
29 | margin-bottom: 0;
30 | white-space: nowrap;
31 | font-size: 4vmin;
32 | }
33 |
34 | h4 {
35 | color: var(--subtitle-color);
36 | margin: 0;
37 | font-size: 2.5vmin;
38 | }
39 |
40 | form {
41 | display: flex;
42 | flex-direction: column;
43 | align-items: center;
44 | margin-bottom: 2vmin;
45 | width: 90%;
46 | /* min-height: 40px; */
47 | }
48 |
49 | form div {
50 | display: flex;
51 | }
52 |
53 |
54 |
55 | table {
56 | border-spacing: 0;
57 | font-size: var(--table-font-n);
58 | margin-bottom: 30px;
59 | border: 2px solid var(--table-alt-border);
60 | }
61 |
62 | td, th {
63 | border: 0px solid var(--table-main-border);
64 | padding: 10px 20px;
65 | text-align: center;
66 | vertical-align: middle;
67 | width: 50%;
68 | }
69 |
70 | th {
71 | font-size: var(--table-font-l);
72 | border-bottom: 1px solid var(--table-alt-border);
73 | }
74 |
75 | th:last-of-type {
76 | border-left-width: 1px;
77 | }
78 |
79 | tr:last-of-type td {
80 | border-top: 1px solid var(--table-alt-border);
81 | }
82 |
83 | td {
84 | border-width: 0 0 1px 1px;
85 | }
86 |
87 | td:first-of-type {
88 | border-left-width: 0;
89 | }
90 |
91 | tr:nth-last-of-type(2) td {
92 | border-bottom: none;
93 | }
94 |
95 | tr:last-of-type {
96 | color: var(--title-color);
97 | font-size: var(--table-font-l);
98 | font-weight: bold;
99 | }
100 |
101 | tr:nth-child(2n+1) {
102 | background-color: var(--alt-bg);
103 | }
104 |
105 | tr:not(:first-child):hover {
106 | background-color: var(--hover-bg);
107 | }
108 |
109 | input, td {
110 | font-family: Arial, sans-serif;
111 | }
112 |
113 | span {
114 | bottom: 1px;
115 | padding: 0 2px 0 4px;
116 | position: relative;
117 | }
118 |
119 | button, input {
120 | background-color: rgb(56, 52, 48);
121 | color: gray;
122 | border: 1px solid gray;
123 | padding: 6px 12px;
124 | flex: 1 0 0;
125 | text-align: center;
126 | }
127 |
128 | input[type="radio"] {
129 | display: none;
130 | }
131 |
132 | label {
133 | font-size: 4vmin;
134 | padding: 10px;
135 | margin: 1vmin;
136 | }
137 |
138 | input[type="radio"]:checked+label {
139 | color: #dd7700;
140 | text-shadow: 0px 0px 10px var(--title-color);
141 | }
142 |
143 | #startLvl {
144 | border-right: none;
145 | }
146 |
147 | button {
148 | border-left: none;
149 | text-decoration: underline;
150 | color: lightgrey;
151 | }
--------------------------------------------------------------------------------
/dscalc/ds.js:
--------------------------------------------------------------------------------
1 | function level(lv, game) {
2 | /* The level formula wants the target level, but our math gives the current level, so we +1 */
3 | let x = lv + 1,
4 | result;
5 |
6 | if (game != 2) {
7 | result = Math.floor( 0.02 * x **3 + 3.06 * x **2 + 105.6 * x - 895 );
8 | } else {
9 | result = ds2_levels[x]
10 | }
11 |
12 | return result;
13 | }
14 |
15 | function levelMap(start, end, game) {
16 | let results = new Map();
17 | /* * * * * * * * * * * * * * * * * * * * * * * * * *
18 | * The level formula is innacurate at levels < 12 *
19 | * for 1 and 3 so instead we put lvs 1-12 into an *
20 | * array and loop through those when < 12 *
21 | * * * * * * * * * * * * * * * * * * * * * * * * * */
22 | let earlyGame = [0, 673, 689, 706, 723, 740, 757, 775, 793, 811, 829, 847]
23 | /* └─array indexes start at [0] but our loop counts from 1 *
24 | * so we insert a 0 at the start to shift the index up 1 */
25 |
26 | for (let i = start; i < end; i++) {
27 | if (i < 12 && game != 2) {
28 | results.set(i, earlyGame[i]);
29 | } else {
30 | results.set(i, level(i, game));
31 | }
32 | }
33 |
34 | return results;
35 | }
36 |
37 | function addRow(c1, c2, table) {
38 | let newRow = table.insertRow(-1), // create a new row at the end of the table
39 | cell1 = newRow.insertCell(0),
40 | cell2 = newRow.insertCell(1); // insert the cells into the row
41 |
42 | cell1.innerHTML = c1;
43 | cell2.innerHTML = c2; // populate the cells
44 | }
45 |
46 | function tableWipe(table) {
47 | while (table.rows.length > 1) {
48 | table.deleteRow(-1);
49 | }
50 | }
51 |
52 | function tableGen() {
53 | var start = parseInt(document.getElementById('startLvl').value),
54 | end = parseInt(document.getElementById('goalLvl').value),
55 | // using parseInt() strips decimals and returns NaN if given a string
56 | tableRef = document.getElementById('daTable'),
57 | radios = document.querySelectorAll('input[name="game"]'),
58 | game;
59 |
60 | for (const radioButton of radios) {
61 | if (radioButton.checked) {
62 | game = radioButton.value;
63 | break;
64 | }
65 | }
66 |
67 | if ( start && end && start >= 1 && start < end && end <= 802 ) { // makes sure that inputs exist and make sense
68 | tableRef.style.display = 'table'; // unhide the table on first run
69 | tableWipe(tableRef); // clear the table if its populated
70 |
71 | let levels = levelMap(start, end, game),
72 | total = 0;
73 |
74 | for (let value of levels.values()) {
75 | total += value;
76 | }
77 |
78 | for (let [id, value] of levels) {
79 | addRow(id + '→ ' + (id+1), value.toLocaleString(), tableRef);
80 | }
81 |
82 | addRow('Total Souls', total.toLocaleString(), tableRef);
83 | }
84 | }
85 |
86 | function enterSubmit() {
87 | document.querySelectorAll('input').forEach(item => {
88 | item.addEventListener('keyup', (e) => {
89 | if (e.key === 'Enter') {tableGen();}
90 | })
91 | })
92 | }
93 |
94 | function init() {
95 | enterSubmit();
96 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Aa][Rr][Mm]/
27 | [Aa][Rr][Mm]64/
28 | bld/
29 | [Bb]in/
30 | [Oo]bj/
31 | [Ll]og/
32 | [Ll]ogs/
33 |
34 | # Visual Studio 2015/2017 cache/options directory
35 | .vs/
36 | # Uncomment if you have tasks that create the project's static files in wwwroot
37 | #wwwroot/
38 |
39 | # Visual Studio 2017 auto generated files
40 | Generated\ Files/
41 |
42 | # MSTest test Results
43 | [Tt]est[Rr]esult*/
44 | [Bb]uild[Ll]og.*
45 |
46 | # NUnit
47 | *.VisualState.xml
48 | TestResult.xml
49 | nunit-*.xml
50 |
51 | # Build Results of an ATL Project
52 | [Dd]ebugPS/
53 | [Rr]eleasePS/
54 | dlldata.c
55 |
56 | # Benchmark Results
57 | BenchmarkDotNet.Artifacts/
58 |
59 | # .NET Core
60 | project.lock.json
61 | project.fragment.lock.json
62 | artifacts/
63 |
64 | # StyleCop
65 | StyleCopReport.xml
66 |
67 | # Files built by Visual Studio
68 | *_i.c
69 | *_p.c
70 | *_h.h
71 | *.ilk
72 | *.meta
73 | *.obj
74 | *.iobj
75 | *.pch
76 | *.pdb
77 | *.ipdb
78 | *.pgc
79 | *.pgd
80 | *.rsp
81 | *.sbr
82 | *.tlb
83 | *.tli
84 | *.tlh
85 | *.tmp
86 | *.tmp_proj
87 | *_wpftmp.csproj
88 | *.log
89 | *.vspscc
90 | *.vssscc
91 | .builds
92 | *.pidb
93 | *.svclog
94 | *.scc
95 |
96 | # Chutzpah Test files
97 | _Chutzpah*
98 |
99 | # Visual C++ cache files
100 | ipch/
101 | *.aps
102 | *.ncb
103 | *.opendb
104 | *.opensdf
105 | *.sdf
106 | *.cachefile
107 | *.VC.db
108 | *.VC.VC.opendb
109 |
110 | # Visual Studio profiler
111 | *.psess
112 | *.vsp
113 | *.vspx
114 | *.sap
115 |
116 | # Visual Studio Trace Files
117 | *.e2e
118 |
119 | # TFS 2012 Local Workspace
120 | $tf/
121 |
122 | # Guidance Automation Toolkit
123 | *.gpState
124 |
125 | # ReSharper is a .NET coding add-in
126 | _ReSharper*/
127 | *.[Rr]e[Ss]harper
128 | *.DotSettings.user
129 |
130 | # TeamCity is a build add-in
131 | _TeamCity*
132 |
133 | # DotCover is a Code Coverage Tool
134 | *.dotCover
135 |
136 | # AxoCover is a Code Coverage Tool
137 | .axoCover/*
138 | !.axoCover/settings.json
139 |
140 | # Visual Studio code coverage results
141 | *.coverage
142 | *.coveragexml
143 |
144 | # NCrunch
145 | _NCrunch_*
146 | .*crunch*.local.xml
147 | nCrunchTemp_*
148 |
149 | # MightyMoose
150 | *.mm.*
151 | AutoTest.Net/
152 |
153 | # Web workbench (sass)
154 | .sass-cache/
155 |
156 | # Installshield output folder
157 | [Ee]xpress/
158 |
159 | # DocProject is a documentation generator add-in
160 | DocProject/buildhelp/
161 | DocProject/Help/*.HxT
162 | DocProject/Help/*.HxC
163 | DocProject/Help/*.hhc
164 | DocProject/Help/*.hhk
165 | DocProject/Help/*.hhp
166 | DocProject/Help/Html2
167 | DocProject/Help/html
168 |
169 | # Click-Once directory
170 | publish/
171 |
172 | # Publish Web Output
173 | *.[Pp]ublish.xml
174 | *.azurePubxml
175 | # Note: Comment the next line if you want to checkin your web deploy settings,
176 | # but database connection strings (with potential passwords) will be unencrypted
177 | *.pubxml
178 | *.publishproj
179 |
180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
181 | # checkin your Azure Web App publish settings, but sensitive information contained
182 | # in these scripts will be unencrypted
183 | PublishScripts/
184 |
185 | # NuGet Packages
186 | *.nupkg
187 | # NuGet Symbol Packages
188 | *.snupkg
189 | # The packages folder can be ignored because of Package Restore
190 | **/[Pp]ackages/*
191 | # except build/, which is used as an MSBuild target.
192 | !**/[Pp]ackages/build/
193 | # Uncomment if necessary however generally it will be regenerated when needed
194 | #!**/[Pp]ackages/repositories.config
195 | # NuGet v3's project.json files produces more ignorable files
196 | *.nuget.props
197 | *.nuget.targets
198 |
199 | # Microsoft Azure Build Output
200 | csx/
201 | *.build.csdef
202 |
203 | # Microsoft Azure Emulator
204 | ecf/
205 | rcf/
206 |
207 | # Windows Store app package directories and files
208 | AppPackages/
209 | BundleArtifacts/
210 | Package.StoreAssociation.xml
211 | _pkginfo.txt
212 | *.appx
213 | *.appxbundle
214 | *.appxupload
215 |
216 | # Visual Studio cache files
217 | # files ending in .cache can be ignored
218 | *.[Cc]ache
219 | # but keep track of directories ending in .cache
220 | !?*.[Cc]ache/
221 |
222 | # Others
223 | ClientBin/
224 | ~$*
225 | *~
226 | *.dbmdl
227 | *.dbproj.schemaview
228 | *.jfm
229 | *.pfx
230 | *.publishsettings
231 | orleans.codegen.cs
232 |
233 | # Including strong name files can present a security risk
234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
235 | #*.snk
236 |
237 | # Since there are multiple workflows, uncomment next line to ignore bower_components
238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
239 | #bower_components/
240 |
241 | # RIA/Silverlight projects
242 | Generated_Code/
243 |
244 | # Backup & report files from converting an old project file
245 | # to a newer Visual Studio version. Backup files are not needed,
246 | # because we have git ;-)
247 | _UpgradeReport_Files/
248 | Backup*/
249 | UpgradeLog*.XML
250 | UpgradeLog*.htm
251 | ServiceFabricBackup/
252 | *.rptproj.bak
253 |
254 | # SQL Server files
255 | *.mdf
256 | *.ldf
257 | *.ndf
258 |
259 | # Business Intelligence projects
260 | *.rdl.data
261 | *.bim.layout
262 | *.bim_*.settings
263 | *.rptproj.rsuser
264 | *- [Bb]ackup.rdl
265 | *- [Bb]ackup ([0-9]).rdl
266 | *- [Bb]ackup ([0-9][0-9]).rdl
267 |
268 | # Microsoft Fakes
269 | FakesAssemblies/
270 |
271 | # GhostDoc plugin setting file
272 | *.GhostDoc.xml
273 |
274 | # Node.js Tools for Visual Studio
275 | .ntvs_analysis.dat
276 | node_modules/
277 |
278 | # Visual Studio 6 build log
279 | *.plg
280 |
281 | # Visual Studio 6 workspace options file
282 | *.opt
283 |
284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
285 | *.vbw
286 |
287 | # Visual Studio LightSwitch build output
288 | **/*.HTMLClient/GeneratedArtifacts
289 | **/*.DesktopClient/GeneratedArtifacts
290 | **/*.DesktopClient/ModelManifest.xml
291 | **/*.Server/GeneratedArtifacts
292 | **/*.Server/ModelManifest.xml
293 | _Pvt_Extensions
294 |
295 | # Paket dependency manager
296 | .paket/paket.exe
297 | paket-files/
298 |
299 | # FAKE - F# Make
300 | .fake/
301 |
302 | # CodeRush personal settings
303 | .cr/personal
304 |
305 | # Python Tools for Visual Studio (PTVS)
306 | __pycache__/
307 | *.pyc
308 |
309 | # Cake - Uncomment if you are using it
310 | # tools/**
311 | # !tools/packages.config
312 |
313 | # Tabs Studio
314 | *.tss
315 |
316 | # Telerik's JustMock configuration file
317 | *.jmconfig
318 |
319 | # BizTalk build output
320 | *.btp.cs
321 | *.btm.cs
322 | *.odx.cs
323 | *.xsd.cs
324 |
325 | # OpenCover UI analysis results
326 | OpenCover/
327 |
328 | # Azure Stream Analytics local run output
329 | ASALocalRun/
330 |
331 | # MSBuild Binary and Structured Log
332 | *.binlog
333 |
334 | # NVidia Nsight GPU debugger configuration file
335 | *.nvuser
336 |
337 | # MFractors (Xamarin productivity tool) working folder
338 | .mfractor/
339 |
340 | # Local History for Visual Studio
341 | .localhistory/
342 |
343 | # BeatPulse healthcheck temp database
344 | healthchecksdb
345 |
346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
347 | MigrationBackup/
348 |
349 | # Ionide (cross platform F# VS Code tools) working folder
350 | .ionide/
351 |
--------------------------------------------------------------------------------
/dscalc/ds2_levels.js:
--------------------------------------------------------------------------------
1 | var ds2_levels = [
2 | 0,
3 | 0,
4 | 500,
5 | 528,
6 | 557,
7 | 587,
8 | 619,
9 | 653,
10 | 689,
11 | 727,
12 | 767,
13 | 810,
14 | 854,
15 | 901,
16 | 948,
17 | 997,
18 | 1049,
19 | 1104,
20 | 1159,
21 | 1217,
22 | 1278,
23 | 1341,
24 | 1408,
25 | 1479,
26 | 1553,
27 | 1631,
28 | 1699,
29 | 1770,
30 | 1845,
31 | 1922,
32 | 2003,
33 | 2087,
34 | 2175,
35 | 2266,
36 | 2361,
37 | 2460,
38 | 2564,
39 | 2671,
40 | 2784,
41 | 2900,
42 | 3022,
43 | 3149,
44 | 3256,
45 | 3367,
46 | 3482,
47 | 3600,
48 | 3722,
49 | 3849,
50 | 3980,
51 | 4115,
52 | 4255,
53 | 4400,
54 | 4549,
55 | 4704,
56 | 4864,
57 | 5029,
58 | 5200,
59 | 5330,
60 | 5463,
61 | 5600,
62 | 5740,
63 | 5883,
64 | 6031,
65 | 6181,
66 | 6336,
67 | 6494,
68 | 6657,
69 | 6823,
70 | 6994,
71 | 7168,
72 | 7348,
73 | 7531,
74 | 7697,
75 | 7866,
76 | 8039,
77 | 8216,
78 | 8397,
79 | 8582,
80 | 8771,
81 | 8964,
82 | 9161,
83 | 9362,
84 | 9568,
85 | 9779,
86 | 9994,
87 | 10214,
88 | 10438,
89 | 10668,
90 | 10903,
91 | 11143,
92 | 11388,
93 | 11638,
94 | 11836,
95 | 12037,
96 | 12242,
97 | 12450,
98 | 12662,
99 | 12877,
100 | 13096,
101 | 13319,
102 | 13545,
103 | 13775,
104 | 14009,
105 | 14248,
106 | 14490,
107 | 14736,
108 | 14987,
109 | 15241,
110 | 15501,
111 | 15764,
112 | 16032,
113 | 16305,
114 | 16582,
115 | 16864,
116 | 17150,
117 | 17442,
118 | 17738,
119 | 18005,
120 | 18275,
121 | 18549,
122 | 18827,
123 | 19109,
124 | 19396,
125 | 19687,
126 | 19982,
127 | 20282,
128 | 20586,
129 | 20895,
130 | 21208,
131 | 21527,
132 | 21849,
133 | 22177,
134 | 22510,
135 | 22847,
136 | 23190,
137 | 23538,
138 | 23891,
139 | 24249,
140 | 24613,
141 | 24982,
142 | 25357,
143 | 25738,
144 | 26124,
145 | 26515,
146 | 26913,
147 | 27317,
148 | 27727,
149 | 28143,
150 | 28565,
151 | 28993,
152 | 29428,
153 | 29869,
154 | 30317,
155 | 30772,
156 | 31234,
157 | 31702,
158 | 32178,
159 | 32661,
160 | 33150,
161 | 33648,
162 | 34152,
163 | 34665,
164 | 35185,
165 | 35712,
166 | 36248,
167 | 36792,
168 | 37344,
169 | 37904,
170 | 38472,
171 | 39050,
172 | 39635,
173 | 40230,
174 | 40713,
175 | 41201,
176 | 41696,
177 | 42196,
178 | 42702,
179 | 43215,
180 | 43733,
181 | 44258,
182 | 44789,
183 | 45327,
184 | 45689,
185 | 46055,
186 | 46423,
187 | 46795,
188 | 47169,
189 | 47546,
190 | 47927,
191 | 48310,
192 | 48697,
193 | 49086,
194 | 49479,
195 | 49875,
196 | 50274,
197 | 50676,
198 | 51081,
199 | 51490,
200 | 51902,
201 | 52317,
202 | 52736,
203 | 53157,
204 | 55018,
205 | 56944,
206 | 58937,
207 | 60999,
208 | 63134,
209 | 65344,
210 | 67631,
211 | 69998,
212 | 72448,
213 | 74984,
214 | 77608,
215 | 80324,
216 | 83136,
217 | 86046,
218 | 89057,
219 | 92174,
220 | 95400,
221 | 98739,
222 | 102195,
223 | 105772,
224 | 109474,
225 | 113306,
226 | 117271,
227 | 121376,
228 | 125624,
229 | 130021,
230 | 134572,
231 | 139282,
232 | 144156,
233 | 149202,
234 | 154424,
235 | 159829,
236 | 165423,
237 | 171213,
238 | 177205,
239 | 183407,
240 | 189826,
241 | 196470,
242 | 203347,
243 | 210464,
244 | 217830,
245 | 225454,
246 | 233345,
247 | 241512,
248 | 249965,
249 | 258714,
250 | 267769,
251 | 277141,
252 | 286841,
253 | 296880,
254 | 297622,
255 | 298367,
256 | 299112,
257 | 299860,
258 | 300610,
259 | 301361,
260 | 302115,
261 | 302870,
262 | 303627,
263 | 304386,
264 | 305147,
265 | 305910,
266 | 306675,
267 | 307442,
268 | 308210,
269 | 308981,
270 | 309753,
271 | 310528,
272 | 311304,
273 | 312082,
274 | 312862,
275 | 313645,
276 | 314429,
277 | 315215,
278 | 316003,
279 | 316793,
280 | 317585,
281 | 318379,
282 | 319175,
283 | 319973,
284 | 320772,
285 | 321574,
286 | 322378,
287 | 323184,
288 | 323992,
289 | 324802,
290 | 325614,
291 | 326428,
292 | 327244,
293 | 328062,
294 | 328883,
295 | 329705,
296 | 330529,
297 | 331355,
298 | 332184,
299 | 333014,
300 | 333847,
301 | 334681,
302 | 335518,
303 | 336357,
304 | 337198,
305 | 338041,
306 | 338886,
307 | 339733,
308 | 340582,
309 | 341434,
310 | 342287,
311 | 343143,
312 | 344001,
313 | 344861,
314 | 345723,
315 | 346588,
316 | 347454,
317 | 348323,
318 | 349193,
319 | 350066,
320 | 350942,
321 | 351819,
322 | 352698,
323 | 353580,
324 | 354464,
325 | 355350,
326 | 356239,
327 | 357129,
328 | 358022,
329 | 358917,
330 | 359814,
331 | 360714,
332 | 361616,
333 | 362520,
334 | 363426,
335 | 364335,
336 | 365246,
337 | 366159,
338 | 367074,
339 | 367992,
340 | 368912,
341 | 369834,
342 | 370759,
343 | 371685,
344 | 372615,
345 | 373546,
346 | 374480,
347 | 375416,
348 | 376355,
349 | 377296,
350 | 378239,
351 | 379185,
352 | 380133,
353 | 381083,
354 | 382036,
355 | 382991,
356 | 383948,
357 | 384908,
358 | 385870,
359 | 386835,
360 | 387802,
361 | 388772,
362 | 389743,
363 | 390718,
364 | 391695,
365 | 392674,
366 | 393656,
367 | 394640,
368 | 395626,
369 | 396615,
370 | 397607,
371 | 398601,
372 | 399597,
373 | 400596,
374 | 401598,
375 | 402602,
376 | 403608,
377 | 404617,
378 | 405629,
379 | 406643,
380 | 407660,
381 | 408679,
382 | 409700,
383 | 410725,
384 | 411752,
385 | 412781,
386 | 413813,
387 | 414847,
388 | 415885,
389 | 416924,
390 | 417967,
391 | 419011,
392 | 420059,
393 | 421109,
394 | 422162,
395 | 423217,
396 | 424275,
397 | 425336,
398 | 426399,
399 | 427465,
400 | 428534,
401 | 429605,
402 | 430679,
403 | 431756,
404 | 432835,
405 | 433918,
406 | 435002,
407 | 436090,
408 | 437180,
409 | 438273,
410 | 439369,
411 | 440467,
412 | 441568,
413 | 442672,
414 | 443779,
415 | 444888,
416 | 446001,
417 | 447116,
418 | 448233,
419 | 449354,
420 | 450477,
421 | 451604,
422 | 452733,
423 | 453864,
424 | 454999,
425 | 456137,
426 | 457277,
427 | 458420,
428 | 459566,
429 | 460715,
430 | 461867,
431 | 463022,
432 | 464179,
433 | 465340,
434 | 466503,
435 | 467669,
436 | 468838,
437 | 470010,
438 | 471185,
439 | 472363,
440 | 473544,
441 | 474728,
442 | 475915,
443 | 477105,
444 | 478298,
445 | 479493,
446 | 480692,
447 | 481894,
448 | 483098,
449 | 484306,
450 | 485517,
451 | 486731,
452 | 487948,
453 | 489167,
454 | 490390,
455 | 491616,
456 | 492845,
457 | 494078,
458 | 495313,
459 | 496551,
460 | 497792,
461 | 499037,
462 | 500284,
463 | 501535,
464 | 502789,
465 | 504046,
466 | 505306,
467 | 506569,
468 | 507836,
469 | 509105,
470 | 510378,
471 | 511654,
472 | 512933,
473 | 514216,
474 | 515501,
475 | 516790,
476 | 518082,
477 | 519377,
478 | 520675,
479 | 521977,
480 | 523282,
481 | 524590,
482 | 525902,
483 | 527217,
484 | 528535,
485 | 529856,
486 | 531181,
487 | 532508,
488 | 533840,
489 | 535174,
490 | 536512,
491 | 537854,
492 | 539198,
493 | 540546,
494 | 541898,
495 | 543252,
496 | 544610,
497 | 545972,
498 | 547337,
499 | 548705,
500 | 550077,
501 | 551452,
502 | 552831,
503 | 554213,
504 | 555598,
505 | 556987,
506 | 558380,
507 | 559776,
508 | 561175,
509 | 562578,
510 | 563985,
511 | 565395,
512 | 566808,
513 | 568225,
514 | 569646,
515 | 571070,
516 | 572497,
517 | 573929,
518 | 575364,
519 | 576802,
520 | 578244,
521 | 579690,
522 | 581139,
523 | 582592,
524 | 584048,
525 | 585508,
526 | 586972,
527 | 588439,
528 | 589911,
529 | 591385,
530 | 592864,
531 | 594346,
532 | 595832,
533 | 597321,
534 | 598815,
535 | 600312,
536 | 601812,
537 | 603317,
538 | 604825,
539 | 606337,
540 | 607853,
541 | 609373,
542 | 610896,
543 | 612424,
544 | 613955,
545 | 615489,
546 | 617028,
547 | 618571,
548 | 620117,
549 | 621667,
550 | 623222,
551 | 624780,
552 | 626342,
553 | 627908,
554 | 629477,
555 | 631051,
556 | 632629,
557 | 634210,
558 | 635796,
559 | 637385,
560 | 638979,
561 | 640576,
562 | 642178,
563 | 643783,
564 | 645392,
565 | 647006,
566 | 648623,
567 | 650245,
568 | 651871,
569 | 653500,
570 | 655134,
571 | 656772,
572 | 658414,
573 | 660060,
574 | 661710,
575 | 663364,
576 | 665023,
577 | 666685,
578 | 668352,
579 | 670023,
580 | 671698,
581 | 673377,
582 | 675061,
583 | 676748,
584 | 678440,
585 | 680136,
586 | 681837,
587 | 683541,
588 | 685250,
589 | 686963,
590 | 688681,
591 | 690402,
592 | 692128,
593 | 693859,
594 | 695593,
595 | 697332,
596 | 699075,
597 | 700823,
598 | 702575,
599 | 704332,
600 | 706093,
601 | 707858,
602 | 709627,
603 | 711401,
604 | 713180,
605 | 714963,
606 | 716750,
607 | 718542,
608 | 720339,
609 | 722139,
610 | 723945,
611 | 725755,
612 | 727569,
613 | 729388,
614 | 731211,
615 | 733039,
616 | 734872,
617 | 736709,
618 | 738551,
619 | 740397,
620 | 742248,
621 | 744104,
622 | 745964,
623 | 747829,
624 | 749699,
625 | 751573,
626 | 753452,
627 | 755336,
628 | 757224,
629 | 759117,
630 | 761015,
631 | 762917,
632 | 764825,
633 | 766737,
634 | 768653,
635 | 770575,
636 | 772502,
637 | 774433,
638 | 776369,
639 | 778310,
640 | 780256,
641 | 782206,
642 | 784162,
643 | 786122,
644 | 788087,
645 | 790058,
646 | 792033,
647 | 794013,
648 | 795998,
649 | 797988,
650 | 799983,
651 | 801983,
652 | 803988,
653 | 805998,
654 | 808013,
655 | 810033,
656 | 812058,
657 | 814088,
658 | 816123,
659 | 818164,
660 | 820209,
661 | 822259,
662 | 824315,
663 | 826376,
664 | 828442,
665 | 830513,
666 | 832589,
667 | 834671,
668 | 836757,
669 | 838849,
670 | 840946,
671 | 843049,
672 | 845156,
673 | 847269,
674 | 849387,
675 | 851511,
676 | 853640,
677 | 855774,
678 | 857913,
679 | 860058,
680 | 862208,
681 | 864364,
682 | 866525,
683 | 868691,
684 | 870863,
685 | 873040,
686 | 875222,
687 | 877410,
688 | 879604,
689 | 881803,
690 | 884007,
691 | 886217,
692 | 888433,
693 | 890654,
694 | 892881,
695 | 895113,
696 | 897351,
697 | 899594,
698 | 901843,
699 | 904098,
700 | 906358,
701 | 908624,
702 | 910895,
703 | 913173,
704 | 915456,
705 | 917744,
706 | 920039,
707 | 922339,
708 | 924644,
709 | 926956,
710 | 929273,
711 | 931597,
712 | 933926,
713 | 936260,
714 | 938601,
715 | 940948,
716 | 943300,
717 | 945658,
718 | 948022,
719 | 950392,
720 | 952768,
721 | 955150,
722 | 957538,
723 | 959932,
724 | 962332,
725 | 964738,
726 | 967150,
727 | 969567,
728 | 971991,
729 | 974421,
730 | 976857,
731 | 979300,
732 | 981748,
733 | 984202,
734 | 986663,
735 | 989129,
736 | 991602,
737 | 994081,
738 | 996566,
739 | 999058,
740 | 1001555,
741 | 1004059,
742 | 1006569,
743 | 1009086,
744 | 1011609,
745 | 1014138,
746 | 1016673,
747 | 1019215,
748 | 1021763,
749 | 1024317,
750 | 1026878,
751 | 1029445,
752 | 1032019,
753 | 1034599,
754 | 1037185,
755 | 1039778,
756 | 1042378,
757 | 1044984,
758 | 1047596,
759 | 1050215,
760 | 1052841,
761 | 1055473,
762 | 1058111,
763 | 1060757,
764 | 1063409,
765 | 1066067,
766 | 1068732,
767 | 1071404,
768 | 1074083,
769 | 1076768,
770 | 1079460,
771 | 1082158,
772 | 1084864,
773 | 1087576,
774 | 1090295,
775 | 1093021,
776 | 1095753,
777 | 1098492,
778 | 1101239,
779 | 1103992,
780 | 1106752,
781 | 1109519,
782 | 1112292,
783 | 1115073,
784 | 1117861,
785 | 1120656,
786 | 1123457,
787 | 1126266,
788 | 1129081,
789 | 1131904,
790 | 1134734,
791 | 1137571,
792 | 1140415,
793 | 1143266,
794 | 1146124,
795 | 1148989,
796 | 1151862,
797 | 1154741,
798 | 1157628,
799 | 1160522,
800 | 1163424,
801 | 1166332,
802 | 1169248,
803 | 1172171,
804 | 1175102,
805 | 1178039,
806 | 1180984,
807 | 1183937,
808 | 1186897,
809 | 1189864,
810 | 1192839,
811 | 1195821,
812 | 1198810,
813 | 1201807,
814 | 1204812,
815 | 1207824,
816 | 1210843,
817 | 1213870,
818 | 1216905,
819 | 1219947,
820 | 1222997,
821 | 1226055,
822 | 1229120,
823 | 1232193,
824 | 1235273,
825 | 1238361,
826 | 1241457,
827 | 1244561,
828 | 1247672,
829 | 1250792,
830 | 1253918,
831 | 1257053,
832 | 1260196,
833 | 1263346,
834 | 1266505,
835 | 1269671,
836 | 1272845,
837 | 1276027,
838 | 1279217,
839 | 1282415,
840 | 1285621,
841 | 1288836,
842 | 1292058,
843 | 1295288,
844 | 1298526,
845 | 1301772,
846 | 1305027,
847 | 1308289,
848 | 1311560,
849 | 1314839,
850 | 1318126,
851 | 1321421,
852 | 1324725,
853 | 1328037,
854 | ]
855 |
--------------------------------------------------------------------------------
/index.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Libre+Barcode+39+Text&family=Courier+Prime&display=swap');
2 | @font-face {
3 | font-family: 'Mononoki';
4 | src: url('./fonts/mononoki.woff2') format('woff2'),
5 | url('./fonts/mononoki.ttf') format('truetype');
6 | }
7 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8 | * font-family: 'Libre Barcode 39 Text', cursive; *
9 | * font-family: 'Courier Prime', monospace; *
10 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
11 |
12 | :root {
13 | --bg-color: #100815;
14 | --bar-time: 15s;
15 | --terminal-bg: #111213;
16 | --terminal-border: #323232;
17 | --terminal-font: #d0d0d0;
18 | --tree-box: #9e8cbd;
19 | }
20 |
21 | ::selection {
22 | background: transparent;
23 | }
24 |
25 | a, a:visited {
26 | color: inherit;
27 | text-decoration: none;
28 | }
29 |
30 | body, .content {
31 | margin: 0;
32 | width: 100vw;
33 | height: 100vh;
34 | overflow: hidden;
35 | display: flex;
36 | justify-content: center;
37 | align-items: center;
38 | flex-direction: column;
39 | cursor: url('./cursors/Precision.cur'), crosshair;
40 | text-size-adjust: 0%;
41 | white-space: nowrap;
42 | user-select: none;
43 | }
44 |
45 | body {
46 | background-color: var(--bg-color);
47 | }
48 |
49 | body::after, .invertBar, .fixInvertBar, .scanlines {
50 | position: absolute;
51 | top: 0;
52 | left: 0;
53 | width: 100vw;
54 | pointer-events: none;
55 | }
56 |
57 | /* body::after {
58 | height: 100vh;
59 | box-shadow: inset 0 0 9vmax 2vmax rgba(0,0,0,0.50);
60 | filter: blur(10px);
61 | content: '';
62 | } */
63 |
64 | .line {
65 | font-family: 'Libre Barcode 39 Text', cursive;
66 | font-size: 20vmin;
67 | }
68 |
69 | .glitch {
70 | position: relative;
71 | color: #fff;
72 | }
73 |
74 | .scanlines {
75 | background: repeating-linear-gradient(0deg,
76 | transparent 25%,
77 | transparent 50%,
78 | rgba(255,255,255,0.059) 50%,
79 | rgba(255,255,255,0.059) 75%
80 | );
81 | background-size: 12px 12px;
82 | height: 100vh;
83 | animation: scanlines var(--bar-time) linear infinite;
84 | }
85 | @keyframes scanlines {
86 | from { background-position-y: 0; }
87 | to { background-position-y: 100%; }
88 | }
89 |
90 | .invertBar, .fixInvertBar {
91 | height: 7px;
92 | background-color: var(--bg-color);
93 | filter: invert(1);
94 | animation: invBar 15s linear infinite;
95 | }
96 | @keyframes invBar {
97 | from { top: 0; }
98 | to { top: 100%; }
99 | }
100 |
101 | .invertBar {
102 | mix-blend-mode: exclusion;
103 | }
104 |
105 | .terminal {
106 | color: white;
107 | font-family: 'Courier Prime', Courier, monospace;
108 | font-size: 3vmin;
109 | line-height: 3.4vmin;
110 | background-color: var(--terminal-bg);
111 | border: 4px solid var(--terminal-border);
112 | transform-origin: 50% 0;
113 | }
114 |
115 | .titleBar {
116 | text-align: center;
117 | padding: 1vmin;
118 | /* border-bottom: 1px solid var(--terminal-border); */
119 | background-color: var(--terminal-border);
120 | color: transparent;
121 | }
122 |
123 | .titleBar.revealed {
124 | color: white;
125 | }
126 |
127 | .prompt, .tree {
128 | padding: 0.5vmin 1vmin 0.5vmin 0;
129 | color: var(--terminal-font);
130 | opacity: 0;
131 | }
132 |
133 | .blinking, .prompt.ran {
134 | opacity: 1;
135 | }
136 |
137 | .treeHead, .treeItem {
138 | color: var(--tree-box);
139 | }
140 |
141 | .treeHead i {
142 | color: white;
143 | }
144 |
145 | .prompt::before {
146 | content: '/usr/bin';
147 | background-color: #acd4eb;
148 | color: var(--terminal-bg);
149 | font-weight: 600;
150 | display: inline-block;
151 | padding: 0.5vmin 2vmin 0.1vmin 0.5vmin;
152 | margin-right: 1vmin;
153 | clip-path: polygon(0% 0%, 90% 0%, 100% 50%, 90% 100%, 0% 100%);
154 | }
155 |
156 | .blinking::after {
157 | position: relative;
158 | top: -0.1vmin;
159 | content: '.';
160 | color: transparent;
161 | background-color: white;
162 | display: inline-block;
163 | height: 100%;
164 | width: 2vmin;
165 | padding-top: 0.2vmin;
166 | animation: blink 1s ease infinite;
167 | }
168 | @keyframes blink {
169 | from, to { background-color: white; }
170 | 50% { background-color: transparent; }
171 | }
172 |
173 | .treeItem a{
174 | margin-left: 1vmin;
175 | cursor: url('./cursors/Pointer.cur'), pointer;
176 | color: #C04848;
177 | }
178 |
179 | .treeItem a:hover {
180 | text-decoration: underline dashed;
181 | }
182 |
183 | .terminal.opened {
184 | animation: open 1.4s ease 1 forwards;
185 | background-color: var(--terminal-border)
186 | }
187 | @keyframes open {
188 | 0% {
189 | transform: scale(1%,0);
190 | }
191 | 49% {
192 | background-color: var(--terminal-border);
193 | transform: scale(1%,1);
194 | }
195 | 50% {
196 | background-color: var(--terminal-bg);
197 | transform: scale(1%,1);
198 | }
199 | 100% {
200 | background-color: var(--terminal-bg);
201 | transform: scale(1,1);
202 | }
203 | }
204 |
205 | .prompt.ran {
206 | animation: ran 0.15s steps(2) 1;
207 | }
208 | @keyframes ran {
209 | from {
210 | color: var(--terminal-font);
211 | text-shadow: none;
212 | }
213 | to {
214 | color: white;
215 | text-shadow: 3px 3px 20px rgba(255, 255, 255, 0.5);
216 | }
217 | }
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 | .line:not(:first-child) {
227 | position: absolute;
228 | top: 0;
229 | left: 0;
230 | }
231 | .line:nth-child(1) {
232 | animation: clip 3000ms -300ms linear infinite, glitch1 500ms -723ms linear infinite, textShadow 1.6s infinite;
233 | }
234 | @keyframes glitch1 {
235 | 0% {
236 | transform: translateX(0);
237 | }
238 | 80% {
239 | transform: translateX(0);
240 | color: rgba(255,255,255,1.0);
241 | }
242 | 85% {
243 | transform: translateX(-1px);
244 | color: rgba(78,154,38,1.0);
245 | }
246 | 90% {
247 | transform: translateX(4px);
248 | color: rgba(172,18,18,1.0);
249 | }
250 | 95% {
251 | transform: translateX(3px);
252 | color: rgba(255, 255, 255, 1.0);
253 | }
254 | 100% {
255 | transform: translateX(0);
256 | }
257 | }
258 | .line:nth-child(2) {
259 | animation: clip 3000ms -600ms linear infinite, glitch2 500ms -332ms linear infinite, textShadow 1.6s infinite;
260 | }
261 | @keyframes glitch2 {
262 | 0% {
263 | transform: translateX(0);
264 | }
265 | 80% {
266 | transform: translateX(0);
267 | color: rgba(255, 255, 255, 1.0);
268 | }
269 | 85% {
270 | transform: translateX(2px);
271 | color: rgba(78,154,38,1.0);
272 | }
273 | 90% {
274 | transform: translateX(2px);
275 | color: rgba(172,18,18,1.0);
276 | }
277 | 95% {
278 | transform: translateX(5px);
279 | color: rgba(255, 255, 255, 1.0);
280 | }
281 | 100% {
282 | transform: translateX(0);
283 | }
284 | }
285 | .line:nth-child(3) {
286 | animation: clip 3000ms -900ms linear infinite, glitch3 500ms -458ms linear infinite, textShadow 1.6s infinite;
287 | }
288 | @keyframes glitch3 {
289 | 0% {
290 | transform: translateX(0);
291 | }
292 | 80% {
293 | transform: translateX(0);
294 | color: rgba(255, 255, 255, 1.0);
295 | }
296 | 85% {
297 | transform: translateX(-4px);
298 | color: rgba(78,154,38,1.0);
299 | }
300 | 90% {
301 | transform: translateX(0px);
302 | color: rgba(172,18,18,1.0);
303 | }
304 | 95% {
305 | transform: translateX(-1px);
306 | color: rgba(255, 255, 255, 1.0);
307 | }
308 | 100% {
309 | transform: translateX(0);
310 | }
311 | }
312 | .line:nth-child(4) {
313 | animation: clip 3000ms -1200ms linear infinite, glitch4 500ms -162ms linear infinite, textShadow 1.6s infinite;
314 | }
315 | @keyframes glitch4 {
316 | 0% {
317 | transform: translateX(0);
318 | }
319 | 80% {
320 | transform: translateX(0);
321 | color: rgba(255, 255, 255, 1.0);
322 | }
323 | 85% {
324 | transform: translateX(4px);
325 | color: rgba(78,154,38,1.0);
326 | }
327 | 90% {
328 | transform: translateX(1px);
329 | color: rgba(172,18,18,1.0);
330 | }
331 | 95% {
332 | transform: translateX(-1px);
333 | color: rgba(255, 255, 255, 1.0);
334 | }
335 | 100% {
336 | transform: translateX(0);
337 | }
338 | }
339 | .line:nth-child(5) {
340 | animation: clip 3000ms -1500ms linear infinite, glitch5 500ms -37ms linear infinite, textShadow 1.6s infinite;
341 | }
342 | @keyframes glitch5 {
343 | 0% {
344 | transform: translateX(0);
345 | }
346 | 80% {
347 | transform: translateX(0);
348 | color: rgba(255, 255, 255, 1.0);
349 | }
350 | 85% {
351 | transform: translateX(-3px);
352 | color: rgba(78,154,38,1.0);
353 | }
354 | 90% {
355 | transform: translateX(3px);
356 | color: rgba(172,18,18,1.0);
357 | }
358 | 95% {
359 | transform: translateX(2px);
360 | color: rgba(255, 255, 255, 1.0);
361 | }
362 | 100% {
363 | transform: translateX(0);
364 | }
365 | }
366 | .line:nth-child(6) {
367 | animation: clip 3000ms -1800ms linear infinite, glitch6 500ms -159ms linear infinite, textShadow 1.6s infinite;
368 | }
369 | @keyframes glitch6 {
370 | 0% {
371 | transform: translateX(0);
372 | }
373 | 80% {
374 | transform: translateX(0);
375 | color: rgba(255, 255, 255, 1.0);
376 | }
377 | 85% {
378 | transform: translateX(-1px);
379 | color: rgba(78,154,38,1.0);
380 | }
381 | 90% {
382 | transform: translateX(2px);
383 | color: rgba(172,18,18,1.0);
384 | }
385 | 95% {
386 | transform: translateX(1px);
387 | color: rgba(255, 255, 255, 1.0);
388 | }
389 | 100% {
390 | transform: translateX(0);
391 | }
392 | }
393 | .line:nth-child(7) {
394 | animation: clip 3000ms -2100ms linear infinite, glitch7 500ms -769ms linear infinite, textShadow 1.6s infinite;
395 | }
396 | @keyframes glitch7 {
397 | 0% {
398 | transform: translateX(0);
399 | }
400 | 80% {
401 | transform: translateX(0);
402 | color: rgba(255, 255, 255, 1.0);
403 | }
404 | 85% {
405 | transform: translateX(4px);
406 | color: rgba(78,154,38,1.0);
407 | }
408 | 90% {
409 | transform: translateX(3px);
410 | color: rgba(172,18,18,1.0);
411 | }
412 | 95% {
413 | transform: translateX(5px);
414 | color: rgba(255, 255, 255, 1.0);
415 | }
416 | 100% {
417 | transform: translateX(0);
418 | }
419 | }
420 | .line:nth-child(8) {
421 | animation: clip 3000ms -2400ms linear infinite, glitch8 500ms -250ms linear infinite, textShadow 1.6s infinite;
422 | }
423 | @keyframes glitch8 {
424 | 0% {
425 | transform: translateX(0);
426 | }
427 | 80% {
428 | transform: translateX(0);
429 | color: rgba(255, 255, 255, 1.0);
430 | }
431 | 85% {
432 | transform: translateX(-4px);
433 | color: rgba(78,154,38,1.0);
434 | }
435 | 90% {
436 | transform: translateX(-2px);
437 | color: rgba(172,18,18,1.0);
438 | }
439 | 95% {
440 | transform: translateX(-4px);
441 | color: rgba(255, 255, 255, 1.0);
442 | }
443 | 100% {
444 | transform: translateX(0);
445 | }
446 | }
447 | .line:nth-child(9) {
448 | animation: clip 3000ms -2700ms linear infinite, glitch9 500ms -406ms linear infinite, textShadow 1.6s infinite;
449 | }
450 | @keyframes glitch9 {
451 | 0% {
452 | transform: translateX(0);
453 | }
454 | 80% {
455 | transform: translateX(0);
456 | color: rgba(255, 255, 255, 1.0);
457 | }
458 | 85% {
459 | transform: translateX(4px);
460 | color: rgba(78,154,38,1.0);
461 | }
462 | 90% {
463 | transform: translateX(3px);
464 | color: rgba(172,18,18,1.0);
465 | }
466 | 95% {
467 | transform: translateX(3px);
468 | color: rgba(255, 255, 255, 1.0);
469 | }
470 | 100% {
471 | transform: translateX(0);
472 | }
473 | }
474 | .line:nth-child(10) {
475 | animation: clip 3000ms -3000ms linear infinite, glitch10 500ms -986ms linear infinite, textShadow 1.6s infinite;
476 | }
477 | @keyframes glitch10 {
478 | 0% {
479 | transform: translateX(0);
480 | }
481 | 80% {
482 | transform: translateX(0);
483 | color: rgba(255, 255, 255, 1.0);
484 | }
485 | 85% {
486 | transform: translateX(-4px);
487 | color: rgba(78,154,38,1.0);
488 | }
489 | 90% {
490 | transform: translateX(-3px);
491 | color: rgba(172,18,18,1.0);
492 | }
493 | 95% {
494 | transform: translateX(2px);
495 | color: rgba(255, 255, 255, 1.0);
496 | }
497 | 100% {
498 | transform: translateX(0);
499 | }
500 | }
501 | @keyframes clip {
502 | 0% {
503 | clip-path: polygon(0 100%, 100% 100%, 100% 120%, 0 120%);
504 | }
505 | 100% {
506 | clip-path: polygon(0 -20%, 100% -20%, 100% 0%, 0 0);
507 | }
508 | }
509 | @keyframes textShadow {
510 | 0% {
511 | text-shadow: 0.4389924193300864px 0 1px rgba(0,30,255,0.5), -0.4389924193300864px 0 1px rgba(255,0,80,0.3), 0 0 3px;
512 | }
513 | 5% {
514 | text-shadow: 2.7928974010788217px 0 1px rgba(0,30,255,0.5), -2.7928974010788217px 0 1px rgba(255,0,80,0.3), 0 0 3px;
515 | }
516 | 10% {
517 | text-shadow: 0.02956275843481219px 0 1px rgba(0,30,255,0.5), -0.02956275843481219px 0 1px rgba(255,0,80,0.3), 0 0 3px;
518 | }
519 | 15% {
520 | text-shadow: 0.40218538552878136px 0 1px rgba(0,30,255,0.5), -0.40218538552878136px 0 1px rgba(255,0,80,0.3), 0 0 3px;
521 | }
522 | 20% {
523 | text-shadow: 3.4794037899852017px 0 1px rgba(0,30,255,0.5), -3.4794037899852017px 0 1px rgba(255,0,80,0.3), 0 0 3px;
524 | }
525 | 25% {
526 | text-shadow: 1.6125630401149584px 0 1px rgba(0,30,255,0.5), -1.6125630401149584px 0 1px rgba(255,0,80,0.3), 0 0 3px;
527 | }
528 | 30% {
529 | text-shadow: 0.7015590085143956px 0 1px rgba(19, 28, 99, 0.5), -0.7015590085143956px 0 1px rgba(255,0,80,0.3), 0 0 3px;
530 | }
531 | 35% {
532 | text-shadow: 3.896914047650351px 0 1px rgba(0,30,255,0.5), -3.896914047650351px 0 1px rgba(255,0,80,0.3), 0 0 3px;
533 | }
534 | 40% {
535 | text-shadow: 3.870905614848819px 0 1px rgba(0,30,255,0.5), -3.870905614848819px 0 1px rgba(255,0,80,0.3), 0 0 3px;
536 | }
537 | 45% {
538 | text-shadow: 2.231056963361899px 0 1px rgba(0,30,255,0.5), -2.231056963361899px 0 1px rgba(255,0,80,0.3), 0 0 3px;
539 | }
540 | 50% {
541 | text-shadow: 0.08084290417898504px 0 1px rgba(0,30,255,0.5), -0.08084290417898504px 0 1px rgba(255,0,80,0.3), 0 0 3px;
542 | }
543 | 55% {
544 | text-shadow: 2.3758461067427543px 0 1px rgba(0,30,255,0.5), -2.3758461067427543px 0 1px rgba(255,0,80,0.3), 0 0 3px;
545 | }
546 | 60% {
547 | text-shadow: 2.202193051050636px 0 1px rgba(0,30,255,0.5), -2.202193051050636px 0 1px rgba(255,0,80,0.3), 0 0 3px;
548 | }
549 | 65% {
550 | text-shadow: 2.8638780614874975px 0 1px rgba(0,30,255,0.5), -2.8638780614874975px 0 1px rgba(255,0,80,0.3), 0 0 3px;
551 | }
552 | 70% {
553 | text-shadow: 0.48874025155497314px 0 1px rgba(0,30,255,0.5), -0.48874025155497314px 0 1px rgba(255,0,80,0.3), 0 0 3px;
554 | }
555 | 75% {
556 | text-shadow: 1.8948491305757957px 0 1px rgba(0,30,255,0.5), -1.8948491305757957px 0 1px rgba(255,0,80,0.3), 0 0 3px;
557 | }
558 | 80% {
559 | text-shadow: 0.0833037308038857px 0 1px rgba(0,30,255,0.5), -0.0833037308038857px 0 1px rgba(255,0,80,0.3), 0 0 3px;
560 | }
561 | 85% {
562 | text-shadow: 0.09769827255241735px 0 1px rgba(0,30,255,0.5), -0.09769827255241735px 0 1px rgba(255,0,80,0.3), 0 0 3px;
563 | }
564 | 90% {
565 | text-shadow: 3.443339761481782px 0 1px rgba(0,30,255,0.5), -3.443339761481782px 0 1px rgba(255,0,80,0.3), 0 0 3px;
566 | }
567 | 95% {
568 | text-shadow: 2.1841838852799786px 0 1px rgba(0,30,255,0.5), -2.1841838852799786px 0 1px rgba(255,0,80,0.3), 0 0 3px;
569 | }
570 | 100% {
571 | text-shadow: 2.6208764473832513px 0 1px rgba(0,30,255,0.5), -2.6208764473832513px 0 1px rgba(255,0,80,0.3), 0 0 3px;
572 | }
573 | }
574 |
575 | .fuk {
576 | height: 0;
577 | opacity: 0;
578 | padding: 0 1vmin 0 0
579 | }
580 |
--------------------------------------------------------------------------------